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,123 +1,123 @@
|
|
|
1
|
-
# Instruções — Documentação e Specs
|
|
2
|
-
|
|
3
|
-
> Regras para o agente ao trabalhar com a camada de documentação.
|
|
4
|
-
> Complementa `copilot-instructions.md` com detalhes operacionais.
|
|
5
|
-
|
|
6
|
-
## Skills e fluxo
|
|
7
|
-
|
|
8
|
-
O pipeline é executado por skills atômicas, cada uma com seu arquivo em `.github/skills/`:
|
|
9
|
-
|
|
10
|
-
```
|
|
11
|
-
/setup-projeto → /extract → /design → /plan → /dev → /merge-delta
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
Cada skill tem pré-condições, passos e saídas documentados. **Sempre ler a skill antes de executar.**
|
|
15
|
-
|
|
16
|
-
## Estado da pipeline (`.context.md`)
|
|
17
|
-
|
|
18
|
-
Cada feature/setup tem um `.context.md` (YAML frontmatter) que controla o fluxo:
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
- **Apenas skills atualizam** `.context.md` — o usuário nunca edita manualmente
|
|
25
|
-
- **Aprovação** acontece no início do `/design` (skill pergunta ao usuário)
|
|
26
|
-
- Antes de executar qualquer skill, verificar status no `.context.md`
|
|
27
|
-
|
|
28
|
-
## Extração (/extract)
|
|
29
|
-
|
|
30
|
-
Cada tipo de projeto tem seu documento de extração:
|
|
31
|
-
|
|
32
|
-
| Comando | Documento | Template | Foco |
|
|
33
|
-
|---------|----------|---------|------|
|
|
34
|
-
| `/setup-projeto` | TRD.md | `.github/templates/feature/TRD.template.md` | Stack, arquitetura, infra, modelo base |
|
|
35
|
-
| `/feature` | PRD.md | `.github/templates/feature/PRD.template.md` | Regras de negócio, jornadas, telas |
|
|
36
|
-
|
|
37
|
-
### Multi-agent no /extract
|
|
38
|
-
|
|
39
|
-
| Agente | Modelo | Papel |
|
|
40
|
-
|--------|--------|-------|
|
|
41
|
-
| Reader (1 por arquivo) | Sonnet | Lê e cataloga 1 arquivo por vez, em paralelo |
|
|
42
|
-
| Analyzer | Opus | Cruza fontes, detecta gaps/contradições, gera documento final |
|
|
43
|
-
|
|
44
|
-
### Regras da extração
|
|
45
|
-
|
|
46
|
-
- Ler TODOS arquivos em `workspace/Input/{nome}/` (qualquer formato: .md, .txt, .sql, .html, .xml, .csv, .png, .pdf)
|
|
47
|
-
- Categorias FIXAS do template — não inventar seções novas
|
|
48
|
-
- Regras de negócio com IDs únicos e estáveis (RN-001, RN-002 — nunca renumerar)
|
|
49
|
-
- Ambiguidades = BLOQUEANTES (workflow para até responder)
|
|
50
|
-
- Nunca INFERIR regra de negócio — se não está explícito, é ambiguidade
|
|
51
|
-
- Contradições entre arquivos → ambiguidade citando ambos
|
|
52
|
-
- Rastreabilidade obrigatória: cada informação aponta pro arquivo fonte
|
|
53
|
-
- Arquivo não identificável → registrar como NÃO IDENTIFICADO no extract-log, gerar ambiguidade
|
|
54
|
-
- Gerar `.extract-log.md` com hash SHA-256 (8 chars) por arquivo
|
|
55
|
-
|
|
56
|
-
### Re-extração
|
|
57
|
-
|
|
58
|
-
- Compara hashes com `.extract-log.md` existente → NOVO / MODIFICADO / INALTERADO
|
|
59
|
-
- Merge ADITIVO (nunca remove info de arquivos inalterados)
|
|
60
|
-
- Novas regras continuam sequência de IDs (se último era RN-005, próximo é RN-006)
|
|
61
|
-
|
|
62
|
-
## Design (/design)
|
|
63
|
-
|
|
64
|
-
1. Verificar aprovação do PRD/TRD (perguntar ao usuário)
|
|
65
|
-
2. Verificar ambiguidades — todas devem estar respondidas
|
|
66
|
-
3. Ler PRD/TRD + `docs/` + `rules.md`
|
|
67
|
-
4. Gerar SDD usando `.github/templates/feature/sdd.template.md`
|
|
68
|
-
5. SDD deve ser **auto-contido** — coder lê APENAS SDD + task, nada mais
|
|
69
|
-
6. Toda regra referencia seção do PRD/TRD (rastreabilidade)
|
|
70
|
-
7. §9 Estratégia de Testes: definir framework, estrutura, CAs mapeados a testes
|
|
71
|
-
8. §11 Delta Specs: obrigatório (ADDED/MODIFIED/REMOVED)
|
|
72
|
-
9. Seções N/A permitidas em setup (§4-§8 podem ser N/A)
|
|
73
|
-
|
|
74
|
-
## Planejamento (/plan)
|
|
75
|
-
|
|
76
|
-
1. Ler SDD completo + `docs/` + `rules.md`
|
|
77
|
-
2. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
|
|
78
|
-
3. Para cada área → gerar `{
|
|
79
|
-
4. Tasks em fases sequenciais com prioridade P1/P2/P3
|
|
80
|
-
5. Cada task: ID (AREA-NNN), título, tamanho (S/M/L), arquivos, ref SDD §N, depende, testes
|
|
81
|
-
6. Gerar `Progresso.md` com ordem de execução e paralelismos
|
|
82
|
-
7. Em setup: área DOC NÃO existe mais — `docs/` é gerado diretamente pelo /sf-design (passo 3) a partir do TRD
|
|
83
|
-
|
|
84
|
-
## Desenvolvimento (/dev)
|
|
85
|
-
|
|
86
|
-
### Agents por área (perfis em `.github/agents/`)
|
|
87
|
-
|
|
88
|
-
| Área | Agente | Stack padrão |
|
|
89
|
-
|------|--------|-------------|
|
|
90
|
-
| BANCO | DB Coder | PostgreSQL 16 |
|
|
91
|
-
| BACK | Backend Coder | .NET 8 / C# |
|
|
92
|
-
| FRONT | Frontend Coder | React + Fusion |
|
|
93
|
-
| INFRA | Infra Coder | Docker |
|
|
94
|
-
| DOC | Doc Writer | — |
|
|
95
|
-
| Todas | Reviewer | — |
|
|
96
|
-
|
|
97
|
-
### Loop de desenvolvimento
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Por task: implement → test unit → fix → lint → commit → review → fix → review (max 3)
|
|
101
|
-
Por fase: integration tests → fix
|
|
102
|
-
Por feature: E2E tests (CAs) → fix → dev_done
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Regras
|
|
106
|
-
|
|
107
|
-
- Implement + testes na mesma task (não separar)
|
|
108
|
-
- Agente selecionado pelo prefixo: BACK-* → Backend Coder
|
|
109
|
-
- Modelo por tamanho: S/M → Sonnet, L → Opus
|
|
110
|
-
- 1 commit por task: `tipo(TASK-ID): descrição`
|
|
111
|
-
- Quality gate validado pelo Reviewer após cada task
|
|
112
|
-
- Limite de retry: 3 reprovações → escalar pro usuário
|
|
113
|
-
|
|
114
|
-
## /setup-projeto vs /feature
|
|
115
|
-
|
|
116
|
-
| Aspecto | /setup-projeto | /feature |
|
|
117
|
-
|---------|---------------|----------|
|
|
118
|
-
| Input | `workspace/Input/setup_projeto/` | `workspace/Input/feat_nome/` |
|
|
119
|
-
| Extração | TRD.md (técnico) | PRD.md (produto) |
|
|
120
|
-
| SDD + Tasks | Sim (infra + banco + back + front) | Sim (feature tasks) |
|
|
121
|
-
| Gera docs/ | Sim — pelo /sf-design (passo 3) | Não — atualiza via /merge-delta |
|
|
122
|
-
| /merge-delta | Não se aplica | Obrigatório após /dev |
|
|
123
|
-
| Pré-requisito | Nenhum (primeiro comando) | docs/ deve existir |
|
|
1
|
+
# Instruções — Documentação e Specs
|
|
2
|
+
|
|
3
|
+
> Regras para o agente ao trabalhar com a camada de documentação.
|
|
4
|
+
> Complementa `copilot-instructions.md` com detalhes operacionais.
|
|
5
|
+
|
|
6
|
+
## Skills e fluxo
|
|
7
|
+
|
|
8
|
+
O pipeline é executado por skills atômicas, cada uma com seu arquivo em `.github/skills/`:
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/setup-projeto → /extract → /design → /plan → /dev → /merge-delta
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Cada skill tem pré-condições, passos e saídas documentados. **Sempre ler a skill antes de executar.**
|
|
15
|
+
|
|
16
|
+
## Estado da pipeline (`.context.md`)
|
|
17
|
+
|
|
18
|
+
Cada feature/setup tem um `.context.md` (YAML frontmatter) que controla o fluxo:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
not_started → extract_done → approved → design_done → plan_done → dev_in_progress → dev_done → done
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
- **Apenas skills atualizam** `.context.md` — o usuário nunca edita manualmente
|
|
25
|
+
- **Aprovação** acontece no início do `/design` (skill pergunta ao usuário)
|
|
26
|
+
- Antes de executar qualquer skill, verificar status no `.context.md`
|
|
27
|
+
|
|
28
|
+
## Extração (/extract)
|
|
29
|
+
|
|
30
|
+
Cada tipo de projeto tem seu documento de extração:
|
|
31
|
+
|
|
32
|
+
| Comando | Documento | Template | Foco |
|
|
33
|
+
|---------|----------|---------|------|
|
|
34
|
+
| `/setup-projeto` | TRD.md | `.github/templates/feature/TRD.template.md` | Stack, arquitetura, infra, modelo base |
|
|
35
|
+
| `/feature` | PRD.md | `.github/templates/feature/PRD.template.md` | Regras de negócio, jornadas, telas |
|
|
36
|
+
|
|
37
|
+
### Multi-agent no /extract
|
|
38
|
+
|
|
39
|
+
| Agente | Modelo | Papel |
|
|
40
|
+
|--------|--------|-------|
|
|
41
|
+
| Reader (1 por arquivo) | Sonnet | Lê e cataloga 1 arquivo por vez, em paralelo |
|
|
42
|
+
| Analyzer | Opus | Cruza fontes, detecta gaps/contradições, gera documento final |
|
|
43
|
+
|
|
44
|
+
### Regras da extração
|
|
45
|
+
|
|
46
|
+
- Ler TODOS arquivos em `workspace/Input/{nome}/` (qualquer formato: .md, .txt, .sql, .html, .xml, .csv, .png, .pdf)
|
|
47
|
+
- Categorias FIXAS do template — não inventar seções novas
|
|
48
|
+
- Regras de negócio com IDs únicos e estáveis (RN-001, RN-002 — nunca renumerar)
|
|
49
|
+
- Ambiguidades = BLOQUEANTES (workflow para até responder)
|
|
50
|
+
- Nunca INFERIR regra de negócio — se não está explícito, é ambiguidade
|
|
51
|
+
- Contradições entre arquivos → ambiguidade citando ambos
|
|
52
|
+
- Rastreabilidade obrigatória: cada informação aponta pro arquivo fonte
|
|
53
|
+
- Arquivo não identificável → registrar como NÃO IDENTIFICADO no extract-log, gerar ambiguidade
|
|
54
|
+
- Gerar `.extract-log.md` com hash SHA-256 (8 chars) por arquivo
|
|
55
|
+
|
|
56
|
+
### Re-extração
|
|
57
|
+
|
|
58
|
+
- Compara hashes com `.extract-log.md` existente → NOVO / MODIFICADO / INALTERADO
|
|
59
|
+
- Merge ADITIVO (nunca remove info de arquivos inalterados)
|
|
60
|
+
- Novas regras continuam sequência de IDs (se último era RN-005, próximo é RN-006)
|
|
61
|
+
|
|
62
|
+
## Design (/design)
|
|
63
|
+
|
|
64
|
+
1. Verificar aprovação do PRD/TRD (perguntar ao usuário)
|
|
65
|
+
2. Verificar ambiguidades — todas devem estar respondidas
|
|
66
|
+
3. Ler PRD/TRD + `docs/` + `rules.md`
|
|
67
|
+
4. Gerar SDD usando `.github/templates/feature/sdd.template.md`
|
|
68
|
+
5. SDD deve ser **auto-contido** — coder lê APENAS SDD + task, nada mais
|
|
69
|
+
6. Toda regra referencia seção do PRD/TRD (rastreabilidade)
|
|
70
|
+
7. §9 Estratégia de Testes: definir framework, estrutura, CAs mapeados a testes
|
|
71
|
+
8. §11 Delta Specs: obrigatório (ADDED/MODIFIED/REMOVED)
|
|
72
|
+
9. Seções N/A permitidas em setup (§4-§8 podem ser N/A)
|
|
73
|
+
|
|
74
|
+
## Planejamento (/plan)
|
|
75
|
+
|
|
76
|
+
1. Ler SDD completo + `docs/` + `rules.md`
|
|
77
|
+
2. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
|
|
78
|
+
3. Para cada área → gerar `specs/{nome}/tasks.md` usando `.github/templates/feature/tasks.template.md`
|
|
79
|
+
4. Tasks em fases sequenciais com prioridade P1/P2/P3
|
|
80
|
+
5. Cada task: ID (AREA-NNN), título, tamanho (S/M/L), arquivos, ref SDD §N, depende, testes
|
|
81
|
+
6. Gerar `Progresso.md` com ordem de execução e paralelismos
|
|
82
|
+
7. Em setup: área DOC NÃO existe mais — `docs/` é gerado diretamente pelo /sf-design (passo 3) a partir do TRD
|
|
83
|
+
|
|
84
|
+
## Desenvolvimento (/dev)
|
|
85
|
+
|
|
86
|
+
### Agents por área (perfis em `.github/agents/`)
|
|
87
|
+
|
|
88
|
+
| Área | Agente | Stack padrão |
|
|
89
|
+
|------|--------|-------------|
|
|
90
|
+
| BANCO | DB Coder | PostgreSQL 16 |
|
|
91
|
+
| BACK | Backend Coder | .NET 8 / C# |
|
|
92
|
+
| FRONT | Frontend Coder | React + Fusion |
|
|
93
|
+
| INFRA | Infra Coder | Docker |
|
|
94
|
+
| DOC | Doc Writer | — |
|
|
95
|
+
| Todas | Reviewer | — |
|
|
96
|
+
|
|
97
|
+
### Loop de desenvolvimento
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Por task: implement → test unit → fix → lint → commit → review → fix → review (max 3)
|
|
101
|
+
Por fase: integration tests → fix
|
|
102
|
+
Por feature: E2E tests (CAs) → fix → dev_done
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Regras
|
|
106
|
+
|
|
107
|
+
- Implement + testes na mesma task (não separar)
|
|
108
|
+
- Agente selecionado pelo prefixo: BACK-* → Backend Coder
|
|
109
|
+
- Modelo por tamanho: S/M → Sonnet, L → Opus
|
|
110
|
+
- 1 commit por task: `tipo(TASK-ID): descrição`
|
|
111
|
+
- Quality gate validado pelo Reviewer após cada task
|
|
112
|
+
- Limite de retry: 3 reprovações → escalar pro usuário
|
|
113
|
+
|
|
114
|
+
## /setup-projeto vs /feature
|
|
115
|
+
|
|
116
|
+
| Aspecto | /setup-projeto | /feature |
|
|
117
|
+
|---------|---------------|----------|
|
|
118
|
+
| Input | `workspace/Input/setup_projeto/` | `workspace/Input/feat_nome/` |
|
|
119
|
+
| Extração | TRD.md (técnico) | PRD.md (produto) |
|
|
120
|
+
| SDD + Tasks | Sim (infra + banco + back + front) | Sim (feature tasks) |
|
|
121
|
+
| Gera docs/ | Sim — pelo /sf-design (passo 3) | Não — atualiza via /merge-delta |
|
|
122
|
+
| /merge-delta | Não se aplica | Obrigatório após /dev |
|
|
123
|
+
| Pré-requisito | Nenhum (primeiro comando) | docs/ deve existir |
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
# Instruções para Arquivos Sensíveis
|
|
2
|
-
|
|
3
|
-
> Regras especiais para arquivos que requerem cuidado extra.
|
|
4
|
-
|
|
5
|
-
## Arquivos que NUNCA devem ser modificados pelo agente
|
|
6
|
-
|
|
7
|
-
- `workspace/Input/**/*` — Insumos brutos do usuário. Somente leitura.
|
|
8
|
-
- `.env`, `.env.*` — Variáveis de ambiente com secrets.
|
|
9
|
-
- `docs/decisions.md` — decisões aceitas são imutáveis (apenas adicionar novas, com status "substituída por ADR-XXX" na original).
|
|
10
|
-
|
|
11
|
-
## Arquivos que requerem aprovação antes de modificar
|
|
12
|
-
|
|
13
|
-
- `docs/*` — Documentação global. Só alterar via /merge-delta após /dev.
|
|
14
|
-
- `.github/rules.md` — Regras de desenvolvimento. Alteração deve ser explícita.
|
|
15
|
-
- `.github/copilot-instructions.md` — Meta-regras. Alteração requer aprovação.
|
|
16
|
-
- `.github/skills/*` — Skills do workflow. Alteração requer aprovação.
|
|
17
|
-
- `.github/agents/*` — Perfis de agentes. Alteração requer aprovação.
|
|
18
|
-
|
|
19
|
-
## Arquivos com formato rígido (gerados por skills)
|
|
20
|
-
|
|
21
|
-
- `workspace/Output/*/.context.md` — YAML frontmatter, apenas skills atualizam.
|
|
22
|
-
- `workspace/Output/*/.extract-log.md` — Append-only, hashes obrigatórios.
|
|
23
|
-
- `workspace/Output/*/PRD.md` ou `TRD.md` — Seguir template exato.
|
|
24
|
-
- `workspace/Output/*/sdd.md` — Seguir template, todas as 11 seções + rastreabilidade.
|
|
25
|
-
- `workspace/Output
|
|
26
|
-
- `workspace/Output/*/Progresso.md` — Tabelas com formato fixo.
|
|
27
|
-
|
|
28
|
-
## Arquivos que nunca devem conter secrets
|
|
29
|
-
|
|
30
|
-
- Qualquer arquivo `.md` em docs/
|
|
31
|
-
- `docker-compose.yml` — usar variáveis de ambiente, não valores diretos
|
|
32
|
-
- Código fonte — usar `appsettings.json` + environment variables, não hardcoded
|
|
1
|
+
# Instruções para Arquivos Sensíveis
|
|
2
|
+
|
|
3
|
+
> Regras especiais para arquivos que requerem cuidado extra.
|
|
4
|
+
|
|
5
|
+
## Arquivos que NUNCA devem ser modificados pelo agente
|
|
6
|
+
|
|
7
|
+
- `workspace/Input/**/*` — Insumos brutos do usuário. Somente leitura.
|
|
8
|
+
- `.env`, `.env.*` — Variáveis de ambiente com secrets.
|
|
9
|
+
- `docs/decisions.md` — decisões aceitas são imutáveis (apenas adicionar novas, com status "substituída por ADR-XXX" na original).
|
|
10
|
+
|
|
11
|
+
## Arquivos que requerem aprovação antes de modificar
|
|
12
|
+
|
|
13
|
+
- `docs/*` — Documentação global. Só alterar via /merge-delta após /dev.
|
|
14
|
+
- `.github/rules.md` — Regras de desenvolvimento. Alteração deve ser explícita.
|
|
15
|
+
- `.github/copilot-instructions.md` — Meta-regras. Alteração requer aprovação.
|
|
16
|
+
- `.github/skills/*` — Skills do workflow. Alteração requer aprovação.
|
|
17
|
+
- `.github/agents/*` — Perfis de agentes. Alteração requer aprovação.
|
|
18
|
+
|
|
19
|
+
## Arquivos com formato rígido (gerados por skills)
|
|
20
|
+
|
|
21
|
+
- `workspace/Output/*/.context.md` — YAML frontmatter, apenas skills atualizam.
|
|
22
|
+
- `workspace/Output/*/.extract-log.md` — Append-only, hashes obrigatórios.
|
|
23
|
+
- `workspace/Output/*/PRD.md` ou `TRD.md` — Seguir template exato.
|
|
24
|
+
- `workspace/Output/*/sdd.md` — Seguir template, todas as 11 seções + rastreabilidade.
|
|
25
|
+
- `workspace/Output/*/specs/{nome}/tasks.md` — IDs sequenciais, campos obrigatórios.
|
|
26
|
+
- `workspace/Output/*/Progresso.md` — Tabelas com formato fixo.
|
|
27
|
+
|
|
28
|
+
## Arquivos que nunca devem conter secrets
|
|
29
|
+
|
|
30
|
+
- Qualquer arquivo `.md` em docs/
|
|
31
|
+
- `docker-compose.yml` — usar variáveis de ambiente, não valores diretos
|
|
32
|
+
- Código fonte — usar `appsettings.json` + environment variables, não hardcoded
|