adi_dev_workflow 1.0.0 → 1.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/bin/index.js +0 -0
- package/frameworks/commands/generate-project-profile.md +68 -0
- package/frameworks/commands/generate-prompt.md +4 -2
- package/frameworks/commands/ministack/README.md +61 -46
- package/frameworks/commands/ministack/code-review.md +36 -49
- package/frameworks/commands/ministack/generate-intent.md +25 -2
- package/frameworks/commands/ministack/generate-scope.md +30 -6
- package/frameworks/commands/ministack/generate-tasks.md +191 -6
- package/frameworks/commands/ministack/generate-tech-direction.md +43 -0
- package/frameworks/commands/ministack/run-ministack-tasks.md +352 -33
- package/frameworks/commands/ministack/run-ministack-withlinear.md +23 -22
- package/frameworks/commands/ministack/status.md +153 -0
- package/frameworks/commands/sdd/code-review.md +10 -10
- package/frameworks/commands/sdd/generate-prd.md +32 -2
- package/frameworks/commands/sdd/generate-task-plan.md +199 -5
- package/frameworks/commands/sdd/generate-tech-direction.md +43 -0
- package/frameworks/commands/sdd/generate-tech-spec.md +218 -0
- package/frameworks/commands/sdd/generate-tests.md +2 -2
- package/frameworks/commands/sdd/run_tasks.md +391 -43
- package/frameworks/commands/sdd/run_tasks_withlinear.md +276 -37
- package/frameworks/commands/sdd/status.md +160 -0
- package/frameworks/commands/sdd/validate-sdd.md +18 -2
- package/frameworks/commands/sync-tasks-to-linear.md +588 -588
- package/frameworks/commands/taskcard/generate-taskcard.md +42 -25
- package/frameworks/commands/taskcard/run-taskcard.md +203 -34
- package/frameworks/skills/ministack-intent-expert/SKILL.md +3 -2
- package/frameworks/skills/ministack-intent-expert/templates/intent-template.md +1 -1
- package/frameworks/skills/ministack-scope-expert/SKILL.md +6 -10
- package/frameworks/skills/ministack-scope-expert/templates/scope-template.md +1 -1
- package/frameworks/skills/ministack-tasks-expert/SKILL.md +192 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_plan_template.md +78 -0
- package/frameworks/skills/ministack-tasks-expert/templates/task_template.md +103 -0
- package/frameworks/skills/ministack-tech-direction-expert/SKILL.md +218 -0
- package/frameworks/skills/ministack-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/ministack-tech-direction-expert/templates/tech_direction-template.md +17 -0
- package/frameworks/skills/sdd-prd-expert/SKILL.md +143 -95
- package/frameworks/skills/sdd-prd-expert/evals/evals.json +59 -0
- package/frameworks/skills/sdd-prd-expert/templates/prd_template.md +46 -46
- package/frameworks/skills/sdd-prd-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-task-plan-expert/SKILL.md +179 -201
- package/frameworks/skills/sdd-task-plan-expert/evals/evals.json +109 -0
- package/frameworks/skills/sdd-task-plan-expert/templates/task_plan_template.md +33 -33
- package/frameworks/skills/sdd-task-plan-expert/templates/task_template.md +58 -32
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.json +99 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/benchmark.md +64 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/response.md +134 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/outputs/transcript.md +68 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/response.md +525 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/outputs/transcript.md +30 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-1-happy-path/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/response.md +1126 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/outputs/transcript.md +131 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/response.md +452 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/outputs/transcript.md +78 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-2-spec-simples/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/response.md +101 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/outputs/transcript.md +133 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/with_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/response.md +248 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/outputs/transcript.md +49 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/eval-3-sem-user-stories/without_skill/timing.json +5 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-1/review.html +1325 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.json +94 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/benchmark.md +67 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/response.md +117 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/outputs/transcript.md +91 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/response.md +694 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/outputs/transcript.md +45 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-1-happy-path/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/response.md +1087 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/outputs/transcript.md +124 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/response.md +458 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/outputs/transcript.md +84 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-2-spec-simples/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/eval_metadata.json +12 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/response.md +70 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/outputs/transcript.md +148 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/with_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/grading.json +32 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/response.md +249 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/outputs/transcript.md +80 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/eval-3-sem-user-stories/without_skill/timing.json +1 -0
- package/frameworks/skills/sdd-task-plan-expert-workspace/iteration-2/review.html +1325 -0
- package/frameworks/skills/sdd-tech-direction-expert/SKILL.md +223 -0
- package/frameworks/skills/sdd-tech-direction-expert/evals/evals.json +1 -0
- package/frameworks/skills/sdd-tech-direction-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/sdd-tech-spec-expert/SKILL.md +304 -0
- package/frameworks/skills/sdd-tech-spec-expert/evals/evals.json +199 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/spec_tech_template.md +290 -0
- package/frameworks/skills/sdd-tech-spec-expert/templates/tech_direction-template.md +23 -0
- package/frameworks/skills/taskcard-expert/SKILL.md +26 -78
- package/frameworks/skills/taskcard-expert/templates/template.md +0 -2
- package/package.json +1 -1
- package/frameworks/commands/ministack/generate-tests.md +0 -37
- package/frameworks/commands/sdd/generate-spec-tech.md +0 -37
- package/frameworks/commands/taskcard/generate-tests.md +0 -37
- package/frameworks/skills/ministack-expert/SKILL.md +0 -415
- package/frameworks/skills/ministack-expert/templates/tasks-template.md +0 -141
- package/frameworks/skills/ministack-qa-expert/SKILL.md +0 -273
- package/frameworks/skills/ministack-qa-expert/templates/task_tests_template.md +0 -24
- package/frameworks/skills/ministack-qa-expert/templates/test_strategy_template.md +0 -75
- package/frameworks/skills/sdd-qa-expert/SKILL.md +0 -284
- package/frameworks/skills/sdd-qa-expert/templates/task_tests_template.md +0 -24
- package/frameworks/skills/sdd-qa-expert/templates/test_strategy_template.md +0 -75
- package/frameworks/skills/sdd-spec-tech-expert/SKILL.md +0 -387
- package/frameworks/skills/sdd-spec-tech-expert/templates/spec_tech_template.md +0 -246
- package/frameworks/skills/sdd-spec-tech-expert/templates/tech_direction-template.md +0 -23
- package/frameworks/skills/taskcard-qa-expert/SKILL.md +0 -265
- package/frameworks/skills/taskcard-qa-expert/templates/task_tests_template.md +0 -78
- package/frameworks/templates/prompt_template.md +0 -164
|
@@ -4,7 +4,19 @@ description: Especialista em geração de PRD (Product Requirement Document) do
|
|
|
4
4
|
argument-hint: [descrição da feature ou ideia inicial]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
PERSONA: Você é um Product Manager experiente com forte viés de produto e clareza estratégica.
|
|
8
|
+
|
|
9
|
+
Responsabilidades:
|
|
10
|
+
- Definir claramente o problema do usuário
|
|
11
|
+
- Explicar o contexto de negócio
|
|
12
|
+
- Descrever o valor da funcionalidade
|
|
13
|
+
- Definir escopo e não-escopo
|
|
14
|
+
- Estruturar requisitos funcionais claros
|
|
15
|
+
- Definir critérios de sucesso
|
|
16
|
+
- Garantir que o documento seja claro para engenharia, design e stakeholders
|
|
17
|
+
|
|
18
|
+
Sempre priorize clareza, objetividade e foco no valor de produto.
|
|
19
|
+
|
|
8
20
|
Domina o framework SDD: template, regras, guardrails, convenções e fluxos.
|
|
9
21
|
|
|
10
22
|
Foco: **O QUÊ** e **POR QUÊ**. Questões de COMO → registrar como Premissa/Restrição + `[DELEGAR_SPEC_TECH]`.
|
|
@@ -15,22 +27,22 @@ Estilo: Objetivo. Estruturado. Sem redundância.
|
|
|
15
27
|
|
|
16
28
|
# Framework SDD — Etapa PRD
|
|
17
29
|
|
|
18
|
-
##
|
|
30
|
+
## Visão Geral
|
|
19
31
|
|
|
20
|
-
O **PRD (Product Requirement Document)**
|
|
32
|
+
O **PRD (Product Requirement Document)** é a primeira etapa do framework SDD. Ele define **O QUE** será feito e **POR QUÊ**, sem entrar em detalhes técnicos. O PRD serve como contrato entre produto e engenharia, garantindo que todos entendam o problema, o escopo e os critérios de sucesso antes de qualquer decisão técnica.
|
|
21
33
|
|
|
22
34
|
### Fluxo do Framework SDD
|
|
23
35
|
|
|
24
36
|
```
|
|
25
|
-
Ideia / Rascunho do
|
|
37
|
+
Ideia / Rascunho do usuário
|
|
26
38
|
|
|
|
27
|
-
PRD (O QUE / POR
|
|
39
|
+
PRD (O QUE / POR QUÊ) <-- você está aqui
|
|
28
40
|
| (PRD aprovado)
|
|
29
41
|
SPEC_TECH (COMO)
|
|
30
42
|
| (SPEC_TECH aprovado)
|
|
31
|
-
TASK PLAN (
|
|
43
|
+
TASK PLAN (EXECUÇÃO)
|
|
32
44
|
| (Tasks aprovadas)
|
|
33
|
-
|
|
45
|
+
Implementação
|
|
34
46
|
|
|
|
35
47
|
Feature Entregue
|
|
36
48
|
```
|
|
@@ -39,72 +51,74 @@ Ideia / Rascunho do usuario
|
|
|
39
51
|
|
|
40
52
|
## Conceitos Fundamentais
|
|
41
53
|
|
|
42
|
-
| Conceito |
|
|
54
|
+
| Conceito | Descrição |
|
|
43
55
|
|---|---|
|
|
44
|
-
| **PRD** | O QUE e POR
|
|
45
|
-
| **SPEC_TECH** | COMO
|
|
46
|
-
| **TASK PLAN** |
|
|
47
|
-
| **User Stories** |
|
|
48
|
-
| **
|
|
56
|
+
| **PRD** | O QUE e POR QUÊ — define problema, objetivo, personas, escopo, regras de negócio e critérios de aceite. Foco no O QUE, NUNCA no COMO |
|
|
57
|
+
| **SPEC_TECH** | COMO será feito — define arquitetura, endpoints, banco, services. Criado APÓS o PRD aprovado |
|
|
58
|
+
| **TASK PLAN** | Decomposição em tasks executáveis derivadas do SPEC_TECH |
|
|
59
|
+
| **User Stories** | Histórias de usuário numeradas (US-XX) que são rastreadas nas etapas seguintes |
|
|
60
|
+
| **Critérios de Aceite** | Condições comportamentais (DADO/QUANDO/ENTÃO) que validam a feature |
|
|
49
61
|
|
|
50
62
|
---
|
|
51
63
|
|
|
52
64
|
## Suas Responsabilidades
|
|
53
65
|
|
|
54
|
-
1. Ler o PRD inicial/ideia enviada pelo
|
|
66
|
+
1. Ler o PRD inicial/ideia enviada pelo usuário (mesmo que seja um rascunho mínimo)
|
|
55
67
|
2. Identificar lacunas, ambiguidades ou pontos mal definidos
|
|
56
|
-
3. Construir o PRD **fazendo UMA PERGUNTA POR VEZ**, sempre aguardando a resposta do
|
|
57
|
-
4.
|
|
68
|
+
3. Construir o PRD **fazendo UMA PERGUNTA POR VEZ**, sempre aguardando a resposta do usuário
|
|
69
|
+
4. Não avançar para a próxima pergunta antes da aprovação da seção atual
|
|
58
70
|
5. Incluir APENAS:
|
|
59
71
|
- Comportamento esperado (O QUE deve acontecer)
|
|
60
|
-
-
|
|
61
|
-
- Personas (PARA QUEM
|
|
62
|
-
- Regras de
|
|
63
|
-
- Escopo (o que
|
|
64
|
-
-
|
|
65
|
-
- Fluxo de uso do ponto de vista do
|
|
66
|
-
-
|
|
67
|
-
- Riscos e
|
|
68
|
-
6. **NUNCA** incluir detalhes
|
|
72
|
+
- Motivação (POR QUÊ isso é importante)
|
|
73
|
+
- Personas (PARA QUEM é a feature)
|
|
74
|
+
- Regras de negócio de alto nível (domínio, não técnico)
|
|
75
|
+
- Escopo (o que está incluído e excluído)
|
|
76
|
+
- Critérios de aceite comportamentais
|
|
77
|
+
- Fluxo de uso do ponto de vista do usuário
|
|
78
|
+
- Métricas de sucesso
|
|
79
|
+
- Riscos e restrições
|
|
80
|
+
6. **NUNCA** incluir detalhes técnicos:
|
|
69
81
|
- Nada de endpoints, rotas, URLs
|
|
70
82
|
- Nada de arquitetura, camadas, design patterns
|
|
71
83
|
- Nada de banco de dados, tabelas, colunas, queries
|
|
72
84
|
- Nada de models, structs, interfaces, tipos
|
|
73
|
-
- Nada de UI
|
|
85
|
+
- Nada de UI técnica (componentes, frameworks)
|
|
86
|
+
- Nada de nomes de tecnologias, ferramentas ou bibliotecas (ex: Firebase, FCM, APNs, React, Redis, Kafka)
|
|
74
87
|
- Nada de explicar COMO resolver; apenas O QUE deve acontecer
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
88
|
+
- Se o usuário mencionar uma tecnologia específica, abstraia: "Firebase Cloud Messaging" → "serviço de notificações push"
|
|
89
|
+
7. Quando o usuário não souber responder algo, oferecer 2 a 4 opções bem formuladas
|
|
90
|
+
8. Usar `AskUserQuestion` no Claude Code para esclarecer dúvidas com o usuário
|
|
91
|
+
9. **NUNCA** deduzir escopo ou inventar informações — na DÚVIDA, PERGUNTE
|
|
78
92
|
|
|
79
93
|
---
|
|
80
94
|
|
|
81
95
|
## Processo Interativo (UMA PERGUNTA POR VEZ)
|
|
82
96
|
|
|
83
|
-
###
|
|
97
|
+
### Sequência de Perguntas
|
|
84
98
|
|
|
85
|
-
Siga esta
|
|
99
|
+
Siga esta sequência, fazendo **apenas uma pergunta por vez** e aguardando a resposta completa antes de avançar:
|
|
86
100
|
|
|
87
|
-
1. **
|
|
88
|
-
2. **Contexto &
|
|
89
|
-
3. **Personas** → "Quem
|
|
90
|
-
4. **Objetivo** → "Qual resultado esperado do ponto de vista do
|
|
91
|
-
5. **Escopo** → "O que
|
|
92
|
-
6. **User Stories** → "Quais
|
|
93
|
-
7. **Regras de
|
|
94
|
-
8. **Fluxo Comportamental** → "Como o
|
|
95
|
-
9. **
|
|
96
|
-
10. **
|
|
97
|
-
11. **
|
|
101
|
+
1. **Identificação** → "Qual é o nome/título dessa feature?"
|
|
102
|
+
2. **Contexto & Motivação** → "Qual problema precisa ser resolvido? Como funciona hoje?"
|
|
103
|
+
3. **Personas** → "Quem são os usuários impactados? Qual é o perfil deles?"
|
|
104
|
+
4. **Objetivo** → "Qual resultado esperado do ponto de vista do usuário?"
|
|
105
|
+
5. **Escopo** → "O que está incluído nessa feature? O que está explicitamente fora?"
|
|
106
|
+
6. **User Stories** → "Quais são as histórias de usuário? (Como <persona>, quero <ação> para <resultado>)"
|
|
107
|
+
7. **Regras de Negócio** → "Existem regras de negócio de alto nível? Condições ou restrições de domínio?"
|
|
108
|
+
8. **Fluxo Comportamental** → "Como o usuário interage com a feature? Qual é o fluxo principal?"
|
|
109
|
+
9. **Critérios de Aceite** → "Como validar que está correto? (DADO/QUANDO/ENTÃO)"
|
|
110
|
+
10. **Restrições** → "Há limitações externas, dependências ou considerações legais/UX?"
|
|
111
|
+
11. **Métricas** → "Como medir o sucesso dessa feature?"
|
|
98
112
|
|
|
99
113
|
### Regras do Processo Interativo
|
|
100
114
|
|
|
101
|
-
-
|
|
102
|
-
- Aguarde a resposta completa antes de
|
|
115
|
+
- Faça **apenas uma pergunta por vez**
|
|
116
|
+
- Aguarde a resposta completa antes de avançar
|
|
103
117
|
- Use as respostas para preencher o template progressivamente
|
|
104
|
-
- Se o
|
|
105
|
-
- Se algo
|
|
106
|
-
- Se o
|
|
107
|
-
- Se a ideia inicial
|
|
118
|
+
- Se o usuário fornecer informações extras, reutilize para seções futuras
|
|
119
|
+
- Se algo não ficou claro, **PERGUNTE** — nunca deduza
|
|
120
|
+
- Se o usuário já forneceu informação suficiente sobre um tópico, pule a pergunta e avance
|
|
121
|
+
- Se a ideia inicial já contém muitas informações, adapte as perguntas ao que falta
|
|
108
122
|
|
|
109
123
|
---
|
|
110
124
|
|
|
@@ -112,92 +126,126 @@ Siga esta sequencia, fazendo **apenas uma pergunta por vez** e aguardando a resp
|
|
|
112
126
|
|
|
113
127
|
Use o template oficial em: [prd_template.md](templates/prd_template.md)
|
|
114
128
|
|
|
115
|
-
O template
|
|
129
|
+
O template contém todas as seções obrigatórias do PRD. Todas as seções devem ser preenchidas. Se uma seção não se aplica, indique explicitamente "N/A — [justificativa]".
|
|
116
130
|
|
|
117
131
|
---
|
|
118
132
|
|
|
119
|
-
## Guardrails
|
|
133
|
+
## Guardrails Invioláveis
|
|
120
134
|
|
|
121
|
-
Estas regras
|
|
135
|
+
Estas regras são **absolutas** e não podem ser violadas em nenhuma circunstância:
|
|
122
136
|
|
|
123
|
-
1. **UMA pergunta por vez** — nunca bombardeie o
|
|
124
|
-
2. **NUNCA avance sem
|
|
125
|
-
3. **NUNCA invente
|
|
126
|
-
4. **NUNCA inclua detalhes
|
|
127
|
-
5. **SEMPRE salvar arquivo
|
|
128
|
-
6. **NUNCA inicie automaticamente a
|
|
129
|
-
7. **Template COMPLETO** — todas as
|
|
130
|
-
8. **AskUserQuestion** — no Claude Code, use esta ferramenta para esclarecer
|
|
137
|
+
1. **UMA pergunta por vez** — nunca bombardeie o usuário com múltiplas perguntas
|
|
138
|
+
2. **NUNCA avance sem confirmação** — cada seção deve ser validada antes de prosseguir
|
|
139
|
+
3. **NUNCA invente informações** — se faltar dado, PERGUNTE ao usuário
|
|
140
|
+
4. **NUNCA inclua detalhes técnicos** — zero endpoints, zero arquitetura, zero banco, zero COMO, zero nomes de tecnologias/ferramentas/bibliotecas (ex: Firebase, FCM, APNs, React, PostgreSQL, Redis). Se o usuário mencionar uma tecnologia, registre a necessidade de forma abstrata (ex: "serviço de notificações push") e marque `[DELEGAR_SPEC_TECH]` sem citar o nome da tecnologia
|
|
141
|
+
5. **SEMPRE salvar arquivo físico ANTES de apresentar ao usuário** — o arquivo deve existir no disco antes de pedir aprovação
|
|
142
|
+
6. **NUNCA inicie automaticamente a próxima etapa (SPEC_TECH)** — apenas encerre e aguarde
|
|
143
|
+
7. **Template COMPLETO** — todas as seções devem ser preenchidas (ou marcadas N/A com justificativa)
|
|
144
|
+
8. **AskUserQuestion** — no Claude Code, use esta ferramenta para esclarecer dúvidas com o usuário
|
|
131
145
|
9. **Escopo fechado** — o PRD deve ser auto-suficiente e sem ambiguidades
|
|
132
|
-
10. **User Stories numeradas** — todas as US devem ter ID
|
|
146
|
+
10. **User Stories numeradas** — todas as US devem ter ID único (US-01, US-02, etc.) para rastreabilidade
|
|
133
147
|
|
|
134
148
|
---
|
|
135
149
|
|
|
136
150
|
## Versionamento Inteligente
|
|
137
151
|
|
|
138
|
-
**ANTES de salvar o arquivo**, execute esta
|
|
152
|
+
**ANTES de salvar o arquivo**, execute esta lógica de versionamento:
|
|
139
153
|
|
|
140
|
-
1. Gerar nome da feature a partir do
|
|
141
|
-
2. Verificar se `docs/<nome-feature>/`
|
|
142
|
-
3. **Se
|
|
143
|
-
4. **Se EXISTE** → listar
|
|
144
|
-
- **"Criar nova
|
|
145
|
-
- **"Sobrescrever
|
|
154
|
+
1. Gerar nome da feature a partir do título (kebab-case, letras minúsculas, sem espaços, sem acentos)
|
|
155
|
+
2. Verificar se `docs/<nome-feature>/` já existe
|
|
156
|
+
3. **Se NÃO existe** → criar `docs/<nome-feature>/v1/`
|
|
157
|
+
4. **Se EXISTE** → listar versões existentes (v1, v2, ...), identificar a mais recente (vN), e perguntar ao usuário usando `AskUserQuestion`:
|
|
158
|
+
- **"Criar nova versão (vN+1)"** → cria novo diretório `docs/<nome-feature>/vN+1/`, LÊ a versão anterior como contexto para enriquecer o novo PRD
|
|
159
|
+
- **"Sobrescrever versão atual (vN)"** → trabalha no diretório existente `docs/<nome-feature>/vN/`
|
|
146
160
|
|
|
147
|
-
> **IMPORTANTE**: Ao criar nova
|
|
161
|
+
> **IMPORTANTE**: Ao criar nova versão, SEMPRE leia os documentos da versão anterior para manter continuidade e contexto.
|
|
148
162
|
|
|
149
163
|
---
|
|
150
164
|
|
|
151
|
-
## Salvar Arquivo (
|
|
165
|
+
## Salvar Arquivo (OBRIGATÓRIO)
|
|
152
166
|
|
|
153
|
-
**ANTES de apresentar o PRD ao
|
|
167
|
+
**ANTES de apresentar o PRD ao usuário**, você DEVE:
|
|
154
168
|
|
|
155
|
-
1. Executar a
|
|
156
|
-
2. Criar
|
|
157
|
-
3. **
|
|
158
|
-
4.
|
|
169
|
+
1. Executar a lógica de **Versionamento Inteligente** acima para determinar o diretório correto
|
|
170
|
+
2. Criar diretório se não existir: `docs/[nome-feature]/vN/`
|
|
171
|
+
3. **Remover todos os comentários `<!-- LLM-ONLY: ... -->`** do conteúdo antes de salvar — são instruções internas do template e NÃO devem aparecer no arquivo gerado
|
|
172
|
+
4. **Salvar o arquivo físico** em: `docs/[nome-feature]/vN/prd.md`
|
|
173
|
+
5. Confirmar que o arquivo foi criado com sucesso
|
|
159
174
|
|
|
160
|
-
###
|
|
175
|
+
### Convenção de Nomenclatura
|
|
161
176
|
|
|
162
|
-
| Elemento |
|
|
177
|
+
| Elemento | Convenção | Exemplo |
|
|
163
178
|
|----------|-----------|---------|
|
|
164
179
|
| Nome da feature | kebab-case | `autenticacao-oauth2`, `cardapio-digital` |
|
|
165
|
-
|
|
|
180
|
+
| Diretório | `docs/<nome>/vN/` | `docs/autenticacao-oauth2/v1/` |
|
|
166
181
|
| Arquivo PRD | `prd.md` | `docs/autenticacao-oauth2/v1/prd.md` |
|
|
167
182
|
|
|
168
183
|
---
|
|
169
184
|
|
|
170
|
-
##
|
|
185
|
+
## Saída Esperada
|
|
171
186
|
|
|
172
|
-
|
|
187
|
+
Após salvar o arquivo físico, apresente **apenas um resumo compacto** do PRD. NÃO exiba o PRD completo no terminal — o usuário vai ler o arquivo diretamente.
|
|
173
188
|
|
|
174
189
|
```
|
|
175
190
|
Arquivo salvo em: docs/[nome-feature]/vN/prd.md
|
|
176
191
|
|
|
177
|
-
|
|
192
|
+
## Resumo do PRD
|
|
193
|
+
- **Feature:** [nome]
|
|
194
|
+
- **Problema:** [1 frase]
|
|
195
|
+
- **Personas:** [lista curta]
|
|
196
|
+
- **User Stories:** X histórias (US-01 a US-XX)
|
|
197
|
+
- **Critérios de Aceite:** X critérios (CA-01 a CA-XX)
|
|
198
|
+
- **Fases:** [lista curta]
|
|
199
|
+
|
|
200
|
+
Esse PRD representa corretamente o que você quer? (sim/não)
|
|
178
201
|
```
|
|
179
202
|
|
|
180
203
|
**IMPORTANTE:**
|
|
181
|
-
-
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
204
|
+
- NÃO exiba o PRD completo no terminal — apenas o resumo acima
|
|
205
|
+
- NÃO inicie `/generate-spec-tech` automaticamente
|
|
206
|
+
- NÃO sugira executar o próximo comando
|
|
207
|
+
- NÃO sugira próximos passos do framework
|
|
208
|
+
- Após a confirmação do usuário, execute o fluxo de **Tech Direction** abaixo
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Tech Direction (Pós-Aprovação do PRD)
|
|
213
|
+
|
|
214
|
+
**Após o usuário aprovar o PRD (responder "sim")**, faça a seguinte pergunta:
|
|
215
|
+
|
|
216
|
+
> "Você tem pontos específicos de definição técnica que deseja registrar antes do SPEC_TECH? (sim/não)"
|
|
217
|
+
|
|
218
|
+
### Se o usuário responder "sim"
|
|
219
|
+
|
|
220
|
+
1. Crie o arquivo `tech_direction.md` **na mesma pasta** do PRD (`docs/[nome-feature]/vN/tech_direction.md`)
|
|
221
|
+
2. Use o template em: [tech_direction-template.md](templates/tech_direction-template.md) — copie o template **como está**, sem preencher
|
|
222
|
+
3. **Salve o arquivo** e avise o usuário:
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
Arquivo criado em: docs/[nome-feature]/vN/tech_direction.md
|
|
226
|
+
|
|
227
|
+
Preencha o arquivo com seus pontos de definição técnica. Ele será usado como ponto de partida pelo SPEC_TECH.
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Se o usuário responder "não"
|
|
231
|
+
|
|
232
|
+
Encerre normalmente. O SPEC_TECH será gerado sem direcionamento técnico prévio.
|
|
185
233
|
|
|
186
234
|
---
|
|
187
235
|
|
|
188
|
-
## Estrutura de
|
|
236
|
+
## Estrutura de Diretórios do Framework SDD
|
|
189
237
|
|
|
190
238
|
```
|
|
191
239
|
docs/
|
|
192
240
|
<nome-feature>/
|
|
193
241
|
v1/
|
|
194
|
-
prd.md # PRD aprovado (O QUE / POR
|
|
242
|
+
prd.md # PRD aprovado (O QUE / POR QUÊ)
|
|
195
243
|
spec_tech.md # SPEC_TECH aprovado (COMO)
|
|
196
244
|
task_plan.md # Plano de tasks aprovado
|
|
197
245
|
tasks/ # TaskCards individuais
|
|
198
246
|
task-01-<slug>.md
|
|
199
247
|
task-02-<slug>.md
|
|
200
|
-
v2/ # Nova
|
|
248
|
+
v2/ # Nova versão (quando solicitado)
|
|
201
249
|
...
|
|
202
250
|
```
|
|
203
251
|
|
|
@@ -205,14 +253,14 @@ docs/
|
|
|
205
253
|
|
|
206
254
|
## Rastreabilidade
|
|
207
255
|
|
|
208
|
-
O PRD inclui uma **tabela de rastreabilidade** que mapeia User Stories (US-XX) para
|
|
256
|
+
O PRD inclui uma **tabela de rastreabilidade** que mapeia User Stories (US-XX) para Critérios de Aceite (CA-XX). Esta tabela será usada como referência nas etapas seguintes (SPEC_TECH e TASK PLAN) para garantir que todas as histórias de usuário foram atendidas.
|
|
209
257
|
|
|
210
|
-
| User Story |
|
|
258
|
+
| User Story | Descrição Resumida | Critério de Aceite Relacionado |
|
|
211
259
|
|------------|-------------------|-------------------------------|
|
|
212
260
|
| US-01 | ... | CA-01 |
|
|
213
261
|
| US-02 | ... | CA-02 |
|
|
214
262
|
|
|
215
|
-
> Cada User Story DEVE ter pelo menos um
|
|
263
|
+
> Cada User Story DEVE ter pelo menos um Critério de Aceite correspondente.
|
|
216
264
|
|
|
217
265
|
---
|
|
218
266
|
|
|
@@ -220,13 +268,13 @@ O PRD inclui uma **tabela de rastreabilidade** que mapeia User Stories (US-XX) p
|
|
|
220
268
|
|
|
221
269
|
Antes de salvar o PRD, valide que:
|
|
222
270
|
|
|
223
|
-
- [ ] PRD descreve apenas O QUE / POR
|
|
224
|
-
- [ ] Escopo fechado (
|
|
271
|
+
- [ ] PRD descreve apenas O QUE / POR QUÊ (zero detalhes técnicos)
|
|
272
|
+
- [ ] Escopo fechado (incluído e excluído definidos)
|
|
225
273
|
- [ ] User Stories definidas e numeradas (US-XX)
|
|
226
|
-
- [ ]
|
|
274
|
+
- [ ] Critérios de aceite claros e comportamentais (DADO/QUANDO/ENTÃO)
|
|
227
275
|
- [ ] Tabela de rastreabilidade preenchida (US-XX -> CA-XX)
|
|
228
|
-
- [ ] Todas as
|
|
229
|
-
- [ ] Nenhuma
|
|
276
|
+
- [ ] Todas as seções do template preenchidas (ou N/A justificado)
|
|
277
|
+
- [ ] Nenhuma informação foi inventada ou deduzida
|
|
230
278
|
- [ ] Pronto para criar o SPEC_TECH (COMO)
|
|
231
279
|
|
|
232
280
|
---
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "sdd-prd-expert",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Preciso de um PRD para uma feature de cardápio digital. O restaurante quer que os clientes consigam ver o cardápio pelo celular escaneando um QR code na mesa, com fotos dos pratos, descrições e preços. Hoje o cardápio é impresso e custa caro pra atualizar.",
|
|
7
|
+
"expected_output": "PRD completo seguindo o template oficial, com todas as 13 seções preenchidas. Foco em O QUE/POR QUÊ sem detalhes técnicos. User Stories numeradas (US-XX), Critérios de Aceite no formato DADO/QUANDO/ENTÃO, tabela de rastreabilidade US->CA, e arquivo salvo em docs/cardapio-digital/v1/prd.md",
|
|
8
|
+
"files": [],
|
|
9
|
+
"expectations": [
|
|
10
|
+
"O PRD NÃO contém detalhes técnicos (zero menção a endpoints, banco de dados, tabelas, frameworks, arquitetura ou componentes de UI)",
|
|
11
|
+
"O PRD contém User Stories numeradas no formato US-XX com a estrutura 'Como <persona>, quero <ação> para <resultado>'",
|
|
12
|
+
"O PRD contém Critérios de Aceite numerados (CA-XX) no formato DADO/QUANDO/ENTÃO",
|
|
13
|
+
"O PRD contém tabela de rastreabilidade mapeando cada US-XX para pelo menos um CA-XX",
|
|
14
|
+
"O PRD contém seção de Escopo com itens incluídos e explicitamente excluídos",
|
|
15
|
+
"O PRD contém seção de Métricas de Sucesso com indicadores mensuráveis",
|
|
16
|
+
"O PRD foi salvo como arquivo físico (prd.md) ANTES de ser apresentado ao usuário — o transcript mostra a operação de escrita antes da mensagem de confirmação",
|
|
17
|
+
"Todas as 13 seções do template estão presentes (ou marcadas N/A com justificativa)",
|
|
18
|
+
"A skill fez perguntas UMA POR VEZ ao usuário para esclarecer lacunas",
|
|
19
|
+
"A skill NÃO sugeriu iniciar a próxima etapa (SPEC_TECH) automaticamente"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": 2,
|
|
24
|
+
"prompt": "Quero criar um sistema de fidelidade pro Vakinha Burger. A ideia é que o cliente acumule pontos a cada compra e depois troque por produtos grátis ou descontos. Tipo, a cada R$1 gasto ele ganha 1 ponto, e com 100 pontos ele pode trocar por um lanche básico.",
|
|
25
|
+
"expected_output": "PRD completo para sistema de fidelidade, com regras de negócio claras sobre acúmulo e resgate de pontos, personas definidas (cliente final, gerente do restaurante), fluxos comportamentais de acúmulo e resgate, sem mencionar implementação técnica. Arquivo salvo em docs/sistema-fidelidade/v1/prd.md",
|
|
26
|
+
"files": [],
|
|
27
|
+
"expectations": [
|
|
28
|
+
"O PRD define regras de negócio de alto nível sobre acúmulo de pontos (ex: proporção R$/ponto) sem detalhar implementação",
|
|
29
|
+
"O PRD identifica pelo menos 2 personas distintas (ex: cliente, gerente/administrador)",
|
|
30
|
+
"O PRD descreve fluxos comportamentais de acúmulo E resgate do ponto de vista do usuário",
|
|
31
|
+
"O PRD NÃO menciona tabelas de banco, APIs, endpoints ou arquitetura de software",
|
|
32
|
+
"O PRD contém seção de Restrições/Considerações relevantes ao domínio (ex: expiração de pontos, fraude)",
|
|
33
|
+
"User Stories cobrem tanto o fluxo do cliente quanto o fluxo do administrador",
|
|
34
|
+
"Critérios de Aceite no formato DADO/QUANDO/ENTÃO validam cenários de acúmulo, resgate e edge cases",
|
|
35
|
+
"O nome da feature está em kebab-case no path do arquivo (sistema-fidelidade)",
|
|
36
|
+
"O PRD contém Roadmap/Fases com pelo menos 2 fases definidas",
|
|
37
|
+
"A skill NÃO inventou informações — lacunas foram perguntadas ao usuário"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": 3,
|
|
42
|
+
"prompt": "Gera um PRD pra notificação push. Quando o pedido do cliente mudar de status (preparando, pronto, saiu pra entrega, entregue) ele recebe uma notificação no celular. Também quero mandar promoções tipo 'hoje tem hambúrguer com 20% off'.",
|
|
43
|
+
"expected_output": "PRD que separa claramente dois tipos de notificação (transacional e promocional), com fluxos distintos para cada tipo, sem detalhar tecnologia de push (FCM, APNs, etc). Personas incluem cliente e equipe de marketing. Arquivo salvo em docs/notificacao-push/v1/prd.md",
|
|
44
|
+
"files": [],
|
|
45
|
+
"expectations": [
|
|
46
|
+
"O PRD diferencia notificações transacionais (status do pedido) de notificações promocionais como tipos distintos",
|
|
47
|
+
"O PRD descreve os status do pedido do ponto de vista do usuário sem detalhar máquina de estados técnica",
|
|
48
|
+
"O PRD NÃO menciona tecnologias específicas de push (FCM, APNs, OneSignal, WebSocket, etc)",
|
|
49
|
+
"O PRD inclui considerações sobre opt-in/opt-out e preferências do usuário quanto a notificações",
|
|
50
|
+
"User Stories cobrem tanto recebimento de notificação de status quanto notificação promocional",
|
|
51
|
+
"Critérios de Aceite validam cenários como: pedido muda de status -> cliente recebe notificação",
|
|
52
|
+
"O PRD aborda restrições relevantes (ex: frequência de notificações promocionais, horários permitidos)",
|
|
53
|
+
"Tabela de rastreabilidade mapeia TODAS as User Stories para Critérios de Aceite correspondentes",
|
|
54
|
+
"O arquivo foi salvo com nome kebab-case correto (notificacao-push, sem acentos)",
|
|
55
|
+
"A seção de Métricas de Sucesso inclui indicadores específicos de engajamento com notificações"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
# PRD -- Product Requirements Document (O QUE / POR
|
|
1
|
+
# PRD -- Product Requirements Document (O QUE / POR QUÊ)
|
|
2
2
|
|
|
3
3
|
## 1. Metadados
|
|
4
4
|
- **Nome da Feature/Projeto**:
|
|
5
|
-
- **
|
|
5
|
+
- **Responsável/Autor**:
|
|
6
6
|
- **Data**:
|
|
7
|
-
- **
|
|
8
|
-
- **Status**: Draft |
|
|
7
|
+
- **Versão**:
|
|
8
|
+
- **Status**: Draft | Revisão | Aprovado
|
|
9
9
|
- **Relacionados**: (Issues, RFCs, Figmas, Documentos de pesquisa...)
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
## 2. Contexto &
|
|
13
|
+
## 2. Contexto & Motivação
|
|
14
14
|
- **Qual problema ou dor existe hoje?**
|
|
15
15
|
- **Como funciona atualmente?**
|
|
16
16
|
- **Por que isso precisa ser resolvido agora?**
|
|
@@ -19,80 +19,80 @@
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
21
|
## 3. Objetivo da Feature
|
|
22
|
-
- **O que se deseja
|
|
23
|
-
- **Qual
|
|
24
|
-
- **Qual o resultado final esperado do ponto de vista do
|
|
22
|
+
- **O que se deseja alcançar?**
|
|
23
|
+
- **Qual mudança de comportamento esta feature deve gerar?**
|
|
24
|
+
- **Qual o resultado final esperado do ponto de vista do usuário?**
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
28
|
## 4. Escopo
|
|
29
|
-
### 4.1 O que
|
|
29
|
+
### 4.1 O que está incluído (dentro do O QUE)
|
|
30
30
|
- [ ] Comportamento esperado 1
|
|
31
31
|
- [ ] Comportamento esperado 2
|
|
32
32
|
|
|
33
|
-
### 4.2 O que
|
|
34
|
-
- [ ] Item
|
|
35
|
-
- [ ] Item
|
|
33
|
+
### 4.2 O que está explicitamente fora do escopo
|
|
34
|
+
- [ ] Item não incluído A
|
|
35
|
+
- [ ] Item não incluído B
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
## 5.
|
|
40
|
-
- **Quem
|
|
41
|
-
- **Qual
|
|
39
|
+
## 5. Usuários & Personas
|
|
40
|
+
- **Quem é o usuário principal?**
|
|
41
|
+
- **Qual é seu objetivo ao usar essa feature?**
|
|
42
42
|
- **Quais dores/dificuldades essa feature resolve pra ele?**
|
|
43
43
|
|
|
44
|
-
### 5.1
|
|
44
|
+
### 5.1 Histórias de Usuário (User Stories)
|
|
45
45
|
Formato:
|
|
46
|
-
- **US-01**: Como `<persona>`, quero `<
|
|
47
|
-
- **US-02**: Como `<persona>`, preciso `<necessidade>` para `<
|
|
46
|
+
- **US-01**: Como `<persona>`, quero `<ação>` para `<resultado esperado>`.
|
|
47
|
+
- **US-02**: Como `<persona>`, preciso `<necessidade>` para `<benefício>`.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
<!-- LLM-ONLY: Cada historia de usuario sera rastreada nas etapas seguintes (SPEC_TECH e TASK PLAN) para garantir cobertura completa. -->
|
|
50
50
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
|
-
## 6. Regras de
|
|
54
|
-
(
|
|
53
|
+
## 6. Regras de Negócio (alto nível)
|
|
54
|
+
(Não confundir com lógica técnica. Somente regras do domínio.)
|
|
55
55
|
|
|
56
|
-
- RN1 -- Quando a
|
|
57
|
-
- RN2 -- Um item
|
|
56
|
+
- RN1 -- Quando a condição X existir, o sistema deve permitir/impedir Y.
|
|
57
|
+
- RN2 -- Um item só pode ser considerado válido se atender aos critérios Z.
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
-
## 7. Fluxo Comportamental (
|
|
62
|
-
Descreve **o que o
|
|
61
|
+
## 7. Fluxo Comportamental (não técnico)
|
|
62
|
+
Descreve **o que o usuário faz**, não como a UI ou o backend implementa.
|
|
63
63
|
|
|
64
64
|
### 7.1 Fluxo Principal
|
|
65
|
-
1. O
|
|
66
|
-
2. O sistema apresenta X ao
|
|
67
|
-
3. O
|
|
65
|
+
1. O usuário inicia o processo...
|
|
66
|
+
2. O sistema apresenta X ao usuário...
|
|
67
|
+
3. O usuário toma uma ação Y...
|
|
68
68
|
4. O sistema responde com Z...
|
|
69
69
|
|
|
70
70
|
### 7.2 Fluxos Alternativos
|
|
71
|
-
- Caso
|
|
72
|
-
- Se faltar
|
|
71
|
+
- Caso aconteça A, o sistema deve permitir B.
|
|
72
|
+
- Se faltar informação X, o sistema deve avisar Y.
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
76
|
-
## 8.
|
|
77
|
-
- [ ] CA-01: DADO <
|
|
78
|
-
- [ ] CA-02: O
|
|
76
|
+
## 8. Critérios de Aceite (O QUE deve acontecer)
|
|
77
|
+
- [ ] CA-01: DADO <situação> QUANDO <ação do usuário> ENTÃO <resultado esperado>.
|
|
78
|
+
- [ ] CA-02: O usuário consegue realizar X sem erro.
|
|
79
79
|
- [ ] CA-03: O sistema apresenta Y quando Z.
|
|
80
80
|
|
|
81
|
-
|
|
81
|
+
<!-- LLM-ONLY: Nenhum detalhe tecnico permitido aqui. Apenas comportamento do ponto de vista do usuario. -->
|
|
82
82
|
|
|
83
83
|
---
|
|
84
84
|
|
|
85
|
-
## 9.
|
|
86
|
-
-
|
|
87
|
-
- Regras de
|
|
88
|
-
-
|
|
89
|
-
-
|
|
85
|
+
## 9. Restrições & Considerações
|
|
86
|
+
- Limitações externas
|
|
87
|
+
- Regras de negócio obrigatórias
|
|
88
|
+
- Dependências de times, dados ou decisões
|
|
89
|
+
- Considerações legais ou de UX
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
93
|
-
## 10.
|
|
94
|
-
-
|
|
95
|
-
-
|
|
93
|
+
## 10. Métricas de Sucesso
|
|
94
|
+
- Adoção da feature (%)
|
|
95
|
+
- Redução de erros
|
|
96
96
|
- Melhora no fluxo
|
|
97
97
|
- Tempo reduzido
|
|
98
98
|
- Engajamento
|
|
@@ -108,19 +108,19 @@ Descreve **o que o usuario faz**, nao como a UI ou o backend implementa.
|
|
|
108
108
|
|
|
109
109
|
## 12. Rastreabilidade de User Stories
|
|
110
110
|
|
|
111
|
-
| User Story |
|
|
111
|
+
| User Story | Descrição Resumida | Critério de Aceite Relacionado |
|
|
112
112
|
|------------|-------------------|-------------------------------|
|
|
113
113
|
| US-01 | | CA-01 |
|
|
114
114
|
| US-02 | | CA-02 |
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
<!-- LLM-ONLY: Esta tabela sera usada como referencia no SPEC_TECH e TASK PLAN para garantir que todas as historias de usuario foram atendidas. -->
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
120
120
|
## 13. Checklist Final
|
|
121
|
-
- [ ] PRD descreve apenas O QUE / POR
|
|
121
|
+
- [ ] PRD descreve apenas O QUE / POR QUÊ
|
|
122
122
|
- [ ] Escopo fechado
|
|
123
123
|
- [ ] User Stories definidas e numeradas (US-XX)
|
|
124
|
-
- [ ]
|
|
124
|
+
- [ ] Critérios de aceite claros
|
|
125
125
|
- [ ] Tabela de rastreabilidade preenchida
|
|
126
126
|
- [ ] Pronto para criar o SPEC_TECH (COMO)
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# TECH DIRECTION (Opcional)
|
|
2
|
+
|
|
3
|
+
> Direcionamento técnico inicial para a feature. Serve como ponto de partida para o SPEC_TECH, não como decisão final.
|
|
4
|
+
> O Arquiteto (tech-spec-expert) pode complementar, ajustar ou questionar qualquer item aqui.
|
|
5
|
+
|
|
6
|
+
## Decisões técnicas já tomadas
|
|
7
|
+
- (ex: Usar JWT com refresh token para autenticação)
|
|
8
|
+
- (ex: Criar gateway separado para integração externa)
|
|
9
|
+
|
|
10
|
+
## Tecnologias/Libs sugeridas
|
|
11
|
+
- (ex: biblioteca X para integração com serviço Y)
|
|
12
|
+
- (ex: framework Z para testes)
|
|
13
|
+
|
|
14
|
+
## Padrões ou abordagens preferidas
|
|
15
|
+
- (ex: Seguir o pattern Gateway já usado no projeto)
|
|
16
|
+
- (ex: Implementar como CQRS)
|
|
17
|
+
|
|
18
|
+
## Restrições técnicas
|
|
19
|
+
- (ex: Precisa ser stateless para rodar em k8s)
|
|
20
|
+
- (ex: Não temos message broker disponível)
|
|
21
|
+
|
|
22
|
+
## Observações
|
|
23
|
+
- (qualquer contexto técnico relevante que o arquiteto deve considerar)
|