ganbatte-os 0.2.33 → 0.2.34
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 +28 -3
- package/.gos/integrations/registry.json +1 -1
- package/.gos/playbooks/plan-creation-playbook.md +35 -12
- package/.gos/scripts/integrations/setup-ide-adapters.js +103 -1
- package/.gos/skills/execute-plan/SKILL.md +117 -0
- package/.gos/skills/plan-blueprint/SKILL.md +54 -10
- package/.gos/skills/registry.json +2 -1
- package/.gos/templates/planTemplate.md +24 -3
- package/.gos/templates/taskTemplate.md +1 -0
- package/CLAUDE.md +11 -7
- package/package.json +1 -1
|
@@ -93,6 +93,11 @@ comprehension_gate:
|
|
|
93
93
|
protocol:
|
|
94
94
|
step_0_scan: "Read relevant files, docs, recent commits related to the request"
|
|
95
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_55_storybook: "If routing to plan/execute: resolve dirs.storybook and index .stories.tsx files. Absent storybook = abort plan-blueprint until path provided."
|
|
97
|
+
step_0_56_project: "Resolve PROJETO from cwd. If ambiguous (monorepo root), check ~/.claude/.gos-state/last-project.json; if absent ask once and persist there for silent reuse."
|
|
98
|
+
step_0_57_branch: "Auto-resolve WORK_BRANCH: tela bate com dirs.storybook → feat/storybook; senão → dev. Não pedir ao usuário."
|
|
99
|
+
step_0_58_knowledge: "On *plan: index <PROJETO>/docs/regras-de-negocio/ and <PROJETO>/docs/postman/ (when present). Register inventory in progress.txt under '## Knowledge mapped — PLAN-NNN'. Ausência não bloqueia (apenas Storybook bloqueia)."
|
|
100
|
+
step_0_59_backend_gaps: "On *plan: detected backend gaps (endpoint não existe no Postman, RLS incompleto, migration ausente para o shape exigido) → criar task ClickUp via mcp__clickup__clickup_create_task, assignee Douglas Oliveira (112010775) salvo override ASSIGNEE no prompt. Título: '[Backend] PLAN-NNN: <gap>'. Registrar IDs em progress.txt e plan.md (## Backend pendings). Flag --skip-clickup desliga."
|
|
96
101
|
step_0_6_progress: "If progress.txt exists at the configured path: read it for active plan/task context (memória L1)."
|
|
97
102
|
step_1_document: "State what exists (current state, patterns, constraints) in factual terms"
|
|
98
103
|
step_2_assess: "Determine which agent/skill/workflow is appropriate based on evidence, not assumption"
|
|
@@ -199,13 +204,28 @@ routing_matrix:
|
|
|
199
204
|
triggers: [plan, plano, screen plan, tela, criar plano, blueprint, plano de tela]
|
|
200
205
|
target: skill:plan-blueprint
|
|
201
206
|
pre_action: Validate docs/stack.md exists; if not, dispatch stack-profiler first
|
|
202
|
-
notes:
|
|
207
|
+
notes: |
|
|
208
|
+
1 tela = 1 plano. OBJETIVO obrigatório no prompt:
|
|
209
|
+
- implantacao → criar do zero (fluxo padrão)
|
|
210
|
+
- correcao → cirúrgico, diff vs Storybook, 1 task por componente
|
|
211
|
+
- refactor → implica --allow-arch-change + ADR
|
|
212
|
+
Auto-resolve PROJETO/WORK_BRANCH/BUSINESS_RULES/POSTMAN no comprehension gate.
|
|
213
|
+
Backend gaps → tasks ClickUp automáticas pro Douglas (--skip-clickup desliga).
|
|
203
214
|
|
|
204
215
|
progress_tracking:
|
|
205
216
|
triggers: [progress, status, progress.txt, memoria curta, l1]
|
|
206
217
|
target: skill:progress-tracker
|
|
207
218
|
notes: State machine pendente → em-andamento → validacao → concluido
|
|
208
219
|
|
|
220
|
+
execute_plan:
|
|
221
|
+
triggers: [execute, executar plano, run plan, "*execute-plan", execute plan, executar PLAN]
|
|
222
|
+
target: skill:execute-plan
|
|
223
|
+
pre_action: Validate PLAN-NNN-<slug>/plan.md exists; load stack.md; index dirs.storybook stories
|
|
224
|
+
notes: |
|
|
225
|
+
Comando primário do ambiente Codex IDE Extension.
|
|
226
|
+
Ciclo Opus(plan) → Codex(execute). Roda task-a-task com state machine
|
|
227
|
+
e visual gate obrigatório contra Storybook canônico antes de validacao.
|
|
228
|
+
|
|
209
229
|
product_decisions:
|
|
210
230
|
triggers: [PRD, requirements, product decision, scope, feature priority]
|
|
211
231
|
target: agent:po
|
|
@@ -292,6 +312,9 @@ commands:
|
|
|
292
312
|
- name: progress
|
|
293
313
|
args: "[init|show|set <plan>|status <task> <novo-status>|compact|read]"
|
|
294
314
|
description: Gerencia progress.txt (memória L1) e state machine de status
|
|
315
|
+
- name: execute-plan
|
|
316
|
+
args: "<PLAN-NNN-slug> [--task T-NNN-NN] [--skip-visual-gate]"
|
|
317
|
+
description: Executa plano task-a-task com visual gate obrigatório (comando primário do Codex IDE)
|
|
295
318
|
|
|
296
319
|
# Quality
|
|
297
320
|
- name: check
|
|
@@ -328,7 +351,7 @@ available_squads:
|
|
|
328
351
|
- name: git-operations
|
|
329
352
|
purpose: SSH setup, quality gate, safe commit+push
|
|
330
353
|
|
|
331
|
-
# ─── AVAILABLE SKILLS (
|
|
354
|
+
# ─── AVAILABLE SKILLS (19) ────────────────────────────────────
|
|
332
355
|
available_skills:
|
|
333
356
|
- design-to-code
|
|
334
357
|
- figma-implement-design
|
|
@@ -348,6 +371,7 @@ available_skills:
|
|
|
348
371
|
- stack-profiler
|
|
349
372
|
- plan-blueprint
|
|
350
373
|
- progress-tracker
|
|
374
|
+
- execute-plan
|
|
351
375
|
|
|
352
376
|
# ─── PLAYBOOKS ────────────────────────────────────────────────
|
|
353
377
|
available_playbooks:
|
|
@@ -449,7 +473,8 @@ security:
|
|
|
449
473
|
**Plan pipeline (stack-aware):**
|
|
450
474
|
|
|
451
475
|
- `*stack [refresh|show|drift]` - Mantém docs/stack.md
|
|
452
|
-
- `*plan <tela|figma-url|descrição>` - Cria plano por tela
|
|
476
|
+
- `*plan <tela|figma-url|descrição>` - Cria plano por tela (Opus, planejamento)
|
|
477
|
+
- `*execute-plan <PLAN-NNN-slug>` - Executa plano com visual gate (Codex IDE, execução)
|
|
453
478
|
- `*progress [show|set|status|compact]` - Gerencia progress.txt (L1)
|
|
454
479
|
|
|
455
480
|
**Framework:**
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"antigravity": { "workspaceDir": ".antigravity", "skillsDir": ".antigravity/skills", "adapter": "integrations/antigravity", "status": "active" },
|
|
14
14
|
"gemini-cli": { "workspaceDir": ".gemini", "contextFile": "GEMINI.md", "status": "active" },
|
|
15
15
|
"cursor": { "workspaceDir": ".cursor", "ruleFile": ".cursor/rules/g-os.mdc", "status": "active" },
|
|
16
|
-
"codex": { "workspaceDir": ".codex", "skillsDir": ".
|
|
16
|
+
"codex": { "workspaceDir": ".codex", "skillsDir": ".codex/skills", "agentsDir": ".codex/agents", "commandsDir": ".codex/commands", "configFile": ".codex/config.toml", "rulesFile": ".codex/AGENTS.md", "adapter": "integrations/codex", "status": "active" },
|
|
17
17
|
"opencode": { "workspaceDir": ".opencode", "adapter": "integrations/opencode", "status": "active" },
|
|
18
18
|
"kilo-code": { "workspaceDir": ".kilocode", "ruleFile": ".kilocode/rules/g-os.md", "status": "active" },
|
|
19
19
|
"qwen-code": { "workspaceDir": ".qwen", "skillsDir": ".qwen/skills", "commandsDir": ".qwen/commands/gos", "agentsDir": ".qwen/agents", "adapter": "integrations/qwen", "status": "active" }
|
|
@@ -39,19 +39,31 @@ Se houver drift, decidir entre:
|
|
|
39
39
|
### 2. Criar plano
|
|
40
40
|
|
|
41
41
|
```
|
|
42
|
-
*plan <tela
|
|
42
|
+
*plan <tela>
|
|
43
|
+
|
|
44
|
+
OBJETIVO = implantacao | correcao | refactor # obrigatório
|
|
45
|
+
FIGMA = <url-frame>
|
|
46
|
+
FIGMA+ = [<url-comp>, ...] # opcional
|
|
47
|
+
NOTAS = """<prosa livre>""" # opcional
|
|
48
|
+
ASSIGNEE = <user-id> # opcional, default 112010775 (Douglas)
|
|
43
49
|
```
|
|
44
50
|
|
|
51
|
+
`gos-master` resolve no comprehension gate (não pedir ao usuário):
|
|
52
|
+
- `PROJETO` (cwd, ou `~/.claude/.gos-state/last-project.json`)
|
|
53
|
+
- `WORK_BRANCH` (`dev` para app, `feat/storybook` quando em Storybook)
|
|
54
|
+
- Indexação de `<PROJETO>/docs/regras-de-negocio/` e `docs/postman/` (registrada em `progress.txt`)
|
|
55
|
+
|
|
45
56
|
`plan-blueprint` executa:
|
|
46
57
|
1. Fase 1 — Mapeamento Visual & Componentização
|
|
47
58
|
2. Fase 2 — Aderência à Stack (sem redefinir arquitetura)
|
|
59
|
+
2.5 Fase 2.5 — Backend gaps → criar tasks ClickUp pro Douglas (`--skip-clickup` desliga)
|
|
48
60
|
3. Fase 3 — Plano de Execução
|
|
49
61
|
|
|
50
62
|
Saídas:
|
|
51
|
-
- `<dirs.planos>/PLAN-NNN-<slug>/plan.md`
|
|
63
|
+
- `<dirs.planos>/PLAN-NNN-<slug>/plan.md` (com seções `## Backend pendings` e `## Knowledge mapped`)
|
|
52
64
|
- `<dirs.planos>/PLAN-NNN-<slug>/context.md`
|
|
53
65
|
- `<dirs.planos>/PLAN-NNN-<slug>/tasks/T-NNN-NN-*.md`
|
|
54
|
-
- `progress.txt` atualizado com plano ativo
|
|
66
|
+
- `progress.txt` atualizado com plano ativo + inventário de knowledge + backend pendings
|
|
55
67
|
|
|
56
68
|
### 3. Revisar e aceitar
|
|
57
69
|
|
|
@@ -62,19 +74,29 @@ Humano revisa:
|
|
|
62
74
|
|
|
63
75
|
Se aprovado, prosseguir. Caso contrário: ajustar manualmente ou rerodar `*plan` com refinamento.
|
|
64
76
|
|
|
65
|
-
###
|
|
66
|
-
|
|
67
|
-
Para cada task, dev (humano ou LLM):
|
|
77
|
+
### 3.5. Pre-flight visual (antes de executar)
|
|
68
78
|
|
|
69
79
|
```
|
|
70
|
-
*
|
|
80
|
+
*execute-plan PLAN-NNN-<slug>
|
|
71
81
|
```
|
|
72
82
|
|
|
73
|
-
|
|
83
|
+
A skill `execute-plan` resolve `dirs.storybook`, indexa `.stories.tsx` disponíveis e confronta cada componente da tabela "Componentes mapeados" do plano. Componente sem story → bloqueia e propõe task de criação ANTES das tasks de implementação.
|
|
74
84
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
> Ambiente recomendado: **Codex IDE Extension** (executor). O `*plan` da etapa 2 roda em Opus 4.7 (planejador). Adapter Codex é gerado por `npm run sync:ides`.
|
|
86
|
+
|
|
87
|
+
### 4. Executar tasks (orquestrado por execute-plan)
|
|
88
|
+
|
|
89
|
+
`execute-plan` itera as tasks em ordem de `seq`:
|
|
90
|
+
|
|
91
|
+
1. `*progress status T-NNN-NN em-andamento` (state machine).
|
|
92
|
+
2. Despacha agent (`labels: [agent:<slug>]`, default `dev`) para implementar.
|
|
93
|
+
3. **Visual gate** antes de marcar `validacao`:
|
|
94
|
+
- Compara cada componente alterado com `<Componente>.stories.tsx` em 4 dimensões (anatomia, tokens, variants, densidade).
|
|
95
|
+
- Cruza JSX da tela com Figma MCP (árvore vs hierarquia).
|
|
96
|
+
- Falha → task volta a `em-andamento` com diff em `tasks/T-NNN-NN.notes.md`.
|
|
97
|
+
4. Sucesso → `*progress status T-NNN-NN validacao`.
|
|
98
|
+
|
|
99
|
+
Para rodar uma task específica fora do loop: `*execute-plan PLAN-NNN-<slug> --task T-NNN-NN`.
|
|
78
100
|
|
|
79
101
|
### 5. Validação
|
|
80
102
|
|
|
@@ -116,7 +138,8 @@ Validação humana + QA. Se aprovado:
|
|
|
116
138
|
## Skills relacionadas
|
|
117
139
|
|
|
118
140
|
- `stack-profiler` — produz/mantém `stack.md`
|
|
119
|
-
- `plan-blueprint` — cria plano por tela
|
|
141
|
+
- `plan-blueprint` — cria plano por tela (Opus, planejamento)
|
|
120
142
|
- `plan-to-tasks` — decompõe plano em tasks (chamada automaticamente)
|
|
143
|
+
- `execute-plan` — executa plano com visual gate (Codex IDE, execução)
|
|
121
144
|
- `progress-tracker` — gerencia `progress.txt`
|
|
122
145
|
- `clickup` — sync opcional para tracking externo (não obrigatório)
|
|
@@ -103,13 +103,23 @@ function main() {
|
|
|
103
103
|
const agentTarget = relativeTarget(qwenAgent, agentProfilePath);
|
|
104
104
|
const safeDesc = agentDesc.replace(/"/g, '\\"').replace(/\n/g, ' ').slice(0, 200);
|
|
105
105
|
writeFile(qwenAgent, `---\nname: "gos-${agent.id}"\ndescription: "${safeDesc}"\nmodel: inherit\ntools:\n - Read\n - Glob\n - Grep\n - Bash\n - Edit\n - Write\n---\n\nFonte canonica: \`${agentTarget}\`\nLeia e siga o perfil em \`${agentTarget}\`.`);
|
|
106
|
+
|
|
107
|
+
// Codex commands (slash commands no Codex IDE Extension)
|
|
108
|
+
const codexCmd = path.join(root, '.codex', 'commands', 'gos', 'agents', `${agent.id}.md`);
|
|
109
|
+
writeFile(codexCmd, claudeCommandWrapper(`gos-${agent.id}`, agentDesc, relativeTarget(codexCmd, agentProfilePath)));
|
|
110
|
+
|
|
111
|
+
// Codex sub-agents (Codex IDE espera .codex/agents/<id>.md)
|
|
112
|
+
const codexAgent = path.join(root, '.codex', 'agents', `gos-${agent.id}.md`);
|
|
113
|
+
const codexAgentTarget = relativeTarget(codexAgent, agentProfilePath);
|
|
114
|
+
writeFile(codexAgent, `---\nname: "gos-${agent.id}"\ndescription: "${safeDesc}"\nmodel: inherit\ntools:\n - Read\n - Glob\n - Grep\n - Bash\n - Edit\n - Write\n---\n\nFonte canonica: \`${codexAgentTarget}\`\nLeia e siga o perfil em \`${codexAgentTarget}\`.`);
|
|
106
115
|
}
|
|
107
116
|
|
|
108
117
|
for (const skill of skills) {
|
|
109
118
|
const skillTargetPath = skill.skillFile || skill.path;
|
|
110
119
|
const canonicalPath = path.join(root, '.gos', skillTargetPath);
|
|
111
120
|
const claudeSkill = path.join(root, '.claude', 'commands', 'gos', 'skills', `${skill.slug}.md`);
|
|
112
|
-
const codexSkill = path.join(root, '.
|
|
121
|
+
const codexSkill = path.join(root, '.codex', 'skills', `gos-${skill.slug}`, 'SKILL.md');
|
|
122
|
+
const codexSkillCmd = path.join(root, '.codex', 'commands', 'gos', 'skills', `${skill.slug}.md`);
|
|
113
123
|
const antigravitySkill = path.join(root, '.antigravity', 'skills', `gos-${skill.slug}`, 'SKILL.md');
|
|
114
124
|
const geminiSkill = path.join(root, '.gemini', 'skills', `gos-${skill.slug}`, 'SKILL.md');
|
|
115
125
|
const opencodeSkill = path.join(root, '.opencode', 'skills', `gos-${skill.slug}`, 'SKILL.md');
|
|
@@ -129,6 +139,7 @@ function main() {
|
|
|
129
139
|
writeFile(qwenSkill, skillWrapper(skill.slug, relativeTarget(qwenSkill, canonicalPath), skillDesc));
|
|
130
140
|
|
|
131
141
|
writeFile(qwenCmd, qwenCommandWrapper(`gos-${skill.slug}`, skillDesc, relativeTarget(qwenCmd, canonicalPath)));
|
|
142
|
+
writeFile(codexSkillCmd, claudeCommandWrapper(`gos-${skill.slug}`, skillDesc, relativeTarget(codexSkillCmd, canonicalPath), skillArgHint));
|
|
132
143
|
writeFile(claudeSkill, claudeCommandWrapper(`gos-${skill.slug}`, skillDesc, relativeTarget(claudeSkill, canonicalPath), skillArgHint));
|
|
133
144
|
}
|
|
134
145
|
|
|
@@ -169,7 +180,98 @@ function main() {
|
|
|
169
180
|
)
|
|
170
181
|
);
|
|
171
182
|
|
|
183
|
+
// Codex IDE Extension — AGENTS.md + config.toml
|
|
184
|
+
// Codex e o ambiente de EXECUCAO (Opus planeja, Codex executa). Bloco abaixo garante
|
|
185
|
+
// que slash commands e subagents estao disponiveis ao abrir o projeto no Codex.
|
|
186
|
+
const codexAgentsMd = [
|
|
187
|
+
'# G-OS no Codex IDE Extension',
|
|
188
|
+
'',
|
|
189
|
+
'Este arquivo e auto-gerado por `npm run sync:ides`. Nao edite a mao.',
|
|
190
|
+
'',
|
|
191
|
+
'Codex IDE Extension e o ambiente de EXECUCAO do G-OS. Opus 4.7 planeja em outra IDE/sessao;',
|
|
192
|
+
'Codex executa task-a-task com `*execute-plan`.',
|
|
193
|
+
'',
|
|
194
|
+
'Leia sempre:',
|
|
195
|
+
'- `../AGENTS.md` (raiz do projeto)',
|
|
196
|
+
'- `../CLAUDE.md`',
|
|
197
|
+
'- `../.gos/docs/toolchain-map.md`',
|
|
198
|
+
'',
|
|
199
|
+
'## Execucao de planos (comando primario do Codex)',
|
|
200
|
+
'',
|
|
201
|
+
'```',
|
|
202
|
+
'*execute-plan PLAN-NNN-<slug>',
|
|
203
|
+
'```',
|
|
204
|
+
'',
|
|
205
|
+
'Ciclo: pre-flight visual -> loop por task com state machine -> visual gate -> validacao -> humano marca concluido.',
|
|
206
|
+
'Detalhes: `../.gos/skills/execute-plan/SKILL.md`.',
|
|
207
|
+
'',
|
|
208
|
+
'## Agents disponiveis',
|
|
209
|
+
'',
|
|
210
|
+
...agents.map((agent) => `- \`gos-${agent.id}\` -> \`../.gos/agents/profiles/${agent.path}\``),
|
|
211
|
+
'',
|
|
212
|
+
'## Skills curadas',
|
|
213
|
+
'',
|
|
214
|
+
'| Slug | Arquivo canonico |',
|
|
215
|
+
'|------|------------------|',
|
|
216
|
+
...skills.map((skill) => `| \`gos-${skill.slug}\` | \`../.gos/${skill.skillFile || skill.path}\` |`),
|
|
217
|
+
'',
|
|
218
|
+
'## Como o Codex consome',
|
|
219
|
+
'',
|
|
220
|
+
'- Slash commands em `.codex/commands/gos/{agents,skills}/<id>.md` -> Codex carrega o canonico apontado em CANONICAL-SOURCE e executa.',
|
|
221
|
+
'- Subagents em `.codex/agents/gos-<id>.md` -> referencia o profile em `.gos/agents/profiles/`.',
|
|
222
|
+
'- Skills em `.codex/skills/gos-<slug>/SKILL.md` -> wrapper fino que aponta para `.gos/skills/<slug>/SKILL.md`.',
|
|
223
|
+
''
|
|
224
|
+
].join('\n');
|
|
225
|
+
writeFile(path.join(root, '.codex', 'AGENTS.md'), codexAgentsMd);
|
|
226
|
+
|
|
227
|
+
const codexConfigToml = [
|
|
228
|
+
'# G-OS Codex IDE Extension config (auto-gerado por npm run sync:ides).',
|
|
229
|
+
'# Edite os arquivos canonicos em .gos/ ao inves deste.',
|
|
230
|
+
'',
|
|
231
|
+
'project = "g-os"',
|
|
232
|
+
'',
|
|
233
|
+
'[instructions]',
|
|
234
|
+
'files = [',
|
|
235
|
+
' "AGENTS.md",',
|
|
236
|
+
' "../AGENTS.md",',
|
|
237
|
+
' "../CLAUDE.md",',
|
|
238
|
+
' "../.gos/docs/toolchain-map.md",',
|
|
239
|
+
']',
|
|
240
|
+
'',
|
|
241
|
+
'[execution]',
|
|
242
|
+
'primary_command = "*execute-plan"',
|
|
243
|
+
'planning_command = "*plan"',
|
|
244
|
+
'progress_command = "*progress"',
|
|
245
|
+
'stack_command = "*stack"',
|
|
246
|
+
''
|
|
247
|
+
].join('\n');
|
|
248
|
+
writeFile(path.join(root, '.codex', 'config.toml'), codexConfigToml);
|
|
249
|
+
|
|
250
|
+
// Validacao final: garantir que os arquivos do Codex foram gerados.
|
|
251
|
+
// Evita regressoes silenciosas que ja quebraram a IDE no passado.
|
|
252
|
+
const codexFailures = [];
|
|
253
|
+
for (const agent of agents) {
|
|
254
|
+
const expectedAgent = path.join(root, '.codex', 'agents', `gos-${agent.id}.md`);
|
|
255
|
+
const expectedCmd = path.join(root, '.codex', 'commands', 'gos', 'agents', `${agent.id}.md`);
|
|
256
|
+
if (!fs.existsSync(expectedAgent)) codexFailures.push(expectedAgent);
|
|
257
|
+
if (!fs.existsSync(expectedCmd)) codexFailures.push(expectedCmd);
|
|
258
|
+
}
|
|
259
|
+
for (const skill of skills) {
|
|
260
|
+
const expectedSkill = path.join(root, '.codex', 'skills', `gos-${skill.slug}`, 'SKILL.md');
|
|
261
|
+
const expectedCmd = path.join(root, '.codex', 'commands', 'gos', 'skills', `${skill.slug}.md`);
|
|
262
|
+
if (!fs.existsSync(expectedSkill)) codexFailures.push(expectedSkill);
|
|
263
|
+
if (!fs.existsSync(expectedCmd)) codexFailures.push(expectedCmd);
|
|
264
|
+
}
|
|
265
|
+
if (!fs.existsSync(path.join(root, '.codex', 'AGENTS.md'))) codexFailures.push('.codex/AGENTS.md');
|
|
266
|
+
if (!fs.existsSync(path.join(root, '.codex', 'config.toml'))) codexFailures.push('.codex/config.toml');
|
|
267
|
+
if (codexFailures.length > 0) {
|
|
268
|
+
console.error(`[sync:ides] Codex IDE adapters incompletos. Faltando ${codexFailures.length} arquivos:`);
|
|
269
|
+
for (const f of codexFailures) console.error(` - ${path.relative(root, f)}`);
|
|
270
|
+
process.exit(1);
|
|
271
|
+
}
|
|
272
|
+
|
|
172
273
|
console.log(`Adapters generated for ${agents.length} agents and ${skills.length} skills.`);
|
|
274
|
+
console.log(`Codex IDE: ${agents.length} agents + ${skills.length} skills + AGENTS.md + config.toml.`);
|
|
173
275
|
}
|
|
174
276
|
|
|
175
277
|
main();
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: execute-plan
|
|
3
|
+
description: Executa um plano (PLAN-NNN-<slug>) task-a-task aplicando state machine + visual gate contra Storybook canonico antes de marcar validacao. Comando primario do ambiente Codex IDE.
|
|
4
|
+
argument-hint: "<PLAN-NNN-slug> [--task T-NNN-NN] [--skip-visual-gate]"
|
|
5
|
+
allowedTools: [Read, Glob, Grep, Bash, Write, Edit, Agent, AskUserQuestion]
|
|
6
|
+
sourceDocs:
|
|
7
|
+
- templates/taskTemplate.md
|
|
8
|
+
- playbooks/plan-creation-playbook.md
|
|
9
|
+
- skills/figma-implement-design/SKILL.md
|
|
10
|
+
- skills/plan-blueprint/SKILL.md
|
|
11
|
+
use-when:
|
|
12
|
+
- executar plano ja criado por *plan
|
|
13
|
+
- rodar tasks de um PLAN-NNN com state machine e visual gate
|
|
14
|
+
- ambiente Codex IDE Extension (comando primario)
|
|
15
|
+
do-not-use-for:
|
|
16
|
+
- criar plano novo (use plan-blueprint)
|
|
17
|
+
- decompor plano em tasks (use plan-to-tasks)
|
|
18
|
+
- gerenciar progress.txt isoladamente (use progress-tracker)
|
|
19
|
+
metadata:
|
|
20
|
+
category: execution
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
Voce esta executando como **Executor de Planos** via skill `execute-plan`. No ambiente Codex IDE Extension este e o comando primario do ciclo `Opus(plan) -> Codex(execute)`.
|
|
24
|
+
|
|
25
|
+
## Input
|
|
26
|
+
|
|
27
|
+
$ARGUMENTS
|
|
28
|
+
|
|
29
|
+
Formato esperado:
|
|
30
|
+
- `<PLAN-NNN-slug>` — id do plano (ex.: `PLAN-001-pagina-projetos-inicial`)
|
|
31
|
+
- `--task T-NNN-NN` — opcional, executa apenas a task especifica
|
|
32
|
+
- `--skip-visual-gate` — opcional, pula visual gate (raro, registra warning)
|
|
33
|
+
|
|
34
|
+
## Pre-requisitos (gate)
|
|
35
|
+
|
|
36
|
+
1. Resolver paths via `.gos-local/plan-paths.json`. Se ausente, abortar e instruir o usuario a rodar `*plan` primeiro.
|
|
37
|
+
2. Localizar `<dirs.planos>/<PLAN-NNN-slug>/plan.md`. Se ausente, abortar.
|
|
38
|
+
3. Ler `plan.md` por completo: frontmatter + Componentes mapeados + Componentes ausentes + Aderencia a stack + Plano de execucao + Checklist de aceite.
|
|
39
|
+
4. Validar `stack_ref` do frontmatter contra `<dirs.stack>` (`docs/stack.md`):
|
|
40
|
+
- Calcular sha-curto atual e comparar.
|
|
41
|
+
- Drift detectado: ABORTAR e instruir `*stack drift` + replanejar com `*stack refresh`.
|
|
42
|
+
5. Ler `<dirs.progress>` (progress.txt). Se aponta para outro plano ativo, perguntar se troca o foco antes de prosseguir.
|
|
43
|
+
|
|
44
|
+
## Pre-flight visual
|
|
45
|
+
|
|
46
|
+
(Pulado quando `--skip-visual-gate` presente — registrar warning em `tasks/T-NNN-NN.notes.md` da primeira task.)
|
|
47
|
+
|
|
48
|
+
1. Resolver `<dirs.storybook>` via `plan-paths.json`. Path absoluto fora do repo do projeto e valido (ex.: `E:\Github\Ganbatte\tmp\fractus-storybook`).
|
|
49
|
+
2. Indexar todos `.stories.tsx` disponiveis em `<dirs.stories>` ou `<dirs.components>`.
|
|
50
|
+
3. Para cada linha da tabela "Componentes mapeados" do plano:
|
|
51
|
+
- Confirmar que a coluna `Story (path)` aponta para arquivo existente.
|
|
52
|
+
- Se ausente: gerar task de criacao do componente ANTES das tasks de implementacao. Renumerar `seq` das tasks restantes.
|
|
53
|
+
4. Output do pre-flight: bloco em `progress.txt` campo `notes=` com numero de stories indexadas e tasks de criacao geradas.
|
|
54
|
+
|
|
55
|
+
## Loop por task
|
|
56
|
+
|
|
57
|
+
Iterar tasks em ordem de `seq`. Para cada `tasks/T-NNN-NN-*.md`:
|
|
58
|
+
|
|
59
|
+
1. **Mover para em-andamento**: `*progress status T-NNN-NN em-andamento`. State machine valida transicao.
|
|
60
|
+
2. **Despachar agent**: ler `labels: [agent:<slug>]` da task. Default: `dev`. Invocar via Agent tool com prompt completo (objetivo, plano de execucao, DoD, paths relevantes).
|
|
61
|
+
3. **Implementacao**: agent edita arquivos seguindo o plano de execucao da task. Stack como contrato — nada fora de `docs/stack.md` salvo se `arch_change=true` no frontmatter do plano pai.
|
|
62
|
+
4. **Visual gate** (antes de propor `validacao`):
|
|
63
|
+
|
|
64
|
+
Para cada componente alterado/criado pela task:
|
|
65
|
+
|
|
66
|
+
a) Localizar `<Componente>.stories.tsx` em `<dirs.storybook>`.
|
|
67
|
+
b) Comparar implementacao vs story canonica em 4 dimensoes textuais:
|
|
68
|
+
- **Anatomia**: ordem de slots/elementos (header -> corpo -> footer; icones esquerda/direita; campos do form na ordem do design).
|
|
69
|
+
- **Tokens**: classes Tailwind/variaveis CSS batem com DS (cor, raio, espacamento, tipografia).
|
|
70
|
+
- **Variants**: props expostos cobrem variants da story.
|
|
71
|
+
- **Densidade**: padding/gap dentro de +-1 step da escala do DS.
|
|
72
|
+
c) Para a tela como um todo: invocar Figma MCP no `figma_url` do plano e cruzar com o JSX renderizado em arvore (mesmo numero de secoes, mesma hierarquia, mesmas labels).
|
|
73
|
+
d) Output: relatorio curto em `tasks/T-NNN-NN.notes.md` (4 secoes: anatomia, tokens, variants, densidade + secao "Arvore vs Figma").
|
|
74
|
+
e) Divergencia >= 1 item critico (anatomia ou tokens) -> falha o gate.
|
|
75
|
+
|
|
76
|
+
5. **Resultado do gate**:
|
|
77
|
+
- Sucesso -> `*progress status T-NNN-NN validacao`. Preparar arquivos staged (sem commit).
|
|
78
|
+
- Falha -> manter em `em-andamento`, gravar diff em `T-NNN-NN.notes.md`, retornar pra etapa 3.
|
|
79
|
+
|
|
80
|
+
## Fechamento
|
|
81
|
+
|
|
82
|
+
Quando todas as tasks atingirem `validacao` E o checklist de aceite do plano estiver marcado:
|
|
83
|
+
|
|
84
|
+
1. Listar arquivos modificados via `git diff --name-only`.
|
|
85
|
+
2. Preparar commit (NAO push). Mensagem segue Conventional Commits + referencia ao `PLAN-NNN-slug`.
|
|
86
|
+
3. Resumo final ao usuario:
|
|
87
|
+
- Path do plano + numero de tasks concluidas.
|
|
88
|
+
- Lista de componentes que passaram/falharam o visual gate.
|
|
89
|
+
- Comando exato para o humano marcar `concluido`: `*progress status T-NNN-NN concluido` (apos validacao humana + smoke E2E).
|
|
90
|
+
|
|
91
|
+
## Ambiente Codex IDE — observacoes
|
|
92
|
+
|
|
93
|
+
- O usuario invoca `*execute-plan` direto no Codex. A skill carrega via wrapper em `.codex/skills/gos-execute-plan/SKILL.md`.
|
|
94
|
+
- Toda chamada a outros agents/skills do G-OS dentro do execute-plan deve usar o adapter Codex correspondente (`.codex/agents/`, `.codex/commands/`).
|
|
95
|
+
- Se a chamada cair pra outro adapter (Claude/Qwen/etc) a sessao quebra — abortar com mensagem clara.
|
|
96
|
+
|
|
97
|
+
## Regras criticas
|
|
98
|
+
|
|
99
|
+
- **Visual gate nao e opcional** salvo `--skip-visual-gate` explicito. Skill nao silencia o gate.
|
|
100
|
+
- **Sem push automatico**: commit fica preparado. Push e responsabilidade do humano.
|
|
101
|
+
- **State machine inviolavel**: transicao `concluido` so apos humano validar + checklist.
|
|
102
|
+
- **Storybook como contrato**: componente sem `.stories.tsx` em `<dirs.storybook>` bloqueia a task ate ser criado.
|
|
103
|
+
|
|
104
|
+
## Model guidance
|
|
105
|
+
|
|
106
|
+
| Escopo | Modelo |
|
|
107
|
+
|--------|--------|
|
|
108
|
+
| Task simples (1 componente, sem novo padrao) | `sonnet` |
|
|
109
|
+
| Task que toca multiplos componentes ou logica de fetching | `opus` |
|
|
110
|
+
| Visual gate / comparacao com Figma | inherit (modelo do agent) |
|
|
111
|
+
|
|
112
|
+
## Instructions
|
|
113
|
+
|
|
114
|
+
1. NUNCA pular o pre-flight visual sem flag explicita.
|
|
115
|
+
2. Resolver TODOS os paths via `plan-paths.json`.
|
|
116
|
+
3. Visual gate produz relatorio em `T-NNN-NN.notes.md` mesmo em caso de sucesso.
|
|
117
|
+
4. Status final esperado: todas as tasks em `validacao`, commit preparado, humano notificado.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-blueprint
|
|
3
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|
|
|
4
|
+
argument-hint: "<tela> OBJETIVO=<implantacao|correcao|refactor> FIGMA=<url> [FIGMA+=...] [--from-figma-mcp] [--allow-arch-change] [--skip-clickup]"
|
|
5
5
|
allowedTools: [Read, Glob, Grep, Bash, Write, Edit, Agent, AskUserQuestion]
|
|
6
6
|
sourceDocs:
|
|
7
7
|
- templates/planTemplate.md
|
|
@@ -25,14 +25,35 @@ Você está executando como **Tech Lead Frontend / Arquiteto Sênior** via skill
|
|
|
25
25
|
|
|
26
26
|
$ARGUMENTS
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
|
|
28
|
+
Campos obrigatórios no prompt:
|
|
29
|
+
- `OBJETIVO` — `implantacao` | `correcao` | `refactor`
|
|
30
|
+
- `FIGMA` — URL do frame principal (auto-ativa Figma MCP)
|
|
31
|
+
|
|
32
|
+
Opcionais:
|
|
33
|
+
- `FIGMA+` — lista de URLs de componentes
|
|
34
|
+
- `NOTAS` — prosa livre (comportamento, edge cases, invioláveis)
|
|
35
|
+
- `ASSIGNEE` — override do user_id ClickUp para tasks de backend (default: 112010775)
|
|
36
|
+
|
|
37
|
+
Auto-resolvido pelo `gos-master` (comprehension gate, NÃO pedir ao usuário):
|
|
38
|
+
- `PROJETO` — `cwd`; ambíguo → `~/.claude/.gos-state/last-project.json`
|
|
39
|
+
- `WORK_BRANCH` — tela em Storybook → `feat/storybook`; senão → `dev`
|
|
40
|
+
- `STORYBOOK_DIR/BRANCH` — `plan-paths.json`
|
|
41
|
+
- `BUSINESS_RULES` — `<PROJETO>/docs/regras-de-negocio/` (indexar e registrar em progress.txt)
|
|
42
|
+
- `POSTMAN` — `<PROJETO>/docs/postman/` (idem)
|
|
43
|
+
- `BACKEND/RLS/SEED/SMOKE_E2E` — derivado de `stack.md` + regras + Postman
|
|
44
|
+
|
|
45
|
+
OBJETIVO muda postura:
|
|
46
|
+
|
|
47
|
+
| Valor | Comportamento |
|
|
48
|
+
|-------|---------------|
|
|
49
|
+
| `implantacao` | Cria do zero — Fase 1 → 2 → 3 padrão |
|
|
50
|
+
| `correcao` | Modo cirúrgico — diff vs Storybook canônico, 1 task por componente, sem reescrever |
|
|
51
|
+
| `refactor` | Implica `--allow-arch-change` + ADR obrigatória |
|
|
32
52
|
|
|
33
53
|
Flags:
|
|
34
|
-
- `--from-figma-mcp` — força leitura via Figma MCP
|
|
35
|
-
- `--allow-arch-change` — libera Fase 2 propositiva (gera ADR)
|
|
54
|
+
- `--from-figma-mcp` — força leitura via Figma MCP (default quando `FIGMA=` é Figma URL)
|
|
55
|
+
- `--allow-arch-change` — libera Fase 2 propositiva (gera ADR); implícito em `OBJETIVO=refactor`
|
|
56
|
+
- `--skip-clickup` — não cria tasks de backend automaticamente
|
|
36
57
|
|
|
37
58
|
## Pré-requisitos (gate)
|
|
38
59
|
|
|
@@ -41,6 +62,9 @@ Flags:
|
|
|
41
62
|
- Se ausente: ABORTAR. Despachar `stack-profiler refresh` e instruir o usuário a re-executar.
|
|
42
63
|
- Se presente: ler integralmente. Verificar drift via `*stack drift` antes de prosseguir.
|
|
43
64
|
3. Ler `progress.txt` se existir (memória L1).
|
|
65
|
+
4. **Verificar `dirs.storybook`** (caminho do `plan-paths.json`):
|
|
66
|
+
- Se ausente OU diretório não existe: ABORTAR. Pedir caminho ao usuário (path absoluto fora do repo é válido, ex.: `E:\Github\Ganbatte\tmp\fractus-storybook`) e gravar em `plan-paths.json`.
|
|
67
|
+
- Se presente: indexar `.stories.tsx` disponíveis (lista usada na Fase 1.3).
|
|
44
68
|
|
|
45
69
|
## Fase 1 — Mapeamento Visual & Componentização
|
|
46
70
|
|
|
@@ -60,8 +84,10 @@ Caso contrário: trabalhar pela descrição/screenshot fornecido.
|
|
|
60
84
|
|
|
61
85
|
Produzir tabela:
|
|
62
86
|
|
|
63
|
-
| Elemento (Figma/descrição) | Componente do DS | Variant | Props relevantes |
|
|
64
|
-
|
|
87
|
+
| Elemento (Figma/descrição) | Componente do DS | Story (path) | Variant | Props relevantes |
|
|
88
|
+
|----------------------------|------------------|--------------|---------|-------------------|
|
|
89
|
+
|
|
90
|
+
A coluna `Story (path)` aponta para `.stories.tsx` indexado no gate. Componente sem story correspondente NÃO entra na tabela — vai pra "Componentes ausentes" e gera task de criação.
|
|
65
91
|
|
|
66
92
|
Listar **componentes ausentes** separadamente — sinalizar como bloqueio ou candidato a criação (vai virar task própria).
|
|
67
93
|
|
|
@@ -77,6 +103,22 @@ Saída desta fase é uma seção **"Aderência à Stack"** no plano — não red
|
|
|
77
103
|
|
|
78
104
|
**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
105
|
|
|
106
|
+
### 2.5 Backend gaps → ClickUp automático
|
|
107
|
+
|
|
108
|
+
Postman é o **contrato backend**. Para cada dado/ação da tela:
|
|
109
|
+
|
|
110
|
+
1. Confrontar com `<PROJETO>/docs/postman/` (já indexado no comprehension gate).
|
|
111
|
+
2. Se o endpoint não existir, ou existir com shape divergente, ou faltar RLS/migration para suportar a tela → registrar como **backend pending**.
|
|
112
|
+
3. Para cada pending, criar task ClickUp via `mcp__clickup__clickup_create_task`:
|
|
113
|
+
- **Assignee**: `ASSIGNEE` do prompt OU default `112010775` (Douglas Oliveira).
|
|
114
|
+
- **List**: `clickup.backend_list_id` de `plan-paths.json`. Ausente → registrar pending no plano com `clickup: pending` e seguir.
|
|
115
|
+
- **Título**: `[Backend] PLAN-NNN: <gap em uma linha>`
|
|
116
|
+
- **Descrição**: o que a tela precisa, qual coleção/endpoint do Postman cobre (ou não), referência ao plano (`docs/plans/PLAN-NNN/plan.md`), shape esperado.
|
|
117
|
+
4. Registrar IDs criados em:
|
|
118
|
+
- `plan.md` → seção `## Backend pendings` (lista com `clickup_id`, status, link).
|
|
119
|
+
- `progress.txt` → bloco `## Backend pendings — PLAN-NNN`.
|
|
120
|
+
5. Flag `--skip-clickup` desliga a criação (pending fica registrado apenas no plano).
|
|
121
|
+
|
|
80
122
|
## Fase 3 — Plano de Execução
|
|
81
123
|
|
|
82
124
|
Para cada elemento mapeado:
|
|
@@ -127,6 +169,7 @@ Próximos passos:
|
|
|
127
169
|
- **Backend read-only respeitado**: se `stack.md` declara backend read-only, plano NUNCA propõe schema novo.
|
|
128
170
|
- **Next.js App Router**: decisão server vs client é explícita por elemento.
|
|
129
171
|
- **Sem prosa decorativa**: plano deve ser executável, denso, com critérios mensuráveis.
|
|
172
|
+
- **Storybook como contrato**: cada componente do DS na tabela DEVE apontar `.stories.tsx` existente em `dirs.storybook`. Sem story → componente vai pra "Componentes ausentes" e gera task de criação. Sem essa disciplina, o visual gate do `*execute-plan` quebra.
|
|
130
173
|
|
|
131
174
|
## Model guidance
|
|
132
175
|
|
|
@@ -139,6 +182,7 @@ Próximos passos:
|
|
|
139
182
|
## Instructions
|
|
140
183
|
|
|
141
184
|
1. NUNCA prosseguir sem `stack.md` válido.
|
|
142
|
-
2. Resolver TODOS os paths via `plan-paths.json`.
|
|
185
|
+
2. Resolver TODOS os paths via `plan-paths.json`. PROJETO/WORK_BRANCH são auto-resolvidos pelo `gos-master` — não perguntar ao usuário.
|
|
143
186
|
3. Status inicial do plano e tasks: `pendente`.
|
|
144
187
|
4. Não pushar nada — apenas escrever arquivos locais.
|
|
188
|
+
5. Backend pendings só criam tasks ClickUp se o `mcp__clickup__*` estiver disponível na sessão E `--skip-clickup` não for passado. Caso contrário, registrar apenas no plano.
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
{ "slug": "slack-review", "path": "skills/slack-review/SKILL.md" },
|
|
23
23
|
{ "slug": "stack-profiler", "path": "skills/stack-profiler/SKILL.md" },
|
|
24
24
|
{ "slug": "plan-blueprint", "path": "skills/plan-blueprint/SKILL.md" },
|
|
25
|
-
{ "slug": "progress-tracker", "path": "skills/progress-tracker/SKILL.md" }
|
|
25
|
+
{ "slug": "progress-tracker", "path": "skills/progress-tracker/SKILL.md" },
|
|
26
|
+
{ "slug": "execute-plan", "path": "skills/execute-plan/SKILL.md" }
|
|
26
27
|
]
|
|
27
28
|
}
|
|
@@ -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,9 @@ 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 |
|
|
25
|
+
|----------|------------------|--------------|---------|-------|
|
|
26
|
+
| | | | | |
|
|
25
27
|
|
|
26
28
|
## Componentes ausentes
|
|
27
29
|
|
|
@@ -68,9 +70,28 @@ validated_at: null
|
|
|
68
70
|
- [ ] Sem console errors/warnings
|
|
69
71
|
- [ ] TypeScript válido (`tsc --noEmit`)
|
|
70
72
|
- [ ] Reutilização ≥ X% de componentes do DS
|
|
73
|
+
- [ ] **Visual gate**: cada componente mapeado tem story em `dirs.stories/`
|
|
74
|
+
- [ ] **Visual gate**: anatomia, tokens e densidade batem com a story canônica (≤ 1 desvio menor documentado em `T-NNN-NN.notes.md`)
|
|
75
|
+
- [ ] **Visual gate**: árvore JSX da tela espelha hierarquia do Figma (mesmas seções, mesma ordem)
|
|
71
76
|
- [ ] <critério específico da tela 1>
|
|
72
77
|
- [ ] <critério específico da tela 2>
|
|
73
78
|
|
|
79
|
+
## Backend pendings
|
|
80
|
+
|
|
81
|
+
> 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.
|
|
82
|
+
|
|
83
|
+
| Gap | Endpoint/Coleção esperada | ClickUp ID | Status |
|
|
84
|
+
|-----|---------------------------|------------|--------|
|
|
85
|
+
| | | | |
|
|
86
|
+
|
|
87
|
+
## Knowledge mapped
|
|
88
|
+
|
|
89
|
+
> Inventário denso do que foi indexado no comprehension gate (regras-de-negocio + Postman).
|
|
90
|
+
|
|
91
|
+
- **Regras de negócio**: `<lista de arquivos relevantes em docs/regras-de-negocio/>`
|
|
92
|
+
- **Postman**: `<lista de coleções/endpoints relevantes em docs/postman/>`
|
|
93
|
+
- **Stack ref**: `<sha de stack.md>`
|
|
94
|
+
|
|
74
95
|
## Riscos & Rollback
|
|
75
96
|
|
|
76
97
|
- <risco>
|
|
@@ -30,6 +30,7 @@ links: []
|
|
|
30
30
|
## Critérios de aceitação (DoD)
|
|
31
31
|
|
|
32
32
|
- [ ] Implementação atende `valida_em` do plano
|
|
33
|
+
- [ ] **Visual gate aprovado** (relatório em `T-NNN-NN.notes.md` com 4 seções: anatomia, tokens, variants, densidade)
|
|
33
34
|
- [ ] Tests/CI verdes
|
|
34
35
|
- [ ] Sem regressões
|
|
35
36
|
- [ ] <métrica específica>
|
package/CLAUDE.md
CHANGED
|
@@ -48,17 +48,21 @@ 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
|
|
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**.
|
|
56
59
|
|
|
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
|
-
| `*
|
|
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` |
|
|
64
|
+
| `*execute-plan <PLAN-NNN>` | `execute-plan` | **Codex IDE Extension** (executor) | Executa task-a-task com visual gate vs Storybook canonico |
|
|
65
|
+
| `*progress [show|set|status]` | `progress-tracker` | qualquer | Memoria L1 + state machine de status |
|
|
62
66
|
|
|
63
67
|
State machine: `pendente -> em-andamento -> validacao -> concluido` (concluido somente apos validacao humana).
|
|
64
68
|
|