ganbatte-os 0.2.28 → 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.
@@ -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 (15) ────────────────────────────────────
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. Read `./.G-OS/agents/tasks-writer.system.md` to internalize the DoD for tasks.
27
- 3. Read `./.G-OS/templates/taskTemplate.md` to get the exact format.
28
- 4. Read `./.G-OS/tasks/README.md` (if it exists) to understand the current task naming convention.
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 the project docs convention:
44
+ For each task, create a file following o caminho resolvido em `plan-paths.json`:
45
45
 
46
- **Primary location (per-project):** `docs/tasks/NN-name/TASK-NN-desc.md`
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 (framework tasks):** `./.G-OS/tasks/TASK-<YYYYMM>-<seq>.md`
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
- Use this template (from `./.G-OS/templates/taskTemplate.md`):
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.
@@ -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,15 @@
1
+ # progress.l1
2
+ ts=<iso>
3
+ project=<nome>
4
+ plan_active=<path/plan.md>
5
+ tasks_dir=<path/tasks/>
6
+ context=<path/context.md>
7
+ stack_ref=docs/stack.md@<sha>
8
+ status=pendente
9
+
10
+ last_done=
11
+ current=
12
+ next=
13
+
14
+ blockers=
15
+ notes=
@@ -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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ganbatte-os",
3
- "version": "0.2.28",
3
+ "version": "0.2.29",
4
4
  "description": "Framework operacional para design-to-code, squads de entrega e sprint sync com ClickUp.",
5
5
  "bin": {
6
6
  "gos": ".gos/scripts/cli/gos-cli.js"