spec-first-copilot 0.2.0 → 0.4.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 +148 -148
- package/bin/cli.js +52 -52
- package/lib/init.js +89 -93
- package/package.json +24 -23
- package/templates/.ai/memory/napkin.md +68 -68
- package/templates/.github/agents/backend-coder.md +215 -215
- package/templates/.github/agents/db-coder.md +165 -165
- package/templates/.github/agents/doc-writer.md +51 -51
- package/templates/.github/agents/frontend-coder.md +222 -222
- package/templates/.github/agents/infra-coder.md +341 -341
- package/templates/.github/agents/reviewer.md +99 -99
- package/templates/.github/agents/security-reviewer.md +153 -153
- package/templates/.github/copilot-instructions.md +175 -176
- package/templates/.github/instructions/docs.instructions.md +123 -123
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
- package/templates/.github/skills/sf-design/SKILL.md +181 -181
- package/templates/.github/skills/sf-dev/SKILL.md +349 -326
- package/templates/.github/skills/sf-extract/SKILL.md +284 -284
- package/templates/.github/skills/sf-feature/SKILL.md +130 -130
- package/templates/.github/skills/sf-merge-delta/SKILL.md +142 -142
- package/templates/.github/skills/sf-plan/SKILL.md +178 -178
- package/templates/.github/skills/{sf-pausar → sf-session-finish}/SKILL.md +120 -120
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
- package/templates/docs/Desenvolvimento/rules.md +229 -229
- package/templates/docs/_templates/estrutura/ADRs.template.md +91 -91
- package/templates/docs/_templates/estrutura/API.template.md +144 -144
- package/templates/docs/_templates/estrutura/Arquitetura.template.md +82 -82
- package/templates/docs/_templates/estrutura/Infraestrutura.template.md +104 -104
- package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +99 -99
- package/templates/docs/_templates/estrutura/Seguranca.template.md +138 -138
- package/templates/docs/_templates/estrutura/Stack.template.md +78 -78
- package/templates/docs/_templates/estrutura/Visao.template.md +82 -82
- package/templates/docs/_templates/feature/Progresso.template.md +136 -136
- package/templates/docs/_templates/feature/backlog-extraido.template.md +154 -154
- package/templates/docs/_templates/feature/context.template.md +42 -42
- package/templates/docs/_templates/feature/extract-log.template.md +38 -38
- package/templates/docs/_templates/feature/projetos.template.yaml +73 -73
- package/templates/docs/_templates/global/progresso_global.template.md +57 -57
|
@@ -1,154 +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.
|
|
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.
|
|
@@ -1,42 +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
|
-
-->
|
|
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
|
+
-->
|
|
@@ -1,38 +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 |
|
|
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 |
|
|
@@ -1,73 +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
|
|
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
|