create-sdd-workflow 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +110 -0
- package/README.md +45 -0
- package/bin/create-sdd-workflow.js +249 -0
- package/manual_workflow_sdd_grillme_tlc.md +472 -0
- package/package.json +38 -0
- package/skills/iniciar-projeto-sdd/SKILL.md +150 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/00-AGENTS-template.md +110 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/01-brief-template.md +17 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/02-grillme-brief-prompt.md +27 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/03-grillme-product-prompt.md +37 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/04-prd-template.md +37 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/05-prd-compression-prompt.md +33 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/06-prespec-prompt.md +52 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/07-derive-docs-prompt.md +32 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/08-tlc-execution-prompt.md +32 -0
- package/skills/iniciar-projeto-sdd/assets/workflow/09-quality-checklists.md +35 -0
- package/skills/iniciar-projeto-sdd/references/workflow-summary.md +69 -0
- package/skills/iniciar-projeto-sdd/scripts/init_sdd_project.sh +182 -0
- package/workflow/00-AGENTS-template.md +110 -0
- package/workflow/01-brief-template.md +17 -0
- package/workflow/02-grillme-brief-prompt.md +27 -0
- package/workflow/03-grillme-product-prompt.md +37 -0
- package/workflow/04-prd-template.md +37 -0
- package/workflow/05-prd-compression-prompt.md +33 -0
- package/workflow/06-prespec-prompt.md +52 -0
- package/workflow/07-derive-docs-prompt.md +32 -0
- package/workflow/08-tlc-execution-prompt.md +32 -0
- package/workflow/09-quality-checklists.md +35 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Este repositório usa um workflow SDD com Grill-me, PreSpec Técnica e TLC Spec-Driven.
|
|
6
|
+
|
|
7
|
+
O agente deve seguir os documentos e templates do diretório `/workflow` antes de gerar documentação ou implementar código.
|
|
8
|
+
|
|
9
|
+
## Estrutura de documentação
|
|
10
|
+
|
|
11
|
+
- `docs/product/Brief_Inicial.md`: brief curto criado na etapa inicial.
|
|
12
|
+
- `docs/product/PRD_Principal.md`: fonte de verdade de produto.
|
|
13
|
+
- `docs/technical/PreSpec_Tecnica.md`: ponte entre produto e engenharia.
|
|
14
|
+
- `docs/technical/Domain_Model.md`: entidades, regras, status e invariantes.
|
|
15
|
+
- `docs/technical/Architecture.md`: módulos, camadas e decisões técnicas macro.
|
|
16
|
+
- `docs/technical/API_Contracts.md`: contratos conceituais por caso de uso.
|
|
17
|
+
- `docs/technical/Test_Strategy.md`: estratégia de testes e cenários prioritários.
|
|
18
|
+
- `docs/decisions/`: ADRs.
|
|
19
|
+
- `.specs/project/`: contexto persistente do projeto.
|
|
20
|
+
- `.specs/features/`: specs executáveis por fatia vertical.
|
|
21
|
+
|
|
22
|
+
## Regras de entrevista
|
|
23
|
+
|
|
24
|
+
- Brief inicial: até 3 perguntas, uma por vez, com resposta recomendada.
|
|
25
|
+
- PRD Principal: até 30 blocos, com 3 a 5 perguntas por bloco.
|
|
26
|
+
- Compressão do PRD: até 5 perguntas.
|
|
27
|
+
- PreSpec Técnica: até 10 perguntas.
|
|
28
|
+
- Derivação dos docs técnicos: 0 perguntas por padrão.
|
|
29
|
+
- Specs TLC por fatia: até 5 perguntas, se necessário.
|
|
30
|
+
|
|
31
|
+
## Comandos do workflow
|
|
32
|
+
|
|
33
|
+
- `/iniciar-projeto-sdd`: criar estrutura e, se houver nome/ideia, gerar rascunho do Brief Inicial.
|
|
34
|
+
- `/continuar-sdd`: continuar a partir do estado registrado em `.specs/project/STATE.md`.
|
|
35
|
+
- Quando houver mais de um próximo caminho, mostrar opções numeradas e aguardar escolha do usuário.
|
|
36
|
+
|
|
37
|
+
Antes de continuar, ler `.specs/project/STATE.md` e `docs/product/Brief_Inicial.md` quando existir.
|
|
38
|
+
|
|
39
|
+
Se houver uma próxima etapa inequívoca no `STATE.md`, continuar automaticamente. Se houver mais de um caminho válido, mostrar opções numeradas e aguardar escolha.
|
|
40
|
+
|
|
41
|
+
Após concluir o Grill-me de produto ou atingir o limite de blocos, gerar automaticamente `docs/product/PRD_Principal.md`.
|
|
42
|
+
|
|
43
|
+
Após gerar o PRD, parar e mostrar opções numeradas antes de iniciar a compressão/revisão.
|
|
44
|
+
|
|
45
|
+
Após concluir a compressão/revisão do PRD, parar e mostrar opções numeradas antes de iniciar a PreSpec Técnica.
|
|
46
|
+
|
|
47
|
+
## Regras do Brief Inicial
|
|
48
|
+
|
|
49
|
+
O Brief Inicial deve seguir exatamente o template de `workflow/01-brief-template.md`.
|
|
50
|
+
|
|
51
|
+
- Não adicionar seções.
|
|
52
|
+
- Não criar `docs/product/Brief_Inicial.md` vazio durante o setup.
|
|
53
|
+
- O usuário não deve preencher o template manualmente; o Brief Inicial nasce de um Grill-me curto.
|
|
54
|
+
- Se o comando inicial trouxer nome e ideia, usar esses dados como contexto inicial da entrevista do brief.
|
|
55
|
+
- Se faltar nome ou ideia, criar a estrutura e iniciar o Grill-me do Brief Inicial.
|
|
56
|
+
- Criar `.specs/project/STATE.md` desde o setup e atualizar a etapa atual, próxima decisão e log curto após gerar o brief.
|
|
57
|
+
- Não criar `.specs/project/PROJECT.md` nem `.specs/project/ROADMAP.md` no setup; criar apenas na derivação técnica, depois da PreSpec.
|
|
58
|
+
- Não perguntar sobre stack, banco, framework, arquitetura, implementação, deploy ou código.
|
|
59
|
+
- Não fazer perguntas fora do escopo das 8 seções do template.
|
|
60
|
+
- Gerar o Brief Inicial com base nas respostas do Grill-me do brief, usando premissas e dúvidas.
|
|
61
|
+
- Manter o Brief Inicial conservador, sem preencher lacunas relevantes por inferência forte.
|
|
62
|
+
- Fazer no máximo 3 perguntas de brief.
|
|
63
|
+
- Apresentar opções numeradas após criar ou atualizar o Brief Inicial.
|
|
64
|
+
- Se algo puder ser assumido sem grande risco, registrar como premissa na seção mais adequada.
|
|
65
|
+
- Se algo não for essencial agora, registrar em `8. Dúvidas iniciais`.
|
|
66
|
+
- Após criar ou atualizar o Brief Inicial, parar e mostrar opções numeradas antes de iniciar o Grill-me de produto.
|
|
67
|
+
|
|
68
|
+
## Regras do PRD Principal
|
|
69
|
+
|
|
70
|
+
O PRD Principal deve ser enxuto, autoexplicativo e orientado a produto.
|
|
71
|
+
|
|
72
|
+
Não deve conter:
|
|
73
|
+
|
|
74
|
+
- código;
|
|
75
|
+
- schema de banco;
|
|
76
|
+
- endpoints detalhados;
|
|
77
|
+
- escolha de framework;
|
|
78
|
+
- detalhes de deploy;
|
|
79
|
+
- implementação prematura.
|
|
80
|
+
|
|
81
|
+
## Regras da PreSpec Técnica
|
|
82
|
+
|
|
83
|
+
A PreSpec Técnica deve traduzir produto em direção técnica conceitual.
|
|
84
|
+
|
|
85
|
+
Ela pode conter entidades conceituais, permissões, regras de domínio, validações, contratos conceituais, riscos técnicos, estratégia inicial de testes e backlog por fatias verticais.
|
|
86
|
+
|
|
87
|
+
Ela não deve escolher stack específica sem decisão explícita.
|
|
88
|
+
|
|
89
|
+
## Regras de derivação técnica
|
|
90
|
+
|
|
91
|
+
Ao derivar docs técnicos, o agente deve gerar os documentos sem nova entrevista, salvo inconsistência crítica.
|
|
92
|
+
|
|
93
|
+
## Regras de implementação
|
|
94
|
+
|
|
95
|
+
- Implementar uma fatia vertical por vez.
|
|
96
|
+
- Não alterar escopo sem atualizar documentação.
|
|
97
|
+
- Não criar dependências novas sem justificativa.
|
|
98
|
+
- Criar ou atualizar testes relevantes.
|
|
99
|
+
- Atualizar `.specs/project/STATE.md` ao final de cada etapa.
|
|
100
|
+
- Registrar decisões importantes como ADR.
|
|
101
|
+
|
|
102
|
+
## Definition of Done
|
|
103
|
+
|
|
104
|
+
Uma etapa só está concluída quando:
|
|
105
|
+
|
|
106
|
+
- o artefato esperado foi criado ou atualizado;
|
|
107
|
+
- o documento segue o template correspondente;
|
|
108
|
+
- decisões em aberto foram registradas;
|
|
109
|
+
- inconsistências foram apontadas;
|
|
110
|
+
- o próximo passo está claro.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Brief Inicial — [Nome do Projeto]
|
|
2
|
+
|
|
3
|
+
## 1. Ideia em uma frase
|
|
4
|
+
|
|
5
|
+
## 2. Problema percebido
|
|
6
|
+
|
|
7
|
+
## 3. Público imaginado
|
|
8
|
+
|
|
9
|
+
## 4. Solução imaginada
|
|
10
|
+
|
|
11
|
+
## 5. Contexto de uso
|
|
12
|
+
|
|
13
|
+
## 6. Resultado esperado
|
|
14
|
+
|
|
15
|
+
## 7. Restrições conhecidas
|
|
16
|
+
|
|
17
|
+
## 8. Dúvidas iniciais
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Grill-me do Brief
|
|
2
|
+
|
|
3
|
+
Use grill-me para preencher ou enriquecer o brief inicial.
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
Transformar minha ideia inicial em um Brief Inicial claro antes de iniciar o PRD, sem exigir preenchimento manual do template.
|
|
8
|
+
|
|
9
|
+
## Regras
|
|
10
|
+
|
|
11
|
+
- Faça no máximo 3 perguntas.
|
|
12
|
+
- Faça uma pergunta por vez.
|
|
13
|
+
- Para cada pergunta, forneça sua resposta recomendada.
|
|
14
|
+
- Se ainda não existir `docs/product/Brief_Inicial.md`, use as respostas para gerar o brief.
|
|
15
|
+
- Se o brief já existir, use as respostas para enriquecê-lo.
|
|
16
|
+
- Mantenha o Brief Inicial conservador: não preencha lacunas relevantes por inferência forte.
|
|
17
|
+
- Use premissas e dúvidas iniciais para lacunas que não bloqueiam o entendimento.
|
|
18
|
+
- Pergunte apenas o que muda significativamente o entendimento do produto.
|
|
19
|
+
- Não pergunte sobre stack, banco, framework, arquitetura, implementação, deploy ou código.
|
|
20
|
+
- Não faça perguntas fora do escopo das 8 seções do template de `workflow/01-brief-template.md`.
|
|
21
|
+
- Se algo puder ser assumido sem grande risco, registre como premissa.
|
|
22
|
+
- Se algo não for essencial agora, registre como dúvida inicial.
|
|
23
|
+
- Ao final, gere `docs/product/Brief_Inicial.md` seguindo exatamente o template do workflow.
|
|
24
|
+
- Pare após gerar ou atualizar o brief e apresente opções numeradas:
|
|
25
|
+
1. Enriquecer mais o Brief Inicial.
|
|
26
|
+
2. Continuar para o Grill-me de produto.
|
|
27
|
+
3. Pausar para revisão manual.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Grill-me de Produto
|
|
2
|
+
|
|
3
|
+
Use grill-me para gerar um PRD Principal enxuto e autoexplicativo.
|
|
4
|
+
|
|
5
|
+
## Contexto
|
|
6
|
+
|
|
7
|
+
Já existe um brief inicial. Use esse brief como fonte base.
|
|
8
|
+
|
|
9
|
+
## Objetivo
|
|
10
|
+
|
|
11
|
+
Coletar informações de produto suficientes para gerar um PRD Principal, sem entrar em implementação técnica.
|
|
12
|
+
|
|
13
|
+
## Blocos sugeridos
|
|
14
|
+
|
|
15
|
+
1. Problema e contexto.
|
|
16
|
+
2. Público-alvo e personas.
|
|
17
|
+
3. Proposta de valor.
|
|
18
|
+
4. Escopo do MVP.
|
|
19
|
+
5. Funcionalidades principais.
|
|
20
|
+
6. Regras de negócio.
|
|
21
|
+
7. Fluxos principais.
|
|
22
|
+
8. Métricas, riscos e decisões em aberto.
|
|
23
|
+
|
|
24
|
+
## Regras da entrevista
|
|
25
|
+
|
|
26
|
+
- Faça no máximo 30 blocos.
|
|
27
|
+
- Cada bloco deve ter entre 3 e 5 perguntas.
|
|
28
|
+
- O limite se aplica aos blocos, não ao número total de perguntas.
|
|
29
|
+
- Cada pergunta dentro do bloco deve vir acompanhada de uma resposta recomendada.
|
|
30
|
+
- Não faça perguntas repetidas.
|
|
31
|
+
- Não pergunte sobre stack, banco, framework, endpoints, schema, ORM, deploy ou arquitetura.
|
|
32
|
+
- Se uma resposta permitir uma suposição razoável, registre como premissa.
|
|
33
|
+
- Se algo não for essencial para o MVP, registre como fora de escopo ou decisão em aberto.
|
|
34
|
+
- Antes de ultrapassar 30 blocos, pare e liste lacunas restantes.
|
|
35
|
+
- Não gere o PRD antes de concluir a entrevista ou atingir o limite de blocos.
|
|
36
|
+
- Ao concluir a entrevista ou atingir o limite de blocos, gere automaticamente `docs/product/PRD_Principal.md` usando `workflow/04-prd-template.md`.
|
|
37
|
+
- Após gerar o PRD, pare e peça confirmação antes de iniciar `workflow/05-prd-compression-prompt.md`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# PRD Principal — [Nome do Produto]
|
|
2
|
+
|
|
3
|
+
## 1. Resumo
|
|
4
|
+
|
|
5
|
+
## 2. Problema
|
|
6
|
+
|
|
7
|
+
## 3. Público-alvo
|
|
8
|
+
|
|
9
|
+
## 4. Proposta de valor
|
|
10
|
+
|
|
11
|
+
## 5. Objetivos do MVP
|
|
12
|
+
|
|
13
|
+
## 6. Escopo do MVP
|
|
14
|
+
|
|
15
|
+
### 6.1 Incluído
|
|
16
|
+
|
|
17
|
+
### 6.2 Fora de escopo
|
|
18
|
+
|
|
19
|
+
## 7. Funcionalidades principais
|
|
20
|
+
|
|
21
|
+
## 8. Regras de negócio principais
|
|
22
|
+
|
|
23
|
+
## 9. Fluxos principais
|
|
24
|
+
|
|
25
|
+
## 10. Requisitos funcionais
|
|
26
|
+
|
|
27
|
+
## 11. Requisitos não funcionais
|
|
28
|
+
|
|
29
|
+
## 12. Critérios de aceite
|
|
30
|
+
|
|
31
|
+
## 13. Métricas de sucesso
|
|
32
|
+
|
|
33
|
+
## 14. Riscos e mitigação
|
|
34
|
+
|
|
35
|
+
## 15. Decisões tomadas
|
|
36
|
+
|
|
37
|
+
## 16. Decisões em aberto
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Compressão e Revisão do PRD
|
|
2
|
+
|
|
3
|
+
Revise e compacte o PRD Principal.
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
Transformar o documento em uma versão enxuta, autoexplicativa e pronta para servir como fonte de verdade de produto.
|
|
8
|
+
|
|
9
|
+
## Pré-condição
|
|
10
|
+
|
|
11
|
+
Só iniciar esta etapa após confirmação explícita do usuário, depois que `docs/product/PRD_Principal.md` já existir.
|
|
12
|
+
|
|
13
|
+
## Regras
|
|
14
|
+
|
|
15
|
+
- Antes de reescrever, faça até 5 perguntas apenas se forem necessárias para resolver lacunas importantes.
|
|
16
|
+
- Remova redundâncias.
|
|
17
|
+
- Una seções repetidas.
|
|
18
|
+
- Preserve decisões importantes.
|
|
19
|
+
- Preserve regras de negócio verificáveis.
|
|
20
|
+
- Preserve critérios de aceite.
|
|
21
|
+
- Preserve escopo e fora de escopo.
|
|
22
|
+
- Remova detalhes técnicos de implementação.
|
|
23
|
+
- Não inclua stack.
|
|
24
|
+
- Não inclua código.
|
|
25
|
+
- Não inclua endpoints.
|
|
26
|
+
- Não inclua schema de banco.
|
|
27
|
+
- Use linguagem objetiva.
|
|
28
|
+
- Mantenha a estrutura padrão do PRD.
|
|
29
|
+
- Ao final, liste possíveis lacunas restantes sem iniciar nova entrevista.
|
|
30
|
+
- Ao final, atualize `.specs/project/STATE.md`, pare o fluxo e apresente opções numeradas antes de iniciar `workflow/06-prespec-prompt.md`:
|
|
31
|
+
1. Aprovar PRD revisado e gerar PreSpec Técnica.
|
|
32
|
+
2. Fazer ajustes no PRD.
|
|
33
|
+
3. Pausar.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# PreSpec Técnica
|
|
2
|
+
|
|
3
|
+
A partir do PRD Principal aprovado, gere uma PreSpec Técnica.
|
|
4
|
+
|
|
5
|
+
## Objetivo
|
|
6
|
+
|
|
7
|
+
Criar uma ponte entre produto e engenharia, preparando o projeto para documentação técnica e specs por fatia vertical.
|
|
8
|
+
|
|
9
|
+
## Pré-condição
|
|
10
|
+
|
|
11
|
+
Só iniciar esta etapa após aprovação explícita do PRD revisado/comprimido.
|
|
12
|
+
|
|
13
|
+
## Antes de gerar
|
|
14
|
+
|
|
15
|
+
Faça até 10 perguntas técnicas conceituais se forem necessárias.
|
|
16
|
+
|
|
17
|
+
Pode perguntar sobre:
|
|
18
|
+
|
|
19
|
+
- entidades do domínio;
|
|
20
|
+
- permissões;
|
|
21
|
+
- dados essenciais;
|
|
22
|
+
- regras de validação;
|
|
23
|
+
- integrações obrigatórias;
|
|
24
|
+
- restrições operacionais;
|
|
25
|
+
- requisitos não funcionais críticos;
|
|
26
|
+
- riscos técnicos;
|
|
27
|
+
- estratégia inicial de testes.
|
|
28
|
+
|
|
29
|
+
Não deve perguntar sobre:
|
|
30
|
+
|
|
31
|
+
- framework específico;
|
|
32
|
+
- ORM específico;
|
|
33
|
+
- biblioteca específica;
|
|
34
|
+
- provedor de deploy;
|
|
35
|
+
- implementação detalhada;
|
|
36
|
+
- código.
|
|
37
|
+
|
|
38
|
+
## Estrutura da PreSpec
|
|
39
|
+
|
|
40
|
+
1. Finalidade
|
|
41
|
+
2. Fontes
|
|
42
|
+
3. Fronteira técnica do MVP
|
|
43
|
+
4. Princípios técnicos
|
|
44
|
+
5. Modelo conceitual inicial
|
|
45
|
+
6. Regras de domínio críticas
|
|
46
|
+
7. Permissões e escopo de dados
|
|
47
|
+
8. Contratos conceituais por caso de uso
|
|
48
|
+
9. Validações principais
|
|
49
|
+
10. Riscos técnicos
|
|
50
|
+
11. Estratégia inicial de testes
|
|
51
|
+
12. Backlog por fatias verticais
|
|
52
|
+
13. Decisões que devem virar ADR
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Derivação dos Documentos Técnicos
|
|
2
|
+
|
|
3
|
+
A partir do PRD Principal aprovado e da PreSpec Técnica, derive os documentos técnicos especializados.
|
|
4
|
+
|
|
5
|
+
## Regra principal
|
|
6
|
+
|
|
7
|
+
Não faça novas perguntas, salvo inconsistência crítica que impeça a geração.
|
|
8
|
+
|
|
9
|
+
## Gere
|
|
10
|
+
|
|
11
|
+
1. `docs/technical/Domain_Model.md`
|
|
12
|
+
2. `docs/technical/Architecture.md`
|
|
13
|
+
3. `docs/technical/API_Contracts.md`
|
|
14
|
+
4. `docs/technical/Test_Strategy.md`
|
|
15
|
+
5. ADRs iniciais em `docs/decisions/`
|
|
16
|
+
6. `.specs/project/PROJECT.md`
|
|
17
|
+
7. `.specs/project/ROADMAP.md`
|
|
18
|
+
8. `.specs/project/STATE.md`
|
|
19
|
+
9. `.specs/features/[feature]/spec.md`
|
|
20
|
+
10. `.specs/features/[feature]/design.md`
|
|
21
|
+
11. `.specs/features/[feature]/tasks.md`
|
|
22
|
+
|
|
23
|
+
## Regras
|
|
24
|
+
|
|
25
|
+
- Não duplicar texto desnecessário.
|
|
26
|
+
- Cada documento deve ter responsabilidade clara.
|
|
27
|
+
- `Domain_Model.md` deve conter entidades, regras, status, permissões e invariantes.
|
|
28
|
+
- `Architecture.md` deve conter módulos, camadas, fronteiras e decisões arquiteturais.
|
|
29
|
+
- `API_Contracts.md` deve conter contratos conceituais, entradas, saídas, erros e regras.
|
|
30
|
+
- `Test_Strategy.md` deve conter riscos, tipos de teste e cenários prioritários.
|
|
31
|
+
- ADRs devem registrar decisões importantes com contexto e consequências.
|
|
32
|
+
- Specs por fatia devem ter `spec.md`, `design.md` e `tasks.md`.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# TLC por Fatia Vertical
|
|
2
|
+
|
|
3
|
+
Use tlc-spec-driven para trabalhar na próxima fatia vertical.
|
|
4
|
+
|
|
5
|
+
## Leia antes
|
|
6
|
+
|
|
7
|
+
- `AGENTS.md`
|
|
8
|
+
- `docs/product/PRD_Principal.md`
|
|
9
|
+
- `docs/technical/PreSpec_Tecnica.md`
|
|
10
|
+
- `docs/technical/Domain_Model.md`
|
|
11
|
+
- `docs/technical/Architecture.md`
|
|
12
|
+
- `docs/technical/API_Contracts.md`
|
|
13
|
+
- `docs/technical/Test_Strategy.md`
|
|
14
|
+
- `.specs/project/PROJECT.md`
|
|
15
|
+
- `.specs/project/ROADMAP.md`
|
|
16
|
+
- `.specs/project/STATE.md`
|
|
17
|
+
- `.specs/features/[feature]/spec.md`
|
|
18
|
+
- `.specs/features/[feature]/design.md`
|
|
19
|
+
- `.specs/features/[feature]/tasks.md`
|
|
20
|
+
|
|
21
|
+
## Objetivo
|
|
22
|
+
|
|
23
|
+
Validar e executar a fatia vertical selecionada.
|
|
24
|
+
|
|
25
|
+
## Regras
|
|
26
|
+
|
|
27
|
+
- Faça no máximo 5 perguntas se houver lacunas relevantes na fatia.
|
|
28
|
+
- Não altere escopo global sem registrar decisão.
|
|
29
|
+
- Não implemente fora da fatia selecionada.
|
|
30
|
+
- Atualize `STATE.md` ao final.
|
|
31
|
+
- Marque tasks concluídas.
|
|
32
|
+
- Registre decisões novas como ADR quando necessário.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Checklists de Qualidade
|
|
2
|
+
|
|
3
|
+
## PRD
|
|
4
|
+
|
|
5
|
+
- [ ] O problema está claro?
|
|
6
|
+
- [ ] O público-alvo está claro?
|
|
7
|
+
- [ ] A proposta de valor está clara?
|
|
8
|
+
- [ ] O MVP está bem delimitado?
|
|
9
|
+
- [ ] Existe seção de fora de escopo?
|
|
10
|
+
- [ ] As funcionalidades estão descritas sem implementação técnica?
|
|
11
|
+
- [ ] As regras de negócio são verificáveis?
|
|
12
|
+
- [ ] Existem fluxos principais?
|
|
13
|
+
- [ ] Existem requisitos funcionais?
|
|
14
|
+
- [ ] Existem requisitos não funcionais?
|
|
15
|
+
- [ ] Existem critérios de aceite?
|
|
16
|
+
- [ ] Existem métricas de sucesso?
|
|
17
|
+
- [ ] Existem riscos e mitigações?
|
|
18
|
+
- [ ] Existem decisões tomadas?
|
|
19
|
+
- [ ] Existem decisões em aberto?
|
|
20
|
+
- [ ] O documento evita código, stack, endpoints e schema?
|
|
21
|
+
- [ ] O documento pode ser lido em aproximadamente 15 minutos?
|
|
22
|
+
|
|
23
|
+
## PreSpec
|
|
24
|
+
|
|
25
|
+
- [ ] A fronteira técnica do MVP está clara?
|
|
26
|
+
- [ ] O documento continua agnóstico de tecnologia quando apropriado?
|
|
27
|
+
- [ ] As entidades principais estão identificadas?
|
|
28
|
+
- [ ] As regras críticas de domínio estão claras?
|
|
29
|
+
- [ ] As permissões estão descritas?
|
|
30
|
+
- [ ] Os contratos conceituais estão descritos?
|
|
31
|
+
- [ ] As validações principais estão listadas?
|
|
32
|
+
- [ ] Os riscos técnicos foram registrados?
|
|
33
|
+
- [ ] Existe estratégia inicial de testes?
|
|
34
|
+
- [ ] Existe backlog por fatias verticais?
|
|
35
|
+
- [ ] Decisões importantes foram marcadas para ADR?
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Workflow SDD — Resumo Operacional
|
|
2
|
+
|
|
3
|
+
## Etapas
|
|
4
|
+
|
|
5
|
+
0. Setup do projeto: criar estrutura, `AGENTS.md`, templates e `.specs/project/STATE.md`, sem criar `Brief_Inicial.md` vazio.
|
|
6
|
+
1. Grill-me do Brief Inicial: até 3 perguntas, uma por vez, com resposta recomendada.
|
|
7
|
+
2. Brief Inicial: gerar o documento no template curto e parar com opções numeradas.
|
|
8
|
+
3. Grill-me de produto: até 30 blocos, com 3 a 5 perguntas por bloco.
|
|
9
|
+
4. PRD Principal: gerar sem novas perguntas.
|
|
10
|
+
5. Compressão do PRD: até 5 perguntas, se necessário.
|
|
11
|
+
6. PreSpec Técnica: até 10 perguntas conceituais.
|
|
12
|
+
7. Derivação técnica: 0 perguntas por padrão.
|
|
13
|
+
8. TLC por fatia vertical: até 5 perguntas por fatia.
|
|
14
|
+
|
|
15
|
+
## Separação de camadas
|
|
16
|
+
|
|
17
|
+
- Brief e PRD são documentos de produto.
|
|
18
|
+
- PreSpec é ponte técnica conceitual.
|
|
19
|
+
- Docs técnicos derivados detalham domínio, arquitetura, contratos e testes.
|
|
20
|
+
- TLC executa uma fatia vertical por vez.
|
|
21
|
+
|
|
22
|
+
## Regra de ouro
|
|
23
|
+
|
|
24
|
+
Não iniciar implementação antes de existir pelo menos PRD, PreSpec, docs técnicos mínimos e spec da fatia vertical.
|
|
25
|
+
|
|
26
|
+
## Checkpoint obrigatório
|
|
27
|
+
|
|
28
|
+
O comando inicial do workflow cria a estrutura e inicia o Grill-me do Brief Inicial. Depois de gerar o Brief Inicial, o agente deve mostrar opções numeradas antes de iniciar o Grill-me de produto.
|
|
29
|
+
|
|
30
|
+
## Estado persistente
|
|
31
|
+
|
|
32
|
+
Crie `.specs/project/STATE.md` desde o setup. Atualize o arquivo quando o Brief Inicial for criado, quando o usuário escolher enriquecer o brief, e quando avançar para Grill-me de produto.
|
|
33
|
+
|
|
34
|
+
Mantenha um log curto em ordem cronológica com data e etapa concluída.
|
|
35
|
+
|
|
36
|
+
Não crie `.specs/project/PROJECT.md` nem `.specs/project/ROADMAP.md` no setup. Eles só devem ser gerados durante a derivação técnica, depois da PreSpec.
|
|
37
|
+
|
|
38
|
+
## Entrada do comando
|
|
39
|
+
|
|
40
|
+
- Com `Nome` e `Ideia`: criar estrutura e registrar os dados no `STATE.md` para o Grill-me do Brief.
|
|
41
|
+
- Sem `Nome` ou sem `Ideia`: criar estrutura e iniciar o Grill-me do Brief para coletar o essencial.
|
|
42
|
+
|
|
43
|
+
## Continuação
|
|
44
|
+
|
|
45
|
+
Aceite `/continuar-sdd` como retomada do fluxo.
|
|
46
|
+
|
|
47
|
+
Antes de continuar, leia `STATE.md` e o Brief Inicial. Se o brief não existir, continue o Grill-me do Brief.
|
|
48
|
+
|
|
49
|
+
Se houver uma próxima etapa inequívoca no `STATE.md`, continue automaticamente. Se houver mais de um caminho válido, mostre opções numeradas e aguarde escolha.
|
|
50
|
+
|
|
51
|
+
No Grill-me de produto, use até 30 blocos, com 3 a 5 perguntas por bloco. O limite se aplica aos blocos, não ao número total de perguntas.
|
|
52
|
+
|
|
53
|
+
Quando o Grill-me de produto terminar ou atingir o limite de blocos, gere automaticamente `docs/product/PRD_Principal.md` usando o template padrão.
|
|
54
|
+
|
|
55
|
+
Depois de gerar o PRD, pare e mostre opções numeradas antes de iniciar a compressão/revisão.
|
|
56
|
+
|
|
57
|
+
Depois da compressão/revisão do PRD, pare novamente e mostre opções numeradas antes de iniciar a PreSpec Técnica.
|
|
58
|
+
|
|
59
|
+
## Estilo do brief
|
|
60
|
+
|
|
61
|
+
O Brief Inicial deve ser gerado por Grill-me curto, não preenchido manualmente pelo usuário. Use premissas apenas quando forem seguras e marque lacunas relevantes como dúvidas iniciais.
|
|
62
|
+
|
|
63
|
+
Após gerar o Brief Inicial, mostre opções numeradas para enriquecer o brief, continuar para produto ou pausar.
|
|
64
|
+
|
|
65
|
+
## Distribuição
|
|
66
|
+
|
|
67
|
+
A skill deve continuar autocontida para empacotamento futuro via npm/npx. O pacote deve levar `SKILL.md`, `scripts/init_sdd_project.sh`, `assets/workflow/` e este resumo.
|
|
68
|
+
|
|
69
|
+
Instalação global em `~/.agents/skills` não é etapa obrigatória do workflow; trate como conveniência local opcional.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
target_dir="."
|
|
5
|
+
force=""
|
|
6
|
+
project_name=""
|
|
7
|
+
project_idea=""
|
|
8
|
+
today="$(date +%F)"
|
|
9
|
+
|
|
10
|
+
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
11
|
+
skill_dir="$(cd "$script_dir/.." && pwd)"
|
|
12
|
+
repo_root="$(cd "$script_dir/../../.." && pwd)"
|
|
13
|
+
|
|
14
|
+
template_source="${SDD_WORKFLOW_TEMPLATE_DIR:-}"
|
|
15
|
+
if [[ -z "$template_source" ]]; then
|
|
16
|
+
if [[ -d "$skill_dir/assets/workflow" ]]; then
|
|
17
|
+
template_source="$skill_dir/assets/workflow"
|
|
18
|
+
elif [[ -d "$repo_root/workflow" ]]; then
|
|
19
|
+
template_source="$repo_root/workflow"
|
|
20
|
+
else
|
|
21
|
+
printf 'erro: não encontrei templates do workflow.\n' >&2
|
|
22
|
+
printf 'defina SDD_WORKFLOW_TEMPLATE_DIR ou instale assets/workflow junto da skill.\n' >&2
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
while [[ $# -gt 0 ]]; do
|
|
28
|
+
case "$1" in
|
|
29
|
+
--force)
|
|
30
|
+
force="--force"
|
|
31
|
+
shift
|
|
32
|
+
;;
|
|
33
|
+
--name)
|
|
34
|
+
project_name="${2:-}"
|
|
35
|
+
shift 2
|
|
36
|
+
;;
|
|
37
|
+
--idea)
|
|
38
|
+
project_idea="${2:-}"
|
|
39
|
+
shift 2
|
|
40
|
+
;;
|
|
41
|
+
--help|-h)
|
|
42
|
+
cat <<'EOF'
|
|
43
|
+
Uso:
|
|
44
|
+
init_sdd_project.sh [diretório] [--force] [--name "Nome"] [--idea "Ideia inicial"]
|
|
45
|
+
|
|
46
|
+
Cria a estrutura, templates e STATE.md.
|
|
47
|
+
Com --name e --idea, registra esses dados no STATE.md para iniciar o Grill-me do Brief.
|
|
48
|
+
|
|
49
|
+
Por padrão, copia templates de assets/workflow da skill ou de workflow/ no repositório.
|
|
50
|
+
Use SDD_WORKFLOW_TEMPLATE_DIR=/caminho/workflow para sobrescrever a origem.
|
|
51
|
+
EOF
|
|
52
|
+
exit 0
|
|
53
|
+
;;
|
|
54
|
+
*)
|
|
55
|
+
if [[ "$target_dir" == "." ]]; then
|
|
56
|
+
target_dir="$1"
|
|
57
|
+
else
|
|
58
|
+
printf 'argumento desconhecido: %s\n' "$1" >&2
|
|
59
|
+
exit 2
|
|
60
|
+
fi
|
|
61
|
+
shift
|
|
62
|
+
;;
|
|
63
|
+
esac
|
|
64
|
+
done
|
|
65
|
+
|
|
66
|
+
mkdir -p \
|
|
67
|
+
"$target_dir/workflow" \
|
|
68
|
+
"$target_dir/docs/product" \
|
|
69
|
+
"$target_dir/docs/technical" \
|
|
70
|
+
"$target_dir/docs/decisions" \
|
|
71
|
+
"$target_dir/.specs/project" \
|
|
72
|
+
"$target_dir/.specs/features"
|
|
73
|
+
|
|
74
|
+
write_file() {
|
|
75
|
+
local path="$1"
|
|
76
|
+
if [[ -e "$path" && "$force" != "--force" ]]; then
|
|
77
|
+
printf 'preservado: %s\n' "$path"
|
|
78
|
+
return
|
|
79
|
+
fi
|
|
80
|
+
mkdir -p "$(dirname "$path")"
|
|
81
|
+
cat > "$path"
|
|
82
|
+
printf 'criado: %s\n' "$path"
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
copy_template() {
|
|
86
|
+
local source="$1"
|
|
87
|
+
local destination="$2"
|
|
88
|
+
|
|
89
|
+
if [[ -e "$destination" && "$force" != "--force" ]]; then
|
|
90
|
+
printf 'preservado: %s\n' "$destination"
|
|
91
|
+
return
|
|
92
|
+
fi
|
|
93
|
+
|
|
94
|
+
mkdir -p "$(dirname "$destination")"
|
|
95
|
+
cp "$source" "$destination"
|
|
96
|
+
printf 'criado: %s\n' "$destination"
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if [[ ! -f "$template_source/00-AGENTS-template.md" ]]; then
|
|
100
|
+
printf 'erro: template ausente: %s/00-AGENTS-template.md\n' "$template_source" >&2
|
|
101
|
+
exit 1
|
|
102
|
+
fi
|
|
103
|
+
|
|
104
|
+
for template in "$template_source"/*.md; do
|
|
105
|
+
copy_template "$template" "$target_dir/workflow/$(basename "$template")"
|
|
106
|
+
done
|
|
107
|
+
|
|
108
|
+
copy_template "$template_source/00-AGENTS-template.md" "$target_dir/AGENTS.md"
|
|
109
|
+
|
|
110
|
+
touch \
|
|
111
|
+
"$target_dir/docs/product/.gitkeep" \
|
|
112
|
+
"$target_dir/docs/technical/.gitkeep" \
|
|
113
|
+
"$target_dir/docs/decisions/.gitkeep" \
|
|
114
|
+
"$target_dir/.specs/features/.gitkeep"
|
|
115
|
+
|
|
116
|
+
if [[ -n "$project_name" && -n "$project_idea" ]]; then
|
|
117
|
+
write_file "$target_dir/.specs/project/STATE.md" <<EOF
|
|
118
|
+
# Estado do Projeto
|
|
119
|
+
|
|
120
|
+
## Etapa atual
|
|
121
|
+
|
|
122
|
+
Setup do workflow criado. Dados iniciais recebidos para o Grill-me do Brief.
|
|
123
|
+
|
|
124
|
+
## Último artefato
|
|
125
|
+
|
|
126
|
+
Nenhum artefato de produto criado ainda.
|
|
127
|
+
|
|
128
|
+
## Próxima decisão
|
|
129
|
+
|
|
130
|
+
Continuar o Grill-me do Brief Inicial para gerar \`docs/product/Brief_Inicial.md\`.
|
|
131
|
+
|
|
132
|
+
## Dados iniciais
|
|
133
|
+
|
|
134
|
+
- Nome: $project_name
|
|
135
|
+
- Ideia: $project_idea
|
|
136
|
+
|
|
137
|
+
## Log curto
|
|
138
|
+
|
|
139
|
+
- $today — Setup do workflow criado.
|
|
140
|
+
- $today — Dados iniciais registrados para o Grill-me do Brief.
|
|
141
|
+
|
|
142
|
+
## Observações
|
|
143
|
+
|
|
144
|
+
- O Brief Inicial não deve ser criado vazio.
|
|
145
|
+
- O usuário não deve preencher o template manualmente.
|
|
146
|
+
- O Brief Inicial deve ser gerado por um Grill-me curto, com até 3 perguntas.
|
|
147
|
+
- Após gerar o Brief Inicial, o fluxo deve mostrar opções numeradas.
|
|
148
|
+
EOF
|
|
149
|
+
printf 'observação: docs/product/Brief_Inicial.md será gerado pelo Grill-me do Brief\n'
|
|
150
|
+
printf 'próximo passo: conduza até 3 perguntas para gerar o Brief Inicial\n'
|
|
151
|
+
else
|
|
152
|
+
write_file "$target_dir/.specs/project/STATE.md" <<EOF
|
|
153
|
+
# Estado do Projeto
|
|
154
|
+
|
|
155
|
+
## Etapa atual
|
|
156
|
+
|
|
157
|
+
Setup do workflow criado.
|
|
158
|
+
|
|
159
|
+
## Último artefato
|
|
160
|
+
|
|
161
|
+
Nenhum artefato de produto criado ainda.
|
|
162
|
+
|
|
163
|
+
## Próxima decisão
|
|
164
|
+
|
|
165
|
+
Continuar o Grill-me do Brief Inicial para coletar nome, ideia e lacunas essenciais antes de gerar \`docs/product/Brief_Inicial.md\`.
|
|
166
|
+
|
|
167
|
+
## Log curto
|
|
168
|
+
|
|
169
|
+
- $today — Setup do workflow criado.
|
|
170
|
+
|
|
171
|
+
## Observações
|
|
172
|
+
|
|
173
|
+
- O Brief Inicial não deve ser criado vazio.
|
|
174
|
+
- O usuário não deve preencher o template manualmente.
|
|
175
|
+
- O Brief Inicial deve ser gerado por um Grill-me curto, com até 3 perguntas.
|
|
176
|
+
- Após gerar o Brief Inicial, o fluxo deve mostrar opções numeradas.
|
|
177
|
+
EOF
|
|
178
|
+
printf 'observação: docs/product/Brief_Inicial.md não é criado vazio no setup\n'
|
|
179
|
+
printf 'próximo passo: conduza até 3 perguntas para gerar o Brief Inicial\n'
|
|
180
|
+
fi
|
|
181
|
+
|
|
182
|
+
printf 'setup SDD concluído em: %s\n' "$target_dir"
|