Use when about to draft system architecture or hear "antes de desenhar X" / "vamos modelar o sistema" — forces clarification of the 10 non-functional requirements before a single box gets drawn.
How this skill is triggered — by the user, by Claude, or both
Slash command
/matilha-sysdesign-pack:sysdesign-nfr-clarificationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Dispara sempre que alguém começa a desenhar arquitetura, escolher stack, ou propor uma
Dispara sempre que alguém começa a desenhar arquitetura, escolher stack, ou propor uma topologia distribuída sem antes declarar NFRs. Gatilhos típicos: "vamos desenhar o sistema de notificações", "como eu modelo este pipeline", "que banco uso aqui", "antes de começar a arquitetura". A skill pausa a conversa e exige que 10 requisitos não-funcionais sejam tornados explícitos antes de qualquer caixa no diagrama. O cliente interno (PM, fundador, outro dev) raramente declara NFRs sozinho — assume que o sistema "vai funcionar" — e essa lacuna é exatamente o que a skill cobre.
nfrs.md no repo (ou seção numa spec existente). NFRs vivem
como arquivo versionado, não em chat — a decisão vai ser referenciada por meses.nfrs.md fechado. Se o próximo
desenho contradiz algum NFR, o desenho perdeu — não o NFR.nfrs.md — existe
"P99 ≤ 200ms sob 10k QPS". A tradução força honestidade.nfrs.md junto com o código. Quando um NFR mudar, o commit aparece no
histórico e quem herda o sistema vê a intenção.nfrs.md. Cada caixa desenhada sem NFRs vira
ancoragem e distorce a escolha de tecnologia nos passos seguintes.nfrs.md. Função ("enviar email") e
qualidade ("com P99 ≤ 2s") vivem em listas separadas; misturar esconde decisões.Depois de aplicar a skill, a conversa sai de "vamos desenhar" e chega em um
arquivo versionado com 10 linhas numéricas. A arquitetura que vem depois referencia
NFRs explicitamente: "escolhi Cassandra porque NFR-Consistency aceita eventual e
NFR-Availability exige AP". Decisões técnicas ficam auditáveis. Quando o sistema
falha em produção, o time consulta nfrs.md e sabe se violou contrato ou se o
contrato estava otimista.
nfrs.md existe no repo, commitado, com os 10 NFRs numéricos ou marcados como
"assumido: ".Complementa matilha-harness-pack:harness-nfrs-as-prompts — onde aquela skill
codifica NFRs como constraints no system prompt de um agente, esta codifica NFRs
como perguntas numéricas na spec humana. Fase 10-20 da metodologia matilha
(discovery + spec). Pareia com matilha-scout (discovery) e matilha-plan (quando
o plano de subprojetos precisa referenciar NFRs para decidir ordem de merge).
nfrs.md (ou seção equivalente na spec) com 10 NFRs numéricos + defaults.nfrs.md no repo, traduzir cada adjetivo em número,
decidir NFRs antes de desenhar topologia.nfrs.md agora com o que já
existe, marque o que contradiz NFRs realistas, e decida quais ajustar no
próximo sprint. Evite retrofit arqueológico.nfrs.md na PR, exija que cada caixa referencie NFR, e bloqueie merge até que
contradições sejam resolvidas ou NFRs ajustados.Se o CLI matilha estiver instalado (
matilha --versionfunciona), você pode rodarmatilha sysdesign nfr-initpara gerar o templatenfrs.mdpré-preenchido com os 10 NFRs e defaults de domínio. Preferido para CI ou novos projetos. O caminho do plugin acima funciona sem CLI.
[[concepts/nfr-system-design]] — 10 NFRs, tensões, template de clarificação[[sources/acing-system-design]] — Zhiyong Tan, Part 1 (Fundamentals)[[entities/zhiyong-tan]]Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub danilods/matilha-sysdesign-pack --plugin matilha-sysdesign-pack