ganbatte-os 0.2.27 → 0.2.29
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/.gos/agents/profiles/ganbatte-os-master.md +51 -1
- package/.gos/playbooks/plan-creation-playbook.md +122 -0
- package/.gos/skills/plan-blueprint/SKILL.md +144 -0
- package/.gos/skills/plan-to-tasks/SKILL.md +9 -9
- package/.gos/skills/progress-tracker/SKILL.md +125 -0
- package/.gos/skills/registry.json +4 -1
- package/.gos/skills/stack-profiler/SKILL.md +138 -0
- package/.gos/skills/weekly-update/CHANGELOG.md +28 -0
- package/.gos/skills/weekly-update/SKILL.md +31 -26
- package/.gos/templates/contextTemplate.md +35 -0
- package/.gos/templates/planTemplate.md +77 -0
- package/.gos/templates/progressTemplate.txt +15 -0
- package/.gos/templates/stackTemplate.md +72 -0
- package/.gos/templates/taskTemplate.md +40 -0
- package/AGENTS.md +15 -0
- package/CLAUDE.md +17 -1
- package/README.md +56 -0
- package/package.json +1 -1
|
@@ -81,6 +81,8 @@ persona:
|
|
|
81
81
|
- Follow Conventional Commits for all git operations
|
|
82
82
|
- Treat Figma Make output as triage material, not production code
|
|
83
83
|
- "Comprehension Gate: Before delegating to any agent, skill, or workflow, first understand what needs to be done — read relevant code, docs, and state; document findings; only then route"
|
|
84
|
+
- "Stack como contrato: toda decisão técnica respeita docs/stack.md; alterações de stack exigem ADR explícita e flag --allow-arch-change"
|
|
85
|
+
- "Paths via config: nada hardcoded — todos os caminhos do projeto-cliente vêm de .gos-local/plan-paths.json"
|
|
84
86
|
|
|
85
87
|
# ─── COMPREHENSION GATE ──────────────────────────────────────
|
|
86
88
|
# Applies before any delegation to agent, skill, or workflow.
|
|
@@ -90,6 +92,8 @@ comprehension_gate:
|
|
|
90
92
|
trigger: "Before any delegation to agent, skill, or workflow"
|
|
91
93
|
protocol:
|
|
92
94
|
step_0_scan: "Read relevant files, docs, recent commits related to the request"
|
|
95
|
+
step_0_5_stack: "If routing to planning/implementation: load docs/stack.md (path from .gos-local/plan-paths.json). If absent, abort and dispatch stack-profiler refresh."
|
|
96
|
+
step_0_6_progress: "If progress.txt exists at the configured path: read it for active plan/task context (memória L1)."
|
|
93
97
|
step_1_document: "State what exists (current state, patterns, constraints) in factual terms"
|
|
94
98
|
step_2_assess: "Determine which agent/skill/workflow is appropriate based on evidence, not assumption"
|
|
95
99
|
step_3_delegate: "Route with context summary so the target has full picture"
|
|
@@ -186,6 +190,22 @@ routing_matrix:
|
|
|
186
190
|
triggers: [architecture, system design, technical design, ADR]
|
|
187
191
|
target: agent:architect
|
|
188
192
|
|
|
193
|
+
stack_profile:
|
|
194
|
+
triggers: [stack, stack profile, refresh stack, stack drift, stack-of-record]
|
|
195
|
+
target: skill:stack-profiler
|
|
196
|
+
notes: Run on first setup or whenever stack changes (libs, framework, ORM, auth, hosting)
|
|
197
|
+
|
|
198
|
+
plan_creation:
|
|
199
|
+
triggers: [plan, plano, screen plan, tela, criar plano, blueprint, plano de tela]
|
|
200
|
+
target: skill:plan-blueprint
|
|
201
|
+
pre_action: Validate docs/stack.md exists; if not, dispatch stack-profiler first
|
|
202
|
+
notes: 1 tela = 1 plano. Subdivide automaticamente quando há múltiplas seções autônomas
|
|
203
|
+
|
|
204
|
+
progress_tracking:
|
|
205
|
+
triggers: [progress, status, progress.txt, memoria curta, l1]
|
|
206
|
+
target: skill:progress-tracker
|
|
207
|
+
notes: State machine pendente → em-andamento → validacao → concluido
|
|
208
|
+
|
|
189
209
|
product_decisions:
|
|
190
210
|
triggers: [PRD, requirements, product decision, scope, feature priority]
|
|
191
211
|
target: agent:po
|
|
@@ -262,6 +282,17 @@ commands:
|
|
|
262
282
|
args: "[plan|status|sync]"
|
|
263
283
|
description: Sprint operations via ClickUp integration
|
|
264
284
|
|
|
285
|
+
# Plan pipeline (stack-aware)
|
|
286
|
+
- name: stack
|
|
287
|
+
args: "[refresh|show|drift]"
|
|
288
|
+
description: Mantém docs/stack.md (stack-of-record do projeto)
|
|
289
|
+
- name: plan
|
|
290
|
+
args: "<tela|figma-url|descricao> [--from-figma-mcp] [--allow-arch-change]"
|
|
291
|
+
description: Cria plano por tela (plan + tasks + context + progress.txt)
|
|
292
|
+
- name: progress
|
|
293
|
+
args: "[init|show|set <plan>|status <task> <novo-status>|compact|read]"
|
|
294
|
+
description: Gerencia progress.txt (memória L1) e state machine de status
|
|
295
|
+
|
|
265
296
|
# Quality
|
|
266
297
|
- name: check
|
|
267
298
|
args: "[tsc|tests|all]"
|
|
@@ -297,7 +328,7 @@ available_squads:
|
|
|
297
328
|
- name: git-operations
|
|
298
329
|
purpose: SSH setup, quality gate, safe commit+push
|
|
299
330
|
|
|
300
|
-
# ─── AVAILABLE SKILLS (
|
|
331
|
+
# ─── AVAILABLE SKILLS (18) ────────────────────────────────────
|
|
301
332
|
available_skills:
|
|
302
333
|
- design-to-code
|
|
303
334
|
- figma-implement-design
|
|
@@ -314,6 +345,9 @@ available_skills:
|
|
|
314
345
|
- plan-to-tasks
|
|
315
346
|
- agent-teams
|
|
316
347
|
- git-ssh-setup
|
|
348
|
+
- stack-profiler
|
|
349
|
+
- plan-blueprint
|
|
350
|
+
- progress-tracker
|
|
317
351
|
|
|
318
352
|
# ─── PLAYBOOKS ────────────────────────────────────────────────
|
|
319
353
|
available_playbooks:
|
|
@@ -321,6 +355,7 @@ available_playbooks:
|
|
|
321
355
|
- sprint-planner-playbook.md
|
|
322
356
|
- squad-pipeline-runner.md
|
|
323
357
|
- ssh-multi-account-setup.md
|
|
358
|
+
- plan-creation-playbook.md
|
|
324
359
|
|
|
325
360
|
# ─── SCRIPTS & TOOLS ─────────────────────────────────────────
|
|
326
361
|
scripts:
|
|
@@ -336,6 +371,15 @@ scripts:
|
|
|
336
371
|
- name: clickup.js
|
|
337
372
|
path: scripts/tools/clickup.js
|
|
338
373
|
purpose: ClickUp API v2 CLI for sprint/task management
|
|
374
|
+
- name: plan-paths.js
|
|
375
|
+
path: scripts/tools/plan-paths.js
|
|
376
|
+
purpose: Resolve paths do projeto-cliente (.gos-local/plan-paths.json)
|
|
377
|
+
- name: plan-status.js
|
|
378
|
+
path: scripts/tools/plan-status.js
|
|
379
|
+
purpose: State machine de status (pendente → em-andamento → validacao → concluido)
|
|
380
|
+
- name: stack-scan.js
|
|
381
|
+
path: scripts/tools/stack-scan.js
|
|
382
|
+
purpose: Inferir stack do projeto-cliente (auxilia stack-profiler)
|
|
339
383
|
|
|
340
384
|
# ─── SECURITY ─────────────────────────────────────────────────
|
|
341
385
|
security:
|
|
@@ -402,6 +446,12 @@ security:
|
|
|
402
446
|
- `*sprint status` - Check sprint progress
|
|
403
447
|
- `*sprint sync` - Sync with ClickUp
|
|
404
448
|
|
|
449
|
+
**Plan pipeline (stack-aware):**
|
|
450
|
+
|
|
451
|
+
- `*stack [refresh|show|drift]` - Mantém docs/stack.md
|
|
452
|
+
- `*plan <tela|figma-url|descrição>` - Cria plano por tela
|
|
453
|
+
- `*progress [show|set|status|compact]` - Gerencia progress.txt (L1)
|
|
454
|
+
|
|
405
455
|
**Framework:**
|
|
406
456
|
|
|
407
457
|
- `*doctor` - Health check (gos-cli.js doctor)
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Playbook — Criação de planos por tela
|
|
2
|
+
|
|
3
|
+
Pipeline determinístico do G-OS para transformar uma tela (Figma, descrição, screenshot) em `{plano + tasks + contexto + entrada-progress}` respeitando a stack-of-record do projeto.
|
|
4
|
+
|
|
5
|
+
## Quando usar
|
|
6
|
+
|
|
7
|
+
- Toda nova tela em projeto que consome o G-OS
|
|
8
|
+
- Reescrita ou refatoração de tela existente
|
|
9
|
+
- Cada tela = 1 plano (subdividido em filhos quando complexa)
|
|
10
|
+
|
|
11
|
+
## Pré-requisitos do workspace
|
|
12
|
+
|
|
13
|
+
1. `.gos-local/plan-paths.json` configurado (paths do projeto + `knowledge_sources`)
|
|
14
|
+
2. `docs/stack.md` válido e sem drift (gerado por `stack-profiler`)
|
|
15
|
+
3. `progress.txt` na raiz (criado automaticamente no primeiro `*plan`)
|
|
16
|
+
|
|
17
|
+
## Fluxo end-to-end
|
|
18
|
+
|
|
19
|
+
### 0. Bootstrap (uma vez por workspace)
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
*stack refresh
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Lê configs do projeto + `knowledge_sources` (Postman, regras-de-negocio, ADRs, design system) e grava `docs/stack.md` + `.gos-local/stack.lock.json`.
|
|
26
|
+
|
|
27
|
+
Se `plan-paths.json` ausente, a skill cria interativamente.
|
|
28
|
+
|
|
29
|
+
### 1. Verificar drift antes de planejar
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
*stack drift
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Se houver drift, decidir entre:
|
|
36
|
+
- `*stack refresh` (atualizar stack.md, planos antigos ficam com stack_ref antigo — ok)
|
|
37
|
+
- ignorar e prosseguir (apenas se a mudança não afeta a tela)
|
|
38
|
+
|
|
39
|
+
### 2. Criar plano
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
*plan <tela|figma-url|descrição>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`plan-blueprint` executa:
|
|
46
|
+
1. Fase 1 — Mapeamento Visual & Componentização
|
|
47
|
+
2. Fase 2 — Aderência à Stack (sem redefinir arquitetura)
|
|
48
|
+
3. Fase 3 — Plano de Execução
|
|
49
|
+
|
|
50
|
+
Saídas:
|
|
51
|
+
- `<dirs.planos>/PLAN-NNN-<slug>/plan.md`
|
|
52
|
+
- `<dirs.planos>/PLAN-NNN-<slug>/context.md`
|
|
53
|
+
- `<dirs.planos>/PLAN-NNN-<slug>/tasks/T-NNN-NN-*.md`
|
|
54
|
+
- `progress.txt` atualizado com plano ativo
|
|
55
|
+
|
|
56
|
+
### 3. Revisar e aceitar
|
|
57
|
+
|
|
58
|
+
Humano revisa:
|
|
59
|
+
- componentes mapeados x ausentes
|
|
60
|
+
- aderência à stack (especialmente endpoints/regras)
|
|
61
|
+
- checklist de aceite
|
|
62
|
+
|
|
63
|
+
Se aprovado, prosseguir. Caso contrário: ajustar manualmente ou rerodar `*plan` com refinamento.
|
|
64
|
+
|
|
65
|
+
### 4. Executar tasks
|
|
66
|
+
|
|
67
|
+
Para cada task, dev (humano ou LLM):
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
*progress status T-NNN-NN em-andamento
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Implementa, commita localmente (sem push), atualiza:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
*progress status T-NNN-NN validacao
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 5. Validação
|
|
80
|
+
|
|
81
|
+
Quando todas as tasks do plano estiverem `validacao` e o checklist do plano estiver completo:
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
*progress status PLAN-NNN-<slug> validacao
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Validação humana + QA. Se aprovado:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
*progress status PLAN-NNN-<slug> concluido
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
(Status `concluido` SOMENTE após validação. Antes disso, qualquer task/plano fica em `validacao`.)
|
|
94
|
+
|
|
95
|
+
### 6. Commit & resumo
|
|
96
|
+
|
|
97
|
+
`devops` skill prepara commit (não pusha). Resumo do que foi feito é gerado a partir das tasks `concluido` desde o último commit.
|
|
98
|
+
|
|
99
|
+
## Regras invioláveis
|
|
100
|
+
|
|
101
|
+
1. **Stack como contrato** — toda decisão respeita `stack.md`. Mudança de stack exige ADR e flag `--allow-arch-change`.
|
|
102
|
+
2. **Read-only respeitado** — se `stack.md` declara backend read-only, plano nunca propõe migration.
|
|
103
|
+
3. **State machine dura** — `concluido` só após validação humana.
|
|
104
|
+
4. **Paths via config** — nada hardcoded; tudo de `plan-paths.json`.
|
|
105
|
+
5. **`progress.txt` é L1** — denso, otimizado para LLM, sempre atualizado.
|
|
106
|
+
|
|
107
|
+
## Troubleshooting
|
|
108
|
+
|
|
109
|
+
| Sintoma | Causa provável | Ação |
|
|
110
|
+
|---------|----------------|------|
|
|
111
|
+
| `*plan` aborta com "stack.md ausente" | Bootstrap não rodou | `*stack refresh` |
|
|
112
|
+
| Drift detectado constantemente | `package.json` muda muito | Aceitar drift e rerunar refresh por sprint |
|
|
113
|
+
| Task `concluido` sem passar por `validacao` | Tentativa de bypass | State machine bloqueia — usar `--rollback` se for engano |
|
|
114
|
+
| Plano referencia endpoint que não existe | Postman desatualizado | Atualizar coleção, `*stack refresh`, replanejar |
|
|
115
|
+
|
|
116
|
+
## Skills relacionadas
|
|
117
|
+
|
|
118
|
+
- `stack-profiler` — produz/mantém `stack.md`
|
|
119
|
+
- `plan-blueprint` — cria plano por tela
|
|
120
|
+
- `plan-to-tasks` — decompõe plano em tasks (chamada automaticamente)
|
|
121
|
+
- `progress-tracker` — gerencia `progress.txt`
|
|
122
|
+
- `clickup` — sync opcional para tracking externo (não obrigatório)
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-blueprint
|
|
3
|
+
description: Cria um plano padronizado para uma tela (1 plano = 1 tela) seguindo a stack-of-record do projeto. Produz {plano, tasks, contexto, entrada-progress.txt} em três fases (Mapeamento → Aderência à stack → Execução). Pré-requisito duro: docs/stack.md existir. Subdivide automaticamente telas com seções autônomas múltiplas.
|
|
4
|
+
argument-hint: "<tela|figma-url|descrição> [--from-figma-mcp] [--allow-arch-change]"
|
|
5
|
+
allowedTools: [Read, Glob, Grep, Bash, Write, Edit, Agent, AskUserQuestion]
|
|
6
|
+
sourceDocs:
|
|
7
|
+
- templates/planTemplate.md
|
|
8
|
+
- templates/contextTemplate.md
|
|
9
|
+
- playbooks/plan-creation-playbook.md
|
|
10
|
+
use-when:
|
|
11
|
+
- criar plano de implementação para uma tela específica
|
|
12
|
+
- input começa com URL Figma (auto-detectado)
|
|
13
|
+
- planejar feature de UI com componentes do design system
|
|
14
|
+
do-not-use-for:
|
|
15
|
+
- planejamento de sprint inteira (use sprint-planner)
|
|
16
|
+
- decomposição de plano pronto em tasks (use plan-to-tasks)
|
|
17
|
+
- alterações que mudam stack (gerar ADR primeiro, depois rodar com --allow-arch-change)
|
|
18
|
+
metadata:
|
|
19
|
+
category: planning
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
Você está executando como **Tech Lead Frontend / Arquiteto Sênior** via skill `plan-blueprint`.
|
|
23
|
+
|
|
24
|
+
## Input
|
|
25
|
+
|
|
26
|
+
$ARGUMENTS
|
|
27
|
+
|
|
28
|
+
Auto-detecção de input:
|
|
29
|
+
- URL `https://www.figma.com/...` → ativa modo Figma MCP
|
|
30
|
+
- caminho de arquivo `.md`/`.png`/`.jpg` → modo descrição com referência visual
|
|
31
|
+
- texto livre → modo descrição
|
|
32
|
+
|
|
33
|
+
Flags:
|
|
34
|
+
- `--from-figma-mcp` — força leitura via Figma MCP
|
|
35
|
+
- `--allow-arch-change` — libera Fase 2 propositiva (gera ADR)
|
|
36
|
+
|
|
37
|
+
## Pré-requisitos (gate)
|
|
38
|
+
|
|
39
|
+
1. Resolver paths via `.gos-local/plan-paths.json` (criar se ausente).
|
|
40
|
+
2. **Verificar `docs/stack.md` (caminho de `dirs.stack`)**:
|
|
41
|
+
- Se ausente: ABORTAR. Despachar `stack-profiler refresh` e instruir o usuário a re-executar.
|
|
42
|
+
- Se presente: ler integralmente. Verificar drift via `*stack drift` antes de prosseguir.
|
|
43
|
+
3. Ler `progress.txt` se existir (memória L1).
|
|
44
|
+
|
|
45
|
+
## Fase 1 — Mapeamento Visual & Componentização
|
|
46
|
+
|
|
47
|
+
### 1.1 Carregar referências do design system
|
|
48
|
+
|
|
49
|
+
Ler (paths via `plan-paths.json`):
|
|
50
|
+
- `dirs.design_system_doc`
|
|
51
|
+
- `dirs.components/` (inspecionar nomes e props)
|
|
52
|
+
- `dirs.stories/` (entender padrões de uso)
|
|
53
|
+
|
|
54
|
+
### 1.2 Analisar a tela
|
|
55
|
+
|
|
56
|
+
Se Figma MCP ativo: invocar Figma MCP para extrair árvore de nodes.
|
|
57
|
+
Caso contrário: trabalhar pela descrição/screenshot fornecido.
|
|
58
|
+
|
|
59
|
+
### 1.3 Mapear componentes
|
|
60
|
+
|
|
61
|
+
Produzir tabela:
|
|
62
|
+
|
|
63
|
+
| Elemento (Figma/descrição) | Componente do DS | Variant | Props relevantes |
|
|
64
|
+
|----------------------------|------------------|---------|-------------------|
|
|
65
|
+
|
|
66
|
+
Listar **componentes ausentes** separadamente — sinalizar como bloqueio ou candidato a criação (vai virar task própria).
|
|
67
|
+
|
|
68
|
+
## Fase 2 — Aderência à Stack
|
|
69
|
+
|
|
70
|
+
**Modo padrão (sem `--allow-arch-change`)**: SOMENTE referenciar a stack já registrada em `stack.md`. Para cada dado/ação da tela, listar:
|
|
71
|
+
|
|
72
|
+
- Endpoint/tabela/serviço já existente (consultando `knowledge_sources` — Postman, regras-de-negócio, schema)
|
|
73
|
+
- Padrão de fetching a usar (do `stack.md`)
|
|
74
|
+
- Server vs Client component (do `stack.md`)
|
|
75
|
+
|
|
76
|
+
Saída desta fase é uma seção **"Aderência à Stack"** no plano — não redefine arquitetura.
|
|
77
|
+
|
|
78
|
+
**Modo `--allow-arch-change`**: pode propor alteração. Gerar ADR em `dirs.adr` (template `templates/adr-tmpl.yaml`) ANTES de prosseguir. Plano referencia o ADR e marca `arch_change: true` no frontmatter.
|
|
79
|
+
|
|
80
|
+
## Fase 3 — Plano de Execução
|
|
81
|
+
|
|
82
|
+
Para cada elemento mapeado:
|
|
83
|
+
|
|
84
|
+
1. Estrutura de pastas/rotas (seguindo convenções de `stack.md`)
|
|
85
|
+
2. Lógica de fetching (onde o data source é chamado)
|
|
86
|
+
3. Montagem da view (composição dos componentes do DS)
|
|
87
|
+
4. Estado e interatividade (client components estritamente onde necessário)
|
|
88
|
+
|
|
89
|
+
## Subdivisão automática
|
|
90
|
+
|
|
91
|
+
Se a análise identificar mais de 3 seções autônomas (modais, drawers, sub-rotas com fetching próprio), gerar **planos filhos** numerados:
|
|
92
|
+
|
|
93
|
+
- Plano pai: `PLAN-NNN-<slug>` (visão geral + checklist consolidado)
|
|
94
|
+
- Filhos: `PLAN-NNN.1-<slug>`, `PLAN-NNN.2-<slug>` (cada um com suas tasks)
|
|
95
|
+
|
|
96
|
+
Frontmatter linka via `parent_plan` / `children_plans`.
|
|
97
|
+
|
|
98
|
+
## Saída
|
|
99
|
+
|
|
100
|
+
Para cada plano (incluindo filhos):
|
|
101
|
+
|
|
102
|
+
1. `<dirs.planos>/PLAN-NNN-<slug>/plan.md` — gerado a partir de `templates/planTemplate.md`. Frontmatter inclui `stack_ref: <dirs.stack>@<sha-curto>` para travar a versão da stack.
|
|
103
|
+
2. `<dirs.planos>/PLAN-NNN-<slug>/context.md` — gerado a partir de `templates/contextTemplate.md`. Denso, indexado.
|
|
104
|
+
3. Disparar `plan-to-tasks` automaticamente apontando para o `plan.md` recém-criado → produz tasks em `<dirs.tasks>` (resolvido com `{plan}` substituído).
|
|
105
|
+
4. Disparar `progress-tracker set-current` apontando o plano novo → atualiza `progress.txt`.
|
|
106
|
+
|
|
107
|
+
Resumo final:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
## Plano criado: PLAN-042-checkout
|
|
111
|
+
|
|
112
|
+
- plan.md: docs/plans/PLAN-042-checkout/plan.md
|
|
113
|
+
- context.md: docs/plans/PLAN-042-checkout/context.md
|
|
114
|
+
- tasks/: docs/plans/PLAN-042-checkout/tasks/ (5 tasks)
|
|
115
|
+
- progress: atualizado (status=pendente)
|
|
116
|
+
- stack_ref: docs/stack.md@a1b2c3d
|
|
117
|
+
|
|
118
|
+
Próximos passos:
|
|
119
|
+
1. Revisar plan.md e checklist de aceite
|
|
120
|
+
2. *progress status T-042-01 em-andamento
|
|
121
|
+
3. Executar
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Regras críticas
|
|
125
|
+
|
|
126
|
+
- **Reuso estrito**: priorizar componentes existentes. Componente novo só com justificativa no plano.
|
|
127
|
+
- **Backend read-only respeitado**: se `stack.md` declara backend read-only, plano NUNCA propõe schema novo.
|
|
128
|
+
- **Next.js App Router**: decisão server vs client é explícita por elemento.
|
|
129
|
+
- **Sem prosa decorativa**: plano deve ser executável, denso, com critérios mensuráveis.
|
|
130
|
+
|
|
131
|
+
## Model guidance
|
|
132
|
+
|
|
133
|
+
| Escopo | Modelo |
|
|
134
|
+
|--------|--------|
|
|
135
|
+
| Tela simples (1 form, 1 listagem) | `sonnet` |
|
|
136
|
+
| Tela complexa, subdivisão necessária | `opus` |
|
|
137
|
+
| Replanejamento incremental | `sonnet` |
|
|
138
|
+
|
|
139
|
+
## Instructions
|
|
140
|
+
|
|
141
|
+
1. NUNCA prosseguir sem `stack.md` válido.
|
|
142
|
+
2. Resolver TODOS os paths via `plan-paths.json`.
|
|
143
|
+
3. Status inicial do plano e tasks: `pendente`.
|
|
144
|
+
4. Não pushar nada — apenas escrever arquivos locais.
|
|
@@ -23,9 +23,9 @@ $ARGUMENTS
|
|
|
23
23
|
|
|
24
24
|
### Phase 1 — Read & understand the input
|
|
25
25
|
1. If `$ARGUMENTS` is a file path, read that file. If it's a description, work from the description.
|
|
26
|
-
2.
|
|
27
|
-
3. Read
|
|
28
|
-
4.
|
|
26
|
+
2. Resolver paths via `.gos-local/plan-paths.json` (helper: `scripts/tools/plan-paths.js`). Se ausente, criar com defaults.
|
|
27
|
+
3. Read `templates/taskTemplate.md` (canonical do framework) para o formato exato — superseda qualquer template legado em `.G-OS/templates/`.
|
|
28
|
+
4. Se o input for um plano gerado por `plan-blueprint`, herdar `plan_id` do frontmatter para encadear `T-NNN-NN` corretamente.
|
|
29
29
|
|
|
30
30
|
### Phase 2 — Decompose into tasks
|
|
31
31
|
Analyze the plan and extract:
|
|
@@ -41,15 +41,15 @@ Rules:
|
|
|
41
41
|
|
|
42
42
|
### Phase 3 — Generate task files
|
|
43
43
|
|
|
44
|
-
For each task, create a file following
|
|
44
|
+
For each task, create a file following o caminho resolvido em `plan-paths.json`:
|
|
45
45
|
|
|
46
|
-
**Primary location (
|
|
47
|
-
Where `NN` matches the plan prefix and tasks use zero-padded sequence (01, 02, ...).
|
|
46
|
+
**Primary location:** `<dirs.tasks>` com `{plan}` substituído pelo `plan_id` do plano (ex.: `docs/plans/PLAN-042-checkout/tasks/T-042-01-<slug>.md`).
|
|
48
47
|
|
|
49
|
-
**Fallback (
|
|
50
|
-
Use only if `docs/tasks/` does not exist or for framework-internal tasks.
|
|
48
|
+
**Fallback** (apenas se rodando sem `plan-paths.json` ou para tasks internas do framework): `./.gos/data/tasks/T-<YYYYMM>-<seq>.md`.
|
|
51
49
|
|
|
52
|
-
|
|
50
|
+
Naming: usar `naming.task_prefix` e `naming.seq_padding` do `plan-paths.json` (defaults: `T`, padding 3 → `T-042-001`).
|
|
51
|
+
|
|
52
|
+
Use this template (from `templates/taskTemplate.md`):
|
|
53
53
|
|
|
54
54
|
```markdown
|
|
55
55
|
---
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: progress-tracker
|
|
3
|
+
description: Gerencia progress.txt como memória L1 (curta, otimizada para LLM) na raiz do projeto-cliente. Suporta init, set-current, update-status (state machine), compact e read. Sempre consultado quando há dúvida sobre plano/task ativo.
|
|
4
|
+
argument-hint: "[init|show|set <plan>|status <task> <novo-status>|compact|read]"
|
|
5
|
+
allowedTools: [Read, Write, Edit, Bash]
|
|
6
|
+
sourceDocs:
|
|
7
|
+
- templates/progressTemplate.txt
|
|
8
|
+
- playbooks/plan-creation-playbook.md
|
|
9
|
+
use-when:
|
|
10
|
+
- inicializar progress.txt no workspace
|
|
11
|
+
- definir qual plano está ativo
|
|
12
|
+
- transicionar status de plano/task
|
|
13
|
+
- LLM com dúvida sobre o que está sendo feito
|
|
14
|
+
- compactar progress.txt removendo tasks concluídas antigas
|
|
15
|
+
do-not-use-for:
|
|
16
|
+
- planejamento (plan-blueprint)
|
|
17
|
+
- decomposição (plan-to-tasks)
|
|
18
|
+
- leitura de stack (stack-profiler)
|
|
19
|
+
metadata:
|
|
20
|
+
category: project-context
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Você está executando a skill `progress-tracker`. Mantém a memória L1 do projeto.
|
|
24
|
+
|
|
25
|
+
## Conceito
|
|
26
|
+
|
|
27
|
+
`progress.txt` é a **memória de curta duração** que toda LLM consulta quando precisa saber:
|
|
28
|
+
- qual plano está ativo
|
|
29
|
+
- qual task está em execução
|
|
30
|
+
- o que foi feito por último
|
|
31
|
+
- o que vem a segur
|
|
32
|
+
- bloqueios atuais
|
|
33
|
+
|
|
34
|
+
Formato denso, sem prosa, otimizado para tokens. Inspirado em `caveman-main` e `sandeco-token`. Localização default: raiz do projeto-cliente (path resolvido em `dirs.progress` do `plan-paths.json`).
|
|
35
|
+
|
|
36
|
+
## State machine
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
pendente → em-andamento → validacao → concluido
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Transições válidas:
|
|
43
|
+
- `pendente → em-andamento`: livre
|
|
44
|
+
- `em-andamento → validacao`: requer commit preparado (não pushado)
|
|
45
|
+
- `validacao → concluido`: requer aprovação humana
|
|
46
|
+
- `* → pendente`: rollback (libera a transição via flag `--rollback`)
|
|
47
|
+
|
|
48
|
+
Transições inválidas falham com mensagem do helper `scripts/tools/plan-status.js`.
|
|
49
|
+
|
|
50
|
+
## Subcomandos
|
|
51
|
+
|
|
52
|
+
### `init`
|
|
53
|
+
|
|
54
|
+
Cria `progress.txt` se ausente, usando `templates/progressTemplate.txt`. Não sobrescreve se já existir.
|
|
55
|
+
|
|
56
|
+
### `show` (default)
|
|
57
|
+
|
|
58
|
+
Imprime `progress.txt`.
|
|
59
|
+
|
|
60
|
+
### `set <plan-id>`
|
|
61
|
+
|
|
62
|
+
Fixa o plano ativo. Ex.: `*progress set PLAN-042-checkout`. Atualiza:
|
|
63
|
+
- `plan_active=<dirs.planos>/<plan-id>/plan.md`
|
|
64
|
+
- `tasks_dir=<dirs.planos>/<plan-id>/tasks/`
|
|
65
|
+
- `context=<dirs.planos>/<plan-id>/context.md`
|
|
66
|
+
- `status=pendente` (se for primeira ativação)
|
|
67
|
+
|
|
68
|
+
### `status <task-id> <novo-status>`
|
|
69
|
+
|
|
70
|
+
Muda status de uma task. Valida via state machine. Atualiza `progress.txt` (`last_done`, `next`) e o frontmatter do task file. Se a task fechar o checklist do plano, sugere `*progress status <plan-id> validacao`.
|
|
71
|
+
|
|
72
|
+
### `compact`
|
|
73
|
+
|
|
74
|
+
Reescreve `progress.txt` removendo tasks `concluido` antigas (manter < 4kB). Mantém apenas:
|
|
75
|
+
- plano ativo
|
|
76
|
+
- últimas 3 tasks `concluido`
|
|
77
|
+
- todas tasks `em-andamento`/`validacao`/`pendente` do plano ativo
|
|
78
|
+
- bloqueios e notas curtas
|
|
79
|
+
|
|
80
|
+
### `read`
|
|
81
|
+
|
|
82
|
+
Mesmo que `show`. Disponível como verbo explícito para integração com `comprehension_gate` do gos-master.
|
|
83
|
+
|
|
84
|
+
## Formato `progress.txt`
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
# progress.l1
|
|
88
|
+
ts=2026-05-01T18:22:00-03:00
|
|
89
|
+
project=<nome>
|
|
90
|
+
plan_active=docs/plans/PLAN-042-checkout/plan.md
|
|
91
|
+
tasks_dir=docs/plans/PLAN-042-checkout/tasks/
|
|
92
|
+
context=docs/plans/PLAN-042-checkout/context.md
|
|
93
|
+
stack_ref=docs/stack.md@a1b2c3d
|
|
94
|
+
status=em-andamento
|
|
95
|
+
|
|
96
|
+
last_done=T-042-03 montar-form-pagamento
|
|
97
|
+
current=T-042-04 integrar-supabase-orders
|
|
98
|
+
next=T-042-05 estado-erro-checkout
|
|
99
|
+
|
|
100
|
+
blockers=
|
|
101
|
+
notes=fetch usa server component em app/checkout/page.tsx
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Regras
|
|
105
|
+
|
|
106
|
+
- Sempre resolver `dirs.progress` via `plan-paths.json` antes de ler/escrever.
|
|
107
|
+
- Nunca remover bloqueios sem confirmação.
|
|
108
|
+
- `compact` só remove `concluido` antigas — nunca toca `em-andamento`.
|
|
109
|
+
- Toda alteração registra `ts` em ISO 8601.
|
|
110
|
+
|
|
111
|
+
## Saída
|
|
112
|
+
|
|
113
|
+
Após qualquer alteração, mostrar diff curto:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
[progress] PLAN-042-checkout / T-042-03 → concluido
|
|
117
|
+
last_done=T-042-03 montar-form-pagamento
|
|
118
|
+
current=T-042-04 integrar-supabase-orders
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Instructions
|
|
122
|
+
|
|
123
|
+
1. Skill silenciosa — não tagarela, devolve estado.
|
|
124
|
+
2. State machine é dura — bloquear transições inválidas.
|
|
125
|
+
3. Nunca apagar `progress.txt` sem `compact` explícito.
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
{ "slug": "git-ssh-setup", "path": "skills/git-ssh-setup/SKILL.md" },
|
|
20
20
|
{ "slug": "humanizer", "path": "skills/humanizer/SKILL.md" },
|
|
21
21
|
{ "slug": "weekly-update", "path": "skills/weekly-update/SKILL.md" },
|
|
22
|
-
{ "slug": "slack-review", "path": "skills/slack-review/SKILL.md" }
|
|
22
|
+
{ "slug": "slack-review", "path": "skills/slack-review/SKILL.md" },
|
|
23
|
+
{ "slug": "stack-profiler", "path": "skills/stack-profiler/SKILL.md" },
|
|
24
|
+
{ "slug": "plan-blueprint", "path": "skills/plan-blueprint/SKILL.md" },
|
|
25
|
+
{ "slug": "progress-tracker", "path": "skills/progress-tracker/SKILL.md" }
|
|
23
26
|
]
|
|
24
27
|
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stack-profiler
|
|
3
|
+
description: Produz e mantém docs/stack.md como fonte canônica da stack-of-record do projeto. Lê arquivos de configuração, design system, Postman, regras de negócio e ADRs (paths resolvidos via .gos-local/plan-paths.json). Usar antes de criar planos ou quando a stack do projeto mudou.
|
|
4
|
+
argument-hint: "[refresh|show|drift]"
|
|
5
|
+
allowedTools: [Read, Glob, Grep, Bash, Write, Edit, AskUserQuestion]
|
|
6
|
+
sourceDocs:
|
|
7
|
+
- templates/stackTemplate.md
|
|
8
|
+
- playbooks/plan-creation-playbook.md
|
|
9
|
+
use-when:
|
|
10
|
+
- primeiro setup do projeto no fluxo de planos do G-OS
|
|
11
|
+
- stack mudou (libs, framework, ORM, auth, hosting)
|
|
12
|
+
- drift detectado entre stack.md e arquivos-fonte
|
|
13
|
+
- antes de qualquer execução de plan-blueprint sem stack.md presente
|
|
14
|
+
do-not-use-for:
|
|
15
|
+
- decisões pontuais de tela (use plan-blueprint)
|
|
16
|
+
- alteração de stack (gera ADR, não rerruna profiler cego)
|
|
17
|
+
metadata:
|
|
18
|
+
category: project-context
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
Você está executando a skill `stack-profiler`. Ela define o contrato técnico do projeto que todas as demais skills do pipeline de planos respeitam.
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
|
|
25
|
+
$ARGUMENTS
|
|
26
|
+
|
|
27
|
+
Subcomandos:
|
|
28
|
+
- `refresh` (default) — varre fontes e (re)escreve `docs/stack.md`
|
|
29
|
+
- `show` — imprime o `stack.md` atual
|
|
30
|
+
- `drift` — compara hashes em `.gos-local/stack.lock.json` com arquivos-fonte; alerta se mudaram
|
|
31
|
+
|
|
32
|
+
## Pré-requisitos
|
|
33
|
+
|
|
34
|
+
1. Resolver paths via `.gos-local/plan-paths.json`. Se não existir, criar com defaults e perguntar apenas o que não puder inferir.
|
|
35
|
+
2. Carregar template `templates/stackTemplate.md`.
|
|
36
|
+
|
|
37
|
+
## Procedimento — `refresh`
|
|
38
|
+
|
|
39
|
+
### Fase 1 — Ler fontes canônicas
|
|
40
|
+
|
|
41
|
+
Ler (quando existirem, todos relativos à raiz do projeto-cliente):
|
|
42
|
+
- `package.json`, `tsconfig*.json`
|
|
43
|
+
- `next.config.*`, `vite.config.*`, `tailwind.config.*`, `postcss.config.*`
|
|
44
|
+
- `prisma/schema.prisma`, `drizzle.config.*`, `supabase/`
|
|
45
|
+
- `README.md`, `CLAUDE.md`
|
|
46
|
+
- Cada `knowledge_sources[].path` declarado em `plan-paths.json`:
|
|
47
|
+
- `design-system` — extrair tokens, componentes-chave
|
|
48
|
+
- `postman` — listar coleções e endpoints expostos (extrair `name`, `request.method`, `request.url.raw`)
|
|
49
|
+
- `business-rules` — listar arquivos com títulos/escopos
|
|
50
|
+
- `adr` — listar ADRs ativas
|
|
51
|
+
|
|
52
|
+
### Fase 2 — Inferir e perguntar
|
|
53
|
+
|
|
54
|
+
Inferir automaticamente:
|
|
55
|
+
- Framework principal e versão (`dependencies` em package.json)
|
|
56
|
+
- Runtime (Node, Bun, Edge)
|
|
57
|
+
- ORM efetivo (Prisma, Drizzle, Supabase client)
|
|
58
|
+
- UI lib + design system
|
|
59
|
+
- Hosting (vercel.json, netlify.toml, Dockerfile)
|
|
60
|
+
|
|
61
|
+
Perguntar ao usuário (apenas o que não conseguir inferir, em uma única rodada):
|
|
62
|
+
- Auth provider efetivo
|
|
63
|
+
- Padrão preferido de fetching (server component, server action, client + SWR, etc.)
|
|
64
|
+
- Backend é read-only para a aplicação (sem criar schema novo)?
|
|
65
|
+
- Restrições explícitas (ex.: "não introduzir novas libs sem ADR")
|
|
66
|
+
|
|
67
|
+
### Fase 3 — Gravar `stack.md`
|
|
68
|
+
|
|
69
|
+
Caminho: o que estiver em `dirs.stack` do `plan-paths.json` (default `docs/stack.md`).
|
|
70
|
+
|
|
71
|
+
Seções obrigatórias (ver `templates/stackTemplate.md`):
|
|
72
|
+
1. Framework & runtime
|
|
73
|
+
2. UI / Design System (com link para o doc canônico)
|
|
74
|
+
3. Estado & dados
|
|
75
|
+
4. Auth
|
|
76
|
+
5. Backend / DB (incluir flag `read_only: true|false`)
|
|
77
|
+
6. Padrões de fetching
|
|
78
|
+
7. Convenções de pastas e rotas
|
|
79
|
+
8. Fontes de conhecimento do projeto (lista cada `knowledge_source` com path resolvido + resumo)
|
|
80
|
+
9. Restrições
|
|
81
|
+
10. Links internos (docs, ADRs ativas)
|
|
82
|
+
|
|
83
|
+
### Fase 4 — Atualizar lock
|
|
84
|
+
|
|
85
|
+
Gravar `.gos-local/stack.lock.json`:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"schema": "gos.stack-lock.v1",
|
|
90
|
+
"generated_at": "<iso>",
|
|
91
|
+
"stack_path": "<dirs.stack>",
|
|
92
|
+
"sources": [
|
|
93
|
+
{ "path": "package.json", "sha256": "..." },
|
|
94
|
+
{ "path": "docs/postman/Fractus.postman_collection.json", "sha256": "..." }
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Procedimento — `drift`
|
|
100
|
+
|
|
101
|
+
1. Ler `.gos-local/stack.lock.json`.
|
|
102
|
+
2. Recalcular sha256 de cada `sources[].path`.
|
|
103
|
+
3. Listar mudanças. Se houver, sugerir `*stack refresh` e listar planos com `stack_ref` divergente (escanear `dirs.planos`).
|
|
104
|
+
|
|
105
|
+
## Procedimento — `show`
|
|
106
|
+
|
|
107
|
+
Imprimir o conteúdo de `dirs.stack`. Se ausente, instruir `*stack refresh`.
|
|
108
|
+
|
|
109
|
+
## Saída
|
|
110
|
+
|
|
111
|
+
Após `refresh`:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
## Stack profilada — <projeto>
|
|
115
|
+
|
|
116
|
+
- Framework: Next.js 15 (App Router)
|
|
117
|
+
- DB: Supabase (read-only)
|
|
118
|
+
- Design System: .referencia-storybook
|
|
119
|
+
- Knowledge sources: 3 (postman, business-rules, adr)
|
|
120
|
+
|
|
121
|
+
stack.md: docs/stack.md
|
|
122
|
+
lock: .gos-local/stack.lock.json
|
|
123
|
+
hashes: 12 arquivos
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Model guidance
|
|
127
|
+
|
|
128
|
+
| Escopo | Modelo |
|
|
129
|
+
|--------|--------|
|
|
130
|
+
| Refresh em projeto pequeno/médio | `sonnet` |
|
|
131
|
+
| Projeto grande com muita ambiguidade | `opus` |
|
|
132
|
+
| `show` / `drift` | `haiku` |
|
|
133
|
+
|
|
134
|
+
## Instructions
|
|
135
|
+
|
|
136
|
+
1. Sempre resolver paths via `plan-paths.json` antes de tocar filesystem do projeto.
|
|
137
|
+
2. Não inventar tecnologia — se não conseguir inferir, perguntar.
|
|
138
|
+
3. Nunca propor mudança de stack neste skill — só registrar o que existe.
|
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# weekly-update — Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-04-20 — v1.2.1 (refinamento do modo simple após envio validado)
|
|
4
|
+
|
|
5
|
+
Após o primeiro envio real em modo `simple` (mesma data), Douglas ajustou manualmente a versão gerada antes de enviar. Ajustes virando regras permanentes:
|
|
6
|
+
|
|
7
|
+
### Mudanças nas regras do modo simple
|
|
8
|
+
|
|
9
|
+
1. **Bullet markers opcionais**: removida obrigatoriedade de `•`. Quebra de linha entre itens é suficiente e preferível — Slack renderiza limpo.
|
|
10
|
+
2. **Tom casual/neutro misturado**: `pra/tá/tô` não são mais mandatórios. Mistura natural com `para/está/estou` é validada e soa melhor.
|
|
11
|
+
3. **Termos contextualmente aceitos** (nova categoria, entre banidos e permitidos):
|
|
12
|
+
- `PRD` — PO/PM usam, mantém.
|
|
13
|
+
- `front`/`backend` — aceitáveis quando linguagem corrente do time.
|
|
14
|
+
- `Storybook` — aceitável se nome de produto; senão trocar por "catálogo de componentes".
|
|
15
|
+
4. **Voz ativa primeira pessoa obrigatória**: "Criei e enviei" > "Entreguei" > "Foi entregue". Evitar passiva.
|
|
16
|
+
5. **Tamanho alvo ajustado**: 200-350 palavras (antes 150-250). Completude vale mais que concisão extrema — cobrir todas as entregas e pendências.
|
|
17
|
+
|
|
18
|
+
### Exemplo canônico arquivado
|
|
19
|
+
|
|
20
|
+
`.gos/weekly-updates/2026-04-20.md` — versão final enviada por Douglas com ajustes. Frontmatter documenta os ajustes aplicados. SKILL.md passa a referenciar esse arquivo como exemplo autoritativo (substitui o rascunho anterior curto).
|
|
21
|
+
|
|
22
|
+
### Diff vs v1.2.0
|
|
23
|
+
|
|
24
|
+
- Regras 3/4/5 do modo simple reescritas.
|
|
25
|
+
- Nova regra 3 (termos contextualmente aceitos) intercalada.
|
|
26
|
+
- Alvo subiu de 150-250 para 200-350 palavras.
|
|
27
|
+
- Exemplo canônico agora é o envio real, não um rascunho.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
3
31
|
## 2026-04-20 — v1.2.0 (modos `simple` e `detailed`, controlados por env)
|
|
4
32
|
|
|
5
33
|
Motivação: na thread "Conversa semanal" de 2026-04-17, PO (U07M07M6R42) e PM (U0ADE3FT9HB) pediram explicitamente resumo em linguagem não-técnica. Citações literais:
|
|
@@ -10,7 +10,7 @@ description_pt-BR: >
|
|
|
10
10
|
com aprovacao antes de postar na Conversa semanal do Slack. Modo simple ou detailed.
|
|
11
11
|
argument-hint: "[--mode simple|detailed] [link da mensagem 'Conversa semanal' no Slack]"
|
|
12
12
|
type: prompt
|
|
13
|
-
version: "1.2.
|
|
13
|
+
version: "1.2.1"
|
|
14
14
|
env:
|
|
15
15
|
- WEEKLY_UPDATE
|
|
16
16
|
- WEEKLY_UPDATE_MODE
|
|
@@ -190,41 +190,46 @@ Audiência: PO/PM sem background técnico, clientes, time de negócio.
|
|
|
190
190
|
Regras **obrigatórias** (violar qualquer uma implica reescrever):
|
|
191
191
|
|
|
192
192
|
1. **Zero IDs de task.** Nunca mencionar "T-084", "T-110", "task X". Só o que foi entregue, em linguagem de valor.
|
|
193
|
-
2. **Zero jargão técnico.** Banidos: API, endpoint, FK, foreign key, hook, webhook, migration,
|
|
193
|
+
2. **Zero jargão técnico de baixo nível.** Banidos sempre: API, endpoint, FK, foreign key, hook, webhook, migration, pipeline, CI/CD, TypeScript, Zod, regex, SPA routing, commit, branch, merge, PR, rebase, drift, build, deploy. Traduzir cada um:
|
|
194
194
|
- "API de diagnóstico" → "formulário de diagnóstico" ou "ferramenta pra coletar dados do diagnóstico"
|
|
195
|
-
- "Deploy no Vercel" → "publicar a página online"
|
|
195
|
+
- "Deploy no Vercel" → "publicar a página online" ou "colocar online"
|
|
196
196
|
- "Corrigi o SPA routing" → "arrumei a navegação entre telas que estava quebrada"
|
|
197
|
-
- "Hook de pre-commit" → "trava automática que impede erros de passar"
|
|
198
|
-
- "Migration" → "ajuste no banco de dados" (
|
|
197
|
+
- "Hook de pre-commit" → "trava automática que impede erros de passar adiante"
|
|
198
|
+
- "Migration" → "ajuste no banco de dados" (quando inevitável) ou omitir
|
|
199
199
|
- "Regras de negócio em doc próprio" → "organizei as regras do produto num documento pra validar com o time"
|
|
200
|
-
3. **
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
200
|
+
3. **Termos contextualmente aceitos** (use com moderação — só quando a audiência já conhece do produto):
|
|
201
|
+
- `PRD` — PO/PM usam o termo.
|
|
202
|
+
- `front`/`backend` — aceitáveis quando já é linguagem corrente do time (ver exemplo do envio 2026-04-20).
|
|
203
|
+
- `Storybook` — aceitável se é nome de produto/catálogo conhecido; caso contrário, traduzir pra "catálogo de componentes".
|
|
204
|
+
- Se na dúvida, traduzir. Regra: PO/PM deve entender sem parar pra perguntar.
|
|
205
|
+
4. **Linhas curtas, sem bullet markers obrigatórios.** Cada linha com 1 frase, no máximo 2. Slack renderiza quebras de linha limpas sem `•` — preferível ao marcador visual. O PM do time usa `•` em algumas mensagens e não em outras; siga o padrão do autor do envio (default: sem marcador, só quebra de linha).
|
|
206
|
+
5. **Voz ativa primeira pessoa.** Preferir "Criei e enviei pra X" sobre "Foi entregue pra X". Preferir "Arrumei" sobre "Foram feitos ajustes".
|
|
207
|
+
6. **Foco no valor entregue**, não em como foi feito. Em vez de "configurei X e corrigi Y", usar "agora Z funciona / está disponível / está mais rápido".
|
|
208
|
+
7. **Tom reunião casual, mas não forçado.** Primeira pessoa (eu/a gente). Contrações permitidas (`pra`, `tá`, `tô`) mas não obrigatórias — mistura com forma neutra (`para`, `está`, `estou`) é natural e foi validado no envio 2026-04-20. Evitar formalismo corporativo ("foi realizada a entrega de...").
|
|
209
|
+
8. Tamanho alvo: 200-350 palavras. Preferência por completude (cobrir todas as entregas e pendências) sobre concisão extrema.
|
|
207
210
|
|
|
208
211
|
Teste de validação (aplicar mentalmente antes de aprovar):
|
|
209
212
|
- Se minha mãe lesse esse texto, ela entenderia o que eu fiz essa semana? Se não, reescrever.
|
|
210
213
|
- Se o PO leu e vai perguntar "o que é X?" — termo X é jargão, trocar.
|
|
214
|
+
- Dupla checagem: se PO/PM usam o termo em mensagens próprias na thread, pode manter (ex: PRD).
|
|
215
|
+
|
|
216
|
+
Exemplo canônico — envio validado 2026-04-20 (ver `.gos/weekly-updates/2026-04-20.md` para versão completa):
|
|
211
217
|
|
|
212
|
-
Exemplo de tom (re-escrita do envio 2026-04-17 em modo simple):
|
|
213
218
|
> *O que foi feito*
|
|
214
219
|
>
|
|
215
|
-
>
|
|
216
|
-
>
|
|
217
|
-
>
|
|
218
|
-
>
|
|
219
|
-
>
|
|
220
|
-
>
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
220
|
+
> Coloquei online o catálogo de componentes do Fractus com a cara nova — logo, cores e a home personalizada. Já plugado nos medidores de desempenho pra gente acompanhar se a página tá rápida.
|
|
221
|
+
> A branch desse catálogo tava bagunçada, arrumei e montei uma trava automática pra não deixar entrar mistura errada de novo.
|
|
222
|
+
> Liguei travas antes de subir código pra evitar que erro passe adiante — quem tentar subir coisa quebrada é avisado na hora.
|
|
223
|
+
> Organizei as regras do produto num documento, usando para validarmos as regras no desenvolvimento do front/backend.
|
|
224
|
+
> Criei e enviei para Adriano Morais uma ferramenta que extrai contatos de grupo do WhatsApp.
|
|
225
|
+
> No nosso framework interno, parei de mandar notificação duplicada no Slack e arrumei a conexão com o ClickUp na IDE nova que eu estou testando.
|
|
226
|
+
|
|
227
|
+
Padrões a notar nesse envio:
|
|
228
|
+
- Sem marcadores `•`, só quebra de linha entre itens.
|
|
229
|
+
- Mistura `pra/tá` com `para/está` naturalmente.
|
|
230
|
+
- `front/backend` aceito porque é linguagem já corrente do time.
|
|
231
|
+
- Voz ativa primeira pessoa em todos os itens (`Coloquei`, `Arrumei`, `Liguei`, `Criei e enviei`).
|
|
232
|
+
- Comprimento total ~310 palavras (acima do mínimo ajustado de 200-350).
|
|
228
233
|
|
|
229
234
|
## Phase 3 — Humanizar
|
|
230
235
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
plan_id: PLAN-<NNN>-<slug>
|
|
3
|
+
generated_at: <iso>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Contexto — <tela>
|
|
7
|
+
|
|
8
|
+
> Documento denso para a LLM — não é prosa para humanos. Indexa arquivos, decisões e riscos relevantes para executar o plano sem perder contexto.
|
|
9
|
+
|
|
10
|
+
## Arquivos relevantes
|
|
11
|
+
|
|
12
|
+
| Path | Função |
|
|
13
|
+
|------|--------|
|
|
14
|
+
| `<path>` | <função> |
|
|
15
|
+
|
|
16
|
+
## Componentes do DS já em uso (próximos)
|
|
17
|
+
|
|
18
|
+
- `<componente>` — usado em `<onde>`
|
|
19
|
+
|
|
20
|
+
## Endpoints / regras-de-negócio referenciados
|
|
21
|
+
|
|
22
|
+
- `<endpoint>` — Postman: `<ref>` — método: `<METHOD>`
|
|
23
|
+
- `<regra>` — path: `<ref>`
|
|
24
|
+
|
|
25
|
+
## Decisões tomadas durante o planejamento
|
|
26
|
+
|
|
27
|
+
- <decisão> (motivo: <ref>)
|
|
28
|
+
|
|
29
|
+
## Riscos abertos
|
|
30
|
+
|
|
31
|
+
- <risco>
|
|
32
|
+
|
|
33
|
+
## Notas curtas (livre)
|
|
34
|
+
|
|
35
|
+
- <nota>
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: PLAN-<NNN>-<slug>
|
|
3
|
+
tela: <nome da tela>
|
|
4
|
+
figma_url: <url ou null>
|
|
5
|
+
status: pendente
|
|
6
|
+
parent_plan: <PLAN-NNN ou null>
|
|
7
|
+
children_plans: []
|
|
8
|
+
stack_ref: docs/stack.md@<sha-curto>
|
|
9
|
+
arch_change: false
|
|
10
|
+
created_at: <iso>
|
|
11
|
+
validated_at: null
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# <Título da tela>
|
|
15
|
+
|
|
16
|
+
## Contexto
|
|
17
|
+
|
|
18
|
+
<Por que esta tela existe — referência ao PRD, ticket, decisão de produto.>
|
|
19
|
+
|
|
20
|
+
## Componentes mapeados
|
|
21
|
+
|
|
22
|
+
| Elemento | Componente do DS | Variant | Props |
|
|
23
|
+
|----------|------------------|---------|-------|
|
|
24
|
+
| | | | |
|
|
25
|
+
|
|
26
|
+
## Componentes ausentes
|
|
27
|
+
|
|
28
|
+
> Listar componentes não cobertos pelo DS. Cada um vira task de criação separada (priorizar reuso/extensão antes de propor novo).
|
|
29
|
+
|
|
30
|
+
- <ausente 1 — sugestão: estender X | criar novo>
|
|
31
|
+
|
|
32
|
+
## Aderência à Stack
|
|
33
|
+
|
|
34
|
+
> Sem redefinir arquitetura. Apenas referenciar o que já existe em `stack.md`.
|
|
35
|
+
|
|
36
|
+
- **Dados consumidos**: <endpoint Postman | tabela | regra-de-negocio> — path: <ref>
|
|
37
|
+
- **Padrão de fetching**: <server component | server action | client+cache>
|
|
38
|
+
- **Auth requerida**: <sim/não> — provider: <ref `stack.md`>
|
|
39
|
+
- **Restrições aplicáveis**: <listar do `stack.md`>
|
|
40
|
+
|
|
41
|
+
> Se `arch_change: true`: ADR de referência: `docs/adr/ADR-XXXX-<slug>.md`
|
|
42
|
+
|
|
43
|
+
## Fluxo de navegação
|
|
44
|
+
|
|
45
|
+
- Rota: `<src/app/.../page.tsx>`
|
|
46
|
+
- Entrada: <de onde vem>
|
|
47
|
+
- Saída: <para onde vai>
|
|
48
|
+
|
|
49
|
+
## Fluxo de dados
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
<diagrama textual: tela → fetch → componente → render>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Plano de execução
|
|
56
|
+
|
|
57
|
+
1. **Estrutura de pastas/rotas** — criar `<path>`
|
|
58
|
+
2. **Fetching** — `<server-component em page.tsx | server-action>` consumindo `<endpoint/tabela>`
|
|
59
|
+
3. **Montagem da view** — compor `<componentes>`
|
|
60
|
+
4. **Estado e interatividade** — `<descrever>`
|
|
61
|
+
|
|
62
|
+
## Checklist de aceite
|
|
63
|
+
|
|
64
|
+
- [ ] Tela renderiza com dados reais
|
|
65
|
+
- [ ] Estados de loading e erro tratados
|
|
66
|
+
- [ ] Acessibilidade básica (keyboard nav, aria)
|
|
67
|
+
- [ ] Responsivo (mobile + desktop)
|
|
68
|
+
- [ ] Sem console errors/warnings
|
|
69
|
+
- [ ] TypeScript válido (`tsc --noEmit`)
|
|
70
|
+
- [ ] Reutilização ≥ X% de componentes do DS
|
|
71
|
+
- [ ] <critério específico da tela 1>
|
|
72
|
+
- [ ] <critério específico da tela 2>
|
|
73
|
+
|
|
74
|
+
## Riscos & Rollback
|
|
75
|
+
|
|
76
|
+
- <risco>
|
|
77
|
+
- Rollback: <git tag/branch>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
schema: gos.stack.v1
|
|
3
|
+
project: <nome>
|
|
4
|
+
generated_at: <iso>
|
|
5
|
+
read_only_backend: <true|false>
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Stack-of-record — <projeto>
|
|
9
|
+
|
|
10
|
+
> Este arquivo é a fonte canônica da stack. Todo plano (`plan-blueprint`) referencia este documento via `stack_ref`. Alterações aqui exigem ADR.
|
|
11
|
+
|
|
12
|
+
## 1. Framework & runtime
|
|
13
|
+
- Framework: <Next.js 15 / Vite / etc>
|
|
14
|
+
- Runtime: <Node 20 / Bun / Edge>
|
|
15
|
+
- Linguagem: <TypeScript / JavaScript>
|
|
16
|
+
- Build: <turbopack / webpack / vite>
|
|
17
|
+
|
|
18
|
+
## 2. UI / Design System
|
|
19
|
+
- Lib UI base: <shadcn / radix / mui>
|
|
20
|
+
- Design system path: <path>
|
|
21
|
+
- Tokens: <path ou descrição>
|
|
22
|
+
- Convenção de variants: <tailwind-variants / cva / cn>
|
|
23
|
+
|
|
24
|
+
## 3. Estado & dados
|
|
25
|
+
- Estado client: <zustand / jotai / context>
|
|
26
|
+
- Cache/data: <swr / react-query / server cache>
|
|
27
|
+
- Forms: <react-hook-form / formik>
|
|
28
|
+
- Validação: <zod / yup>
|
|
29
|
+
|
|
30
|
+
## 4. Auth
|
|
31
|
+
- Provider: <supabase-auth / clerk / next-auth>
|
|
32
|
+
- Estratégia: <session cookies / jwt>
|
|
33
|
+
- Middleware: <path>
|
|
34
|
+
|
|
35
|
+
## 5. Backend / DB
|
|
36
|
+
- DB: <supabase / postgres / mongo>
|
|
37
|
+
- ORM: <prisma / drizzle / supabase-js>
|
|
38
|
+
- Read-only?: <sim|não>
|
|
39
|
+
- Migrations: <permitidas|proibidas>
|
|
40
|
+
|
|
41
|
+
## 6. Padrões de fetching
|
|
42
|
+
- Server components: <quando usar>
|
|
43
|
+
- Server actions: <quando usar>
|
|
44
|
+
- Client + cache: <quando usar>
|
|
45
|
+
- Convenção de erro/loading: <descrever>
|
|
46
|
+
|
|
47
|
+
## 7. Convenções de pastas e rotas
|
|
48
|
+
- Rotas: <src/app/...>
|
|
49
|
+
- Componentes: <src/components/...>
|
|
50
|
+
- Hooks: <src/hooks/...>
|
|
51
|
+
- Helpers: <src/lib/...>
|
|
52
|
+
|
|
53
|
+
## 8. Fontes de conhecimento do projeto
|
|
54
|
+
|
|
55
|
+
> Listadas a partir de `knowledge_sources` em `.gos-local/plan-paths.json`.
|
|
56
|
+
|
|
57
|
+
| Tipo | Path | Resumo |
|
|
58
|
+
|------|------|--------|
|
|
59
|
+
| design-system | <path> | <resumo> |
|
|
60
|
+
| postman | <path> | <N coleções, M endpoints> |
|
|
61
|
+
| business-rules | <path> | <N módulos> |
|
|
62
|
+
| adr | <path> | <N ADRs ativas> |
|
|
63
|
+
|
|
64
|
+
## 9. Restrições
|
|
65
|
+
- <ex.: não introduzir nova lib sem ADR>
|
|
66
|
+
- <ex.: não alterar schema sem migration aprovada>
|
|
67
|
+
- <ex.: i18n é obrigatório em toda string visível>
|
|
68
|
+
|
|
69
|
+
## 10. Links internos
|
|
70
|
+
- README: <path>
|
|
71
|
+
- CLAUDE.md: <path>
|
|
72
|
+
- ADRs ativas: <lista>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: T-<NNN>-<NN>
|
|
3
|
+
plan_id: PLAN-<NNN>-<slug>
|
|
4
|
+
seq: <NN>
|
|
5
|
+
title: <verbo imperativo + objeto>
|
|
6
|
+
area: <ui-ux|frontend|fetching|state|tests|infra>
|
|
7
|
+
labels: [agent:<slug>, type:<feature|refactor|bug|chore>]
|
|
8
|
+
priority: <P0|P1|P2>
|
|
9
|
+
estimate: "<2h|4h|1d>"
|
|
10
|
+
status: pendente
|
|
11
|
+
valida_em: <referência ao critério no checklist do plano>
|
|
12
|
+
assignees: []
|
|
13
|
+
links: []
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Contexto
|
|
17
|
+
|
|
18
|
+
<Por que esta task existe — referência direta ao plano pai e ao critério de aceite.>
|
|
19
|
+
|
|
20
|
+
## Objetivo
|
|
21
|
+
|
|
22
|
+
<Resultado esperado em 1-2 frases.>
|
|
23
|
+
|
|
24
|
+
## Plano de execução
|
|
25
|
+
|
|
26
|
+
- [ ] Passo 1
|
|
27
|
+
- [ ] Passo 2
|
|
28
|
+
- [ ] Passo 3
|
|
29
|
+
|
|
30
|
+
## Critérios de aceitação (DoD)
|
|
31
|
+
|
|
32
|
+
- [ ] Implementação atende `valida_em` do plano
|
|
33
|
+
- [ ] Tests/CI verdes
|
|
34
|
+
- [ ] Sem regressões
|
|
35
|
+
- [ ] <métrica específica>
|
|
36
|
+
|
|
37
|
+
## Riscos & Rollback
|
|
38
|
+
|
|
39
|
+
- <risco>
|
|
40
|
+
- Rollback: <comando>
|
package/AGENTS.md
CHANGED
|
@@ -37,6 +37,21 @@ Este repo existe para acelerar design-to-code e entrega de sprint.
|
|
|
37
37
|
| **plan-to-tasks** | `/gos:skills:plan-to-tasks` | Converte plano em tasks acionaveis |
|
|
38
38
|
| **agent-teams** | `/gos:skills:agent-teams` | Coordena multiplos agentes em time |
|
|
39
39
|
| **git-ssh-setup** | `/gos:skills:git-ssh-setup` | Configura identidade SSH para o workspace |
|
|
40
|
+
| **stack-profiler** | `/gos:skills:stack-profiler` | Mantem `docs/stack.md` (stack-of-record canonica) |
|
|
41
|
+
| **plan-blueprint** | `/gos:skills:plan-blueprint` | Cria plano por tela (1 tela = 1 plano) |
|
|
42
|
+
| **progress-tracker** | `/gos:skills:progress-tracker` | Memoria L1 (`progress.txt`) + state machine |
|
|
43
|
+
|
|
44
|
+
## Plan Pipeline
|
|
45
|
+
|
|
46
|
+
Pipeline padronizado para criacao de planos por tela. Stack-of-record (`docs/stack.md`) e contrato — alteracoes exigem ADR.
|
|
47
|
+
|
|
48
|
+
| Comando | Skill | Funcao |
|
|
49
|
+
|---------|-------|--------|
|
|
50
|
+
| `*stack [refresh\|show\|drift]` | `stack-profiler` | Mantem `docs/stack.md` |
|
|
51
|
+
| `*plan <tela>` | `plan-blueprint` | Cria plano + tasks + context + atualiza `progress.txt` |
|
|
52
|
+
| `*progress [show\|set\|status]` | `progress-tracker` | State machine `pendente -> em-andamento -> validacao -> concluido` |
|
|
53
|
+
|
|
54
|
+
Paths do projeto-cliente sao resolvidos via `.gos-local/plan-paths.json` (incluindo `knowledge_sources` como Postman, regras-de-negocio, ADRs). Playbook: `.gos/playbooks/plan-creation-playbook.md`.
|
|
40
55
|
|
|
41
56
|
## Plan Mode Protocol
|
|
42
57
|
|
package/CLAUDE.md
CHANGED
|
@@ -48,4 +48,20 @@ Todo texto gerado deve passar por correcao ortografica e remocao de padroes de I
|
|
|
48
48
|
gos-master | architect | dev | devops | po | qa | sm | squad-creator | ux-design-expert
|
|
49
49
|
|
|
50
50
|
### Skills (invoke via /gos:skills:{slug})
|
|
51
|
-
design-to-code | figma-implement-design | figma-make-analyzer | make-code-triage | make-version-diff | component-dedup | frontend-dev | interface-design | react-best-practices | react-doctor | sprint-planner | clickup | plan-to-tasks | agent-teams | git-ssh-setup
|
|
51
|
+
design-to-code | figma-implement-design | figma-make-analyzer | make-code-triage | make-version-diff | component-dedup | frontend-dev | interface-design | react-best-practices | react-doctor | sprint-planner | clickup | plan-to-tasks | agent-teams | git-ssh-setup | stack-profiler | plan-blueprint | progress-tracker
|
|
52
|
+
|
|
53
|
+
## Plan Pipeline (stack-aware)
|
|
54
|
+
|
|
55
|
+
Pipeline padronizado para criacao de planos por tela. Toda tela = 1 plano. Stack-of-record (`docs/stack.md`) e contrato — alteracoes de stack exigem ADR.
|
|
56
|
+
|
|
57
|
+
| Comando | Skill | Funcao |
|
|
58
|
+
|---------|-------|--------|
|
|
59
|
+
| `*stack [refresh|show|drift]` | `stack-profiler` | Mantem `docs/stack.md` (canonico do projeto) |
|
|
60
|
+
| `*plan <tela>` | `plan-blueprint` | Cria plano + tasks + context + atualiza `progress.txt` |
|
|
61
|
+
| `*progress [show|set|status]` | `progress-tracker` | Memoria L1 + state machine de status |
|
|
62
|
+
|
|
63
|
+
State machine: `pendente -> em-andamento -> validacao -> concluido` (concluido somente apos validacao humana).
|
|
64
|
+
|
|
65
|
+
Paths do projeto-cliente sao resolvidos via `.gos-local/plan-paths.json` — nada hardcoded. Nesse arquivo declara-se onde estao `docs/plans/`, `docs/postman/`, `docs/regras-de-negocio/`, design system, etc. Cada projeto/dev pode organizar diferente.
|
|
66
|
+
|
|
67
|
+
Playbook completo: `.gos/playbooks/plan-creation-playbook.md`
|
package/README.md
CHANGED
|
@@ -130,6 +130,62 @@ O `ganbatte-os` utiliza uma estrutura **encapsulada** para manter seu projeto li
|
|
|
130
130
|
| **git-ssh-setup** | `/gos:skills:git-ssh-setup` | Configura identidade SSH para o workspace |
|
|
131
131
|
| **humanizer** | `/gos:skills:humanizer` | Remove padroes de IA do texto (two-pass audit + soul injection) |
|
|
132
132
|
| **weekly-update** | `/gos:skills:weekly-update` | Resumo semanal de tasks ClickUp → humaniza → posta no Slack (requer aprovacao) |
|
|
133
|
+
| **stack-profiler** | `/gos:skills:stack-profiler` | Mantem `docs/stack.md` como stack-of-record canonica do projeto |
|
|
134
|
+
| **plan-blueprint** | `/gos:skills:plan-blueprint` | Cria plano por tela (1 tela = 1 plano) seguindo a stack |
|
|
135
|
+
| **progress-tracker** | `/gos:skills:progress-tracker` | Memoria L1 (`progress.txt`) + state machine de status |
|
|
136
|
+
|
|
137
|
+
## Plan Pipeline (stack-aware)
|
|
138
|
+
|
|
139
|
+
Pipeline padronizado para criacao de planos por tela. Toda tela vira um plano + tasks + contexto, com status auditavel e contrato de stack.
|
|
140
|
+
|
|
141
|
+
### Fluxo
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
*stack refresh → docs/stack.md (uma vez por workspace, ou quando stack mudar)
|
|
145
|
+
*plan <tela> → docs/plans/PLAN-NNN-<slug>/{plan.md, tasks/, context.md} + progress.txt
|
|
146
|
+
*progress ... → transicoes pendente → em-andamento → validacao → concluido
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
| Comando | Skill | Funcao |
|
|
150
|
+
|---------|-------|--------|
|
|
151
|
+
| `*stack [refresh\|show\|drift]` | `stack-profiler` | Mantem `docs/stack.md` (canonico) e `.gos-local/stack.lock.json` |
|
|
152
|
+
| `*plan <tela\|figma-url>` | `plan-blueprint` | Cria plano + dispara `plan-to-tasks` + atualiza `progress.txt` |
|
|
153
|
+
| `*progress [show\|set\|status]` | `progress-tracker` | Memoria L1 e state machine |
|
|
154
|
+
|
|
155
|
+
### Regras invioiaveis
|
|
156
|
+
|
|
157
|
+
- **Stack como contrato** — toda decisao tecnica respeita `docs/stack.md`. Mudanca de stack exige ADR e flag `--allow-arch-change`.
|
|
158
|
+
- **Paths via config** — nada hardcoded. Tudo resolvido via `.gos-local/plan-paths.json` (incluindo `knowledge_sources` como Postman, regras-de-negocio, ADRs).
|
|
159
|
+
- **State machine dura** — `concluido` somente apos validacao humana.
|
|
160
|
+
- **`progress.txt` e L1** — denso, otimizado para LLM, atualizado em todo passo.
|
|
161
|
+
|
|
162
|
+
### Configuracao por workspace
|
|
163
|
+
|
|
164
|
+
`.gos-local/plan-paths.json` define onde cada projeto guarda seus artefatos. Cada projeto/dev pode organizar diferente:
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"schema": "gos.plan-paths.v1",
|
|
169
|
+
"dirs": {
|
|
170
|
+
"planos": "docs/plans/",
|
|
171
|
+
"tasks": "docs/plans/{plan}/tasks/",
|
|
172
|
+
"contexto": "docs/plans/{plan}/context.md",
|
|
173
|
+
"progress": "progress.txt",
|
|
174
|
+
"stack": "docs/stack.md",
|
|
175
|
+
"postman": "docs/postman/",
|
|
176
|
+
"regras_negocio": "docs/regras-de-negocio/"
|
|
177
|
+
},
|
|
178
|
+
"knowledge_sources": [
|
|
179
|
+
{ "kind": "postman", "path": "docs/postman/", "required": false },
|
|
180
|
+
{ "kind": "business-rules", "path": "docs/regras-de-negocio/", "required": false },
|
|
181
|
+
{ "kind": "design-system", "path": ".referencia-storybook/docs/DESIGN_SYSTEM_REFERENCE.md", "required": true }
|
|
182
|
+
]
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Helpers: `scripts/tools/plan-paths.js`, `scripts/tools/plan-status.js`, `scripts/tools/stack-scan.js`.
|
|
187
|
+
|
|
188
|
+
Playbook completo: [`.gos/playbooks/plan-creation-playbook.md`](./.gos/playbooks/plan-creation-playbook.md).
|
|
133
189
|
|
|
134
190
|
## Documentacao
|
|
135
191
|
|