spec-first-copilot 0.3.0 → 0.5.0-beta.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/README.md +38 -30
- package/lib/init.js +2 -2
- package/package.json +31 -23
- package/templates/.ai/memory/napkin.md +1 -1
- package/templates/.github/agents/db-coder.md +1 -1
- package/templates/.github/agents/doc-writer.md +12 -15
- package/templates/.github/agents/security-reviewer.md +1 -1
- package/templates/.github/copilot-instructions.md +61 -43
- package/templates/.github/instructions/docs.instructions.md +12 -12
- package/templates/.github/instructions/sensitive-files.instructions.md +10 -10
- package/templates/{docs/Desenvolvimento → .github}/rules.md +2 -2
- package/templates/.github/skills/sf-design/SKILL.md +26 -27
- package/templates/.github/skills/sf-dev/SKILL.md +30 -7
- package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
- package/templates/.github/skills/sf-extract/SKILL.md +9 -9
- package/templates/.github/skills/sf-feature/SKILL.md +21 -21
- package/templates/.github/skills/sf-merge-delta/SKILL.md +21 -18
- package/templates/.github/skills/sf-plan/SKILL.md +8 -8
- package/templates/.github/skills/{sf-pausar → sf-session-finish}/SKILL.md +10 -10
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +20 -20
- package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +24 -17
- package/templates/.github/templates/estrutura/architecture.template.md +158 -0
- package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +74 -10
- package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +21 -13
- package/templates/.github/templates/estrutura/domain.template.md +148 -0
- package/templates/{docs/_templates → .github/templates}/feature/PRD.template.md +256 -256
- package/templates/{docs/_templates → .github/templates}/feature/Progresso.template.md +2 -2
- package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
- package/templates/{docs/_templates → .github/templates}/feature/context.template.md +1 -1
- package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +1 -1
- package/templates/{docs/_templates → .github/templates}/feature/sdd.template.md +372 -372
- package/templates/{docs/_templates → .github/templates}/feature/tasks.template.md +115 -115
- package/templates/docs/_templates/estrutura/Arquitetura.template.md +0 -82
- package/templates/docs/_templates/estrutura/Infraestrutura.template.md +0 -104
- package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +0 -99
- package/templates/docs/_templates/estrutura/Stack.template.md +0 -78
- package/templates/docs/_templates/estrutura/Visao.template.md +0 -82
- /package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md +0 -0
- /package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +0 -0
- /package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +0 -0
- /package/templates/docs/{Desenvolvimento/.gitkeep → .gitkeep} +0 -0
- /package/templates/{docs/Estrutura → workspace/Input}/.gitkeep +0 -0
- /package/templates/{docs/PM → workspace/Input/setup_projeto}/.gitkeep +0 -0
- /package/templates/{docs/PM/setup_projeto → workspace/Output}/.gitkeep +0 -0
|
@@ -1,200 +1,204 @@
|
|
|
1
|
-
# TRD — {{PROJETO}}
|
|
2
|
-
## Technical Requirements Document
|
|
3
|
-
|
|
4
|
-
> **Artefato gerado pela IA** a partir do processamento de todos os insumos em `
|
|
5
|
-
> Este é o checkpoint de extração para ESTRUTURAÇÃO do projeto.
|
|
6
|
-
> Após aprovação, gera os documentos de `docs
|
|
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
|
|
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
|
-
-
|
|
51
|
-
|
|
52
|
-
§
|
|
53
|
-
§
|
|
54
|
-
§
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
|
142
|
-
|
|
143
|
-
|
|
|
144
|
-
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
|
166
|
-
|
|
167
|
-
|
|
|
168
|
-
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
1
|
+
# TRD — {{PROJETO}}
|
|
2
|
+
## Technical Requirements Document
|
|
3
|
+
|
|
4
|
+
> **Artefato gerado pela IA** a partir do processamento de todos os insumos em `workspace/Input/setup_projeto/`.
|
|
5
|
+
> Este é o checkpoint de extração para ESTRUTURAÇÃO do projeto.
|
|
6
|
+
> Após aprovação, gera os documentos de `docs/`.
|
|
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 workspace/Input/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 e cria os 5 docs de docs/
|
|
50
|
+
- Mapeamento TRD → doc de Estrutura (1 seção pode alimentar múltiplos docs):
|
|
51
|
+
§1 Visão → domain.md
|
|
52
|
+
§2 Stack → architecture.md (stack principal) + conventions.md (alternativas, versionamento)
|
|
53
|
+
§3 Arquitetura → architecture.md
|
|
54
|
+
§4 Modelo de Dados → domain.md
|
|
55
|
+
§5 API → apiContracts.md (rotas, paginação, erros, catálogo) + conventions.md (códigos de erro do domínio)
|
|
56
|
+
§6 Infraestrutura → architecture.md (ambientes, deploy, CI/CD) + conventions.md (env vars, domínios, monitoramento)
|
|
57
|
+
§7 Segurança → conventions.md
|
|
58
|
+
§8 Módulos → backlog faseado (NÃO vira doc de Estrutura)
|
|
59
|
+
|
|
60
|
+
REGRAS DA EXTRAÇÃO:
|
|
61
|
+
- Categorias FIXAS (as 10 seções abaixo) — não inventar novas
|
|
62
|
+
- SEM texto narrativo — apenas informação estruturada
|
|
63
|
+
- Ambiguidades são BLOQUEANTES (§9) — workflow para até responder
|
|
64
|
+
- Nunca INFERIR decisão técnica — se não está explícito, perguntar
|
|
65
|
+
- Contradição entre fontes → gerar pergunta em §9 citando ambos
|
|
66
|
+
|
|
67
|
+
RE-EXTRAÇÃO:
|
|
68
|
+
- Merge ADITIVO com TRD existente (não sobrescrever)
|
|
69
|
+
- Seções afetadas marcadas com <!-- ATUALIZADO: re-extração ISO_DATE -->
|
|
70
|
+
|
|
71
|
+
=============================================================================
|
|
72
|
+
-->
|
|
73
|
+
|
|
74
|
+
## 1. Visão do Sistema
|
|
75
|
+
|
|
76
|
+
### O que é?
|
|
77
|
+
<!-- Para que serve o sistema, qual problema resolve -->
|
|
78
|
+
|
|
79
|
+
### Quem usa?
|
|
80
|
+
|
|
81
|
+
| Ator | Papel | Permissões gerais |
|
|
82
|
+
|------|-------|--------------------|
|
|
83
|
+
| | | |
|
|
84
|
+
|
|
85
|
+
### Integrações externas
|
|
86
|
+
|
|
87
|
+
| Sistema | Direção | Descrição |
|
|
88
|
+
|---------|---------|-----------|
|
|
89
|
+
| | | |
|
|
90
|
+
|
|
91
|
+
### Restrições e premissas
|
|
92
|
+
-
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 2. Stack e Tecnologias
|
|
97
|
+
|
|
98
|
+
| Camada | Tecnologia | Versão | Justificativa extraída |
|
|
99
|
+
|--------|-----------|--------|------------------------|
|
|
100
|
+
| | | | |
|
|
101
|
+
|
|
102
|
+
### Ferramentas de desenvolvimento
|
|
103
|
+
|
|
104
|
+
| Ferramenta | Para quê |
|
|
105
|
+
|-----------|----------|
|
|
106
|
+
| | |
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 3. Arquitetura
|
|
111
|
+
|
|
112
|
+
### Containers identificados
|
|
113
|
+
|
|
114
|
+
| Container | Tecnologia | Responsabilidade |
|
|
115
|
+
|-----------|-----------|-----------------|
|
|
116
|
+
| | | |
|
|
117
|
+
|
|
118
|
+
### Padrões de comunicação
|
|
119
|
+
-
|
|
120
|
+
|
|
121
|
+
### Padrões de design
|
|
122
|
+
-
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 4. Modelo de Dados Base
|
|
127
|
+
|
|
128
|
+
> Extraído de: arquivos `.sql`, texto.
|
|
129
|
+
|
|
130
|
+
| Tabela | Campos principais | Propósito |
|
|
131
|
+
|--------|-------------------|-----------|
|
|
132
|
+
| | | |
|
|
133
|
+
|
|
134
|
+
### Convenções identificadas
|
|
135
|
+
-
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 5. Convenções de API
|
|
140
|
+
|
|
141
|
+
| Aspecto | Convenção extraída |
|
|
142
|
+
|---------|-------------------|
|
|
143
|
+
| Estilo | |
|
|
144
|
+
| Formato | |
|
|
145
|
+
| Versionamento | |
|
|
146
|
+
| Autenticação | |
|
|
147
|
+
| Paginação | |
|
|
148
|
+
| Erros | |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 6. Infraestrutura
|
|
153
|
+
|
|
154
|
+
| Aspecto | Decisão extraída |
|
|
155
|
+
|---------|-----------------|
|
|
156
|
+
| Hospedagem | |
|
|
157
|
+
| CI/CD | |
|
|
158
|
+
| Containers | |
|
|
159
|
+
| Ambientes | |
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 7. Segurança
|
|
164
|
+
|
|
165
|
+
| Aspecto | Requisito extraído |
|
|
166
|
+
|---------|-------------------|
|
|
167
|
+
| Autenticação | |
|
|
168
|
+
| Autorização | |
|
|
169
|
+
| CORS | |
|
|
170
|
+
| Rate limiting | |
|
|
171
|
+
| LGPD | |
|
|
172
|
+
| Auditoria | |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 8. Módulos Planejados
|
|
177
|
+
|
|
178
|
+
> Roadmap extraído dos insumos — ordem de implementação.
|
|
179
|
+
|
|
180
|
+
| # | Módulo | Prioridade | Dependências |
|
|
181
|
+
|---|--------|-----------|--------------|
|
|
182
|
+
| 1 | | | |
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 9. Ambiguidades e Perguntas
|
|
187
|
+
|
|
188
|
+
> ⚠️ **BLOQUEANTE** — responder antes de gerar docs/.
|
|
189
|
+
|
|
190
|
+
| # | Pergunta | Contexto | Resposta do usuário |
|
|
191
|
+
|---|----------|----------|---------------------|
|
|
192
|
+
| 1 | ⚠️ | | (aguardando) |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 10. Rastreabilidade
|
|
197
|
+
|
|
198
|
+
| Insumo | Tipo | O que foi extraído |
|
|
199
|
+
|--------|------|--------------------|
|
|
200
|
+
| `{{arquivo}}` | {{tipo}} | {{seções alimentadas}} |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
> **Próximo passo**: Após aprovação, este TRD alimenta a geração de TODOS os documentos de `docs/`.
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# - O campo `areas` define quais prefixos de task escrevem nesse repo
|
|
19
19
|
# - Uma área NÃO pode pertencer a dois repos (mapeamento 1:1)
|
|
20
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/
|
|
21
|
+
# - O campo `stack` deve ser consistente com docs/architecture.md (seção Stack Principal)
|
|
22
22
|
# - O `org` é a organização/user do GitHub
|
|
23
23
|
# =============================================================================
|
|
24
24
|
|