spec-first-copilot 0.4.0 → 0.5.0-beta.1
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 +162 -148
- package/bin/cli.js +52 -52
- package/lib/init.js +89 -89
- package/package.json +11 -4
- 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 +48 -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 +218 -175
- package/templates/.github/instructions/docs.instructions.md +123 -123
- package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
- package/templates/{docs/Desenvolvimento → .github}/rules.md +229 -229
- package/templates/.github/skills/sf-design/SKILL.md +209 -181
- package/templates/.github/skills/sf-dev/SKILL.md +354 -349
- package/templates/.github/skills/sf-discovery/SKILL.md +405 -405
- 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 +145 -142
- package/templates/.github/skills/sf-plan/SKILL.md +180 -178
- package/templates/.github/skills/sf-session-finish/SKILL.md +120 -120
- package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
- package/templates/{docs/_templates/estrutura/API.template.md → .github/templates/estrutura/apiContracts.template.md} +151 -144
- package/templates/.github/templates/estrutura/architecture.template.md +158 -0
- package/templates/{docs/_templates/estrutura/Seguranca.template.md → .github/templates/estrutura/conventions.template.md} +202 -138
- package/templates/{docs/_templates/estrutura/ADRs.template.md → .github/templates/estrutura/decisions.template.md} +99 -91
- package/templates/.github/templates/estrutura/domain.template.md +148 -0
- package/templates/{docs/_templates → .github/templates}/feature/PRD.template.md +256 -256
- package/templates/{docs/_templates → .github/templates}/feature/Progresso.template.md +136 -136
- package/templates/{docs/_templates → .github/templates}/feature/TRD.template.md +204 -200
- package/templates/{docs/_templates → .github/templates}/feature/backlog-extraido.template.md +154 -154
- package/templates/{docs/_templates → .github/templates}/feature/context.template.md +42 -42
- package/templates/{docs/_templates → .github/templates}/feature/extract-log.template.md +38 -38
- package/templates/{docs/_templates → .github/templates}/feature/projetos.template.yaml +73 -73
- package/templates/{docs/_templates → .github/templates}/feature/sdd.template.md +372 -372
- package/templates/{docs/_templates → .github/templates}/global/progresso_global.template.md +57 -57
- 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/docs/_templates/estrutura/Arquitetura.template.md +0 -82
- package/templates/docs/_templates/estrutura/Infraestrutura.template.md +0 -104
- package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +0 -99
- package/templates/docs/_templates/estrutura/Stack.template.md +0 -78
- package/templates/docs/_templates/estrutura/Visao.template.md +0 -82
- package/templates/docs/_templates/feature/tasks.template.md +0 -115
- /package/templates/docs/{Desenvolvimento → specs}/.gitkeep +0 -0
- /package/templates/{docs/Estrutura → workspace/Input}/.gitkeep +0 -0
- /package/templates/{docs/PM → workspace/Input/setup_projeto}/.gitkeep +0 -0
- /package/templates/{docs/PM/setup_projeto → workspace/Output}/.gitkeep +0 -0
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Stack Tecnológica
|
|
2
|
-
|
|
3
|
-
> Tecnologias escolhidas, versões fixadas, e alternativas descartadas com justificativa.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!--
|
|
8
|
-
=============================================================================
|
|
9
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
10
|
-
=============================================================================
|
|
11
|
-
|
|
12
|
-
ORIGEM: Gerado pelo /setup-projeto a partir do TRD §2.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta quando features introduzem novas tecnologias ou mudanças de stack (raro — deve gerar ADR).
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §2 (Stack e Tecnologias) — todas decisões de tech
|
|
17
|
-
2. Preencher TODAS as camadas, mesmo que "a definir"
|
|
18
|
-
3. Para cada tecnologia: versão EXATA (não "latest")
|
|
19
|
-
4. Justificativa deve ser técnica, não "é popular"
|
|
20
|
-
5. Alternativas descartadas: documentar POR QUE foram rejeitadas (evita rediscussão)
|
|
21
|
-
|
|
22
|
-
REGRAS:
|
|
23
|
-
- Versões devem ser fixadas (ex: "18.3.1", não "^18.0.0")
|
|
24
|
-
- Cada biblioteca/pacote precisa de justificativa (evita bloat)
|
|
25
|
-
- Alternativas descartadas previnem que o time rediscuta decisões já tomadas
|
|
26
|
-
- Mudanças de stack DEVEM gerar ADR em ADRs.md
|
|
27
|
-
- Camadas são dinâmicas — adicionar conforme necessidade (mobile, infra, etc.)
|
|
28
|
-
|
|
29
|
-
=============================================================================
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
## Stack Principal
|
|
33
|
-
|
|
34
|
-
| Camada | Tecnologia | Versão | Justificativa |
|
|
35
|
-
|--------|-----------|--------|---------------|
|
|
36
|
-
| Frontend | | | |
|
|
37
|
-
| Backend | | | |
|
|
38
|
-
| Banco de Dados | | | |
|
|
39
|
-
| ORM/Query Builder | | | |
|
|
40
|
-
| Autenticação | | | |
|
|
41
|
-
| Testes | | | |
|
|
42
|
-
| CI/CD | | | |
|
|
43
|
-
|
|
44
|
-
<!-- Adicionar camadas conforme necessidade: Mobile, Cache, Fila, Monitoramento, etc. -->
|
|
45
|
-
|
|
46
|
-
## Bibliotecas e Dependências
|
|
47
|
-
|
|
48
|
-
<!-- Repetir seção para cada camada que tenha dependências relevantes -->
|
|
49
|
-
|
|
50
|
-
### {{Camada}}
|
|
51
|
-
|
|
52
|
-
| Pacote | Versão | Para quê | Alternativa descartada |
|
|
53
|
-
|--------|--------|----------|----------------------|
|
|
54
|
-
| | | | |
|
|
55
|
-
|
|
56
|
-
## Alternativas Descartadas
|
|
57
|
-
|
|
58
|
-
> Decisões já tomadas. Se alguém perguntar "por que não usamos X?", a resposta está aqui.
|
|
59
|
-
|
|
60
|
-
| Tecnologia escolhida | Alternativa considerada | Por que descartamos | Ref ADR |
|
|
61
|
-
|----------------------|------------------------|---------------------|---------|
|
|
62
|
-
| | | | |
|
|
63
|
-
|
|
64
|
-
## Convenções de Versionamento
|
|
65
|
-
|
|
66
|
-
| Aspecto | Convenção |
|
|
67
|
-
|---------|-----------|
|
|
68
|
-
| Versionamento | <!-- Semver? Pinned? --> |
|
|
69
|
-
| Lock files | <!-- package-lock.json? yarn.lock? --> |
|
|
70
|
-
| Atualização | <!-- Dependabot? Manual? Periodicidade? --> |
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Changelog
|
|
75
|
-
|
|
76
|
-
| Data | Feature | Tipo | Descrição |
|
|
77
|
-
|------|---------|------|-----------|
|
|
78
|
-
| | | | |
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# Visão do Sistema
|
|
2
|
-
|
|
3
|
-
> C4 Nível 1 — Contexto do sistema: o que é, quem usa, com o que integra, quais restrições existem.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<!--
|
|
8
|
-
=============================================================================
|
|
9
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
10
|
-
=============================================================================
|
|
11
|
-
|
|
12
|
-
ORIGEM: Gerado pelo /setup-projeto a partir do TRD §1.
|
|
13
|
-
ATUALIZAÇÃO: /merge-delta quando features alteram contexto global (novos atores, integrações, restrições).
|
|
14
|
-
|
|
15
|
-
COMO GERAR:
|
|
16
|
-
1. Ler TRD §1 (Visão do Sistema) — é a fonte primária
|
|
17
|
-
2. Ler TRD §8 (Módulos Planejados) — alimenta o Roadmap
|
|
18
|
-
3. Descrever o sistema em 2-3 frases objetivas (sem jargão de marketing)
|
|
19
|
-
4. Listar TODOS os atores e papéis mencionados nos insumos
|
|
20
|
-
5. Listar TODAS as integrações externas com direção clara
|
|
21
|
-
6. Glossário: termos de domínio que o time precisa compartilhar (DDD ubiquitous language)
|
|
22
|
-
|
|
23
|
-
REGRAS:
|
|
24
|
-
- Descrição do sistema deve responder: O QUE faz, PARA QUEM, QUAL PROBLEMA resolve
|
|
25
|
-
- Atores devem ter permissões gerais claras (o que pode E o que NÃO pode)
|
|
26
|
-
- Integrações devem ter direção explícita (envia/recebe/ambos)
|
|
27
|
-
- Glossário não é opcional — termos ambíguos geram bugs
|
|
28
|
-
|
|
29
|
-
=============================================================================
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
## O que é este sistema?
|
|
33
|
-
|
|
34
|
-
<!-- Descrição em 2-3 frases. O que ele faz, para quem, qual problema resolve. -->
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
## Usuários e Papéis
|
|
38
|
-
|
|
39
|
-
| Papel | O que faz | O que NÃO pode fazer | Nível de acesso |
|
|
40
|
-
|-------|-----------|----------------------|-----------------|
|
|
41
|
-
| | | | |
|
|
42
|
-
|
|
43
|
-
## Integrações Externas
|
|
44
|
-
|
|
45
|
-
| Sistema/Serviço | Tipo (API/Webhook/Arquivo/Fila) | Direção (Envia/Recebe/Ambos) | Descrição | SLA/Disponibilidade |
|
|
46
|
-
|-----------------|--------------------------------|------------------------------|-----------|---------------------|
|
|
47
|
-
| | | | | |
|
|
48
|
-
|
|
49
|
-
## Restrições e Premissas
|
|
50
|
-
|
|
51
|
-
### Restrições técnicas
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
### Restrições de negócio
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
### Premissas
|
|
58
|
-
-
|
|
59
|
-
|
|
60
|
-
## Roadmap de Módulos
|
|
61
|
-
|
|
62
|
-
> Extraído do TRD §8. Visão de alto nível das funcionalidades planejadas.
|
|
63
|
-
|
|
64
|
-
| # | Módulo | Prioridade | Dependências | Status |
|
|
65
|
-
|---|--------|-----------|--------------|--------|
|
|
66
|
-
| | | | | planejado / em desenvolvimento / concluído |
|
|
67
|
-
|
|
68
|
-
## Glossário
|
|
69
|
-
|
|
70
|
-
> Termos do domínio usados em todo o projeto. Linguagem ubíqua (DDD).
|
|
71
|
-
|
|
72
|
-
| Termo | Definição | Exemplo de uso |
|
|
73
|
-
|-------|-----------|----------------|
|
|
74
|
-
| | | |
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Changelog
|
|
79
|
-
|
|
80
|
-
| Data | Feature | Tipo | Descrição |
|
|
81
|
-
|------|---------|------|-----------|
|
|
82
|
-
| | | | |
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
# Tasks — {{AREA}} — {{FEATURE}}
|
|
2
|
-
|
|
3
|
-
> Checklist de implementação organizado por **fases** e **prioridade**.
|
|
4
|
-
> O Coder consulta o `sdd.md` para detalhes técnicos.
|
|
5
|
-
> Este arquivo define O QUE fazer, EM QUE ORDEM, e ONDE.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Meta
|
|
10
|
-
|
|
11
|
-
| Campo | Valor |
|
|
12
|
-
|-------|-------|
|
|
13
|
-
| Feature | `{{FEATURE}}` |
|
|
14
|
-
| Área | {{AREA}} |
|
|
15
|
-
| SDD | [`sdd.md`](./sdd.md) {{SDD_SECTIONS}} |
|
|
16
|
-
| Total de tasks | {{TOTAL}} |
|
|
17
|
-
| Depende de | {{AREA_DEPENDENCIES}} |
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
<!--
|
|
22
|
-
=============================================================================
|
|
23
|
-
INSTRUÇÕES PARA O AGENTE (não incluir no arquivo gerado)
|
|
24
|
-
=============================================================================
|
|
25
|
-
|
|
26
|
-
COMO GERAR ESTE ARQUIVO:
|
|
27
|
-
|
|
28
|
-
1. Ler o SDD completo da feature
|
|
29
|
-
2. Identificar TODAS as áreas afetadas (banco, back, front, mobile, infra...)
|
|
30
|
-
3. Para CADA área, gerar um arquivo `{area}_tasks.md` usando este template
|
|
31
|
-
4. Áreas são DINÂMICAS — determinadas pelo SDD, não pré-definidas
|
|
32
|
-
|
|
33
|
-
COMO DEFINIR FASES:
|
|
34
|
-
|
|
35
|
-
- Agrupar tasks por etapa lógica de implementação
|
|
36
|
-
- Fases são SEQUENCIAIS dentro da área (Fase 2 depende de Fase 1)
|
|
37
|
-
- Usar prioridade P1/P2/P3 por fase
|
|
38
|
-
- Nomear fases de forma descritiva (não só "Fase 1")
|
|
39
|
-
- Exemplos de fases por área:
|
|
40
|
-
|
|
41
|
-
BANCO: Setup → Schema → Índices → Seeds
|
|
42
|
-
BACKEND: Setup → DTOs/Validações → Repository/Service → Controller → Testes
|
|
43
|
-
FRONTEND: Setup/Rotas → Componentes → Telas → Polish
|
|
44
|
-
MOBILE: Setup → Navegação → Telas → Offline → Push
|
|
45
|
-
INFRA: Provisão → Config → Deploy → Monitoramento
|
|
46
|
-
|
|
47
|
-
COMO ESCREVER CADA TASK:
|
|
48
|
-
|
|
49
|
-
- Formato checklist: `- [ ] **ID**: Título [Tamanho]`
|
|
50
|
-
- ID: {PREFIXO}-{NNN} sequencial (BANCO-001, BACK-001, FRONT-001, MOBILE-001...)
|
|
51
|
-
- Título: verbo no infinitivo + o que fazer
|
|
52
|
-
- Tamanho: S (< 30min), M (30min-2h), L (2h+)
|
|
53
|
-
- Fase: número da fase de entrega (do PRD §11) — OBRIGATÓRIO
|
|
54
|
-
- Repo: nome do repo (de projetos.yaml) — OBRIGATÓRIO
|
|
55
|
-
- Arquivos: EXATAMENTE quais files criar ou alterar (caminhos RELATIVOS ao repo)
|
|
56
|
-
- SDD: seção específica (§3.1, §5 POST /rota, §6 Tela X)
|
|
57
|
-
- Depende: IDs de tasks (mesma área ou cross-area)
|
|
58
|
-
|
|
59
|
-
REGRAS:
|
|
60
|
-
|
|
61
|
-
- Task deve ser AUTOCONTIDA: Coder lê SDD + esta task, nada mais
|
|
62
|
-
- NÃO duplicar conteúdo do SDD — apenas referenciar seções
|
|
63
|
-
- NÃO incluir status — vive só no Progresso.md
|
|
64
|
-
- Depende cross-area é permitido (FRONT-004 depende de BACK-009)
|
|
65
|
-
- "Regras desta área" = convenções específicas extraídas do SDD e docs/Estrutura
|
|
66
|
-
|
|
67
|
-
=============================================================================
|
|
68
|
-
-->
|
|
69
|
-
|
|
70
|
-
## Fase 1 — {{FASE_NOME}} [{{PRIORIDADE}}]
|
|
71
|
-
|
|
72
|
-
> {{FASE_CONTEXTO — 1 linha explicando o propósito da fase}}
|
|
73
|
-
<!-- Opcional: "Depende de: Área X Fase Y concluída" -->
|
|
74
|
-
|
|
75
|
-
- [ ] **{{PREFIXO}}-001**: {{Título descritivo}} [{{S|M|L}}]
|
|
76
|
-
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
77
|
-
- Repo: `{{repo_name}}`
|
|
78
|
-
- Arquivos: `{{caminho/arquivo.ext}}`
|
|
79
|
-
- SDD: {{§N seção específica}}
|
|
80
|
-
- Depende: {{ID ou —}}
|
|
81
|
-
|
|
82
|
-
- [ ] **{{PREFIXO}}-002**: {{Título descritivo}} [{{S|M|L}}]
|
|
83
|
-
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
84
|
-
- Repo: `{{repo_name}}`
|
|
85
|
-
- Arquivos: `{{caminho/arquivo1.ext}}`, `{{caminho/arquivo2.ext}}`
|
|
86
|
-
- SDD: {{§N.M subseção}}
|
|
87
|
-
- Depende: {{PREFIXO}}-001
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## Fase 2 — {{FASE_NOME}} [{{PRIORIDADE}}]
|
|
92
|
-
|
|
93
|
-
> {{FASE_CONTEXTO}}
|
|
94
|
-
|
|
95
|
-
- [ ] **{{PREFIXO}}-003**: {{Título}} [{{S|M|L}}]
|
|
96
|
-
- Fase: {{N}} — {{Nome fase de entrega}}
|
|
97
|
-
- Repo: `{{repo_name}}`
|
|
98
|
-
- Arquivos: `{{caminho/}}`
|
|
99
|
-
- SDD: {{§N}}
|
|
100
|
-
- Depende: {{PREFIXO}}-001, {{OUTRA_AREA}}-001
|
|
101
|
-
|
|
102
|
-
<!-- Repetir fases conforme necessário -->
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Regras desta área
|
|
107
|
-
|
|
108
|
-
<!-- Extraídas do SDD e docs/Estrutura/ — específicas para esta área -->
|
|
109
|
-
1. {{Regra 1}}
|
|
110
|
-
2. {{Regra 2}}
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
> **Legenda tamanho**: S = < 30min · M = 30min-2h · L = 2h+
|
|
115
|
-
> **Legenda prioridade**: P1 = bloqueia outras áreas · P2 = importante · P3 = nice-to-have
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|