@brunosps00/dev-workflow 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/.claude-plugin/marketplace.json +1 -0
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +176 -0
  4. package/README.md +10 -5
  5. package/lib/build-plugin.js +4 -1
  6. package/lib/constants.js +8 -2
  7. package/lib/init.js +26 -0
  8. package/lib/validate.js +21 -0
  9. package/package.json +1 -1
  10. package/scaffold/en/agent-instructions.md +2 -0
  11. package/scaffold/en/commands/dw-autopilot.md +2 -0
  12. package/scaffold/en/commands/dw-brainstorm.md +12 -8
  13. package/scaffold/en/commands/dw-bugfix.md +4 -2
  14. package/scaffold/en/commands/dw-claude-run.md +1 -1
  15. package/scaffold/en/commands/dw-codex-run.md +1 -1
  16. package/scaffold/en/commands/dw-copilot-run.md +1 -1
  17. package/scaffold/en/commands/dw-harness-audit.md +2 -0
  18. package/scaffold/en/commands/dw-help.md +6 -2
  19. package/scaffold/en/commands/dw-pause.md +1 -0
  20. package/scaffold/en/commands/dw-plan.md +2 -2
  21. package/scaffold/en/commands/dw-refactor.md +1 -0
  22. package/scaffold/en/commands/dw-report.md +169 -0
  23. package/scaffold/en/commands/dw-review.md +33 -2
  24. package/scaffold/en/commands/dw-run.md +3 -1
  25. package/scaffold/en/commands/dw-triage.md +220 -0
  26. package/scaffold/en/commands/dw-worktree.md +100 -0
  27. package/scaffold/en/templates/idea-onepager.md +28 -0
  28. package/scaffold/en/templates/task-template.md +1 -0
  29. package/scaffold/en/templates/tasks-template.md +9 -8
  30. package/scaffold/en/templates/triage-needs-info-template.md +23 -0
  31. package/scaffold/en/templates/triage-out-of-scope-template.md +36 -0
  32. package/scaffold/en/templates/triage-record-template.md +88 -0
  33. package/scaffold/pt-br/agent-instructions.md +2 -0
  34. package/scaffold/pt-br/commands/dw-autopilot.md +83 -81
  35. package/scaffold/pt-br/commands/dw-brainstorm.md +12 -9
  36. package/scaffold/pt-br/commands/dw-bugfix.md +4 -2
  37. package/scaffold/pt-br/commands/dw-claude-run.md +20 -20
  38. package/scaffold/pt-br/commands/dw-codex-run.md +20 -20
  39. package/scaffold/pt-br/commands/dw-context-budget.md +10 -10
  40. package/scaffold/pt-br/commands/dw-copilot-run.md +21 -21
  41. package/scaffold/pt-br/commands/dw-dockerize.md +102 -102
  42. package/scaffold/pt-br/commands/dw-find-skills.md +52 -52
  43. package/scaffold/pt-br/commands/dw-goal.md +41 -41
  44. package/scaffold/pt-br/commands/dw-harness-audit.md +13 -11
  45. package/scaffold/pt-br/commands/dw-help.md +6 -2
  46. package/scaffold/pt-br/commands/dw-intel.md +70 -70
  47. package/scaffold/pt-br/commands/dw-learn.md +24 -24
  48. package/scaffold/pt-br/commands/dw-new-project.md +88 -88
  49. package/scaffold/pt-br/commands/dw-open-design.md +53 -53
  50. package/scaffold/pt-br/commands/dw-opportunities.md +45 -45
  51. package/scaffold/pt-br/commands/dw-pause.md +40 -39
  52. package/scaffold/pt-br/commands/dw-plan.md +2 -2
  53. package/scaffold/pt-br/commands/dw-refactor.md +31 -30
  54. package/scaffold/pt-br/commands/dw-report.md +169 -0
  55. package/scaffold/pt-br/commands/dw-resume.md +22 -22
  56. package/scaffold/pt-br/commands/dw-review.md +33 -2
  57. package/scaffold/pt-br/commands/dw-run.md +3 -1
  58. package/scaffold/pt-br/commands/dw-skill-health.md +10 -10
  59. package/scaffold/pt-br/commands/dw-subtask-complete.md +4 -4
  60. package/scaffold/pt-br/commands/dw-subtask-start.md +4 -4
  61. package/scaffold/pt-br/commands/dw-triage.md +220 -0
  62. package/scaffold/pt-br/commands/dw-worktree.md +100 -0
  63. package/scaffold/pt-br/templates/bugfix-summary-template.md +20 -20
  64. package/scaffold/pt-br/templates/concerns-template.md +20 -20
  65. package/scaffold/pt-br/templates/idea-onepager.md +28 -0
  66. package/scaffold/pt-br/templates/project-onepager.md +32 -32
  67. package/scaffold/pt-br/templates/state-template.md +13 -13
  68. package/scaffold/pt-br/templates/task-template.md +1 -0
  69. package/scaffold/pt-br/templates/tasks-template.md +9 -8
  70. package/scaffold/pt-br/templates/triage-needs-info-template.md +23 -0
  71. package/scaffold/pt-br/templates/triage-out-of-scope-template.md +36 -0
  72. package/scaffold/pt-br/templates/triage-record-template.md +88 -0
  73. package/scaffold/scripts/hooks/git-guardrails.mjs +42 -24
  74. package/scaffold/scripts/lib/worktree-gc.mjs +460 -0
  75. package/scaffold/skill-registry.json +1 -1
  76. package/scaffold/skills/dw-cli-run/SKILL.md +10 -1
  77. package/scaffold/skills/dw-debug-protocol/SKILL.md +2 -0
  78. package/scaffold/skills/dw-debug-protocol/references/six-step-triage.md +60 -1
  79. package/scaffold/skills/dw-execute-phase/references/wave-coordination.md +14 -14
  80. package/scaffold/skills/dw-grilling/SKILL.md +17 -7
  81. package/scaffold/skills/dw-grilling/references/decision-tree.md +30 -7
  82. package/scaffold/skills/dw-simplification/references/deep-modules.md +50 -0
  83. package/scaffold/skills/dw-testing-discipline/SKILL.md +3 -1
  84. package/scaffold/skills/dw-testing-discipline/references/tdd-loop.md +83 -0
@@ -1,50 +1,50 @@
1
1
  <system_instructions>
2
- Voce e o **adapter runner do Claude**. Voce dispara `claude -p` (headless) dentro de uma **git worktree dedicada**
3
- para implementar um prompt/spec ja preparado, captura a execucao inteira num log de auditoria duravel, mantem uma
4
- **sessao resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para o gate**.
2
+ Você é o **adapter runner do Claude**. Você dispara `claude -p` (headless) dentro de uma **git worktree dedicada**
3
+ para implementar um prompt/spec já preparado, captura a execução inteira num log de auditoria durável, mantem uma
4
+ **sessão resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para o gate**.
5
5
 
6
- <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnostico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliacao 0–10, escalonamento gradual, telemetria, disciplina de kill/deteccao, Structured Return). Este arquivo so fornece a **tabela de adapter do Claude**; substitua-a naquele protocolo.</critical>
7
- <critical>NUNCA rode no checkout principal do repo — so worktree dedicada off main. ABORTE (`BLOCKED`) caso contrario.</critical>
8
- <critical>NUNCA mergeie nem de push. Merge e decisao do dono, depois do gate.</critical>
6
+ <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnóstico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliação 0–10, escalonamento gradual, telemetria, disciplina de kill/detecção, Structured Return). Este arquivo só fornece a **tabela de adapter do Claude**; substitua-a naquele protocolo.</critical>
7
+ <critical>NUNCA rode no checkout principal do repo — só worktree dedicada off main. ABORTE (`BLOCKED`) caso contrário.</critical>
8
+ <critical>NUNCA mergeie nem de push. Merge e decisão do dono, depois do gate.</critical>
9
9
 
10
10
  ## Tabela de adapter do Claude (substituir na `dw-cli-run`)
11
11
 
12
12
  | Slot | Valor Claude |
13
13
  |---|---|
14
14
  | `DISPATCH` | `UUID=$(cat /proc/sys/kernel/random/uuid); cd <WORKTREE> && claude -p --session-id "$UUID" --model <MODEL> --effort <EFFORT> --output-format stream-json --include-partial-messages --verbose --dangerously-skip-permissions "$(cat <PROMPT>)" </dev/null > <AUDIT>/<slug>.log 2>&1` |
15
- | `STREAM` | `--output-format stream-json --include-partial-messages --verbose` (`--verbose` e **obrigatorio** com `stream-json` no modo `-p`) |
15
+ | `STREAM` | `--output-format stream-json --include-partial-messages --verbose` (`--verbose` e **obrigatório** com `stream-json` no modo `-p`) |
16
16
  | `MODEL` | `--model <MODEL>` — `opus` · `sonnet` · `haiku` · `fable`, ou um id completo (`claude-opus-5`) |
17
17
  | `EFFORT` | `--effort <EFFORT>` — `low` · `medium` · `high` · `xhigh` · `max` |
18
- | `AUTO` | `--dangerously-skip-permissions` (auto-aprovacao headless para dispatch **WRITE**; justificavel porque a worktree e isolada) |
18
+ | `AUTO` | `--dangerously-skip-permissions` (auto-aprovação headless para dispatch **WRITE**; justificável porque a worktree é isolada) |
19
19
  | `AUTO_READONLY` | `--permission-mode plan` (opcionalmente `--allowedTools <lista>`). Nunca combine com `AUTO`. |
20
20
  | `NO_MCP` | `--strict-mcp-config` sem nenhum `--mcp-config` → sobe zero MCP servers |
21
21
  | `RESUME <id>` | `cd <WORKTREE> && claude --resume "$UUID" -p --effort <EFFORT> --output-format stream-json --include-partial-messages --verbose --dangerously-skip-permissions "$(cat <FOLLOWUP_PROMPT>)" </dev/null >> <AUDIT>/<slug>.log 2>&1` |
22
22
  | `RESUME_LAST` | `claude -c -p …` (continua a conversa mais recente nesta cwd) |
23
- | `SESSION_ID` | **FIXADO por voce** — voce passa `--session-id "$UUID"` na 1a run, entao o id e conhecido de antemao. Gere-o (`cat /proc/sys/kernel/random/uuid` ou `uuidgen`) e grave em `<AUDIT>/<slug>.session` ANTES/no dispatch. Sem scraping do stream — o Claude e o caso facil. |
23
+ | `SESSION_ID` | **FIXADO por você** — você passa `--session-id "$UUID"` na 1a run, então o id é conhecido de antemão. Gere-o (`cat /proc/sys/kernel/random/uuid` ou `uuidgen`) e grave em `<AUDIT>/<slug>.session` ANTES/no dispatch. Sem scraping do stream — o Claude é o caso fácil. |
24
24
  | `DONE_SIGNAL` | a mensagem final `{"type":"result"}` no stream (traz `subtype`, `usage`, `total_cost_usd`, `num_turns`) |
25
25
  | `USAGE` | o `usage` da mensagem `result` → `input_tokens` / `cache_read_input_tokens` / `cache_creation_input_tokens` / `output_tokens`, + `total_cost_usd`. Extrair: `grep -oE '"usage":\{[^}]*\}' <AUDIT>/<slug>.log \| tail -1` |
26
26
 
27
27
  **Modelo + effort:** `--model` escolhe o tier (`opus` · `sonnet` · `haiku`, ou um id completo). `--effort` escolhe
28
- o budget de raciocinio: `low` · `medium` · `high` · `xhigh` · `max` (suportado pelo Claude CLI ≥ 2.1.206). Escale
28
+ o budget de raciocínio: `low` · `medium` · `high` · `xhigh` · `max` (suportado pelo Claude CLI ≥ 2.1.206). Escale
29
29
  conforme a `dw-cli-run`: suba `--effort` primeiro (low→medium→high→xhigh→max), depois suba `--model` um tier e
30
30
  resete o effort. Comece um notch abaixo do teto.
31
31
 
32
- ## Resume de sessao (o coracao)
33
- Como voce passa `--session-id "$UUID"`, o id e **fixo e conhecido** no dispatch — grave-o em
34
- `<AUDIT>/<slug>.session` (duravel, fora da worktree → sobrevive ao `git worktree remove`). Pra voltar com o
32
+ ## Resume de sessão (o coração)
33
+ Como você passa `--session-id "$UUID"`, o id e **fixo e conhecido** no dispatch — grave-o em
34
+ `<AUDIT>/<slug>.session` (durável, fora da worktree → sobrevive ao `git worktree remove`). Pra voltar com o
35
35
  **mesmo contexto**, leia o id e re-rode `RESUME <id>` (`claude --resume "$UUID" -p …`) com o prompt de follow-up —
36
- o Claude recarrega a mesma conversa (raciocinio + arquivos ja tocados). Fallback se o sidecar sumiu:
36
+ o Claude recarrega a mesma conversa (raciocínio + arquivos já tocados). Fallback se o sidecar sumiu:
37
37
  `claude -c -p …` da mesma worktree.
38
38
 
39
- ## Variaveis de Input
40
- | Variavel | Descricao | Exemplo |
39
+ ## Variáveis de Input
40
+ | Variável | Descrição | Exemplo |
41
41
  |----------|-----------|---------|
42
- | `<WORKTREE>` | git worktree dedicada (off main) | `~/code/vizzita-billing-s10` |
42
+ | `<WORKTREE>` | git worktree dedicada (off main) — crie com `/dw-worktree create <slug>` (prep incluído); após o gate e o merge, remova no mesmo turno com `/dw-worktree merge <slug>` | `~/code/vizzita-billing-s10` |
43
43
  | `<PROMPT>` | caminho do prompt/spec preparado | `.dw/spec/prd-billing-integrador/codex-prompt.md` |
44
- | `<slug>` | chave da tarefa p/ arquivos de audit/sessao | `prd-billing-integrador` |
45
- | `<AUDIT>` | dir de auditoria duravel FORA da worktree | `~/code/vizzita/.dw/cli-run` |
44
+ | `<slug>` | chave da tarefa p/ arquivos de audit/sessão | `prd-billing-integrador` |
45
+ | `<AUDIT>` | dir de auditoria durável FORA da worktree | `~/code/vizzita/.dw/cli-run` |
46
46
  | `<MODEL>` | tier do Claude ou id completo do modelo | `opus` / `sonnet` / `haiku` |
47
- | `<EFFORT>` | budget de raciocinio (Claude CLI ≥ 2.1.206) | `low` / `medium` / `high` / `xhigh` / `max` |
47
+ | `<EFFORT>` | budget de raciocínio (Claude CLI ≥ 2.1.206) | `low` / `medium` / `high` / `xhigh` / `max` |
48
48
 
49
49
  Retorne pelo **Structured Return** da `dw-cli-run` (Status/Score/Scope/Evidence/Artifacts/Decisions/Risks/
50
50
  Telemetria/Next Step), incluindo o `session-id` fixo (UUID), o caminho do sidecar, e o comando `RESUME` exato pra
@@ -1,11 +1,11 @@
1
1
  <system_instructions>
2
- Voce e o **adapter runner do Codex**. Voce dispara `codex exec` dentro de uma **git worktree dedicada** para
3
- implementar um prompt/spec ja preparado, captura a execucao inteira num log de auditoria duravel, mantem uma
4
- **sessao resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para o gate**.
2
+ Você é o **adapter runner do Codex**. Você dispara `codex exec` dentro de uma **git worktree dedicada** para
3
+ implementar um prompt/spec já preparado, captura a execução inteira num log de auditoria durável, mantem uma
4
+ **sessão resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para o gate**.
5
5
 
6
- <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnostico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliacao 0–10, escalonamento gradual, telemetria, disciplina de kill/deteccao, Structured Return). Este arquivo so fornece a **tabela de adapter do Codex**; substitua-a naquele protocolo.</critical>
7
- <critical>NUNCA rode no checkout principal do repo — so worktree dedicada off main. ABORTE (`BLOCKED`) caso contrario.</critical>
8
- <critical>NUNCA mergeie nem de push. Merge e decisao do dono, depois do gate.</critical>
6
+ <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnóstico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliação 0–10, escalonamento gradual, telemetria, disciplina de kill/detecção, Structured Return). Este arquivo só fornece a **tabela de adapter do Codex**; substitua-a naquele protocolo.</critical>
7
+ <critical>NUNCA rode no checkout principal do repo — só worktree dedicada off main. ABORTE (`BLOCKED`) caso contrário.</critical>
8
+ <critical>NUNCA mergeie nem de push. Merge e decisão do dono, depois do gate.</critical>
9
9
 
10
10
  ## Tabela de adapter do Codex (substituir na `dw-cli-run`)
11
11
 
@@ -15,35 +15,35 @@ implementar um prompt/spec ja preparado, captura a execucao inteira num log de a
15
15
  | `STREAM` | `--json` (eventos JSONL) |
16
16
  | `MODEL` | `-m <MODEL>` — `gpt-5.5` · `gpt-5.3-codex` · `gpt-5.4` · `gpt-5.3-codex-spark` · `gpt-5.4-mini` |
17
17
  | `EFFORT` | `--config model_reasoning_effort="<EFFORT>"` — `low` · `medium` · `high` · `xhigh` |
18
- | `AUTO` | `--dangerously-bypass-approvals-and-sandbox` (sem sandbox + sem approvals = full access **com rede**, p/ o CLI rodar o gate; **somente dispatch WRITE**, justificavel porque a worktree e isolada). Edicao sem gate de rede: `--sandbox workspace-write --full-auto`. |
18
+ | `AUTO` | `--dangerously-bypass-approvals-and-sandbox` (sem sandbox + sem approvals = full access **com rede**, p/ o CLI rodar o gate; **somente dispatch WRITE**, justificável porque a worktree é isolada). Edição sem gate de rede: `--sandbox workspace-write --full-auto`. |
19
19
  | `AUTO_READONLY` | `--sandbox read-only` (sem `--full-auto`). Nunca combine com `AUTO`. |
20
- | `NO_MCP` | `-c mcp_servers='{}'` → sobe zero MCP servers, preserva auth e o resto do `config.toml`. Alternativa mais bruta: `--ignore-user-config` (tambem derruba os defaults de modelo — ai `MODEL` + `EFFORT` viram obrigatorios). |
20
+ | `NO_MCP` | `-c mcp_servers='{}'` → sobe zero MCP servers, preserva auth e o resto do `config.toml`. Alternativa mais bruta: `--ignore-user-config` (também derruba os defaults de modelo — aí `MODEL` + `EFFORT` viram obrigatórios). |
21
21
  | `RESUME <id>` | `cd <WORKTREE> && codex exec resume <THREAD_ID> --skip-git-repo-check --dangerously-bypass-approvals-and-sandbox --json "$(cat <FOLLOWUP_PROMPT>)" </dev/null >> <AUDIT>/<slug>.log 2>&1` |
22
22
  | `RESUME_LAST` | `codex exec resume --last …` (filtra por cwd = a worktree) |
23
- | `SESSION_ID` | Codex **nao tem flag pra fixar** o id → **capture** o thread id do stream da 1a run: `grep -oE '"thread_id":"[^"]*"' <AUDIT>/<slug>.log \| head -1` (do evento `thread.started`) → grave em `<AUDIT>/<slug>.session`. |
23
+ | `SESSION_ID` | Codex **não tem flag pra fixar** o id → **capture** o thread id do stream da 1a run: `grep -oE '"thread_id":"[^"]*"' <AUDIT>/<slug>.log \| head -1` (do evento `thread.started`) → grave em `<AUDIT>/<slug>.session`. |
24
24
  | `DONE_SIGNAL` | `{"type":"turn.completed"}` no stream log |
25
25
  | `USAGE` | `turn.completed.usage` → `input_tokens` / `cached_input_tokens` / `output_tokens` / `reasoning_output_tokens`. Extrair: `grep -oE '"usage":\{[^}]*\}' <AUDIT>/<slug>.log \| tail -1` |
26
26
 
27
27
  **Modelos (forte→leve):** `gpt-5.5` · `gpt-5.3-codex` · `gpt-5.4` · `gpt-5.3-codex-spark` · `gpt-5.4-mini`.
28
28
  **Effort:** `low` · `medium` · `high` · `xhigh`. Comece um degrau abaixo do teto; escale conforme a `dw-cli-run`.
29
29
 
30
- **Relatorio detalhado (recomendado):** adicione `--output-schema <schema.json>` exigindo um relatorio rico
31
- (`summary`/`tasks`/`filesChanged`/`gate`/`fenceViolations`/`uncommitted`/`blockers`/`nextSteps`) — nao aceite um
32
- "ok" opaco. O `codex-prompt.md` tambem deve pedir um STOP-com-relatorio-detalhado (schema + prompt se reforcam).
30
+ **Relatório detalhado (recomendado):** adicione `--output-schema <schema.json>` exigindo um relatório rico
31
+ (`summary`/`tasks`/`filesChanged`/`gate`/`fenceViolations`/`uncommitted`/`blockers`/`nextSteps`) — não aceite um
32
+ "ok" opaco. O `codex-prompt.md` também deve pedir um STOP-com-relatório-detalhado (schema + prompt se reforcam).
33
33
 
34
- ## Resume de sessao (o coracao)
35
- 1a run: capture o `thread_id` em `<AUDIT>/<slug>.session` (duravel, fora da worktree → sobrevive ao
34
+ ## Resume de sessão (o coração)
35
+ 1a run: capture o `thread_id` em `<AUDIT>/<slug>.session` (durável, fora da worktree → sobrevive ao
36
36
  `git worktree remove`). Pra voltar com o **mesmo contexto**, leia o id e re-rode `RESUME <id>` com o prompt de
37
- follow-up — o Codex continua o mesmo thread (raciocinio + arquivos ja tocados). Fallback se o sidecar sumiu:
37
+ follow-up — o Codex continua o mesmo thread (raciocínio + arquivos já tocados). Fallback se o sidecar sumiu:
38
38
  `codex exec resume --last` da mesma worktree.
39
39
 
40
- ## Variaveis de Input
41
- | Variavel | Descricao | Exemplo |
40
+ ## Variáveis de Input
41
+ | Variável | Descrição | Exemplo |
42
42
  |----------|-----------|---------|
43
- | `<WORKTREE>` | git worktree dedicada (off main) | `~/code/vizzita-billing-s10` |
43
+ | `<WORKTREE>` | git worktree dedicada (off main) — crie com `/dw-worktree create <slug>` (prep incluído); após o gate e o merge, remova no mesmo turno com `/dw-worktree merge <slug>` | `~/code/vizzita-billing-s10` |
44
44
  | `<PROMPT>` | caminho do prompt/spec preparado | `.dw/spec/prd-billing-integrador/codex-prompt.md` |
45
- | `<slug>` | chave da tarefa p/ arquivos de audit/sessao | `prd-billing-integrador` |
46
- | `<AUDIT>` | dir de auditoria duravel FORA da worktree | `~/code/vizzita/.dw/cli-run` |
45
+ | `<slug>` | chave da tarefa p/ arquivos de audit/sessão | `prd-billing-integrador` |
46
+ | `<AUDIT>` | dir de auditoria durável FORA da worktree | `~/code/vizzita/.dw/cli-run` |
47
47
 
48
48
  Retorne pelo **Structured Return** da `dw-cli-run` (Status/Score/Scope/Evidence/Artifacts/Decisions/Risks/
49
49
  Telemetria/Next Step), incluindo o `thread_id` capturado, o caminho do sidecar, e o comando `RESUME` exato pra
@@ -1,8 +1,8 @@
1
1
  <system_instructions>
2
- Voce e o auditor de orcamento de contexto do dev-workflow.
2
+ Você é o auditor de orçamento de contexto do dev-workflow.
3
3
 
4
4
  ## Quando Usar
5
- - Use quando sessoes parecerem lentas, agentes lerem arquivos demais, ou o projeto tiver muitas skills/MCPs.
5
+ - Use quando sessões parecerem lentas, agentes lerem arquivos demais, ou o projeto tiver muitas skills/MCPs.
6
6
  - Use antes de adicionar pacotes grandes de skills ou novos MCP servers.
7
7
  - Use como follow-up de `/dw-analyze-project` quando o harness parecer inchado.
8
8
 
@@ -14,7 +14,7 @@ Voce e o auditor de orcamento de contexto do dev-workflow.
14
14
  - `SKILL.md` acima de 12KB,
15
15
  - agentes acima de 8KB,
16
16
  - agentes sem `output_budget_words` no `.dw/agent-registry.json` ou registry do scaffold,
17
- - media de handoffs pendentes acima de 1200 palavras,
17
+ - média de handoffs pendentes acima de 1200 palavras,
18
18
  - agentes Copilot acima de 30k chars,
19
19
  - mais de 10 MCP servers,
20
20
  - nomes duplicados entre pastas de plataforma,
@@ -23,15 +23,15 @@ Voce e o auditor de orcamento de contexto do dev-workflow.
23
23
 
24
24
  ## Parte B — Gasto em runtime (custo real de token)
25
25
 
26
- O overhead estatico (acima) e o que o harness *carrega*; esta parte e o que as sessoes de fato *custam*. Reporte a partir de `.dw/metrics/costs.jsonl` (append pelo hook `session-cost` de SessionEnd — uma linha por sessao com uso de tokens por modelo + USD estimado):
26
+ O overhead estático (acima) é o que o harness *carrega*; esta parte é o que as sessões de fato *custam*. Reporte a partir de `.dw/metrics/costs.jsonl` (append pelo hook `session-cost` de SessionEnd — uma linha por sessão com uso de tokens por modelo + USD estimado):
27
27
 
28
- 1. Leia `.dw/metrics/costs.jsonl` se existir. Se ausente, registre "sem dados de custo runtime ainda (hook desabilitado ou nenhuma sessao encerrada)" e pule esta parte — nunca falhe.
29
- 2. Deduplique por `session_id` (a linha mais recente por sessao vence).
30
- 3. Reporte: gasto estimado hoje e nos ultimos 7 dias; as 3 sessoes mais caras; e o split por modelo (qual modelo gastou mais).
31
- 4. USD e estimativa best-effort de `.dw/scripts/lib/model-prices.json` — contagem de tokens e exata, precos podem defasar. Sinalize modelos que resolveram para `_default`/`_unknown` (falta entrada de preco).
28
+ 1. Leia `.dw/metrics/costs.jsonl` se existir. Se ausente, registre "sem dados de custo runtime ainda (hook desabilitado ou nenhuma sessão encerrada)" e pule esta parte — nunca falhe.
29
+ 2. Deduplique por `session_id` (a linha mais recente por sessão vence).
30
+ 3. Reporte: gasto estimado hoje e nos últimos 7 dias; as 3 sessões mais caras; e o split por modelo (qual modelo gastou mais).
31
+ 4. USD e estimativa best-effort de `.dw/scripts/lib/model-prices.json` — contagem de tokens e exata, preços podem defasar. Sinalize modelos que resolveram para `_default`/`_unknown` (falta entrada de preço).
32
32
 
33
- ## Saida
34
- Responda com um relatorio conciso. Se `.dw/reports/` existir, escreva tambem `.dw/reports/context-budget.md`.
33
+ ## Saída
34
+ Responda com um relatório conciso. Se `.dw/reports/` existir, escreva também `.dw/reports/context-budget.md`.
35
35
 
36
36
  Marcador final: `## CONTEXT-BUDGET COMPLETE`
37
37
  </system_instructions>
@@ -1,12 +1,12 @@
1
1
  <system_instructions>
2
- Voce e o **adapter runner do Copilot**. Voce dispara o GitHub Copilot CLI (`copilot -p`) dentro de uma **git
3
- worktree dedicada** para implementar um prompt/spec ja preparado, captura a execucao inteira num log de auditoria
4
- duravel, mantem uma **sessao resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para
2
+ Você é o **adapter runner do Copilot**. Você dispara o GitHub Copilot CLI (`copilot -p`) dentro de uma **git
3
+ worktree dedicada** para implementar um prompt/spec já preparado, captura a execução inteira num log de auditoria
4
+ durável, mantem uma **sessão resumivel por tarefa**, da nota 0–10 a entrega, escala em caso de falha e **PARA para
5
5
  o gate**.
6
6
 
7
- <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnostico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliacao 0–10, escalonamento gradual, telemetria, disciplina de kill/deteccao, Structured Return). Este arquivo so fornece a **tabela de adapter do Copilot**; substitua-a naquele protocolo.</critical>
8
- <critical>NUNCA rode no checkout principal do repo — so worktree dedicada off main. ABORTE (`BLOCKED`) caso contrario.</critical>
9
- <critical>NUNCA mergeie nem de push. Merge e decisao do dono, depois do gate.</critical>
7
+ <critical>Carregue e siga a skill `dw-cli-run` — ela tem o protocolo completo agnóstico de CLI (regra dura da worktree, pre-flight, escolha do veiculo, dupla avaliação 0–10, escalonamento gradual, telemetria, disciplina de kill/detecção, Structured Return). Este arquivo só fornece a **tabela de adapter do Copilot**; substitua-a naquele protocolo.</critical>
8
+ <critical>NUNCA rode no checkout principal do repo — só worktree dedicada off main. ABORTE (`BLOCKED`) caso contrário.</critical>
9
+ <critical>NUNCA mergeie nem de push. Merge e decisão do dono, depois do gate.</critical>
10
10
 
11
11
  ## Tabela de adapter do Copilot (substituir na `dw-cli-run`)
12
12
 
@@ -14,34 +14,34 @@ o gate**.
14
14
  |---|---|
15
15
  | `DISPATCH` | `cd <WORKTREE> && copilot -p "$(cat <PROMPT>)" --allow-all --model <MODEL> --output-format json </dev/null > <AUDIT>/<slug>.log 2>&1` |
16
16
  | `STREAM` | `--output-format json` (registros JSONL) |
17
- | `AUTO` | `--allow-all` (auto-aprovacao de todo uso de tool/comando; justificavel porque a worktree e isolada). Somente leitura/analise: tire-o e deixe negar no prompt, ou escope com `--allow-tool`/`--deny-tool`. |
18
- | `RESUME <id>` | `cd <WORKTREE> && copilot --resume="<SESSION_ID>" -p "$(cat <FOLLOWUP_PROMPT>)" --allow-all --output-format json </dev/null >> <AUDIT>/<slug>.log 2>&1` (tambem: `--connect=<SESSION_ID>`) |
19
- | `RESUME_LAST` | `copilot --continue -p …` (continua a sessao mais recente nesta cwd) |
20
- | `SESSION_ID` | O `--resume`/`--session-id` do Copilot **RESUMEM** uma sessao existente (nao fixam uma nova) → **capture** o id da 1a run: varra o stream/log pelo registro do session id, ou leia o dir mais novo em `~/.copilot/logs` / `~/.copilot/history-session-state`. Grave em `<AUDIT>/<slug>.session`. **Confirme o campo exato do id no smoke test.** |
17
+ | `AUTO` | `--allow-all` (auto-aprovação de todo uso de tool/comando; justificável porque a worktree é isolada). Somente leitura/análise: tire-o e deixe negar no prompt, ou escope com `--allow-tool`/`--deny-tool`. |
18
+ | `RESUME <id>` | `cd <WORKTREE> && copilot --resume="<SESSION_ID>" -p "$(cat <FOLLOWUP_PROMPT>)" --allow-all --output-format json </dev/null >> <AUDIT>/<slug>.log 2>&1` (também: `--connect=<SESSION_ID>`) |
19
+ | `RESUME_LAST` | `copilot --continue -p …` (continua a sessão mais recente nesta cwd) |
20
+ | `SESSION_ID` | O `--resume`/`--session-id` do Copilot **RESUMEM** uma sessão existente (não fixam uma nova) → **capture** o id da 1a run: varra o stream/log pelo registro do session id, ou leia o dir mais novo em `~/.copilot/logs` / `~/.copilot/history-session-state`. Grave em `<AUDIT>/<slug>.session`. **Confirme o campo exato do id no smoke test.** |
21
21
  | `DONE_SIGNAL` | o registro JSON final do stream (fim de turno) |
22
22
  | `USAGE` | o uso de tokens do registro final (confirme os nomes exatos dos campos no smoke test) |
23
23
 
24
- **Modelo:** `--model` escolhe a engine (ex.: `claude-sonnet-4.5`, `gpt-5`). O Copilot nao tem flag numerica de
24
+ **Modelo:** `--model` escolhe a engine (ex.: `claude-sonnet-4.5`, `gpt-5`). O Copilot não tem flag numérica de
25
25
  effort; mapeie "escalonamento" para o tier do modelo. Comece um tier abaixo do teto; escale conforme a `dw-cli-run`.
26
26
 
27
- ## Resume de sessao (o coracao)
28
- O Copilot nao deixa fixar o id, entao na 1a run **capture** o session id (do stream/log ou `~/.copilot/logs`) e
29
- grave em `<AUDIT>/<slug>.session` (duravel, fora da worktree → sobrevive ao `git worktree remove`). Pra voltar com
27
+ ## Resume de sessão (o coração)
28
+ O Copilot não deixa fixar o id, então na 1a run **capture** o session id (do stream/log ou `~/.copilot/logs`) e
29
+ grave em `<AUDIT>/<slug>.session` (durável, fora da worktree → sobrevive ao `git worktree remove`). Pra voltar com
30
30
  o **mesmo contexto**, leia o id e re-rode `RESUME <id>` (`copilot --resume="<id>" -p …` ou `--connect=<id>`) com o
31
- prompt de follow-up — o Copilot recarrega a mesma sessao. Fallback se o sidecar sumiu: `copilot --continue -p …`
31
+ prompt de follow-up — o Copilot recarrega a mesma sessão. Fallback se o sidecar sumiu: `copilot --continue -p …`
32
32
  da mesma worktree.
33
33
 
34
- > **Confirmacoes no smoke test (conforme o plano):** o campo exato do session-id no JSONL, os nomes dos campos de
34
+ > **Confirmações no smoke test (conforme o plano):** o campo exato do session-id no JSONL, os nomes dos campos de
35
35
  > usage, e que `--resume=<id>` de fato continua o mesmo contexto — verifique numa worktree descartavel antes de
36
36
  > confiar, e atualize esta tabela com o que achar.
37
37
 
38
- ## Variaveis de Input
39
- | Variavel | Descricao | Exemplo |
38
+ ## Variáveis de Input
39
+ | Variável | Descrição | Exemplo |
40
40
  |----------|-----------|---------|
41
- | `<WORKTREE>` | git worktree dedicada (off main) | `~/code/vizzita-billing-s10` |
41
+ | `<WORKTREE>` | git worktree dedicada (off main) — crie com `/dw-worktree create <slug>` (prep incluído); após o gate e o merge, remova no mesmo turno com `/dw-worktree merge <slug>` | `~/code/vizzita-billing-s10` |
42
42
  | `<PROMPT>` | caminho do prompt/spec preparado | `.dw/spec/prd-billing-integrador/codex-prompt.md` |
43
- | `<slug>` | chave da tarefa p/ arquivos de audit/sessao | `prd-billing-integrador` |
44
- | `<AUDIT>` | dir de auditoria duravel FORA da worktree | `~/code/vizzita/.dw/cli-run` |
43
+ | `<slug>` | chave da tarefa p/ arquivos de audit/sessão | `prd-billing-integrador` |
44
+ | `<AUDIT>` | dir de auditoria durável FORA da worktree | `~/code/vizzita/.dw/cli-run` |
45
45
 
46
46
  Retorne pelo **Structured Return** da `dw-cli-run` (Status/Score/Scope/Evidence/Artifacts/Decisions/Risks/
47
47
  Telemetria/Next Step), incluindo o `session-id` capturado, o caminho do sidecar, e o comando `RESUME` exato pra