spec-first-copilot 0.5.0-beta.0 → 0.5.0-beta.2
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 +9 -3
- package/package.json +1 -1
- package/templates/.github/agents/backend-coder.md +215 -215
- package/templates/.github/agents/db-coder.md +165 -165
- 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 +219 -194
- 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 +209 -180
- package/templates/.github/skills/sf-dev/SKILL.md +354 -349
- package/templates/.github/skills/sf-feature/SKILL.md +130 -130
- package/templates/.github/skills/sf-plan/SKILL.md +180 -178
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
- package/templates/.github/templates/feature/PRD.template.md +256 -256
- package/templates/.github/templates/feature/Progresso.template.md +136 -136
- package/templates/.github/templates/specs/brief.template.md +47 -0
- package/templates/.github/templates/specs/contracts.template.md +82 -0
- package/templates/.github/templates/specs/scenarios.template.md +79 -0
- package/templates/.github/templates/specs/tasks.template.md +61 -0
- package/templates/.github/templates/feature/tasks.template.md +0 -115
- /package/templates/{docs → specs}/.gitkeep +0 -0
|
@@ -1,194 +1,219 @@
|
|
|
1
|
-
# Copilot Instructions — Projeto
|
|
2
|
-
|
|
3
|
-
> Regras globais que o agente deve seguir em TODAS as interações neste projeto.
|
|
4
|
-
> Este arquivo é lido automaticamente no início de cada sessão.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Inicialização (executar no início de cada sessão)
|
|
9
|
-
|
|
10
|
-
### 1. Verificar dependências do workflow
|
|
11
|
-
|
|
12
|
-
| Dependência | Caminho | Se não existir |
|
|
13
|
-
|-------------|---------|----------------|
|
|
14
|
-
| Napkin (memória) | `.ai/memory/napkin.md` | Criar com formato padrão: seções Decisões, Padrões, Armadilhas, Preferências (máx 10 itens/seção) |
|
|
15
|
-
| Templates | `.github/templates/` | ERRO — projeto não está configurado |
|
|
16
|
-
| Skills | `.github/skills/` | ERRO — projeto não está configurado |
|
|
17
|
-
| Agents | `.github/agents/` | ERRO — projeto não está configurado |
|
|
18
|
-
| Rules | `.github/rules.md` | ERRO — projeto não está configurado |
|
|
19
|
-
| Retomada | `workspace/Output/retomada.md` | OK — primeira sessão |
|
|
20
|
-
|
|
21
|
-
### 2. Validar acesso a todas skills
|
|
22
|
-
|
|
23
|
-
Verificar que TODAS as 9 skills estão acessíveis:
|
|
24
|
-
|
|
25
|
-
| Skill | Caminho |
|
|
26
|
-
|-------|---------|
|
|
27
|
-
| `/sf-setup-projeto` | `.github/skills/sf-setup-projeto/SKILL.md` |
|
|
28
|
-
| `/sf-feature` | `.github/skills/sf-feature/SKILL.md` |
|
|
29
|
-
| `/sf-extract` | `.github/skills/sf-extract/SKILL.md` |
|
|
30
|
-
| `/sf-design` | `.github/skills/sf-design/SKILL.md` |
|
|
31
|
-
| `/sf-plan` | `.github/skills/sf-plan/SKILL.md` |
|
|
32
|
-
| `/sf-dev` | `.github/skills/sf-dev/SKILL.md` |
|
|
33
|
-
| `/sf-merge-delta` | `.github/skills/sf-merge-delta/SKILL.md` |
|
|
34
|
-
| `/sf-session-finish` | `.github/skills/sf-session-finish/SKILL.md` |
|
|
35
|
-
| `/sf-discovery` | `.github/skills/sf-discovery/SKILL.md` |
|
|
36
|
-
|
|
37
|
-
Se alguma skill não for encontrada → avisar o usuário.
|
|
38
|
-
|
|
39
|
-
### 3. Carregar contexto
|
|
40
|
-
|
|
41
|
-
1. Ler `.ai/memory/napkin.md` — decisões e padrões acumulados
|
|
42
|
-
2. Ler `workspace/Output/retomada.md` (se existir) — ponto de retomada da última sessão
|
|
43
|
-
3. Ler `docs/` (se existir) — contexto global do projeto (architecture, domain, conventions, apiContracts, decisions)
|
|
44
|
-
4. Ler `.github/rules.md` — regras de desenvolvimento
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Identidade do Projeto
|
|
49
|
-
|
|
50
|
-
Este é um projeto que utiliza desenvolvimento **spec-first** assistido por IA.
|
|
51
|
-
|
|
52
|
-
### Arquitetura: Projeto-base vs Repos de código
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
ESTE REPO (projeto-base) = ORQUESTRADOR
|
|
56
|
-
├── .github/ ← AI operational config (rules, templates, skills, agents)
|
|
57
|
-
├── docs/ ← estado do sistema (architecture, domain, conventions, apiContracts, decisions)
|
|
58
|
-
├── workspace/ ← content compartilhável
|
|
59
|
-
│ ├── Input/ ← insumos brutos do time
|
|
60
|
-
│ └── Output/ ← outputs por feature (PRD, TRD, SDD, tasks, progresso)
|
|
61
|
-
├── projetos.yaml ← manifesto de repos
|
|
62
|
-
└── projetos/ ← repos de código (gitignored, cada um com .git próprio)
|
|
63
|
-
├── api/ ← repo: org/projeto-api
|
|
64
|
-
├── web/ ← repo: org/projeto-web
|
|
65
|
-
└── worker/ ← repo: org/projeto-worker
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**Três zonas, zero ambiguidade:**
|
|
69
|
-
- **`.github/` + `.ai/`** → AI operational config (rules, templates, skills, agents, memória) — time edita raro
|
|
70
|
-
- **`docs/`** → estado do sistema (gerado pelo /sf-design e /sf-merge-delta)
|
|
71
|
-
- **`workspace/`** → content compartilhável (Input = time, Output = workflow)
|
|
72
|
-
- **`projetos/`** → código dos serviços (branches, PRs, commits acontecem aí)
|
|
73
|
-
|
|
74
|
-
Nenhum código é escrito sem especificação aprovada (SDD).
|
|
75
|
-
|
|
76
|
-
## Pipeline do Workflow
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
workspace/Input/ (qualquer arquivo)
|
|
80
|
-
↓ /sf-setup-projeto (uma vez) ou /sf-feature (por feature)
|
|
81
|
-
/sf-discovery → análise profunda dos insumos (RECOMENDADO, opcional)
|
|
82
|
-
↓
|
|
83
|
-
/sf-extract → PRD ou TRD em workspace/Output/{nome}/ (checkpoint — usuário revisa e aprova)
|
|
84
|
-
↓
|
|
85
|
-
/sf-design → SDD + projetos.yaml + docs/ (5 docs de sistema — só setup)
|
|
86
|
-
↓
|
|
87
|
-
/sf-plan →
|
|
88
|
-
↓
|
|
89
|
-
/sf-dev → código nos repos (Security Review pós-dev)
|
|
90
|
-
→ merge-delta automático em features (aplica SDD §11 em docs/)
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Skills disponíveis
|
|
94
|
-
|
|
95
|
-
| Skill | Tipo | O que faz |
|
|
96
|
-
|-------|------|-----------|
|
|
97
|
-
| `/sf-setup-projeto` | Orquestrador | Bootstrap: cria .context.md, chama /sf-extract, para no checkpoint. Roda UMA vez |
|
|
98
|
-
| `/sf-feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /sf-extract, para no checkpoint |
|
|
99
|
-
| `/sf-extract <nome>` | Atômica | Lê workspace/Input/{nome}/ → gera PRD ou TRD. Re-executável para novos insumos |
|
|
100
|
-
| `/sf-design <nome>` | Atômica | Pergunta aprovação → gera SDD a partir do PRD/TRD |
|
|
101
|
-
| `/sf-plan <nome>` | Atômica | Lê SDD → gera tasks por área + Progresso.md |
|
|
102
|
-
| `/sf-dev <nome>` | Atômica | Implementa tasks com loop (implement → test → review). Agents por área. Merge-delta automático em features |
|
|
103
|
-
| `/sf-merge-delta <nome>` | Atômica | Aplica SDD §11 Delta Specs em docs/ (chamado automaticamente pelo /sf-dev, re-executável manualmente) |
|
|
104
|
-
| `/sf-session-finish` | Utilitária | Encerra sessão: salva estado, atualiza napkin, gera retomada.md |
|
|
105
|
-
| `/sf-discovery` | Utilitária | Análise profunda de sistemas, arquiteturas e documentações |
|
|
106
|
-
|
|
107
|
-
## Agents especializados (usados pelo /dev)
|
|
108
|
-
|
|
109
|
-
| Agent | Área | Stack padrão | Perfil |
|
|
110
|
-
|-------|------|-------------|--------|
|
|
111
|
-
| Backend Coder | BACK | .NET 8 / C# | `.github/agents/backend-coder.md` |
|
|
112
|
-
| Frontend Coder | FRONT | React + Fusion | `.github/agents/frontend-coder.md` |
|
|
113
|
-
| DB Coder | BANCO | PostgreSQL 16 | `.github/agents/db-coder.md` |
|
|
114
|
-
| Infra Coder | INFRA | Docker | `.github/agents/infra-coder.md` |
|
|
115
|
-
| Doc Writer | DOC | — | `.github/agents/doc-writer.md` |
|
|
116
|
-
| Reviewer | Todas | — | `.github/agents/reviewer.md` |
|
|
117
|
-
| Security Reviewer | Todas | — | `.github/agents/security-reviewer.md` |
|
|
118
|
-
|
|
119
|
-
## Estado da pipeline (`.context.md`)
|
|
120
|
-
|
|
121
|
-
Cada feature/setup tem um `.context.md` em `workspace/Output/{nome}/` que controla o fluxo:
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skill só avança se o status anterior está correto.
|
|
128
|
-
|
|
129
|
-
## Regras Invioláveis
|
|
130
|
-
|
|
131
|
-
1. **Spec-first**: NUNCA gerar código sem SDD aprovado
|
|
132
|
-
2. **Input é sagrado**: NUNCA modificar arquivos em `workspace/Input/`
|
|
133
|
-
3. **Extração rígida**: categorias fixas do template, sem texto narrativo, ambiguidades são BLOQUEANTES
|
|
134
|
-
4. **SDD é auto-contido**: coder lê APENAS SDD + task, NUNCA PRD/PM diretamente
|
|
135
|
-
5. **Memória ativa**: ler napkin.md no início, atualizar ao descobrir padrões/armadilhas
|
|
136
|
-
6. **Progresso atualizado**: atualizar Progresso.md ao concluir cada task
|
|
137
|
-
7. **Delta Specs**: todo SDD tem §11 ADDED/MODIFIED/REMOVED — obrigatório
|
|
138
|
-
8. **Testes junto com código**: implementar e testar na mesma task, não separar
|
|
139
|
-
|
|
140
|
-
## Estrutura de Documentação
|
|
141
|
-
|
|
142
|
-
```
|
|
143
|
-
.github/
|
|
144
|
-
├── copilot-instructions.md ← Regras globais pro agente (este arquivo)
|
|
145
|
-
├── rules.md ← Regras de desenvolvimento (lidas pelos coders)
|
|
146
|
-
├── templates/ ← Templates do workflow
|
|
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
|
-
|
|
1
|
+
# Copilot Instructions — Projeto
|
|
2
|
+
|
|
3
|
+
> Regras globais que o agente deve seguir em TODAS as interações neste projeto.
|
|
4
|
+
> Este arquivo é lido automaticamente no início de cada sessão.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Inicialização (executar no início de cada sessão)
|
|
9
|
+
|
|
10
|
+
### 1. Verificar dependências do workflow
|
|
11
|
+
|
|
12
|
+
| Dependência | Caminho | Se não existir |
|
|
13
|
+
|-------------|---------|----------------|
|
|
14
|
+
| Napkin (memória) | `.ai/memory/napkin.md` | Criar com formato padrão: seções Decisões, Padrões, Armadilhas, Preferências (máx 10 itens/seção) |
|
|
15
|
+
| Templates | `.github/templates/` | ERRO — projeto não está configurado |
|
|
16
|
+
| Skills | `.github/skills/` | ERRO — projeto não está configurado |
|
|
17
|
+
| Agents | `.github/agents/` | ERRO — projeto não está configurado |
|
|
18
|
+
| Rules | `.github/rules.md` | ERRO — projeto não está configurado |
|
|
19
|
+
| Retomada | `workspace/Output/retomada.md` | OK — primeira sessão |
|
|
20
|
+
|
|
21
|
+
### 2. Validar acesso a todas skills
|
|
22
|
+
|
|
23
|
+
Verificar que TODAS as 9 skills estão acessíveis:
|
|
24
|
+
|
|
25
|
+
| Skill | Caminho |
|
|
26
|
+
|-------|---------|
|
|
27
|
+
| `/sf-setup-projeto` | `.github/skills/sf-setup-projeto/SKILL.md` |
|
|
28
|
+
| `/sf-feature` | `.github/skills/sf-feature/SKILL.md` |
|
|
29
|
+
| `/sf-extract` | `.github/skills/sf-extract/SKILL.md` |
|
|
30
|
+
| `/sf-design` | `.github/skills/sf-design/SKILL.md` |
|
|
31
|
+
| `/sf-plan` | `.github/skills/sf-plan/SKILL.md` |
|
|
32
|
+
| `/sf-dev` | `.github/skills/sf-dev/SKILL.md` |
|
|
33
|
+
| `/sf-merge-delta` | `.github/skills/sf-merge-delta/SKILL.md` |
|
|
34
|
+
| `/sf-session-finish` | `.github/skills/sf-session-finish/SKILL.md` |
|
|
35
|
+
| `/sf-discovery` | `.github/skills/sf-discovery/SKILL.md` |
|
|
36
|
+
|
|
37
|
+
Se alguma skill não for encontrada → avisar o usuário.
|
|
38
|
+
|
|
39
|
+
### 3. Carregar contexto
|
|
40
|
+
|
|
41
|
+
1. Ler `.ai/memory/napkin.md` — decisões e padrões acumulados
|
|
42
|
+
2. Ler `workspace/Output/retomada.md` (se existir) — ponto de retomada da última sessão
|
|
43
|
+
3. Ler `docs/` (se existir) — contexto global do projeto (architecture, domain, conventions, apiContracts, decisions)
|
|
44
|
+
4. Ler `.github/rules.md` — regras de desenvolvimento
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Identidade do Projeto
|
|
49
|
+
|
|
50
|
+
Este é um projeto que utiliza desenvolvimento **spec-first** assistido por IA.
|
|
51
|
+
|
|
52
|
+
### Arquitetura: Projeto-base vs Repos de código
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
ESTE REPO (projeto-base) = ORQUESTRADOR
|
|
56
|
+
├── .github/ ← AI operational config (rules, templates, skills, agents)
|
|
57
|
+
├── docs/ ← estado do sistema (architecture, domain, conventions, apiContracts, decisions)
|
|
58
|
+
├── workspace/ ← content compartilhável
|
|
59
|
+
│ ├── Input/ ← insumos brutos do time
|
|
60
|
+
│ └── Output/ ← outputs por feature (PRD, TRD, SDD, tasks, progresso)
|
|
61
|
+
├── projetos.yaml ← manifesto de repos
|
|
62
|
+
└── projetos/ ← repos de código (gitignored, cada um com .git próprio)
|
|
63
|
+
├── api/ ← repo: org/projeto-api
|
|
64
|
+
├── web/ ← repo: org/projeto-web
|
|
65
|
+
└── worker/ ← repo: org/projeto-worker
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Três zonas, zero ambiguidade:**
|
|
69
|
+
- **`.github/` + `.ai/`** → AI operational config (rules, templates, skills, agents, memória) — time edita raro
|
|
70
|
+
- **`docs/`** → estado do sistema (gerado pelo /sf-design e /sf-merge-delta)
|
|
71
|
+
- **`workspace/`** → content compartilhável (Input = time, Output = workflow)
|
|
72
|
+
- **`projetos/`** → código dos serviços (branches, PRs, commits acontecem aí)
|
|
73
|
+
|
|
74
|
+
Nenhum código é escrito sem especificação aprovada (SDD).
|
|
75
|
+
|
|
76
|
+
## Pipeline do Workflow
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
workspace/Input/ (qualquer arquivo)
|
|
80
|
+
↓ /sf-setup-projeto (uma vez) ou /sf-feature (por feature)
|
|
81
|
+
/sf-discovery → análise profunda dos insumos (RECOMENDADO, opcional)
|
|
82
|
+
↓
|
|
83
|
+
/sf-extract → PRD ou TRD em workspace/Output/{nome}/ (checkpoint — usuário revisa e aprova)
|
|
84
|
+
↓
|
|
85
|
+
/sf-design → SDD + projetos.yaml + docs/ (5 docs de sistema — só setup)
|
|
86
|
+
↓
|
|
87
|
+
/sf-plan → specs/{nome}/tasks.md + Progresso.md em workspace/Output/{nome}/ (tasks por fase × área)
|
|
88
|
+
↓
|
|
89
|
+
/sf-dev → código nos repos (Security Review pós-dev)
|
|
90
|
+
→ merge-delta automático em features (aplica SDD §11 em docs/)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Skills disponíveis
|
|
94
|
+
|
|
95
|
+
| Skill | Tipo | O que faz |
|
|
96
|
+
|-------|------|-----------|
|
|
97
|
+
| `/sf-setup-projeto` | Orquestrador | Bootstrap: cria .context.md, chama /sf-extract, para no checkpoint. Roda UMA vez |
|
|
98
|
+
| `/sf-feature <nome>` | Orquestrador | Feature: cria .context.md tipo PRD, chama /sf-extract, para no checkpoint |
|
|
99
|
+
| `/sf-extract <nome>` | Atômica | Lê workspace/Input/{nome}/ → gera PRD ou TRD. Re-executável para novos insumos |
|
|
100
|
+
| `/sf-design <nome>` | Atômica | Pergunta aprovação → gera SDD a partir do PRD/TRD |
|
|
101
|
+
| `/sf-plan <nome>` | Atômica | Lê SDD → gera tasks por área + Progresso.md |
|
|
102
|
+
| `/sf-dev <nome>` | Atômica | Implementa tasks com loop (implement → test → review). Agents por área. Merge-delta automático em features |
|
|
103
|
+
| `/sf-merge-delta <nome>` | Atômica | Aplica SDD §11 Delta Specs em docs/ (chamado automaticamente pelo /sf-dev, re-executável manualmente) |
|
|
104
|
+
| `/sf-session-finish` | Utilitária | Encerra sessão: salva estado, atualiza napkin, gera retomada.md |
|
|
105
|
+
| `/sf-discovery` | Utilitária | Análise profunda de sistemas, arquiteturas e documentações |
|
|
106
|
+
|
|
107
|
+
## Agents especializados (usados pelo /dev)
|
|
108
|
+
|
|
109
|
+
| Agent | Área | Stack padrão | Perfil |
|
|
110
|
+
|-------|------|-------------|--------|
|
|
111
|
+
| Backend Coder | BACK | .NET 8 / C# | `.github/agents/backend-coder.md` |
|
|
112
|
+
| Frontend Coder | FRONT | React + Fusion | `.github/agents/frontend-coder.md` |
|
|
113
|
+
| DB Coder | BANCO | PostgreSQL 16 | `.github/agents/db-coder.md` |
|
|
114
|
+
| Infra Coder | INFRA | Docker | `.github/agents/infra-coder.md` |
|
|
115
|
+
| Doc Writer | DOC | — | `.github/agents/doc-writer.md` |
|
|
116
|
+
| Reviewer | Todas | — | `.github/agents/reviewer.md` |
|
|
117
|
+
| Security Reviewer | Todas | — | `.github/agents/security-reviewer.md` |
|
|
118
|
+
|
|
119
|
+
## Estado da pipeline (`.context.md`)
|
|
120
|
+
|
|
121
|
+
Cada feature/setup tem um `.context.md` em `workspace/Output/{nome}/` que controla o fluxo:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Antes de executar qualquer skill, verificar o status no `.context.md`. Cada skill só avança se o status anterior está correto.
|
|
128
|
+
|
|
129
|
+
## Regras Invioláveis
|
|
130
|
+
|
|
131
|
+
1. **Spec-first**: NUNCA gerar código sem SDD aprovado
|
|
132
|
+
2. **Input é sagrado**: NUNCA modificar arquivos em `workspace/Input/`
|
|
133
|
+
3. **Extração rígida**: categorias fixas do template, sem texto narrativo, ambiguidades são BLOQUEANTES
|
|
134
|
+
4. **SDD é auto-contido**: coder lê APENAS SDD + task, NUNCA PRD/PM diretamente
|
|
135
|
+
5. **Memória ativa**: ler napkin.md no início, atualizar ao descobrir padrões/armadilhas
|
|
136
|
+
6. **Progresso atualizado**: atualizar Progresso.md ao concluir cada task
|
|
137
|
+
7. **Delta Specs**: todo SDD tem §11 ADDED/MODIFIED/REMOVED — obrigatório
|
|
138
|
+
8. **Testes junto com código**: implementar e testar na mesma task, não separar
|
|
139
|
+
|
|
140
|
+
## Estrutura de Documentação
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
.github/ ← AI OPERATIONAL CONFIG
|
|
144
|
+
├── copilot-instructions.md ← Regras globais pro agente (este arquivo)
|
|
145
|
+
├── rules.md ← Regras de desenvolvimento (lidas pelos coders)
|
|
146
|
+
├── templates/ ← Templates do workflow
|
|
147
|
+
│ ├── feature/ ← PRD, TRD, SDD, context, extract-log, Progresso, backlog-extraido, projetos.yaml
|
|
148
|
+
│ ├── specs/ ← brief, contracts, scenarios, tasks (projeções pro agent)
|
|
149
|
+
│ ├── estrutura/ ← architecture, domain, conventions, apiContracts, decisions (setup)
|
|
150
|
+
│ └── global/ ← progresso_global
|
|
151
|
+
├── skills/ ← 9 skills atômicas
|
|
152
|
+
├── agents/ ← 7 perfis de agents especializados
|
|
153
|
+
└── instructions/ ← Instruções por contexto
|
|
154
|
+
|
|
155
|
+
docs/ ← SYSTEM KNOWLEDGE (gerado pelo /sf-design)
|
|
156
|
+
├── architecture.md ← C4 + stack + ambientes + deploy
|
|
157
|
+
├── domain.md ← Visão de negócio + modelo de dados
|
|
158
|
+
├── conventions.md ← Auth, authz, LGPD, env vars, monitoramento
|
|
159
|
+
├── apiContracts.md ← Rotas, paginação, catálogo de endpoints
|
|
160
|
+
└── decisions.md ← ADRs
|
|
161
|
+
|
|
162
|
+
specs/ ← AGENT CONTRACTS (projeções do SDD pro coder)
|
|
163
|
+
└── {nome}/
|
|
164
|
+
├── brief.md ← Problema/Solução (projeção de SDD §1+§2+§10)
|
|
165
|
+
├── contracts.md ← Dados/API/Integrações (projeção de SDD §3+§4+§5+§8)
|
|
166
|
+
├── scenarios.md ← Fluxos/UI/CAs (projeção de SDD §6+§7+§9)
|
|
167
|
+
└── tasks.md ← Tabela única com coluna Área (gerado pelo /sf-plan)
|
|
168
|
+
|
|
169
|
+
workspace/ ← TEAM CONTENT (futuro wiki)
|
|
170
|
+
├── Input/ ← Insumos brutos (QUALQUER formato — nunca modificar)
|
|
171
|
+
│ ├── setup_projeto/ ← Insumos de bootstrap
|
|
172
|
+
│ └── feat_*/ ← Insumos por feature
|
|
173
|
+
└── Output/ ← Artefatos humanos gerados pelo workflow
|
|
174
|
+
└── {nome}/
|
|
175
|
+
├── PRD.md ou TRD.md ← Requirements (gerado pelo /sf-extract)
|
|
176
|
+
├── sdd.md ← Especificação técnica narrativa (gerado pelo /sf-design)
|
|
177
|
+
├── Progresso.md ← Tracking de execução (gerado pelo /sf-plan)
|
|
178
|
+
├── .context.md ← Estado da pipeline
|
|
179
|
+
├── .extract-log.md ← Log de hashes
|
|
180
|
+
├── discovery.md ← (opcional) análise do /sf-discovery
|
|
181
|
+
└── retomada.md ← (session-finish) ponto de retomada
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**Quem lê o quê:**
|
|
185
|
+
- **Humano**: `workspace/Output/` (PRD/TRD/SDD narrativos + tracking)
|
|
186
|
+
- **Coder agent**: `specs/{nome}/` (projeções estruturadas) — NUNCA lê SDD direto
|
|
187
|
+
- **Reviewer**: `specs/{nome}/scenarios.md` (CAs) + código
|
|
188
|
+
- **Security Reviewer**: `specs/{nome}/contracts.md` + `docs/conventions.md` + código
|
|
189
|
+
- **merge-delta**: `workspace/Output/{nome}/sdd.md` §11 (única leitura do SDD pelo pipeline)
|
|
190
|
+
|
|
191
|
+
## Convenções
|
|
192
|
+
|
|
193
|
+
- **Pastas**: `feat_nome`, `bug_nome`, `task_nome` (snake_case com prefixo)
|
|
194
|
+
- **Task IDs**: `AREA-NNN` (BANCO-001, BACK-001, FRONT-001)
|
|
195
|
+
- **Regras de negócio**: `RN-NNN` (IDs estáveis, nunca renumerar)
|
|
196
|
+
- **Commits**: `tipo(TASK-ID): descrição` (feat, fix, refactor, test, docs, chore)
|
|
197
|
+
- **Branches**: `feature/feat_nome`, `bugfix/bug_nome`, `task/task_nome`
|
|
198
|
+
|
|
199
|
+
## Quando Parar e Perguntar
|
|
200
|
+
|
|
201
|
+
- `workspace/Input/{nome}/` vazio ou inexistente → PARAR
|
|
202
|
+
- Ambiguidade na extração → listar como pergunta BLOQUEANTE, PARAR
|
|
203
|
+
- `.context.md` com status incompatível com a skill → PARAR, informar status atual
|
|
204
|
+
- Task com dependência não concluída → avisar, não pular
|
|
205
|
+
- Dúvida sobre regra de negócio → perguntar, NUNCA assumir
|
|
206
|
+
- Quality gate reprovado 3x → escalar pro usuário
|
|
207
|
+
|
|
208
|
+
## Referências
|
|
209
|
+
|
|
210
|
+
| Doc | Onde |
|
|
211
|
+
|-----|------|
|
|
212
|
+
| Rules de dev | `.github/rules.md` |
|
|
213
|
+
| Memória | `.ai/memory/napkin.md` |
|
|
214
|
+
| Skills | `.github/skills/*.md` |
|
|
215
|
+
| Agents | `.github/agents/*.md` |
|
|
216
|
+
| Templates | `.github/templates/` |
|
|
217
|
+
| Estado do sistema | `docs/*.md` (após setup) |
|
|
218
|
+
| Insumos brutos | `workspace/Input/` |
|
|
219
|
+
| Outputs do workflow | `workspace/Output/` |
|