spec-first-copilot 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/bin/cli.js +52 -0
- package/package.json +25 -0
- package/templates/.ai/memory/napkin.md +68 -0
- package/templates/.github/agents/backend-coder.md +215 -0
- package/templates/.github/agents/db-coder.md +165 -0
- package/templates/.github/agents/doc-writer.md +51 -0
- package/templates/.github/agents/frontend-coder.md +222 -0
- package/templates/.github/agents/infra-coder.md +341 -0
- package/templates/.github/agents/reviewer.md +99 -0
- package/templates/.github/agents/security-reviewer.md +153 -0
- package/templates/.github/copilot-instructions.md +176 -0
- package/templates/.github/instructions/docs.instructions.md +123 -0
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -0
- package/templates/.github/skills/sf-design/SKILL.md +181 -0
- package/templates/.github/skills/sf-dev/SKILL.md +326 -0
- package/templates/.github/skills/sf-discovery/SKILL.md +405 -0
- package/templates/.github/skills/sf-extract/SKILL.md +284 -0
- package/templates/.github/skills/sf-feature/SKILL.md +130 -0
- package/templates/.github/skills/sf-merge-delta/SKILL.md +142 -0
- package/templates/.github/skills/sf-pausar/SKILL.md +120 -0
- package/templates/.github/skills/sf-plan/SKILL.md +178 -0
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -0
- package/templates/docs/Desenvolvimento/.gitkeep +0 -0
- package/templates/docs/Desenvolvimento/rules.md +229 -0
- package/templates/docs/Estrutura/.gitkeep +0 -0
- package/templates/docs/PM/.gitkeep +0 -0
- package/templates/docs/PM/setup_projeto/.gitkeep +0 -0
- package/templates/docs/_templates/estrutura/ADRs.template.md +91 -0
- package/templates/docs/_templates/estrutura/API.template.md +144 -0
- package/templates/docs/_templates/estrutura/Arquitetura.template.md +82 -0
- package/templates/docs/_templates/estrutura/Infraestrutura.template.md +104 -0
- package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +99 -0
- package/templates/docs/_templates/estrutura/Seguranca.template.md +138 -0
- package/templates/docs/_templates/estrutura/Stack.template.md +78 -0
- package/templates/docs/_templates/estrutura/Visao.template.md +82 -0
- package/templates/docs/_templates/feature/PRD.template.md +256 -0
- package/templates/docs/_templates/feature/Progresso.template.md +136 -0
- package/templates/docs/_templates/feature/TRD.template.md +200 -0
- package/templates/docs/_templates/feature/backlog-extraido.template.md +154 -0
- package/templates/docs/_templates/feature/context.template.md +42 -0
- package/templates/docs/_templates/feature/extract-log.template.md +38 -0
- package/templates/docs/_templates/feature/projetos.template.yaml +73 -0
- package/templates/docs/_templates/feature/sdd.template.md +372 -0
- package/templates/docs/_templates/feature/tasks.template.md +115 -0
- package/templates/docs/_templates/global/progresso_global.template.md +57 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Progresso — {{FEATURE}}
|
|
2
|
+
|
|
3
|
+
> Visão consolidada do andamento da feature.
|
|
4
|
+
> Organizado por **fases de entrega** — cada fase é um entregável independente.
|
|
5
|
+
> Atualizado automaticamente pelo /dev a cada task concluída.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Status Geral: `não iniciado`
|
|
10
|
+
|
|
11
|
+
<!-- não iniciado → em desenvolvimento → em revisão → concluído → arquivado -->
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<!--
|
|
16
|
+
=============================================================================
|
|
17
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
18
|
+
=============================================================================
|
|
19
|
+
|
|
20
|
+
COMO GERAR ESTE ARQUIVO:
|
|
21
|
+
|
|
22
|
+
1. Ler PRD §11 (Fases de Entrega) para definir as fases
|
|
23
|
+
2. Ler TODOS os *_tasks.md da feature
|
|
24
|
+
3. Para cada FASE DE ENTREGA, listar as áreas e contagem de tasks
|
|
25
|
+
4. A visão primária é POR FASE, não por área
|
|
26
|
+
|
|
27
|
+
COMO ATUALIZAR:
|
|
28
|
+
|
|
29
|
+
- O /dev atualiza após cada task concluída
|
|
30
|
+
- Status por fase: ⬜ pendente → 🔄 em andamento → ✅ concluída
|
|
31
|
+
- Fase concluída = todas tasks de todas áreas daquela fase estão [x]
|
|
32
|
+
- Ao concluir uma fase: registrar no Histórico + abrir PR
|
|
33
|
+
|
|
34
|
+
=============================================================================
|
|
35
|
+
-->
|
|
36
|
+
|
|
37
|
+
## Fases de Entrega
|
|
38
|
+
|
|
39
|
+
| Fase | Nome | Prioridade | Entregável | Status | Tasks |
|
|
40
|
+
|------|------|-----------|------------|--------|-------|
|
|
41
|
+
| 1 | {{Nome}} | P1 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
42
|
+
| 2 | {{Nome}} | P1 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
43
|
+
| 3 | {{Nome}} | P2 | {{Entregável}} | ⬜ pendente | 0/{{N}} |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Fase 1 — {{Nome}} [P1]
|
|
48
|
+
|
|
49
|
+
> **Entregável**: {{O que o usuário pode usar}}
|
|
50
|
+
> **Critério de done**: {{Testes E2E que devem passar}}
|
|
51
|
+
> **Branch**: `feature/{{FEATURE}}_fase1`
|
|
52
|
+
> **PR**: (a ser criado)
|
|
53
|
+
|
|
54
|
+
### Tasks por área
|
|
55
|
+
|
|
56
|
+
#### {{AREA_1}} ({{N}} tasks)
|
|
57
|
+
|
|
58
|
+
| Task | Descrição | Tamanho | Repo | Status |
|
|
59
|
+
|------|-----------|---------|------|--------|
|
|
60
|
+
| AREA-001 | | S/M/L | {{repo}} | ⬜ |
|
|
61
|
+
|
|
62
|
+
#### {{AREA_2}} ({{N}} tasks)
|
|
63
|
+
|
|
64
|
+
| Task | Descrição | Tamanho | Repo | Status |
|
|
65
|
+
|------|-----------|---------|------|--------|
|
|
66
|
+
| AREA-001 | | S/M/L | {{repo}} | ⬜ |
|
|
67
|
+
|
|
68
|
+
### Resumo Fase 1
|
|
69
|
+
|
|
70
|
+
| Área | Total | Feitas | % |
|
|
71
|
+
|------|-------|--------|---|
|
|
72
|
+
| {{AREA_1}} | {{N}} | 0 | 0% |
|
|
73
|
+
| {{AREA_2}} | {{N}} | 0 | 0% |
|
|
74
|
+
| **Total Fase 1** | **{{N}}** | **0** | **0%** |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Fase 2 — {{Nome}} [P1]
|
|
79
|
+
|
|
80
|
+
> **Entregável**: {{...}}
|
|
81
|
+
> **Depende de**: Fase 1 concluída
|
|
82
|
+
|
|
83
|
+
<!-- Repetir mesma estrutura -->
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Totais Gerais
|
|
88
|
+
|
|
89
|
+
| Fase | Total | Feitas | % |
|
|
90
|
+
|------|-------|--------|---|
|
|
91
|
+
| Fase 1 | {{N}} | 0 | 0% |
|
|
92
|
+
| Fase 2 | {{N}} | 0 | 0% |
|
|
93
|
+
| **Total** | **{{N}}** | **0** | **0%** |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Ordem de Execução
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Fase 1:
|
|
101
|
+
1. INFRA (setup de repos/ambiente)
|
|
102
|
+
2. BANCO (schema/migrations)
|
|
103
|
+
3. BACK (endpoints) ← pode paralelizar com FRONT após BANCO
|
|
104
|
+
4. FRONT (telas)
|
|
105
|
+
→ PR Fase 1 + testes manuais + merge
|
|
106
|
+
|
|
107
|
+
Fase 2:
|
|
108
|
+
1. BANCO (novas tabelas/migrations)
|
|
109
|
+
2. BACK (endpoints + regras)
|
|
110
|
+
3. FRONT (telas + integração)
|
|
111
|
+
→ PR Fase 2 + testes manuais + merge
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Histórico
|
|
117
|
+
|
|
118
|
+
| Data | Evento | Detalhes |
|
|
119
|
+
|------|--------|----------|
|
|
120
|
+
| | Feature criada | PRD aprovado, SDD gerado |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Pós-conclusão (por fase)
|
|
125
|
+
|
|
126
|
+
- [ ] PR aberto com template detalhado
|
|
127
|
+
- [ ] Ambiente local rodando para testes manuais
|
|
128
|
+
- [ ] Testes automatizados passando (unit + integration + security)
|
|
129
|
+
- [ ] Usuário aprovou e fez merge
|
|
130
|
+
|
|
131
|
+
## Pós-conclusão (feature completa)
|
|
132
|
+
|
|
133
|
+
- [ ] Todas fases concluídas e mergeadas
|
|
134
|
+
- [ ] Mergear Delta Specs (SDD §11) nos docs de `docs/Estrutura/`
|
|
135
|
+
- [ ] Atualizar `docs/Desenvolvimento/progresso.md` (visão global)
|
|
136
|
+
- [ ] Atualizar `.ai/memory/napkin.md` se houver aprendizado relevante
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# TRD — {{PROJETO}}
|
|
2
|
+
## Technical Requirements Document
|
|
3
|
+
|
|
4
|
+
> **Artefato gerado pela IA** a partir do processamento de todos os insumos em `docs/PM/setup_projeto/`.
|
|
5
|
+
> Este é o checkpoint de extração para ESTRUTURAÇÃO do projeto.
|
|
6
|
+
> Após aprovação, gera os documentos de `docs/Estrutura/`.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Meta
|
|
11
|
+
|
|
12
|
+
| Campo | Valor |
|
|
13
|
+
|-------|-------|
|
|
14
|
+
| Tipo | `setup-projeto` |
|
|
15
|
+
| Status | `em extração` → `aguardando revisão` → `aprovado` |
|
|
16
|
+
| Insumos processados | {{LISTA_INSUMOS}} |
|
|
17
|
+
| Gerado em | |
|
|
18
|
+
| Aprovado em | |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
<!--
|
|
23
|
+
=============================================================================
|
|
24
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
25
|
+
=============================================================================
|
|
26
|
+
|
|
27
|
+
QUANDO USAR: Gerado pelo /extract (chamado via /setup-projeto). NUNCA por /feature.
|
|
28
|
+
QUEM GERA: Agent Analyzer (Opus) a partir dos outputs dos Readers (Sonnet).
|
|
29
|
+
|
|
30
|
+
COMO GERAR:
|
|
31
|
+
1. Readers (Sonnet) leem cada arquivo de docs/PM/setup_projeto/ individualmente
|
|
32
|
+
2. Analyzer (Opus) recebe todos os outputs e:
|
|
33
|
+
a. Consolida decisões técnicas, stack, arquitetura, modelo base
|
|
34
|
+
b. Cruza informações entre fontes — detecta contradições
|
|
35
|
+
c. Identifica gaps — decisões críticas sem resposta viram perguntas §9
|
|
36
|
+
d. Gera este documento seguindo as 10 seções fixas
|
|
37
|
+
3. Focar em ESTRUTURA do sistema, não em features específicas
|
|
38
|
+
4. Para cada informação, registrar DE QUAL insumo veio (§10)
|
|
39
|
+
|
|
40
|
+
FORMATOS DE INSUMO (o que extrair de cada):
|
|
41
|
+
- .txt, .md → visão, requisitos técnicos, decisões de arquitetura
|
|
42
|
+
- .sql → modelo de dados base, convenções, tipos
|
|
43
|
+
- .html → protótipos que revelam stack frontend
|
|
44
|
+
- .xml (drawio) → diagramas de arquitetura, fluxos de infra
|
|
45
|
+
- .json → configurações, schemas
|
|
46
|
+
- Outros → extrair o que for relevante
|
|
47
|
+
|
|
48
|
+
PÓS-APROVAÇÃO:
|
|
49
|
+
- /design gera SDD a partir deste TRD
|
|
50
|
+
- /plan gera tasks DOC que criam os 8 docs de docs/Estrutura/
|
|
51
|
+
- Cada seção do TRD alimenta um doc específico:
|
|
52
|
+
§1 → Visao.md | §2 → Stack.md | §3 → Arquitetura.md
|
|
53
|
+
§4 → Modelo_Dados.md | §5 → API.md | §6 → Infraestrutura.md
|
|
54
|
+
§7 → Seguranca.md | §8 → Visao.md (roadmap de módulos)
|
|
55
|
+
|
|
56
|
+
REGRAS DA EXTRAÇÃO:
|
|
57
|
+
- Categorias FIXAS (as 10 seções abaixo) — não inventar novas
|
|
58
|
+
- SEM texto narrativo — apenas informação estruturada
|
|
59
|
+
- Ambiguidades são BLOQUEANTES (§9) — workflow para até responder
|
|
60
|
+
- Nunca INFERIR decisão técnica — se não está explícito, perguntar
|
|
61
|
+
- Contradição entre fontes → gerar pergunta em §9 citando ambos
|
|
62
|
+
|
|
63
|
+
RE-EXTRAÇÃO:
|
|
64
|
+
- Merge ADITIVO com TRD existente (não sobrescrever)
|
|
65
|
+
- Seções afetadas marcadas com <!-- ATUALIZADO: re-extração ISO_DATE -->
|
|
66
|
+
|
|
67
|
+
=============================================================================
|
|
68
|
+
-->
|
|
69
|
+
|
|
70
|
+
## 1. Visão do Sistema
|
|
71
|
+
|
|
72
|
+
### O que é?
|
|
73
|
+
<!-- Para que serve o sistema, qual problema resolve -->
|
|
74
|
+
|
|
75
|
+
### Quem usa?
|
|
76
|
+
|
|
77
|
+
| Ator | Papel | Permissões gerais |
|
|
78
|
+
|------|-------|--------------------|
|
|
79
|
+
| | | |
|
|
80
|
+
|
|
81
|
+
### Integrações externas
|
|
82
|
+
|
|
83
|
+
| Sistema | Direção | Descrição |
|
|
84
|
+
|---------|---------|-----------|
|
|
85
|
+
| | | |
|
|
86
|
+
|
|
87
|
+
### Restrições e premissas
|
|
88
|
+
-
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 2. Stack e Tecnologias
|
|
93
|
+
|
|
94
|
+
| Camada | Tecnologia | Versão | Justificativa extraída |
|
|
95
|
+
|--------|-----------|--------|------------------------|
|
|
96
|
+
| | | | |
|
|
97
|
+
|
|
98
|
+
### Ferramentas de desenvolvimento
|
|
99
|
+
|
|
100
|
+
| Ferramenta | Para quê |
|
|
101
|
+
|-----------|----------|
|
|
102
|
+
| | |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 3. Arquitetura
|
|
107
|
+
|
|
108
|
+
### Containers identificados
|
|
109
|
+
|
|
110
|
+
| Container | Tecnologia | Responsabilidade |
|
|
111
|
+
|-----------|-----------|-----------------|
|
|
112
|
+
| | | |
|
|
113
|
+
|
|
114
|
+
### Padrões de comunicação
|
|
115
|
+
-
|
|
116
|
+
|
|
117
|
+
### Padrões de design
|
|
118
|
+
-
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## 4. Modelo de Dados Base
|
|
123
|
+
|
|
124
|
+
> Extraído de: arquivos `.sql`, texto.
|
|
125
|
+
|
|
126
|
+
| Tabela | Campos principais | Propósito |
|
|
127
|
+
|--------|-------------------|-----------|
|
|
128
|
+
| | | |
|
|
129
|
+
|
|
130
|
+
### Convenções identificadas
|
|
131
|
+
-
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 5. Convenções de API
|
|
136
|
+
|
|
137
|
+
| Aspecto | Convenção extraída |
|
|
138
|
+
|---------|-------------------|
|
|
139
|
+
| Estilo | |
|
|
140
|
+
| Formato | |
|
|
141
|
+
| Versionamento | |
|
|
142
|
+
| Autenticação | |
|
|
143
|
+
| Paginação | |
|
|
144
|
+
| Erros | |
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## 6. Infraestrutura
|
|
149
|
+
|
|
150
|
+
| Aspecto | Decisão extraída |
|
|
151
|
+
|---------|-----------------|
|
|
152
|
+
| Hospedagem | |
|
|
153
|
+
| CI/CD | |
|
|
154
|
+
| Containers | |
|
|
155
|
+
| Ambientes | |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 7. Segurança
|
|
160
|
+
|
|
161
|
+
| Aspecto | Requisito extraído |
|
|
162
|
+
|---------|-------------------|
|
|
163
|
+
| Autenticação | |
|
|
164
|
+
| Autorização | |
|
|
165
|
+
| CORS | |
|
|
166
|
+
| Rate limiting | |
|
|
167
|
+
| LGPD | |
|
|
168
|
+
| Auditoria | |
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 8. Módulos Planejados
|
|
173
|
+
|
|
174
|
+
> Roadmap extraído dos insumos — ordem de implementação.
|
|
175
|
+
|
|
176
|
+
| # | Módulo | Prioridade | Dependências |
|
|
177
|
+
|---|--------|-----------|--------------|
|
|
178
|
+
| 1 | | | |
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 9. Ambiguidades e Perguntas
|
|
183
|
+
|
|
184
|
+
> ⚠️ **BLOQUEANTE** — responder antes de gerar docs/Estrutura/.
|
|
185
|
+
|
|
186
|
+
| # | Pergunta | Contexto | Resposta do usuário |
|
|
187
|
+
|---|----------|----------|---------------------|
|
|
188
|
+
| 1 | ⚠️ | | (aguardando) |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 10. Rastreabilidade
|
|
193
|
+
|
|
194
|
+
| Insumo | Tipo | O que foi extraído |
|
|
195
|
+
|--------|------|--------------------|
|
|
196
|
+
| `{{arquivo}}` | {{tipo}} | {{seções alimentadas}} |
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
> **Próximo passo**: Após aprovação, este TRD alimenta a geração de TODOS os documentos de `docs/Estrutura/`.
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# Roadmap de Produto — {{NOME}}
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
=============================================================================
|
|
5
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
6
|
+
=============================================================================
|
|
7
|
+
|
|
8
|
+
QUANDO USAR: Gerado APENAS pelo /extract durante /setup-projeto.
|
|
9
|
+
Nunca gerado em /feature.
|
|
10
|
+
|
|
11
|
+
COMO GERAR:
|
|
12
|
+
1. Durante a extração do TRD, o Analyzer encontra informações que não são infra
|
|
13
|
+
(regras de negócio, jornadas, telas, fluxos, entidades de domínio)
|
|
14
|
+
2. Em vez de listar features soltas, ORGANIZAR em fases de entrega:
|
|
15
|
+
a. Identificar entidades/funcionalidades nos insumos
|
|
16
|
+
b. Mapear dependências entre elas (ex: agendamento depende de cadastro)
|
|
17
|
+
c. Agrupar em fases por dependência + complexidade
|
|
18
|
+
d. Definir entregável por fase (o que o usuário pode usar ao final)
|
|
19
|
+
e. Priorizar: P1 (base/core), P2 (operacional), P3 (crescimento)
|
|
20
|
+
3. Para cada item, rastrear o arquivo fonte
|
|
21
|
+
4. Sugerir UMA feature única com nome descritivo (ex: feat_mvp, feat_produto)
|
|
22
|
+
|
|
23
|
+
PRINCÍPIO: Entregáveis contínuos — cada fase entrega valor e pode ir pra produção.
|
|
24
|
+
Nunca "tudo ou nada". Pequeno e constante.
|
|
25
|
+
|
|
26
|
+
CRITÉRIOS DE FASEAMENTO:
|
|
27
|
+
- Fase 1 sempre = cadastros base / fundação (sem isso nada funciona)
|
|
28
|
+
- Cada fase depende das anteriores (sequencial)
|
|
29
|
+
- Cada fase tem entregável testável pelo usuário
|
|
30
|
+
- Máximo 4-5 fases (se precisa de mais, agrupar melhor)
|
|
31
|
+
|
|
32
|
+
USO POSTERIOR:
|
|
33
|
+
- O usuário cria UMA feature (ex: /feature feat_mvp)
|
|
34
|
+
- O /extract dessa feature gera PRD com as fases já sugeridas aqui
|
|
35
|
+
- O /plan organiza tasks por fase de entrega × área
|
|
36
|
+
|
|
37
|
+
=============================================================================
|
|
38
|
+
-->
|
|
39
|
+
|
|
40
|
+
> Roadmap faseado de produto extraído dos insumos do setup.
|
|
41
|
+
> Organizado por fases de entrega incrementais — cada fase entrega valor e pode ir pra produção.
|
|
42
|
+
> Fonte de verdade para criação de features via `/feature`.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Feature sugerida: `{{FEATURE_NAME}}`
|
|
47
|
+
|
|
48
|
+
> {{Descrição em 1-2 frases do produto completo}}
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Fase 1 — {{Nome}} [P1 — Fundação]
|
|
53
|
+
|
|
54
|
+
> **Entregável**: {{O que o usuário pode fazer/ver ao final desta fase}}
|
|
55
|
+
> **Critério de done**: {{Como validar que a fase está pronta}}
|
|
56
|
+
|
|
57
|
+
### Funcionalidades
|
|
58
|
+
|
|
59
|
+
| # | Funcionalidade | Tipo | Descrição | Fonte |
|
|
60
|
+
|---|---------------|------|-----------|-------|
|
|
61
|
+
| 1 | | CRUD / Feature / Config | | {{arquivo}} |
|
|
62
|
+
|
|
63
|
+
### Entidades envolvidas
|
|
64
|
+
|
|
65
|
+
| Entidade | Campos principais | Fonte |
|
|
66
|
+
|----------|-------------------|-------|
|
|
67
|
+
| | | |
|
|
68
|
+
|
|
69
|
+
### Regras de negócio
|
|
70
|
+
|
|
71
|
+
| ID | Regra | Fonte |
|
|
72
|
+
|----|-------|-------|
|
|
73
|
+
| RN-001 | | {{arquivo}} |
|
|
74
|
+
|
|
75
|
+
### Jornadas de usuário
|
|
76
|
+
|
|
77
|
+
| # | Jornada | Atores | Fonte |
|
|
78
|
+
|---|---------|--------|-------|
|
|
79
|
+
| 1 | | | |
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Fase 2 — {{Nome}} [P1 — Core Business]
|
|
84
|
+
|
|
85
|
+
> **Entregável**: {{O que o usuário pode fazer/ver ao final desta fase}}
|
|
86
|
+
> **Critério de done**: {{Como validar}}
|
|
87
|
+
> **Depende de**: Fase 1
|
|
88
|
+
|
|
89
|
+
### Funcionalidades
|
|
90
|
+
|
|
91
|
+
| # | Funcionalidade | Tipo | Descrição | Fonte |
|
|
92
|
+
|---|---------------|------|-----------|-------|
|
|
93
|
+
| 1 | | | | |
|
|
94
|
+
|
|
95
|
+
### Entidades envolvidas
|
|
96
|
+
|
|
97
|
+
| Entidade | Campos principais | Fonte |
|
|
98
|
+
|----------|-------------------|-------|
|
|
99
|
+
| | | |
|
|
100
|
+
|
|
101
|
+
### Regras de negócio
|
|
102
|
+
|
|
103
|
+
| ID | Regra | Fonte |
|
|
104
|
+
|----|-------|-------|
|
|
105
|
+
| RN-NNN | | |
|
|
106
|
+
|
|
107
|
+
### Jornadas de usuário
|
|
108
|
+
|
|
109
|
+
| # | Jornada | Atores | Fonte |
|
|
110
|
+
|---|---------|--------|-------|
|
|
111
|
+
| 1 | | | |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Fase 3 — {{Nome}} [P2 — Operacional]
|
|
116
|
+
|
|
117
|
+
> **Entregável**: {{...}}
|
|
118
|
+
> **Critério de done**: {{...}}
|
|
119
|
+
> **Depende de**: Fase 2
|
|
120
|
+
|
|
121
|
+
<!-- Repetir estrutura -->
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Fase 4 — {{Nome}} [P3 — Crescimento]
|
|
126
|
+
|
|
127
|
+
> **Entregável**: {{...}}
|
|
128
|
+
> **Critério de done**: {{...}}
|
|
129
|
+
> **Depende de**: Fase 3
|
|
130
|
+
|
|
131
|
+
<!-- Repetir estrutura -->
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Visão geral das fases
|
|
136
|
+
|
|
137
|
+
| Fase | Nome | Prioridade | Entregável | Depende de |
|
|
138
|
+
|------|------|-----------|------------|------------|
|
|
139
|
+
| 1 | | P1 | | — |
|
|
140
|
+
| 2 | | P1 | | Fase 1 |
|
|
141
|
+
| 3 | | P2 | | Fase 2 |
|
|
142
|
+
| 4 | | P3 | | Fase 3 |
|
|
143
|
+
|
|
144
|
+
## Telas/fluxos identificados (por fase)
|
|
145
|
+
|
|
146
|
+
| # | Tela/Fluxo | Fase | Fonte |
|
|
147
|
+
|---|-----------|------|-------|
|
|
148
|
+
| 1 | | | |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
> **Próximo passo**: Criar a feature com `/feature {{FEATURE_NAME}}`
|
|
153
|
+
> O /extract vai gerar o PRD usando este roadmap como referência.
|
|
154
|
+
> O /plan vai organizar tasks por fase de entrega × área.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
nome: "{{NOME}}"
|
|
3
|
+
tipo: "{{feature|setup}}"
|
|
4
|
+
documento: "{{PRD|TRD}}"
|
|
5
|
+
pm_path: "docs/PM/{{NOME}}/"
|
|
6
|
+
status: "not_started"
|
|
7
|
+
ultima_skill: ""
|
|
8
|
+
atualizado_em: ""
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<!--
|
|
12
|
+
=============================================================================
|
|
13
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
14
|
+
=============================================================================
|
|
15
|
+
|
|
16
|
+
CAMPOS:
|
|
17
|
+
- nome: identificador da feature/setup (ex: feat_cadastro_cliente, setup_projeto)
|
|
18
|
+
- tipo: "feature" para /feature, "setup" para /setup-projeto
|
|
19
|
+
- documento: "PRD" para features, "TRD" para setup
|
|
20
|
+
- pm_path: caminho relativo para a pasta de insumos no PM/
|
|
21
|
+
- status: estado atual da pipeline (ver fluxo abaixo)
|
|
22
|
+
- ultima_skill: qual skill alterou este arquivo por último
|
|
23
|
+
- atualizado_em: data/hora ISO da última atualização
|
|
24
|
+
|
|
25
|
+
FLUXO DE STATUS:
|
|
26
|
+
not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
|
|
27
|
+
|
|
28
|
+
QUEM ATUALIZA:
|
|
29
|
+
- /setup-projeto ou /feature: cria o arquivo com status not_started
|
|
30
|
+
- /extract: not_started → extract_done
|
|
31
|
+
- /design: extract_done → approved → design_done (aprovação via pergunta ao usuário)
|
|
32
|
+
- /plan: design_done → plan_done
|
|
33
|
+
- /dev: plan_done → dev_in_progress → dev_done
|
|
34
|
+
- /merge-delta: dev_done → done (apenas para features, não para setup)
|
|
35
|
+
|
|
36
|
+
REGRAS:
|
|
37
|
+
- Nunca pular etapas no fluxo de status
|
|
38
|
+
- Nunca editar manualmente — apenas skills atualizam este arquivo
|
|
39
|
+
- Se status não corresponde ao esperado, a skill deve parar e avisar
|
|
40
|
+
|
|
41
|
+
=============================================================================
|
|
42
|
+
-->
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Extract Log — {{NOME}}
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
=============================================================================
|
|
5
|
+
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
6
|
+
=============================================================================
|
|
7
|
+
|
|
8
|
+
QUANDO USAR: Criado pelo /extract na primeira extração. Atualizado em re-extrações.
|
|
9
|
+
QUEM GERA: Agent Analyzer (Opus) ao final da extração.
|
|
10
|
+
|
|
11
|
+
COMO GERAR:
|
|
12
|
+
1. Cada extração gera uma nova seção com timestamp
|
|
13
|
+
2. Para cada arquivo processado: nome, hash SHA-256 (8 chars), classificação, status, seções alimentadas
|
|
14
|
+
3. Classificação: contexto de re-extração (NOVO, MODIFICADO, INALTERADO)
|
|
15
|
+
4. Status: resultado da leitura (extraído, parcial, não identificado)
|
|
16
|
+
5. Seções alimentadas: quais §N do PRD/TRD foram preenchidas a partir deste arquivo
|
|
17
|
+
|
|
18
|
+
REGRAS:
|
|
19
|
+
- Hashes são SHA-256 truncados em 8 caracteres
|
|
20
|
+
- Arquivo .gitkeep é sempre ignorado
|
|
21
|
+
- Arquivos INALTERADOS aparecem no log mas com seções "—"
|
|
22
|
+
- Append-only: nunca remover extrações anteriores do log
|
|
23
|
+
|
|
24
|
+
CLASSIFICAÇÕES POSSÍVEIS:
|
|
25
|
+
- NOVO: arquivo não existia no log anterior
|
|
26
|
+
- MODIFICADO: hash diferente do log anterior
|
|
27
|
+
- INALTERADO: hash igual ao log anterior
|
|
28
|
+
- NÃO IDENTIFICADO: Reader não conseguiu extrair conteúdo (binário, corrompido, formato desconhecido)
|
|
29
|
+
- PARCIAL: Reader extraiu algo mas com limitações (imagem sem OCR, PDF escaneado)
|
|
30
|
+
|
|
31
|
+
=============================================================================
|
|
32
|
+
-->
|
|
33
|
+
|
|
34
|
+
## Extração 1 — {{ISO_DATETIME}}
|
|
35
|
+
|
|
36
|
+
| Arquivo | Hash | Classificação | Status | Seções alimentadas |
|
|
37
|
+
|---------|------|---------------|--------|--------------------|
|
|
38
|
+
| `{{arquivo}}` | {{hash_8}} | NOVO | extraído | §N, §N |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# projetos.yaml — Manifesto de Repositórios
|
|
2
|
+
#
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# INSTRUÇÕES PARA O AGENTE
|
|
5
|
+
# =============================================================================
|
|
6
|
+
#
|
|
7
|
+
# QUANDO CRIAR: Gerado pelo /design (passo 3, setup) após definir a arquitetura.
|
|
8
|
+
# QUEM GERA: Agent Architect (Opus), baseado no TRD §3 (Arquitetura) e §6 (Infra).
|
|
9
|
+
#
|
|
10
|
+
# COMO GERAR:
|
|
11
|
+
# 1. Ler TRD §3 Arquitetura → identificar quais serviços existem (api, worker, web, etc.)
|
|
12
|
+
# 2. Para cada serviço, definir: nome do repo, path local, áreas de task, stack
|
|
13
|
+
# 3. Se o repo já existe no GitHub, marcar existing: true
|
|
14
|
+
# 4. Se é novo, marcar existing: false (será criado pelo /dev INFRA-001)
|
|
15
|
+
#
|
|
16
|
+
# REGRAS:
|
|
17
|
+
# - Todo serviço identificado no TRD §3 DEVE ter uma entrada
|
|
18
|
+
# - O campo `areas` define quais prefixos de task escrevem nesse repo
|
|
19
|
+
# - Uma área NÃO pode pertencer a dois repos (mapeamento 1:1)
|
|
20
|
+
# - BANCO pode ir junto com api (se usa EF migrations) ou separado (se repo de migrations)
|
|
21
|
+
# - O campo `stack` deve ser consistente com docs/Estrutura/Stack.md
|
|
22
|
+
# - O `org` é a organização/user do GitHub
|
|
23
|
+
# =============================================================================
|
|
24
|
+
|
|
25
|
+
# Organização/usuário no GitHub
|
|
26
|
+
org: "{{GITHUB_ORG}}"
|
|
27
|
+
|
|
28
|
+
# Nome base do projeto (usado como prefixo dos repos)
|
|
29
|
+
project: "{{PROJECT_NAME}}"
|
|
30
|
+
|
|
31
|
+
# Repositórios
|
|
32
|
+
repos:
|
|
33
|
+
# Exemplo: API backend
|
|
34
|
+
api:
|
|
35
|
+
repo: "{{GITHUB_ORG}}/{{PROJECT_NAME}}-api" # nome completo do repo
|
|
36
|
+
path: "projetos/api" # path local (relativo à raiz)
|
|
37
|
+
existing: false # true = clonar, false = criar
|
|
38
|
+
areas: [BACK, BANCO] # áreas de task que escrevem aqui
|
|
39
|
+
stack: ".NET 8" # stack principal
|
|
40
|
+
branch_prefix: "feature/" # prefixo de branches de feature
|
|
41
|
+
|
|
42
|
+
# Exemplo: Worker/background jobs
|
|
43
|
+
# worker:
|
|
44
|
+
# repo: "{{GITHUB_ORG}}/{{PROJECT_NAME}}-worker"
|
|
45
|
+
# path: "projetos/worker"
|
|
46
|
+
# existing: false
|
|
47
|
+
# areas: [BACK] # worker tem tasks BACK separadas
|
|
48
|
+
# stack: ".NET 8"
|
|
49
|
+
# branch_prefix: "feature/"
|
|
50
|
+
|
|
51
|
+
# Exemplo: Frontend web
|
|
52
|
+
# web:
|
|
53
|
+
# repo: "{{GITHUB_ORG}}/{{PROJECT_NAME}}-web"
|
|
54
|
+
# path: "projetos/web"
|
|
55
|
+
# existing: false
|
|
56
|
+
# areas: [FRONT]
|
|
57
|
+
# stack: "React"
|
|
58
|
+
# branch_prefix: "feature/"
|
|
59
|
+
|
|
60
|
+
# Exemplo: App mobile
|
|
61
|
+
# mobile:
|
|
62
|
+
# repo: "{{GITHUB_ORG}}/{{PROJECT_NAME}}-mobile"
|
|
63
|
+
# path: "projetos/mobile"
|
|
64
|
+
# existing: false
|
|
65
|
+
# areas: [MOBILE]
|
|
66
|
+
# stack: "React Native"
|
|
67
|
+
# branch_prefix: "feature/"
|
|
68
|
+
|
|
69
|
+
# Notas:
|
|
70
|
+
# - projetos/ está no .gitignore do projeto-base (contém repos independentes)
|
|
71
|
+
# - Cada repo tem seu próprio .git, CI/CD, e deploy
|
|
72
|
+
# - O projeto-base é o "cérebro" — specs, docs, pipeline
|
|
73
|
+
# - Os repos em projetos/ são o "corpo" — código implementado
|