Montar a especificação única
Preparação obrigatória
Antes de executar esta skill, carregue obrigatoriamente $specsfy-setup na
raiz do projeto. Em handoff automático, carregue-o de novo antes desta etapa.
Reutilize a raiz confirmada na conversa e não prossiga se o setup apontar uma
pendência.
Modo de interação
Modo de interação: perguntas.
Antes de formular qualquer pergunta, leia e aplique o
Contrato de perguntas numeradas de .specsfy/Spec.md.
Crie ou atualize o pacote specs/draft/<NNNN>-<slug>/, no qual spec.md é a única fonte normativa de todo o fluxo SDD. Somente o diretório recebe o número; mantenha o arquivo sempre como spec.md. Consolide descoberta, research, esclarecimentos, produto, plano técnico, modelo de dados, contratos, TDD, BDD, validações, tarefas, decisões e conclusão em três atos explícitos. Evidências externas consultadas vivem em research/; não gere plan.md, research.md, data-model.md, tasks.md, checklists ou uma segunda especificação.
Antes de consolidar uma spec Laravel, leia .specsfy/PACKAGES.md,
docs/packages/README.md e as fichas de docs/packages/. Se a solicitação
trouxer uma URL GitHub de pacote ou depender de uma biblioteca Composer,
carregue $specsfy-specialist-laravel-package-manager para conferir se o
pacote já existe e registrar a necessidade sem duplicar dependências.
Orquestrar a conversa
Ao concluir esta etapa ou detectar trabalho de outra etapa, anuncie
Pendência detectada: <descrição> — ação: resolvendo nesta etapa e resolva-a
quando pertencer ao próprio escopo. Quando houver troca de responsabilidade,
anuncie Transição automática: $specsfy-03-specify → $<destino> — motivo: <motivo> — resultado esperado: <resultado> e carregue imediatamente a skill de
destino, sem pedir confirmação nem repetir o comando. Continue na mesma
conversa. Depois de uma correção necessária a esta etapa, anuncie Retomada automática: $<destino> → $specsfy-03-specify — pendência resolvida: <resultado> e retome-a imediatamente. Reavalie o estado após cada handoff para
evitar ciclos. Não peça confirmação para o handoff; ações sensíveis continuam
exigindo autorização específica.
Preparar
- Resolva a raiz do projeto pelo diretório informado pelo usuário ou por
Path.cwd() quando ele não informar outro. Não procure nem promova o destino
para uma raiz Git.
- Ao criar uma spec, resolva o diretório desta skill e execute antes de
escrever:
node <diretório-da-skill>/scripts/iniciar_spec.mjs \
--title "<nome da especificação>" [--slug <slug>] [--root <raiz>]
- Use o caminho absoluto impresso pelo script. Ele aloca o próximo ID local,
prefere
.specsfy/templates/custom/Spec.md, recorre ao template gerenciado
.specsfy/templates/Spec.md e cria somente
specs/draft/<NNNN>-<slug>/spec.md; nunca renomeie o arquivo para incluir o ID.
Ao desenvolver este repositório, o script usa skills/templates/Spec.md como
fallback; no projeto consumidor, template ausente exige specsfy install.
- Ao atualizar, use o caminho da spec existente fornecido ou descoberto sob a
raiz atual; não execute o inicializador novamente.
- Leia a captura de origem em
specs/inbox/, o item de backlog, o brief da
refinamento do backlog, o pedido atual, a spec nesse caminho, seu research/ e arquivos
do repositório que revelem restrições reais.
- Se não houver informação suficiente para identificar problema, ator e
resultado, anuncie a pendência e carregue
$specsfy-02-backlog para executar o ciclo.
Retome esta skill ao final do ciclo e use o brief completo
ou parcial produzido.
- Leia
references/mcr-10.md ao receber relato, história, transcrição ou
especificação a refinar.
- Leia
.specsfy/DATABASE.md quando existir. Se a jornada depender de
informações guardadas e o arquivo não explicar o que o produto precisa
lembrar, quem usa essas informações ou quando elas deixam de ser
necessárias, carregue $specsfy-data-discovery e retome esta skill depois
do registro confirmado.
Aplicar o MCR-10
- Preserve a formulação original e identifique finalidade, ator e resultado.
- Analise termos ambíguos, equivalências terminológicas e derivações.
- Use substância, quantidade, qualidade, relação, lugar, tempo, posição, posse,
ação e afecção como lentes adaptativas, não como questionário.
- Distinga cada declaração da pessoa de inferência, hipótese, decisão, conflito
ou questão aberta produzida durante a análise.
- Se existir lacuna aplicável, carregue
$specsfy-02-backlog para executar o
ciclo limitado a oito perguntas por área e retome esta skill ao final do
ciclo. Se a pessoa
escolher avançar, aplique a confirmação e o registro definidos no contrato
central. Mantenha Status: Draft e Definition Gate: Pending quando
restarem pontos aplicáveis; não promova a spec a Defined e não reabra o
mesmo ciclo nesta retomada.
- Recombine decisões em afirmações com sujeito, condição, ação e efeito
observável; derive regras, histórias, Gherkin, limites e falhas.
- Registre o resultado nas seções existentes de
spec.md; não gere relatório
MCR separado nem copie a referência para o pacote da fatia.
Escrever
- Grave sempre em
<raiz>/specs/draft/<NNNN>-<slug>/spec.md; o ID pertence ao
diretório e o arquivo permanece exatamente spec.md.
- Use
<raiz>/specs/draft/<NNNN>-<slug>/research/ somente para cópias, snapshots, contratos, schemas, exemplos e notas de proveniência realmente consultados. Não coloque código de produção, testes ou documentos normativos nesse diretório.
- Ao pesquisar uma API ou documentação externa, armazene a evidência permitida em
research/ e indexe caminho, origem, versão/data, licença e impacto em Artefatos de pesquisa armazenados. Se licença ou termos impedirem a cópia, armazene metadados, URL, data de acesso, checksum/versão quando disponível e notas próprias, sem reproduzir conteúdo protegido.
- Fora de
spec.md e research/, não crie outra entrada no pacote da feature.
- Ao promover
specs/backlog/<NNNN>-<slug>.md, registre esse caminho na spec e
atualize o item para Status: Promoted com o caminho da spec criada. O backlog
preserva proveniência, mas deixa de governar o comportamento.
- Ao derivar diretamente de
specs/inbox/<data-hora>-<slug>.md, registre o
caminho na spec e preserve a captura sem alteração. A análise inicial é
contexto, não requisito confirmado.
- Preserve o cabeçalho como uma tabela Markdown de duas colunas,
Campo e
Valor; não converta seus metadados em linhas **Campo**: valor.
- Na tabela, declare
ID como SPEC-NNNN e Slug como
<NNNN>-<slug> e mantenha o slug igual ao diretório pai.
- Preserve exatamente os três atos e as 18 seções do template resolvido:
.specsfy/templates/custom/Spec.md quando existir ou
.specsfy/templates/Spec.md caso contrário.
- Substitua o conteúdo editorial restante do modelo durante o refinamento; não
deixe seus exemplos ou placeholders na spec promovida para
Defined.
- Ao atualizar, edite o arquivo existente e preserve IDs e decisões ainda válidas.
- Numere novos itens sem reutilizar ou renumerar IDs removidos:
- histórias:
US-001;
- requisitos funcionais:
FR-001;
- requisitos não funcionais:
NFR-001;
- cenários de aceite:
AC-001;
- decisões:
DEC-001.
- Escreva cada requisito como comportamento verificável.
- Escreva cada cenário com Given/When/Then e associe-o a pelo menos um requisito.
- Defina no mínimo três
AC distintos para a feature inteira e para cada
US, FR e NFR. Conte cobertura somente quando o AC declarar o ID em
**Cobre**; use caminho feliz, variação/regra crítica e falha ou limite
material para ampliar contexto sem duplicar cenários equivalentes.
- Inclua fora de escopo, erros, limites, segurança e acessibilidade quando relevantes.
- Quando o cabeçalho declarar
Interface para pessoas: Sim, preencha na seção
10 as nove partes do template com stack e convenções locais, telas, fluxo de
informação, menus e navegação principal, formulários e ações, composição,
blocos React e componentes shadcn/ui/ReUI, estados e acessibilidade. Use
INTERFACE.md, .specsfy/STACK.md, manifests, telas e código existente como fonte da stack
e do sistema atual; registre o que será preservado e alterado. Não proponha
biblioteca incompatível nem reestruture uma tela existente sem esse exame.
Carregue
$specsfy-specialist-ux-design, $specsfy-specialist-ui-design e o
especialista da stack de interface. Não aceite uma descrição de CRUD que
tenha somente API, banco ou serviço.
Em Laravel com React, registre explicitamente shadcn/ui e ReUI, todos os
blocos React previstos, suas responsabilidades, arquivos, componentes de
origem e regra de reuso. A página apenas compõe esses blocos.
- Quando não houver interface, declare
Interface para pessoas: Não e explique
por que a entrega não será usada por uma pessoa em uma tela.
- Mantenha a seção técnica concreta o bastante para permitir tarefas com caminhos de arquivo, sem confundir escolha interna com resultado do usuário.
- Registre defaults reversíveis em
Suposições; peça esclarecimento apenas quando opções plausíveis mudarem materialmente escopo, dados, segurança, UX ou testes.
- Não deixe placeholders, exemplos do template,
TBD, TODO ou marcadores de clarificação em um arquivo marcado como Defined.
- Mantenha tarefas futuras na seção
14. Tarefas; skills posteriores atualizam a mesma seção, nunca outro arquivo.
- Use os metadados
Definition Gate, Plan Gate e Delivery Gate para expressar prontidão sem criar relatórios separados.
Respeitar specs já aprovadas
Se a spec já obteve Definition Gate: Passed e a pessoa pedir para adicionar,
remover, corrigir ou mudar algo, anuncie a pendência e carregue automaticamente
$specsfy-update-spec. Essa skill classifica o impacto, atualiza a fonte
normativa e invalida somente os gates afetados. Retome esta skill apenas se a
mudança retornar a spec ao estado de definição inicial.
Preservar rastreabilidade
Para cada FR e NFR, aponte no mínimo três cenários AC e mantenha o método
de verificação explícito dos NFRs. Para cada história, identifique os requisitos
que entregam seu valor e ao menos três AC. Use os mesmos IDs mais tarde nos
casos TDD e na seção 14.
Controlar research
- Antes do planejamento, carregue somente as evidências indexadas e valide
claims com:
node .agents/skills/specsfy-03-specify/scripts/load_research.mjs \
specs/<estado>/<NNNN>-<slug>/spec.md
- Para pesquisa material, registre
R-ID, criticalidade, claim, veredito,
confiança, evidência local e orçamento na seção 2. Claim critical ainda não
verificado bloqueia o handoff; claim refutado permanece registrado. IDs devem
ser únicos, gasto não pode superar o limite e a âncora Markdown citada precisa
existir no arquivo local.
Autovalidar
Enquanto o arquivo estiver em Draft, execute a validação estrutural intermediária:
node .agents/skills/specsfy-04-validate/scripts/validate_spec.mjs specs/<estado>/<NNNN>-<slug>/spec.md --allow-draft
Corrija falhas estruturais em no máximo três ciclos. A skill specsfy-04-validate faz a revisão semântica, registra o resultado na seção 13 e promove Definition Gate: Passed e Status: Defined. Até lá, mantenha Status: Draft, Definition Gate: Pending e relate decisões bloqueantes.
Relatar
Informe:
- caminho
specs/<estado>/<NNNN>-<slug>/spec.md;
- caminhos de research armazenados ou a declaração de que não houve fonte externa;
- status;
- contagem de
US, FR, NFR e AC;
- suposições relevantes;
- transição automática para
$specsfy-04-validate, com motivo e resultado
esperado.
Especialistas sob demanda
Leia references/specialists.md quando requisitos,
NFRs, dados ou decisões técnicas exigirem conhecimento especializado. Registre
o requisito na spec e proponha carregar o especialista. Se ele não estiver
instalado, peça autorização específica antes de instalar.
1---2name: specsfy-03-specify3description: Use quando o usuário pede para promover uma entrada ou backlog já refinado, criar, iniciar ou consolidar uma especificação nova ou ainda em Draft em `spec.md`. Use também quando uma transição automática exigir criar ou completar a fonte normativa inicial. Inicializa specs em `specs/draft/` e aplica o MCR-10; para mudar spec aprovada use specsfy-update-spec, para captura sem perguntas use specsfy-01-inbox, para refinamento use specsfy-02-backlog e para revisão sem edição use specsfy-04-validate.4---56# Montar a especificação única78## Preparação obrigatória910Antes de executar esta skill, carregue obrigatoriamente `$specsfy-setup` na11raiz do projeto. Em handoff automático, carregue-o de novo antes desta etapa.12Reutilize a raiz confirmada na conversa e não prossiga se o setup apontar uma13pendência.1415## Modo de interação1617Modo de interação: `perguntas`.18Antes de formular qualquer pergunta, leia e aplique o19`Contrato de perguntas numeradas` de `.specsfy/Spec.md`.2021Crie ou atualize o pacote `specs/draft/<NNNN>-<slug>/`, no qual `spec.md` é a única fonte normativa de todo o fluxo SDD. Somente o diretório recebe o número; mantenha o arquivo sempre como `spec.md`. Consolide descoberta, research, esclarecimentos, produto, plano técnico, modelo de dados, contratos, TDD, BDD, validações, tarefas, decisões e conclusão em três atos explícitos. Evidências externas consultadas vivem em `research/`; não gere `plan.md`, `research.md`, `data-model.md`, `tasks.md`, checklists ou uma segunda especificação.2223Antes de consolidar uma spec Laravel, leia `.specsfy/PACKAGES.md`,24`docs/packages/README.md` e as fichas de `docs/packages/`. Se a solicitação25trouxer uma URL GitHub de pacote ou depender de uma biblioteca Composer,26carregue `$specsfy-specialist-laravel-package-manager` para conferir se o27pacote já existe e registrar a necessidade sem duplicar dependências.2829## Orquestrar a conversa3031Ao concluir esta etapa ou detectar trabalho de outra etapa, anuncie32`Pendência detectada: <descrição> — ação: resolvendo nesta etapa` e resolva-a33quando pertencer ao próprio escopo. Quando houver troca de responsabilidade,34anuncie `Transição automática: $specsfy-03-specify → $<destino> — motivo:35<motivo> — resultado esperado: <resultado>` e carregue imediatamente a skill de36destino, sem pedir confirmação nem repetir o comando. Continue na mesma37conversa. Depois de uma correção necessária a esta etapa, anuncie `Retomada38automática: $<destino> → $specsfy-03-specify — pendência resolvida:39<resultado>` e retome-a imediatamente. Reavalie o estado após cada handoff para40evitar ciclos. Não peça confirmação para o handoff; ações sensíveis continuam41exigindo autorização específica.4243## Preparar44451. Resolva a raiz do projeto pelo diretório informado pelo usuário ou por46 `Path.cwd()` quando ele não informar outro. Não procure nem promova o destino47 para uma raiz Git.482. Ao criar uma spec, resolva o diretório desta skill e execute antes de49 escrever:5051```bash52node <diretório-da-skill>/scripts/iniciar_spec.mjs \53 --title "<nome da especificação>" [--slug <slug>] [--root <raiz>]54```55563. Use o caminho absoluto impresso pelo script. Ele aloca o próximo ID local,57 prefere `.specsfy/templates/custom/Spec.md`, recorre ao template gerenciado58 `.specsfy/templates/Spec.md` e cria somente59 `specs/draft/<NNNN>-<slug>/spec.md`; nunca renomeie o arquivo para incluir o ID.60 Ao desenvolver este repositório, o script usa `skills/templates/Spec.md` como61 fallback; no projeto consumidor, template ausente exige `specsfy install`.624. Ao atualizar, use o caminho da spec existente fornecido ou descoberto sob a63 raiz atual; não execute o inicializador novamente.645. Leia a captura de origem em `specs/inbox/`, o item de backlog, o brief da65 refinamento do backlog, o pedido atual, a spec nesse caminho, seu `research/` e arquivos66 do repositório que revelem restrições reais.676. Se não houver informação suficiente para identificar problema, ator e68 resultado, anuncie a pendência e carregue `$specsfy-02-backlog` para executar o ciclo.69 Retome esta skill ao final do ciclo e use o brief completo70 ou parcial produzido.717. Leia `references/mcr-10.md` ao receber relato, história, transcrição ou72 especificação a refinar.738. Leia `.specsfy/DATABASE.md` quando existir. Se a jornada depender de74 informações guardadas e o arquivo não explicar o que o produto precisa75 lembrar, quem usa essas informações ou quando elas deixam de ser76 necessárias, carregue `$specsfy-data-discovery` e retome esta skill depois77 do registro confirmado.7879## Aplicar o MCR-1080811. Preserve a formulação original e identifique finalidade, ator e resultado.822. Analise termos ambíguos, equivalências terminológicas e derivações.833. Use substância, quantidade, qualidade, relação, lugar, tempo, posição, posse,84 ação e afecção como lentes adaptativas, não como questionário.854. Distinga cada declaração da pessoa de inferência, hipótese, decisão, conflito86 ou questão aberta produzida durante a análise.875. Se existir lacuna aplicável, carregue `$specsfy-02-backlog` para executar o88 ciclo limitado a oito perguntas por área e retome esta skill ao final do89 ciclo. Se a pessoa90 escolher `avançar`, aplique a confirmação e o registro definidos no contrato91 central. Mantenha `Status: Draft` e `Definition Gate: Pending` quando92 restarem pontos aplicáveis; não promova a spec a `Defined` e não reabra o93 mesmo ciclo nesta retomada.946. Recombine decisões em afirmações com sujeito, condição, ação e efeito95 observável; derive regras, histórias, Gherkin, limites e falhas.967. Registre o resultado nas seções existentes de `spec.md`; não gere relatório97 MCR separado nem copie a referência para o pacote da fatia.9899## Escrever100101- Grave sempre em `<raiz>/specs/draft/<NNNN>-<slug>/spec.md`; o ID pertence ao102 diretório e o arquivo permanece exatamente `spec.md`.103- Use `<raiz>/specs/draft/<NNNN>-<slug>/research/` somente para cópias, snapshots, contratos, schemas, exemplos e notas de proveniência realmente consultados. Não coloque código de produção, testes ou documentos normativos nesse diretório.104- Ao pesquisar uma API ou documentação externa, armazene a evidência permitida em `research/` e indexe caminho, origem, versão/data, licença e impacto em `Artefatos de pesquisa armazenados`. Se licença ou termos impedirem a cópia, armazene metadados, URL, data de acesso, checksum/versão quando disponível e notas próprias, sem reproduzir conteúdo protegido.105- Fora de `spec.md` e `research/`, não crie outra entrada no pacote da feature.106- Ao promover `specs/backlog/<NNNN>-<slug>.md`, registre esse caminho na spec e107 atualize o item para `Status: Promoted` com o caminho da spec criada. O backlog108 preserva proveniência, mas deixa de governar o comportamento.109- Ao derivar diretamente de `specs/inbox/<data-hora>-<slug>.md`, registre o110 caminho na spec e preserve a captura sem alteração. A análise inicial é111 contexto, não requisito confirmado.112- Preserve o cabeçalho como uma tabela Markdown de duas colunas, `Campo` e113 `Valor`; não converta seus metadados em linhas `**Campo**: valor`.114- Na tabela, declare `ID` como `SPEC-NNNN` e `Slug` como115 `<NNNN>-<slug>` e mantenha o slug igual ao diretório pai.116- Preserve exatamente os três atos e as 18 seções do template resolvido:117 `.specsfy/templates/custom/Spec.md` quando existir ou118 `.specsfy/templates/Spec.md` caso contrário.119- Substitua o conteúdo editorial restante do modelo durante o refinamento; não120 deixe seus exemplos ou placeholders na spec promovida para `Defined`.121- Ao atualizar, edite o arquivo existente e preserve IDs e decisões ainda válidas.122- Numere novos itens sem reutilizar ou renumerar IDs removidos:123 - histórias: `US-001`;124 - requisitos funcionais: `FR-001`;125 - requisitos não funcionais: `NFR-001`;126 - cenários de aceite: `AC-001`;127 - decisões: `DEC-001`.128- Escreva cada requisito como comportamento verificável.129- Escreva cada cenário com Given/When/Then e associe-o a pelo menos um requisito.130- Defina no mínimo três `AC` distintos para a feature inteira e para cada131 `US`, `FR` e `NFR`. Conte cobertura somente quando o `AC` declarar o ID em132 `**Cobre**`; use caminho feliz, variação/regra crítica e falha ou limite133 material para ampliar contexto sem duplicar cenários equivalentes.134- Inclua fora de escopo, erros, limites, segurança e acessibilidade quando relevantes.135- Quando o cabeçalho declarar `Interface para pessoas: Sim`, preencha na seção136 10 as nove partes do template com stack e convenções locais, telas, fluxo de137 informação, menus e navegação principal, formulários e ações, composição,138 blocos React e componentes shadcn/ui/ReUI, estados e acessibilidade. Use139 `INTERFACE.md`, `.specsfy/STACK.md`, manifests, telas e código existente como fonte da stack140 e do sistema atual; registre o que será preservado e alterado. Não proponha141 biblioteca incompatível nem reestruture uma tela existente sem esse exame.142 Carregue143 `$specsfy-specialist-ux-design`, `$specsfy-specialist-ui-design` e o144 especialista da stack de interface. Não aceite uma descrição de CRUD que145 tenha somente API, banco ou serviço.146 Em Laravel com React, registre explicitamente shadcn/ui e ReUI, todos os147 blocos React previstos, suas responsabilidades, arquivos, componentes de148 origem e regra de reuso. A página apenas compõe esses blocos.149- Quando não houver interface, declare `Interface para pessoas: Não` e explique150 por que a entrega não será usada por uma pessoa em uma tela.151- Mantenha a seção técnica concreta o bastante para permitir tarefas com caminhos de arquivo, sem confundir escolha interna com resultado do usuário.152- Registre defaults reversíveis em `Suposições`; peça esclarecimento apenas quando opções plausíveis mudarem materialmente escopo, dados, segurança, UX ou testes.153- Não deixe placeholders, exemplos do template, `TBD`, `TODO` ou marcadores de clarificação em um arquivo marcado como `Defined`.154- Mantenha tarefas futuras na seção `14. Tarefas`; skills posteriores atualizam a mesma seção, nunca outro arquivo.155- Use os metadados `Definition Gate`, `Plan Gate` e `Delivery Gate` para expressar prontidão sem criar relatórios separados.156157## Respeitar specs já aprovadas158159Se a spec já obteve `Definition Gate: Passed` e a pessoa pedir para adicionar,160remover, corrigir ou mudar algo, anuncie a pendência e carregue automaticamente161`$specsfy-update-spec`. Essa skill classifica o impacto, atualiza a fonte162normativa e invalida somente os gates afetados. Retome esta skill apenas se a163mudança retornar a spec ao estado de definição inicial.164165## Preservar rastreabilidade166167Para cada `FR` e `NFR`, aponte no mínimo três cenários `AC` e mantenha o método168de verificação explícito dos NFRs. Para cada história, identifique os requisitos169que entregam seu valor e ao menos três `AC`. Use os mesmos IDs mais tarde nos170casos TDD e na seção 14.171172## Controlar research173174- Antes do planejamento, carregue somente as evidências indexadas e valide175 claims com:176177```bash178node .agents/skills/specsfy-03-specify/scripts/load_research.mjs \179 specs/<estado>/<NNNN>-<slug>/spec.md180```181182- Para pesquisa material, registre `R-ID`, criticalidade, claim, veredito,183 confiança, evidência local e orçamento na seção 2. Claim `critical` ainda não184 verificado bloqueia o handoff; claim refutado permanece registrado. IDs devem185 ser únicos, gasto não pode superar o limite e a âncora Markdown citada precisa186 existir no arquivo local.187## Autovalidar188189Enquanto o arquivo estiver em Draft, execute a validação estrutural intermediária:190191```bash192node .agents/skills/specsfy-04-validate/scripts/validate_spec.mjs specs/<estado>/<NNNN>-<slug>/spec.md --allow-draft193```194195Corrija falhas estruturais em no máximo três ciclos. A skill `specsfy-04-validate` faz a revisão semântica, registra o resultado na seção 13 e promove `Definition Gate: Passed` e `Status: Defined`. Até lá, mantenha `Status: Draft`, `Definition Gate: Pending` e relate decisões bloqueantes.196197## Relatar198199Informe:200201- caminho `specs/<estado>/<NNNN>-<slug>/spec.md`;202- caminhos de research armazenados ou a declaração de que não houve fonte externa;203- status;204- contagem de `US`, `FR`, `NFR` e `AC`;205- suposições relevantes;206- transição automática para `$specsfy-04-validate`, com motivo e resultado207 esperado.208209## Especialistas sob demanda210211Leia [references/specialists.md](references/specialists.md) quando requisitos,212NFRs, dados ou decisões técnicas exigirem conhecimento especializado. Registre213o requisito na spec e proponha carregar o especialista. Se ele não estiver214instalado, peça autorização específica antes de instalar.