spec-first-copilot 0.3.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.
Files changed (38) hide show
  1. package/README.md +148 -148
  2. package/bin/cli.js +52 -52
  3. package/lib/init.js +89 -89
  4. package/package.json +24 -23
  5. package/templates/.ai/memory/napkin.md +68 -68
  6. package/templates/.github/agents/backend-coder.md +215 -215
  7. package/templates/.github/agents/db-coder.md +165 -165
  8. package/templates/.github/agents/doc-writer.md +51 -51
  9. package/templates/.github/agents/frontend-coder.md +222 -222
  10. package/templates/.github/agents/infra-coder.md +341 -341
  11. package/templates/.github/agents/reviewer.md +99 -99
  12. package/templates/.github/agents/security-reviewer.md +153 -153
  13. package/templates/.github/copilot-instructions.md +175 -176
  14. package/templates/.github/instructions/docs.instructions.md +123 -123
  15. package/templates/.github/instructions/sensitive-files.instructions.md +32 -32
  16. package/templates/.github/skills/sf-design/SKILL.md +181 -181
  17. package/templates/.github/skills/sf-dev/SKILL.md +349 -326
  18. package/templates/.github/skills/sf-extract/SKILL.md +284 -284
  19. package/templates/.github/skills/sf-feature/SKILL.md +130 -130
  20. package/templates/.github/skills/sf-merge-delta/SKILL.md +142 -142
  21. package/templates/.github/skills/sf-plan/SKILL.md +178 -178
  22. package/templates/.github/skills/{sf-pausar → sf-session-finish}/SKILL.md +120 -120
  23. package/templates/.github/skills/sf-setup-projeto/SKILL.md +123 -123
  24. package/templates/docs/Desenvolvimento/rules.md +229 -229
  25. package/templates/docs/_templates/estrutura/ADRs.template.md +91 -91
  26. package/templates/docs/_templates/estrutura/API.template.md +144 -144
  27. package/templates/docs/_templates/estrutura/Arquitetura.template.md +82 -82
  28. package/templates/docs/_templates/estrutura/Infraestrutura.template.md +104 -104
  29. package/templates/docs/_templates/estrutura/Modelo_Dados.template.md +99 -99
  30. package/templates/docs/_templates/estrutura/Seguranca.template.md +138 -138
  31. package/templates/docs/_templates/estrutura/Stack.template.md +78 -78
  32. package/templates/docs/_templates/estrutura/Visao.template.md +82 -82
  33. package/templates/docs/_templates/feature/Progresso.template.md +136 -136
  34. package/templates/docs/_templates/feature/backlog-extraido.template.md +154 -154
  35. package/templates/docs/_templates/feature/context.template.md +42 -42
  36. package/templates/docs/_templates/feature/extract-log.template.md +38 -38
  37. package/templates/docs/_templates/feature/projetos.template.yaml +73 -73
  38. package/templates/docs/_templates/global/progresso_global.template.md +57 -57
@@ -1,178 +1,178 @@
1
- ---
2
- name: sf-plan
3
- description: |
4
- Planejamento. Gera tasks por fase de entrega e área.
5
- Trigger: /sf-plan
6
- author: GustavoMaritan
7
- version: 1.0.0
8
- date: 2026-04-08
9
- ---
10
-
11
- # Skill: /sf-plan
12
-
13
- > Skill atômica de planejamento. Lê SDD e gera tasks por área + Progresso.
14
-
15
- ## Tipo
16
- Atômica — Single-agent
17
-
18
- ## Uso
19
- ```
20
- /sf-plan <nome>
21
- ```
22
- Exemplo: `/sf-plan feat_cadastro_cliente`
23
-
24
- ---
25
-
26
- ## Agente
27
-
28
- | Campo | Valor |
29
- |-------|-------|
30
- | **Papel** | Planejador técnico — decompõe especificação em tasks atômicas, ordenadas e com dependências explícitas |
31
- | **Modelo** | Opus |
32
- | **Comportamento** | Metódico e exaustivo. Cada task deve ser auto-contida (coder lê SDD §N + task, nada mais). Prioriza ordem de execução correta sobre paralelismo. Nunca cria task sem referência ao SDD. |
33
-
34
- ---
35
-
36
- ## Pré-condições
37
-
38
- | # | Validação | Se falhar |
39
- |---|-----------|-----------|
40
- | 1 | Argumento `nome` foi informado | Parar → "Informe o nome. Ex: /sf-plan feat_cadastro_cliente" |
41
- | 2 | `docs/Desenvolvimento/{nome}/.context.md` existe com status `design_done` | Se anterior → "Execute /sf-design {nome} primeiro". Se posterior → "Tasks já foram geradas (status: {status})" |
42
- | 3 | `sdd.md` existe na pasta | Parar → "SDD não encontrado. Execute /sf-design {nome}" |
43
-
44
- ## Passos
45
-
46
- ### 1. Ler contexto
47
- - Ler `.context.md` → validar status
48
- - Ler `sdd.md` completo
49
- - Ler `projetos.yaml` (manifesto de repos — mapeamento área → repo)
50
- - Ler `docs/Estrutura/` (Stack, Arquitetura — para convenções por área)
51
- - Ler `docs/Desenvolvimento/rules.md` (padrões de código, commit, branch)
52
- - Carregar template `docs/_templates/feature/tasks.template.md`
53
-
54
- ### 2. Identificar fases de entrega
55
- Ler PRD §11 (Fases de Entrega) — cada fase vira um agrupamento de tasks:
56
- - Fases são sequenciais: Fase 2 depende de Fase 1 concluída
57
- - Cada fase tem entregável e critério de done
58
- - O `/dev` pode rodar por fase: `/sf-dev feat_nome --fase 1`
59
-
60
- ### 3. Identificar áreas afetadas (por fase)
61
- Para cada fase de entrega, mapear seções do SDD para áreas de tasks:
62
-
63
- | Seção do SDD | Área | Condição |
64
- |-------------|------|----------|
65
- | §3 Modelo de dados | BANCO | Se há entidades/migrations |
66
- | §5 Endpoints API | BACK | Se há endpoints definidos |
67
- | §6 Componentes e telas | FRONT | Se há UI especificada |
68
- | §8 Integrações externas | INFRA | Se há infra/serviços externos |
69
- | Outras | MOBILE, DEVOPS, etc. | Conforme necessidade do SDD |
70
-
71
- > **Nota**: Área DOC NÃO existe mais no setup. docs/Estrutura/ é gerado pelo /sf-design (passo 3).
72
- > DOC só aparece em features se houver necessidade explícita de documentação adicional.
73
-
74
- Áreas são **dinâmicas** — só cria o que o SDD exige. Não criar área vazia.
75
-
76
- **Área INFRA obrigatória no setup:**
77
- Sempre gerar estas tasks no setup (antes de qualquer código):
78
- ```
79
- - [ ] INFRA-001: Validar e configurar ambiente local [M]
80
- (detectar OS, instalar Docker/.NET/Node, verificar portas)
81
- - [ ] INFRA-002: Criar docker-compose.yml + Dockerfiles [M]
82
- - [ ] INFRA-003: Hello world — subir stack completa e validar [M]
83
- (docker compose up, migrations, health check, frontend carrega)
84
- ```
85
- INFRA-001 é a PRIMEIRA task executada no /sf-dev do setup (antes de BANCO, BACK, FRONT).
86
- INFRA-003 é a ÚLTIMA task (após tudo, como validação final).
87
- Setup só é `done` quando INFRA-003 passa.
88
-
89
- ### 4. Gerar tasks por fase × área
90
- Para cada área identificada, gerar `{area}_tasks.md`.
91
- Tasks são agrupadas por **fase de entrega** (do PRD §11), não só por fase técnica.
92
-
93
- **Estrutura de cada task:**
94
- ```markdown
95
- - [ ] **AREA-NNN**: Título descritivo [Tamanho]
96
- - Fase: {{N}} — {{Nome da fase de entrega}}
97
- - Repo: `{{nome_repo}}` (de projetos.yaml)
98
- - Arquivos: `caminho/do/arquivo.ext` (relativo à raiz do repo)
99
- - SDD: §N.N — Referência específica
100
- - Depende: AREA-NNN (ou — se não depende)
101
- ```
102
-
103
- **Regras de decomposição:**
104
- 1. Cada task é **atômica** — implementável sem consultar nada além de SDD §N + task
105
- 2. **Repo obrigatório** — consultar `projetos.yaml` para mapear área → repo. Caminhos de arquivo são relativos à raiz do repo
106
- 3. Tamanhos realistas: **S** (<30min), **M** (30min-2h), **L** (2h+)
107
- 4. Se uma task é L, avaliar se pode ser quebrada em M+S
108
- 5. IDs sequenciais por área: BANCO-001, BANCO-002, BACK-001, BACK-002
109
- 6. IDs nunca reutilizados — se uma task for removida, o ID é aposentado
110
- 7. Dependências explícitas — inclusive cross-area (FRONT-004 depende BACK-003)
111
- 8. Prioridades por fase: **P1** (bloqueia outros), **P2** (importante), **P3** (nice-to-have)
112
-
113
- **Organização em fases (sequenciais dentro da área):**
114
-
115
- | Área | Fases típicas (adaptar ao SDD) |
116
- |------|-------------------------------|
117
- | BANCO | Schema/Migrations → Índices/Constraints → Seeds |
118
- | BACK | Setup/Config → DTOs/Validações → Repository/Service → Controller → Testes |
119
- | FRONT | Setup/Rotas → Componentes base → Telas → Integração API → Polish/UX |
120
- | INFRA | Provisioning → Config → Deploy → Monitoramento |
121
- | DOC | Gerar docs/Estrutura/ a partir do TRD |
122
-
123
- ### 5. Gerar `Progresso.md`
124
- Usando template `docs/_templates/feature/Progresso.template.md`:
125
-
126
- - Resumo por Área × Fase com contagem de tasks
127
- - Status por fase: ⬜ pendente | 🔄 em andamento | ✅ concluída
128
- - **Ordem de execução** com paralelismos:
129
- ```
130
- 1. BANCO Fase 1 (Schema) — primeiro sempre
131
- 2. BANCO Fase 2 + BACK Fase 1 — podem paralelizar
132
- 3. BACK Fase 2-3 — sequencial
133
- 4. FRONT Fase 1-2 — pode iniciar após BACK Fase 3
134
- ...
135
- ```
136
- - Totais por área e geral
137
- - Checklist pós-conclusão (merge delta, atualizar progresso global, napkin)
138
-
139
- ### 6. Atualizar progresso global
140
- Adicionar entrada em `docs/Desenvolvimento/progresso.md`:
141
-
142
- ```markdown
143
- | {nome} | plan_done | BANCO: 0/N | BACK: 0/N | FRONT: 0/N |
144
- ```
145
-
146
- ### 7. Atualizar `.context.md`
147
- ```yaml
148
- status: "plan_done"
149
- ultima_skill: "/sf-plan"
150
- atualizado_em: "{{ISO_DATETIME}}"
151
- ```
152
-
153
- ---
154
-
155
- ## Saídas
156
-
157
- | Arquivo | Descrição |
158
- |---------|-----------|
159
- | `{area}_tasks.md` | 1 arquivo por área (dinâmico: banco_tasks.md, back_tasks.md, etc.) |
160
- | `Progresso.md` | Dashboard da feature com ordem de execução |
161
- | `progresso.md` (global) | Atualizado com nova feature |
162
- | `.context.md` | Atualizado com status `plan_done` |
163
-
164
- ## Pós-condições
165
- - Cada task é auto-contida com referência ao SDD
166
- - Dependências resolvíveis (não há ciclos)
167
- - Ordem de execução definida no Progresso.md
168
- - Feature pronta para `/dev`
169
-
170
- ## Erros
171
-
172
- | Erro | Ação |
173
- |------|------|
174
- | Nome não informado | Parar, mostrar exemplo |
175
- | Status não é design_done | Parar, sugerir skill correspondente |
176
- | SDD não encontrado | Parar, sugerir /sf-design |
177
- | SDD com seções vazias obrigatórias | Parar, listar o que falta — sugerir voltar ao /sf-design |
178
- | Dependência circular detectada | Parar, reportar o ciclo e sugerir reorganização |
1
+ ---
2
+ name: sf-plan
3
+ description: |
4
+ Planejamento. Gera tasks por fase de entrega e área.
5
+ Trigger: /sf-plan
6
+ author: GustavoMaritan
7
+ version: 1.0.0
8
+ date: 2026-04-08
9
+ ---
10
+
11
+ # Skill: /sf-plan
12
+
13
+ > Skill atômica de planejamento. Lê SDD e gera tasks por área + Progresso.
14
+
15
+ ## Tipo
16
+ Atômica — Single-agent
17
+
18
+ ## Uso
19
+ ```
20
+ /sf-plan <nome>
21
+ ```
22
+ Exemplo: `/sf-plan feat_cadastro_cliente`
23
+
24
+ ---
25
+
26
+ ## Agente
27
+
28
+ | Campo | Valor |
29
+ |-------|-------|
30
+ | **Papel** | Planejador técnico — decompõe especificação em tasks atômicas, ordenadas e com dependências explícitas |
31
+ | **Modelo** | Opus |
32
+ | **Comportamento** | Metódico e exaustivo. Cada task deve ser auto-contida (coder lê SDD §N + task, nada mais). Prioriza ordem de execução correta sobre paralelismo. Nunca cria task sem referência ao SDD. |
33
+
34
+ ---
35
+
36
+ ## Pré-condições
37
+
38
+ | # | Validação | Se falhar |
39
+ |---|-----------|-----------|
40
+ | 1 | Argumento `nome` foi informado | Parar → "Informe o nome. Ex: /sf-plan feat_cadastro_cliente" |
41
+ | 2 | `docs/Desenvolvimento/{nome}/.context.md` existe com status `design_done` | Se anterior → "Execute /sf-design {nome} primeiro". Se posterior → "Tasks já foram geradas (status: {status})" |
42
+ | 3 | `sdd.md` existe na pasta | Parar → "SDD não encontrado. Execute /sf-design {nome}" |
43
+
44
+ ## Passos
45
+
46
+ ### 1. Ler contexto
47
+ - Ler `.context.md` → validar status
48
+ - Ler `sdd.md` completo
49
+ - Ler `projetos.yaml` (manifesto de repos — mapeamento área → repo)
50
+ - Ler `docs/Estrutura/` (Stack, Arquitetura — para convenções por área)
51
+ - Ler `docs/Desenvolvimento/rules.md` (padrões de código, commit, branch)
52
+ - Carregar template `docs/_templates/feature/tasks.template.md`
53
+
54
+ ### 2. Identificar fases de entrega
55
+ Ler PRD §11 (Fases de Entrega) — cada fase vira um agrupamento de tasks:
56
+ - Fases são sequenciais: Fase 2 depende de Fase 1 concluída
57
+ - Cada fase tem entregável e critério de done
58
+ - O `/dev` pode rodar por fase: `/sf-dev feat_nome --fase 1`
59
+
60
+ ### 3. Identificar áreas afetadas (por fase)
61
+ Para cada fase de entrega, mapear seções do SDD para áreas de tasks:
62
+
63
+ | Seção do SDD | Área | Condição |
64
+ |-------------|------|----------|
65
+ | §3 Modelo de dados | BANCO | Se há entidades/migrations |
66
+ | §5 Endpoints API | BACK | Se há endpoints definidos |
67
+ | §6 Componentes e telas | FRONT | Se há UI especificada |
68
+ | §8 Integrações externas | INFRA | Se há infra/serviços externos |
69
+ | Outras | MOBILE, DEVOPS, etc. | Conforme necessidade do SDD |
70
+
71
+ > **Nota**: Área DOC NÃO existe mais no setup. docs/Estrutura/ é gerado pelo /sf-design (passo 3).
72
+ > DOC só aparece em features se houver necessidade explícita de documentação adicional.
73
+
74
+ Áreas são **dinâmicas** — só cria o que o SDD exige. Não criar área vazia.
75
+
76
+ **Área INFRA obrigatória no setup:**
77
+ Sempre gerar estas tasks no setup (antes de qualquer código):
78
+ ```
79
+ - [ ] INFRA-001: Validar e configurar ambiente local [M]
80
+ (detectar OS, instalar Docker/.NET/Node, verificar portas)
81
+ - [ ] INFRA-002: Criar docker-compose.yml + Dockerfiles [M]
82
+ - [ ] INFRA-003: Hello world — subir stack completa e validar [M]
83
+ (docker compose up, migrations, health check, frontend carrega)
84
+ ```
85
+ INFRA-001 é a PRIMEIRA task executada no /sf-dev do setup (antes de BANCO, BACK, FRONT).
86
+ INFRA-003 é a ÚLTIMA task (após tudo, como validação final).
87
+ Setup só é `done` quando INFRA-003 passa.
88
+
89
+ ### 4. Gerar tasks por fase × área
90
+ Para cada área identificada, gerar `{area}_tasks.md`.
91
+ Tasks são agrupadas por **fase de entrega** (do PRD §11), não só por fase técnica.
92
+
93
+ **Estrutura de cada task:**
94
+ ```markdown
95
+ - [ ] **AREA-NNN**: Título descritivo [Tamanho]
96
+ - Fase: {{N}} — {{Nome da fase de entrega}}
97
+ - Repo: `{{nome_repo}}` (de projetos.yaml)
98
+ - Arquivos: `caminho/do/arquivo.ext` (relativo à raiz do repo)
99
+ - SDD: §N.N — Referência específica
100
+ - Depende: AREA-NNN (ou — se não depende)
101
+ ```
102
+
103
+ **Regras de decomposição:**
104
+ 1. Cada task é **atômica** — implementável sem consultar nada além de SDD §N + task
105
+ 2. **Repo obrigatório** — consultar `projetos.yaml` para mapear área → repo. Caminhos de arquivo são relativos à raiz do repo
106
+ 3. Tamanhos realistas: **S** (<30min), **M** (30min-2h), **L** (2h+)
107
+ 4. Se uma task é L, avaliar se pode ser quebrada em M+S
108
+ 5. IDs sequenciais por área: BANCO-001, BANCO-002, BACK-001, BACK-002
109
+ 6. IDs nunca reutilizados — se uma task for removida, o ID é aposentado
110
+ 7. Dependências explícitas — inclusive cross-area (FRONT-004 depende BACK-003)
111
+ 8. Prioridades por fase: **P1** (bloqueia outros), **P2** (importante), **P3** (nice-to-have)
112
+
113
+ **Organização em fases (sequenciais dentro da área):**
114
+
115
+ | Área | Fases típicas (adaptar ao SDD) |
116
+ |------|-------------------------------|
117
+ | BANCO | Schema/Migrations → Índices/Constraints → Seeds |
118
+ | BACK | Setup/Config → DTOs/Validações → Repository/Service → Controller → Testes |
119
+ | FRONT | Setup/Rotas → Componentes base → Telas → Integração API → Polish/UX |
120
+ | INFRA | Provisioning → Config → Deploy → Monitoramento |
121
+ | DOC | Gerar docs/Estrutura/ a partir do TRD |
122
+
123
+ ### 5. Gerar `Progresso.md`
124
+ Usando template `docs/_templates/feature/Progresso.template.md`:
125
+
126
+ - Resumo por Área × Fase com contagem de tasks
127
+ - Status por fase: ⬜ pendente | 🔄 em andamento | ✅ concluída
128
+ - **Ordem de execução** com paralelismos:
129
+ ```
130
+ 1. BANCO Fase 1 (Schema) — primeiro sempre
131
+ 2. BANCO Fase 2 + BACK Fase 1 — podem paralelizar
132
+ 3. BACK Fase 2-3 — sequencial
133
+ 4. FRONT Fase 1-2 — pode iniciar após BACK Fase 3
134
+ ...
135
+ ```
136
+ - Totais por área e geral
137
+ - Checklist pós-conclusão (merge delta, atualizar progresso global, napkin)
138
+
139
+ ### 6. Atualizar progresso global
140
+ Adicionar entrada em `docs/Desenvolvimento/progresso.md`:
141
+
142
+ ```markdown
143
+ | {nome} | plan_done | BANCO: 0/N | BACK: 0/N | FRONT: 0/N |
144
+ ```
145
+
146
+ ### 7. Atualizar `.context.md`
147
+ ```yaml
148
+ status: "plan_done"
149
+ ultima_skill: "/sf-plan"
150
+ atualizado_em: "{{ISO_DATETIME}}"
151
+ ```
152
+
153
+ ---
154
+
155
+ ## Saídas
156
+
157
+ | Arquivo | Descrição |
158
+ |---------|-----------|
159
+ | `{area}_tasks.md` | 1 arquivo por área (dinâmico: banco_tasks.md, back_tasks.md, etc.) |
160
+ | `Progresso.md` | Dashboard da feature com ordem de execução |
161
+ | `progresso.md` (global) | Atualizado com nova feature |
162
+ | `.context.md` | Atualizado com status `plan_done` |
163
+
164
+ ## Pós-condições
165
+ - Cada task é auto-contida com referência ao SDD
166
+ - Dependências resolvíveis (não há ciclos)
167
+ - Ordem de execução definida no Progresso.md
168
+ - Feature pronta para `/dev`
169
+
170
+ ## Erros
171
+
172
+ | Erro | Ação |
173
+ |------|------|
174
+ | Nome não informado | Parar, mostrar exemplo |
175
+ | Status não é design_done | Parar, sugerir skill correspondente |
176
+ | SDD não encontrado | Parar, sugerir /sf-design |
177
+ | SDD com seções vazias obrigatórias | Parar, listar o que falta — sugerir voltar ao /sf-design |
178
+ | Dependência circular detectada | Parar, reportar o ciclo e sugerir reorganização |
@@ -1,120 +1,120 @@
1
- ---
2
- name: sf-pausar
3
- description: |
4
- Encerrar sessão. Salva estado, atualiza napkin, gera retomada.md.
5
- Trigger: /sf-pausar
6
- author: GustavoMaritan
7
- version: 1.0.0
8
- date: 2026-04-08
9
- ---
10
-
11
- # Skill: /sf-pausar
12
-
13
- > Encerra a sessão de trabalho de forma organizada.
14
- > Consolida estado, atualiza memória, gera ponto de retomada para a próxima sessão.
15
-
16
- ## Tipo
17
- Utilitária — roda a qualquer momento
18
-
19
- ## Uso
20
- ```
21
- /sf-pausar
22
- ```
23
-
24
- ---
25
-
26
- ## Passos
27
-
28
- ### 1. Levantar estado atual de cada feature/setup
29
-
30
- Para cada `.context.md` em `docs/Desenvolvimento/*/`:
31
- - Ler status atual
32
- - Ler Progresso.md (se existir) → % concluído, fase atual
33
- - Identificar tasks em andamento (`- [ ]` com dependências resolvidas)
34
-
35
- ### 2. Verificar working tree dos repos
36
-
37
- Para cada repo em `projetos/`:
38
- ```bash
39
- cd projetos/{repo}
40
- git status --short
41
- git log --oneline -3
42
- ```
43
- - Listar mudanças não commitadas
44
- - Listar branches ativas
45
- - Se há working tree sujo → avisar (sugerir commit antes de pausar)
46
-
47
- ### 3. Atualizar `.ai/memory/napkin.md`
48
-
49
- Adicionar/atualizar seção `## Sessão Atual` com:
50
- - Data da sessão
51
- - O que foi feito (tasks concluídas, fases entregues)
52
- - O que estava em andamento (task atual, bloqueios)
53
- - Decisões tomadas durante a sessão
54
- - Armadilhas encontradas (se houver novos aprendizados)
55
-
56
- ### 4. Gerar resumo de retomada
57
-
58
- Criar/atualizar `docs/Desenvolvimento/retomada.md`:
59
-
60
- ```markdown
61
- # Ponto de Retomada — {{DATA}}
62
-
63
- > Gerado pelo /sf-pausar. Leia este arquivo ao iniciar a próxima sessão.
64
-
65
- ## Estado geral
66
-
67
- | Feature/Setup | Status | Fase atual | % | Próxima ação |
68
- |---------------|--------|------------|---|-------------|
69
- | {{nome}} | {{status}} | Fase {{N}} | {{%}} | {{ação}} |
70
-
71
- ## Repos — estado do git
72
-
73
- | Repo | Branch ativa | Working tree | Último commit |
74
- |------|-------------|-------------|---------------|
75
- | {{repo}} | {{branch}} | limpo/sujo | {{commit msg}} |
76
-
77
- ## O que estava em andamento
78
-
79
- - Task: {{AREA-NNN}} — {{descrição}}
80
- - Bloqueios: {{se houver}}
81
- - Decisões pendentes: {{se houver}}
82
-
83
- ## Para retomar
84
-
85
- 1. {{Passo 1 — ex: "Subir infra: docker compose up -d"}}
86
- 2. {{Passo 2 — ex: "Continuar /sf-dev feat_mvp --fase 2"}}
87
- 3. {{Passo 3 — ex: "Resolver ambiguidade X do PRD"}}
88
-
89
- ## Aprendizados desta sessão
90
-
91
- - {{Decisão ou armadilha que vale registrar}}
92
- ```
93
-
94
- ### 5. Informar ao usuário
95
-
96
- ```
97
- ✅ Sessão encerrada. Estado salvo em:
98
- - `.ai/memory/napkin.md` — memória atualizada
99
- - `docs/Desenvolvimento/retomada.md` — ponto de retomada
100
-
101
- Para retomar na próxima sessão:
102
- 1. Ler retomada.md
103
- 2. Seguir os passos listados em "Para retomar"
104
- ```
105
-
106
- ---
107
-
108
- ## Saídas
109
-
110
- | Arquivo | Descrição |
111
- |---------|-----------|
112
- | `.ai/memory/napkin.md` | Sessão atual atualizada |
113
- | `docs/Desenvolvimento/retomada.md` | Ponto de retomada com estado completo |
114
-
115
- ## Notas
116
-
117
- - Não modifica .context.md (o status da pipeline não muda ao pausar)
118
- - Não faz commit automático — se tem working tree sujo, avisa mas não força
119
- - Pode ser chamada a qualquer momento, não só no final do dia
120
- - O arquivo `retomada.md` é sobrescrito a cada /sf-pausar (é ponto atual, não histórico)
1
+ ---
2
+ name: sf-session-finish
3
+ description: |
4
+ Encerrar sessão. Salva estado, atualiza napkin, gera retomada.md.
5
+ Trigger: /sf-session-finish
6
+ author: GustavoMaritan
7
+ version: 1.0.0
8
+ date: 2026-04-08
9
+ ---
10
+
11
+ # Skill: /sf-session-finish
12
+
13
+ > Encerra a sessão de trabalho de forma organizada.
14
+ > Consolida estado, atualiza memória, gera ponto de retomada para a próxima sessão.
15
+
16
+ ## Tipo
17
+ Utilitária — roda a qualquer momento
18
+
19
+ ## Uso
20
+ ```
21
+ /sf-session-finish
22
+ ```
23
+
24
+ ---
25
+
26
+ ## Passos
27
+
28
+ ### 1. Levantar estado atual de cada feature/setup
29
+
30
+ Para cada `.context.md` em `docs/Desenvolvimento/*/`:
31
+ - Ler status atual
32
+ - Ler Progresso.md (se existir) → % concluído, fase atual
33
+ - Identificar tasks em andamento (`- [ ]` com dependências resolvidas)
34
+
35
+ ### 2. Verificar working tree dos repos
36
+
37
+ Para cada repo em `projetos/`:
38
+ ```bash
39
+ cd projetos/{repo}
40
+ git status --short
41
+ git log --oneline -3
42
+ ```
43
+ - Listar mudanças não commitadas
44
+ - Listar branches ativas
45
+ - Se há working tree sujo → avisar (sugerir commit antes de pausar)
46
+
47
+ ### 3. Atualizar `.ai/memory/napkin.md`
48
+
49
+ Adicionar/atualizar seção `## Sessão Atual` com:
50
+ - Data da sessão
51
+ - O que foi feito (tasks concluídas, fases entregues)
52
+ - O que estava em andamento (task atual, bloqueios)
53
+ - Decisões tomadas durante a sessão
54
+ - Armadilhas encontradas (se houver novos aprendizados)
55
+
56
+ ### 4. Gerar resumo de retomada
57
+
58
+ Criar/atualizar `docs/Desenvolvimento/retomada.md`:
59
+
60
+ ```markdown
61
+ # Ponto de Retomada — {{DATA}}
62
+
63
+ > Gerado pelo /sf-session-finish. Leia este arquivo ao iniciar a próxima sessão.
64
+
65
+ ## Estado geral
66
+
67
+ | Feature/Setup | Status | Fase atual | % | Próxima ação |
68
+ |---------------|--------|------------|---|-------------|
69
+ | {{nome}} | {{status}} | Fase {{N}} | {{%}} | {{ação}} |
70
+
71
+ ## Repos — estado do git
72
+
73
+ | Repo | Branch ativa | Working tree | Último commit |
74
+ |------|-------------|-------------|---------------|
75
+ | {{repo}} | {{branch}} | limpo/sujo | {{commit msg}} |
76
+
77
+ ## O que estava em andamento
78
+
79
+ - Task: {{AREA-NNN}} — {{descrição}}
80
+ - Bloqueios: {{se houver}}
81
+ - Decisões pendentes: {{se houver}}
82
+
83
+ ## Para retomar
84
+
85
+ 1. {{Passo 1 — ex: "Subir infra: docker compose up -d"}}
86
+ 2. {{Passo 2 — ex: "Continuar /sf-dev feat_mvp --fase 2"}}
87
+ 3. {{Passo 3 — ex: "Resolver ambiguidade X do PRD"}}
88
+
89
+ ## Aprendizados desta sessão
90
+
91
+ - {{Decisão ou armadilha que vale registrar}}
92
+ ```
93
+
94
+ ### 5. Informar ao usuário
95
+
96
+ ```
97
+ ✅ Sessão encerrada. Estado salvo em:
98
+ - `.ai/memory/napkin.md` — memória atualizada
99
+ - `docs/Desenvolvimento/retomada.md` — ponto de retomada
100
+
101
+ Para retomar na próxima sessão:
102
+ 1. Ler retomada.md
103
+ 2. Seguir os passos listados em "Para retomar"
104
+ ```
105
+
106
+ ---
107
+
108
+ ## Saídas
109
+
110
+ | Arquivo | Descrição |
111
+ |---------|-----------|
112
+ | `.ai/memory/napkin.md` | Sessão atual atualizada |
113
+ | `docs/Desenvolvimento/retomada.md` | Ponto de retomada com estado completo |
114
+
115
+ ## Notas
116
+
117
+ - Não modifica .context.md (o status da pipeline não muda ao pausar)
118
+ - Não faz commit automático — se tem working tree sujo, avisa mas não força
119
+ - Pode ser chamada a qualquer momento, não só no final do dia
120
+ - O arquivo `retomada.md` é sobrescrito a cada /sf-session-finish (é ponto atual, não histórico)