ganbatte-os 0.2.33 → 0.2.35

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.
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  id: PLAN-<NNN>-<slug>
3
3
  tela: <nome da tela>
4
+ objetivo: <implantacao | correcao | refactor>
4
5
  figma_url: <url ou null>
5
6
  status: pendente
6
7
  parent_plan: <PLAN-NNN ou null>
7
8
  children_plans: []
8
9
  stack_ref: docs/stack.md@<sha-curto>
9
10
  arch_change: false
11
+ work_branch: <dev | feat/storybook>
10
12
  created_at: <iso>
11
13
  validated_at: null
12
14
  ---
@@ -19,9 +21,41 @@ validated_at: null
19
21
 
20
22
  ## Componentes mapeados
21
23
 
22
- | Elemento | Componente do DS | Variant | Props |
23
- |----------|------------------|---------|-------|
24
- | | | | |
24
+ | Elemento | Componente do DS | Story (path) | Variant | Props | Comportamento |
25
+ |----------|------------------|--------------|---------|-------|---------------|
26
+ | | | | | | |
27
+
28
+ > Coluna `Comportamento` é **obrigatória** quando o elemento é interativo (row clicável, botão, input, drawer/modal/popup trigger). Refinamentos cosméticos da página (bg, border, padding) NÃO entram aqui — vão para `## Page-level overrides`.
29
+
30
+ ## Interações & Estados
31
+
32
+ > Cobre o `INTERACOES` do prompt. Cada bullet = um caminho do usuário (trigger → ação → resultado/estado). `validate-plan` cruza essa lista contra tasks com `interaction_target:` no frontmatter.
33
+
34
+ Fluxos por trigger:
35
+
36
+ 1. <ex: Lista → Row click → Drawer abre `mode=view` com record.id → fechar (X ou backdrop) → volta lista>
37
+ 2. <ex: Lista → "Novo X" → Drawer abre `mode=create` vazio → Salvar → POST /x → fecha + refetch + toast>
38
+ 3. <ex: Toolbar → mudar filtro Período → debounce 300ms → refetch query>
39
+
40
+ Estados visuais por componente (skeleton / empty / error / loading):
41
+
42
+ - <ex: Tabela: skeleton 5 rows enquanto fetch; empty state com ilustração + CTA "Criar primeiro X">
43
+ - <ex: Drawer Salvar: estado loading com spinner + disabled durante POST>
44
+ - <ex: Toolbar refresh: ícone gira durante refetch>
45
+
46
+ ## Page-level overrides
47
+
48
+ > Refinamentos do Figma da página que divergem da story canônica. **Política**: Figma da página vence a story em conflitos cosméticos (bg, border, padding, radius). Cada override é uma decisão (a/b/c).
49
+
50
+ | Componente | Override observado | Decisão | Ação |
51
+ |------------|--------------------|---------|------|
52
+ | | | | |
53
+
54
+ Decisões possíveis:
55
+
56
+ - **(a) className na página** — override cosmético e isolado; mantém story padrão e aplica via classe na composição da página.
57
+ - **(b) Nova variant na story** — override aparece em ≥3 telas do projeto; vira variant reusável (ex.: `flat`, `seamless`).
58
+ - **(c) Exceção documentada** — override específico desta tela e não merece variant; documentado aqui sem propagar pra story.
25
59
 
26
60
  ## Componentes ausentes
27
61
 
@@ -68,9 +102,40 @@ validated_at: null
68
102
  - [ ] Sem console errors/warnings
69
103
  - [ ] TypeScript válido (`tsc --noEmit`)
70
104
  - [ ] Reutilização ≥ X% de componentes do DS
105
+ - [ ] **Visual gate**: cada componente mapeado tem story em `dirs.stories/`
106
+ - [ ] **Visual gate**: anatomia, tokens e densidade batem com a story canônica (≤ 1 desvio menor documentado em `T-NNN-NN.notes.md`)
107
+ - [ ] **Visual gate**: árvore JSX da tela espelha hierarquia do Figma (mesmas seções, mesma ordem)
108
+ - [ ] **Comportamentos**: cada linha de "Interações & Estados" tem implementação testável (handler conectado, refetch disparando, estado visual renderizado)
109
+ - [ ] **Overrides**: cada linha de "Page-level overrides" foi resolvida pela decisão registrada (a/b/c)
110
+ - [ ] **Variants**: story canônica reflete novas variants criadas (decisões `b`)
111
+ - [ ] **States**: skeleton/empty/error/loading implementados conforme matriz acima
112
+ - [ ] **Refetch**: dispara após mutações (POST/PATCH/DELETE)
113
+ - [ ] **Seed**: popula TODOS os campos exibidos no Figma (sem `-` em colunas mapeadas)
71
114
  - [ ] <critério específico da tela 1>
72
115
  - [ ] <critério específico da tela 2>
73
116
 
117
+ ## Backend pendings
118
+
119
+ > Gaps detectados confrontando Postman/regras-de-negocio com a necessidade da tela. Cada item vira task ClickUp atribuída ao Douglas (default) ou ao `ASSIGNEE` informado. Vazio = backend completo para esta tela.
120
+
121
+ > Coluna `Bloqueia tasks` lista os T-IDs frontend cujo frontmatter declara `depends_on_backend:` apontando para a `gap-key` desta linha (ex.: `migration-20260501150000`).
122
+
123
+ | gap-key | Gap | Endpoint/Coleção esperada | ClickUp ID | Status | Bloqueia tasks |
124
+ |---------|-----|---------------------------|------------|--------|----------------|
125
+ | | | | | | |
126
+
127
+ ## Mock strategy
128
+
129
+ > Opcional. Quando o frontend opta por mock enquanto o backend não atende, descreva aqui (ex.: fixture em `src/__mocks__/projetos.json`, MSW handler, etc.). Tasks que usam mock NÃO declaram `depends_on_backend:` — apenas referenciam esta seção.
130
+
131
+ ## Knowledge mapped
132
+
133
+ > Inventário denso do que foi indexado no comprehension gate (regras-de-negocio + Postman).
134
+
135
+ - **Regras de negócio**: `<lista de arquivos relevantes em docs/regras-de-negocio/>`
136
+ - **Postman**: `<lista de coleções/endpoints relevantes em docs/postman/>`
137
+ - **Stack ref**: `<sha de stack.md>`
138
+
74
139
  ## Riscos & Rollback
75
140
 
76
141
  - <risco>
@@ -9,6 +9,9 @@ priority: <P0|P1|P2>
9
9
  estimate: "<2h|4h|1d>"
10
10
  status: pendente
11
11
  valida_em: <referência ao critério no checklist do plano>
12
+ depends_on_backend: [] # opcional — gap-keys da tabela ## Backend pendings do plano pai
13
+ interaction_target: [] # opcional — bullets de "## Interações & Estados" do plano pai que esta task implementa/preserva (ex.: ["row-click-drawer-view", "submit-create"])
14
+ override_target: [] # opcional — linhas de "## Page-level overrides" do plano pai que esta task resolve (ex.: ["StatCard:flat-variant"])
12
15
  assignees: []
13
16
  links: []
14
17
  ---
@@ -30,6 +33,9 @@ links: []
30
33
  ## Critérios de aceitação (DoD)
31
34
 
32
35
  - [ ] Implementação atende `valida_em` do plano
36
+ - [ ] **Visual gate aprovado** (relatório em `T-NNN-NN.notes.md` com 5 seções: anatomia, tokens, variants, densidade, comportamentos)
37
+ - [ ] **Comportamentos**: cada `interaction_target` declarado tem handler/estado implementado e observável no diff
38
+ - [ ] **Overrides**: cada `override_target` declarado foi aplicado conforme decisão (a/b/c) registrada em `## Page-level overrides`
33
39
  - [ ] Tests/CI verdes
34
40
  - [ ] Sem regressões
35
41
  - [ ] <métrica específica>
package/CLAUDE.md CHANGED
@@ -48,19 +48,26 @@ 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 | stack-profiler | plan-blueprint | progress-tracker
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 | execute-plan | validate-plan
52
+
53
+ ### IDEs suportadas (npm run sync:ides gera adapters)
54
+ Claude Code | Cursor | Gemini CLI | Qwen Code | Antigravity | Opencode | Kilo Code | **Codex IDE Extension** (ambiente de execucao, comando primario `*execute-plan`)
52
55
 
53
56
  ## Plan Pipeline (stack-aware)
54
57
 
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.
58
+ 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. Divisao de trabalho: **Opus 4.7 planeja, Codex IDE executa**.
59
+
60
+ | Comando | Skill | IDE / Modelo | Funcao |
61
+ |---------|-------|--------------|--------|
62
+ | `*stack [refresh|show|drift]` | `stack-profiler` | qualquer | Mantem `docs/stack.md` (canonico do projeto) |
63
+ | `*plan <tela>` | `plan-blueprint` | Opus 4.7 (planejador) | Cria plano + tasks + context + atualiza `progress.txt`. Captura comportamentos (`## Interacoes & Estados`) e page-level overrides (`## Page-level overrides`). INTERACOES obrigatorio quando tela tem table-clicavel/drawer/modal/popup. |
64
+ | `*execute-plan <PLAN-NNN>` | `execute-plan` | **Codex IDE Extension** (executor) | Executa task-a-task com visual gate (5 dim: anatomia, tokens, variants, densidade, comportamentos) vs Storybook canonico. Pre-flight smoke compara screenshot da pagina vs Figma frame antes da T-01. Non-blocking em backend gaps. |
65
+ | `*validate-plan <PLAN-NNN>` | `validate-plan` | Opus 4.7 (revisor) | Valida pos-execute; auto-marca concluido tasks que passam em checklist + visual gate curto + diff |
66
+ | `*progress [show|set|status]` | `progress-tracker` | qualquer | Memoria L1 + state machine de status |
56
67
 
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 |
68
+ State machine: `pendente -> em-andamento -> validacao -> concluido`. Estado lateral `bloqueada-backend` (introduzido pelo `*execute-plan` quando task tem `depends_on_backend:` em aberto no ClickUp; libera quando ClickUp fecha). `concluido` marcado automaticamente pelo `*validate-plan` quando passa em checklist + visual gate curto + diff + cobertura de `interaction_target`/`override_target`.
62
69
 
63
- State machine: `pendente -> em-andamento -> validacao -> concluido` (concluido somente apos validacao humana).
70
+ **Politica Figma vs Storybook**: story define API/anatomia do componente; em conflito visual cosmetico (bg, border, padding, radius), Figma da pagina vence — divergencia e registrada em `## Page-level overrides` do plano com decisao a/b/c (a=className, b=variant nova, c=excecao documentada). Sem essa disciplina, refinamentos da pagina viram retrabalho no fim (caso PLAN-005: 54 deltas em 26 rodadas).
64
71
 
65
72
  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
73
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ganbatte-os",
3
- "version": "0.2.33",
3
+ "version": "0.2.35",
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"