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.
Files changed (45) hide show
  1. package/bin/cli.js +52 -0
  2. package/package.json +25 -0
  3. package/templates/.ai/memory/napkin.md +68 -0
  4. package/templates/.github/agents/backend-coder.md +215 -0
  5. package/templates/.github/agents/db-coder.md +165 -0
  6. package/templates/.github/agents/doc-writer.md +51 -0
  7. package/templates/.github/agents/frontend-coder.md +222 -0
  8. package/templates/.github/agents/infra-coder.md +341 -0
  9. package/templates/.github/agents/reviewer.md +99 -0
  10. package/templates/.github/agents/security-reviewer.md +153 -0
  11. package/templates/.github/copilot-instructions.md +176 -0
  12. package/templates/.github/instructions/docs.instructions.md +123 -0
  13. package/templates/.github/instructions/sensitive-files.instructions.md +32 -0
  14. package/templates/.github/skills/sf-design/SKILL.md +181 -0
  15. package/templates/.github/skills/sf-dev/SKILL.md +326 -0
  16. package/templates/.github/skills/sf-discovery/SKILL.md +405 -0
  17. package/templates/.github/skills/sf-extract/SKILL.md +284 -0
  18. package/templates/.github/skills/sf-feature/SKILL.md +130 -0
  19. package/templates/.github/skills/sf-merge-delta/SKILL.md +142 -0
  20. package/templates/.github/skills/sf-pausar/SKILL.md +120 -0
  21. package/templates/.github/skills/sf-plan/SKILL.md +178 -0
  22. package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -0
  23. package/templates/docs/Desenvolvimento/.gitkeep +0 -0
  24. package/templates/docs/Desenvolvimento/rules.md +229 -0
  25. package/templates/docs/Estrutura/.gitkeep +0 -0
  26. package/templates/docs/PM/.gitkeep +0 -0
  27. package/templates/docs/PM/setup_projeto/.gitkeep +0 -0
  28. package/templates/docs/_templates/estrutura/ADRs.template.md +91 -0
  29. package/templates/docs/_templates/estrutura/API.template.md +144 -0
  30. package/templates/docs/_templates/estrutura/Arquitetura.template.md +82 -0
  31. package/templates/docs/_templates/estrutura/Infraestrutura.template.md +104 -0
  32. package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +99 -0
  33. package/templates/docs/_templates/estrutura/Seguranca.template.md +138 -0
  34. package/templates/docs/_templates/estrutura/Stack.template.md +78 -0
  35. package/templates/docs/_templates/estrutura/Visao.template.md +82 -0
  36. package/templates/docs/_templates/feature/PRD.template.md +256 -0
  37. package/templates/docs/_templates/feature/Progresso.template.md +136 -0
  38. package/templates/docs/_templates/feature/TRD.template.md +200 -0
  39. package/templates/docs/_templates/feature/backlog-extraido.template.md +154 -0
  40. package/templates/docs/_templates/feature/context.template.md +42 -0
  41. package/templates/docs/_templates/feature/extract-log.template.md +38 -0
  42. package/templates/docs/_templates/feature/projetos.template.yaml +73 -0
  43. package/templates/docs/_templates/feature/sdd.template.md +372 -0
  44. package/templates/docs/_templates/feature/tasks.template.md +115 -0
  45. 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