- scripts/ portados do teqo e adaptados (sem DB — SPA): worktree (next/plan/new/kill,
claim + branch <code>-<slug> + bun install), issue, agent:{claim,register,ready,
file-miss,status}, pr (cria PR + auto-merge sem gh), transitions de CI
- config por projeto em .forgejo/worktree.env (FORGEJO_REPOSITORY, WORKTREES_ROOT)
+ roteador global de terminal em ~/.config/shell/worktree.sh (escopo por git rev-parse)
- .opencode/commands e .agents/skills (plan-issue, work-issue, capture-review-debts,
worktree-next-issue, code-simplification) + AGENTS.md com o workflow
- CI Forgejo Actions unificado: checks (lint+build+e2e) em PR e main; deploy
gated; issue-done / plan-issue-ready / agent-pr-automerge workflows
- Playwright: config + 2 specs smoke (settings→chat, ws reconnect) — e2e só no CI
- package.json: aliases worktree/issue/agent:*/pr + gate + test:e2e
2.3 KiB
2.3 KiB
| description |
|---|
| Claima a próxima Issue (next [--issue N] [--stay]), cria o worktree dela e provisiona o ambiente; também cria worktree de planejamento (plan [bag] [--stay]), worktree neutro (new [bag] [--stay]) 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]: claima a próxima Issue claimável da fila (mesma fila/ordem e lock otimista debun run agent:claim) e cria (ou reutiliza) o worktree dela. Claim falhou → reporte o motivo — não há worktree.--issue Nclaima a Issue direcionada (ready) ou reabre uma já claimada (in-progress, sem re-claim). A saída avisa "já claimada — NÃO rodarbun run agent:claim". Por padrão o script imprimecd <dir>na última linha — aplique-o na sessão de shell atual (cd <dir>) e reporte o novo diretório.--staysuprime ocd(não troque de diretório) mas o claim ainda acontece.--goexplícito continua aceito como no-op.plan [bag] [--stay]: cria um worktree de planejamento diferente a cada invocação (branchplans/plan-issue-<bag>, ouplans/plan-issue-<n>sequencial sem bag; sufixo-2/-3em colisão) para rodar/plan-issuesem ocupar o main; nunca conflita comnext. Não claima nada. Mesmo contrato decddonext: aplique a última linhacd <dir>por padrão;--staysuprime.new [bag] [--stay]: cria um worktree neutro (sem função pré-definida — explorar ideia, conversar, planejar sem registrar nada) diferente a cada invocação (branchwork/<bag>, ouwork/<n>sequencial sem bag; sufixo-2/-3em colisão); o prefixo minúsculowork/…nunca conflita comnextnemplan. Não claima nada. Mesmo contrato decddoplan.kill [--force]: destrói o worktree em que você está. O script imprimecd <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 diretivalaunch— só ocd. O launch do opencode acontece apenas na funçãoworktree()do roteador global (~/.config/shell/worktree.sh, terminal interativo); nunca abra um TUI aninhado a partir daqui.
!node scripts/worktree.mjs $ARGUMENTS