teqo-backup/.opencode/commands/worktree.md
Francisco Solla 8951f198ca feat(worktree): flags de modelo --cheap/--pro/--zen/--go/--alibaba com --variant max (OPS93)
Mapa fixo commitado em scripts/lib/worktree.mjs (cheap=cheapestinference/deepseek-v4-flash, pro=opencode-go/qwen3.7-max, zen=opencode-go/ox-alpha-free, go=opencode-go/mimo-v2.5, alibaba=alibaba-token-plan/qwen3.7-max) com WORKTREE_VARIANT=max sempre; resolveWorktreeModel fail-high em múltiplas flags; opencodeLaunchDirective passa a emitir --model <map|preset> --variant max --auto; scripts/worktree.mjs valida at-most-one antes do claim e repassa modelo nos 3 propósitos (next/plan/new) com help/docblock atualizados; .agents/shell/worktree.sh, .opencode/commands/worktree.md, .agents/skills/worktree-next-issue/SKILL.md e local-database skill com contrato remapeado (--go deixa de ser no-op); tests/unit/worktree.unit.spec.ts pina as 5 flags, variant e guardrail.

Closes #859
2026-08-24 17:08:39 -03:00

2.9 KiB

description
Claima a próxima Issue (next [--issue N] [--stay] [--cheap|--pro|--zen|--go|--alibaba]), cria o worktree dela e provisiona o ambiente; também cria worktree de planejamento (plan [bag] [--stay] [--cheap|--pro|--zen|--go|--alibaba]), worktree neutro (new [bag] [--stay] [--cheap|--pro|--zen|--go|--alibaba]) ou destrói o atual (kill [--force])

Rode o script determinístico abaixo (não improvise a lógica) e reporte o resultado de forma concisa.

  • next [--issue N] [--stay] [--cheap|--pro|--zen|--go|--alibaba]: claima a próxima Issue claimável da fila (mesma fila/ordem e lock otimista de pnpm agent:claim) e cria (ou reutiliza) o worktree dela. Claim falhou → reporte o motivo — não há worktree. --issue N claima a Issue direcionada (ready) ou reabre uma já claimada (in-progress, sem re-claim). A saída avisa "já claimada — NÃO rodar pnpm agent:claim". Por padrão o script imprime cd <dir> na última linha — aplique-o na sessão de shell atual (cd <dir>) e reporte o novo diretório. --stay suprime o cd (não troque de diretório) mas o claim ainda acontece. --cheap/--pro/--zen/--go/--alibaba escolhe o modelo por invocação no mapa fixo WORKTREE_MODEL_MAP (cheap=cheapestinference/deepseek-v4-flash, pro=opencode-go/qwen3.7-max, zen=opencode-go/ox-alpha-free, go=opencode-go/mimo-v2.5, alibaba=alibaba-token-plan/qwen3.7-max) com --variant max sempre; at-most-one (múltiplas → erro).
  • plan [bag] [--stay] [--cheap|--pro|--zen|--go|--alibaba]: cria um worktree de planejamento diferente a cada invocação (branch plans/plan-issue-<bag>, ou plans/plan-issue-<n> sequencial sem bag; sufixo -2/-3 em colisão) para rodar /plan-issue sem ocupar o main; nunca conflita com next. Não claima nada. Mesmo contrato de cd do next: aplique a última linha cd <dir> por padrão; --stay suprime; flag de modelo como no next.
  • new [bag] [--stay] [--cheap|--pro|--zen|--go|--alibaba]: cria um worktree neutro (sem função pré-definida — explorar ideia, conversar, planejar sem registrar nada) diferente a cada invocação (branch work/<bag>, ou work/<n> sequencial sem bag; sufixo -2/-3 em colisão); o prefixo minúsculo work/… nunca conflita com next nem plan. Não claima nada. Mesmo contrato de cd do plan: aplique a última linha cd <dir> por padrão; --stay suprime; flag de modelo como no next.
  • kill [--force]: destrói o worktree em que você está e remove seus bancos. O script imprime cd <main> na última linha — aplique-o (cd <main>) para a sessão sair do diretório destruído.

Este comando roda SEM o marcador TEQO_WORKTREE_TERMINAL, então nunca recebe a diretiva launch — só o cd. O launch do opencode (OPS26/OPS33+OPS93, com --variant max) acontece apenas na função worktree() de .agents/shell/worktree.sh (terminal interativo); nunca abra um TUI aninhado a partir daqui.

!node scripts/worktree.mjs $ARGUMENTS