Ir para o conteúdo

Writer

Comando: /reversa-writer Fase: 4 - Geração


📝 O tabelião

O tabelião transforma o que foi descoberto em contratos formais, precisos e rastreáveis. Cada cláusula tem grau de certeza declarado. O documento vale como contrato: um agente de IA pode reimplementar o sistema a partir dele.


O que faz

O Writer transforma o que foi descoberto nas três fases anteriores em contratos formais: precisos, rastreáveis e suficientemente detalhados para que um agente de IA, sem acesso ao código original, possa reimplementar a funcionalidade com fidelidade.

Specs não são documentação para humanos lerem numa tarde tranquila. São contratos operacionais.


O fluxo de trabalho

O Writer nunca gera tudo de uma vez. Projetos grandes têm muitos componentes, e gerar tudo em uma resposta consome contexto excessivo e impede revisão incremental. O fluxo é assim:

1. Montar e apresentar o plano

Antes de gerar qualquer arquivo, o Writer lê todos os artefatos das fases anteriores e a decisão de organização salva em [specs] do config.toml. Em seguida, monta a lista completa do que vai gerar:

📋 Plano de geração: 3 units, 11 arquivos no total

Units:
  [ ] 1. auth/requirements.md
  [ ] 2. auth/design.md
  [ ] 3. auth/tasks.md
  [ ] 4. orders/requirements.md
  [ ] 5. orders/design.md
  [ ] 6. orders/tasks.md
  [ ] 7. payments/requirements.md
  [ ] 8. payments/design.md
  [ ] 9. payments/tasks.md

Globais:
  [ ] 10. openapi/api-v1.yaml
  [ ] 11. traceability/code-spec-matrix.md

Digite CONTINUAR para iniciar.

Você aprova (ou ajusta) o plano antes de qualquer geração.

2. Gerar um arquivo por vez

Para cada item: gera o arquivo, salva, avisa o que foi concluído e o que vem a seguir, e para. Você confirma "CONTINUAR" antes do próximo. Isso permite revisar cada spec antes de avançar.

3. Globais por último

Depois que todos os arquivos das units estão gerados, vêm os globais na ordem: openapi/, user-stories/, e por fim a matriz de rastreabilidade que liga cada arquivo legado a uma unit com nível de cobertura.


Layout de saída: feature folders

Cada unit vira uma pasta dentro de <output_folder>/. O que é uma "unit" depende da granularity escolhida no passo de organização (logo após a pergunta de nível de documentação):

granularity Uma unit é...
module Um módulo do legado
endpoint Um endpoint ou contrato HTTP/RPC
use-case Um caso de uso comportamental
hybrid Módulo no topo, casos de uso aninhados
feature Uma feature listada pelo Scout
custom Pasta definida pelo usuário

Toda pasta de unit tem os 3 arquivos canônicos SDD: requirements.md, design.md, tasks.md. Arquivos opcionais (contracts.md, flows.md, edge-cases.md, decisions.md, legacy-mapping.md, questions.md) são adicionados conforme o nível de documentação e o contexto.


Arquivos canônicos por unit

Arquivo Conteúdo
<unit>/requirements.md O que a unit faz: regras de negócio, RNFs, critérios de aceitação, MoSCoW
<unit>/design.md Como a unit é construída: interface, fluxos, dependências, decisões de design
<unit>/tasks.md Tarefas de implementação rastreáveis ao código legado, com critério de pronto e confiança

Cada afirmação é marcada com 🟢, 🟡 ou 🔴. Sem exceções.


Globais transversais

Estes ficam na raiz de <output_folder>/, fora das pastas de unit:

Arquivo Conteúdo
openapi/[api].yaml Spec de API (se aplicável, apenas completo/detalhado)
user-stories/[fluxo].md User stories (apenas completo/detalhado)
traceability/code-spec-matrix.md Matriz arquivo legado → unit