Pular para o conteúdo principal

Como os planos são feitos (v1.1)

A partir da v1.1, planejar deixou de ser um passo pesado e virou um pipeline fixo dentro da fase PLAN do PREVC. O resultado é mais consistente, com menos slop, e mais rápido que o fluxo antigo baseado em /shape-spec.

O problema do fluxo antigo​

O /shape-spec (Agent OS) produzia spec.md, plan.md, tasks.md, decisions.md, verification.md e evals.md tudo de uma vez, no começo. Era lento, e a decomposição em lanes era escrita "na mao" pelo modelo — inconsistente e propensa a slop. /shape-spec continua existindo como escape hatch manual, mas não é mais o caminho padrão.

O pipeline (/plan)​

O spec-lead planeja em três passos, dimensionando a profundidade ao trabalho:

/plan <objetivo>
|
v
1. SIZE-GATE -> wayfinder (só trabalho grande/nebuloso/cross-subsystem)
| mapa de decision-tickets; resolve as decisões antes
v
2. SHARPEN -> grill-with-docs (modo AUTO)
| auto-entrevista + domain-modeling, decide sozinho,
| rotula assumptions, escreve ADRs/glossário
v
3. DECOMPOSE -> to-tickets = a LANE TABLE
| tracer-bullet vertical slices com blocking edges
v
awaiting_plan_approval (o operador revisa e aprova uma única vez)

1. Size-gate → wayfinder (só quando grande)​

Se o esforço e maior que uma sessão de agente, nebuloso ou cruza subsistemas, o wayfinder desenha um mapa de decision-tickets (tickets/00-map.md) e resolve as decisões abertas primeiro. Trabalho normal pula esse passo — a própria regra do wayfinder e "sem fog, sem mapa".

2. Sharpen → grill-with-docs (AUTO)​

O grill-with-docs roda em modo AUTO: ele não pausa para perguntar ao operador. Percorre cada ramo da árvore de decisão e toma a própria resposta recomendada, resolvendo a partir do código, ADRs, CONTEXT.md e requisitos. Cada resposta vira uma decisão; as que ele resolveu por conta própria são rotuladas como assumptions para o operador ver na revisão. ADRs e glossário são escritos via domain-modeling.

Ele só escala ao operador em um blocker real: ambiguidade que nenhuma fonte resolve, decisão difícil de reverter sem default defensável, ou mudança de escopo. E o mesmo critério de parada de um autonomous run.

3. Decompose → to-tickets = a lane table​

O to-tickets quebra o plano afiado em tracer-bullet vertical slices dentro de agent-os/specs/<slug>/tickets/, cada um declarando suas blocking edges. Um ticket tracer-bullet E uma lane: vertical, do tamanho de uma janela de contexto, com um único dono. De cada ticket sai o conjunto exato de arquivos da lane, as dependências (as blocking edges) e o comando de verificação.

O passo "Quiz the user" do to-tickets não pausa inline — ele se dobra no único gate awaiting_plan_approval do PREVC.

Onde os tickets ficam​

Backend local-markdown, sem tracker externo, sem gh, sem rede:

agent-os/specs/<YYYY-MM-DD-HHMM-slug>/
spec.md # do template agent-os
tickets/ # A lista canônica de tarefas — um arquivo por ticket
00-map.md # mapa do wayfinder (só em esforços grandes)
01-<slug>.md # ticket (Blocked by: None)
02-<slug>.md # Blocked by: 01

O conjunto tickets/ e a lista de tarefas: "todas as tasks do plano" = o conjunto de tickets, e o scheduler o lê direto como lane table. A convenção completa está em docs/harness/matt-pocock-tracker.md (global, instalado em projeto novo pelo /harness-bootstrap).

Execute: implement, sem race​

Depois da aprovação, o spec-lead vira o scheduler (veja dispatch paralelo). Cada lane é executada por um specialist que segue a disciplina da skill implement — TDD nos seams combinados, typecheck e testes por arquivo, suite completa no fim, depois code review.

Specialists não commitam. Só o scheduler commita, reconciliando todas as lanes num commit local — assim lanes paralelas nunca correm no git. Uma lane escreve um arquivo por vez.

Plan + execute numa sessão só​

O spec-lead pode planejar e executar na mesma sessão:

  • Ele pode escrever artefatos de plano (spec, tickets/, ADRs, CONTEXT.md, feature_list.json) durante o planejamento.
  • Pode editar código-fonte direto quando trabalha sequencialmente (ex: fazer a task 1 sozinho antes de qualquer dispatch).
  • Nunca edita enquanto specialists paralelos estão no ar — ali as lanes são donas dos arquivos; só elas editam e só o scheduler commita.

Resumo​

Antigo (/shape-spec)Novo (/plan, v1.1)
Velocidadelento (ceremony upfront)rápido (auto-grill + tickets gerados)
Consistêncialanes escritas na maotracer-bullet slice = contrato rigido
Decisõesmistasdecisions + assumptions rotuladas
Lane tableartefato separadoe o conjunto de tickets
Interaçãopausasum único gate de aprovação