4.8 KiB
OpenCode: comandos /work-issue e /plan-issue (atalho direto para as skills)
Status: rascunho
Atualizado em: 2026-08-10
Issue: #570
Priority: P2
Model: composer-2.5
model-local: deepseek-v4-flash-high
Impeccable: A — N/A (arquivos de configuração do opencode; sem UI de produto)
Canvas UI: N/A — sem UI
Appetite: ~0,5 dia eng; um outcome verificável (duas skills com um / de distância)
Intenção
Toda sessão de trabalho no repo começa invocando /work-issue (executar uma Issue) ou /plan-issue (planejar um lote de ideias). O caminho atual é /skills → buscar a skill → enviar — três passos e uma busca que às vezes erra o nome. O opencode já suporta commands (.opencode/commands/<nome>.md): o template vira o prompt da sessão quando o usuário digita /nome. O repo já usa esse mecanismo (/issue, /worktree). Queremos /work-issue e /plan-issue como atalhos diretos que instruem o agente a carregar a skill pelo nome e seguir o fluxo dela de ponta a ponta.
Persona e fluxo
- Persona / contexto: Francisco no TUI do opencode, começando uma sessão de execução ou de planejamento.
- Job principal: disparar a skill certa com zero fricção e com o modelo de preferência já selecionado.
- Fluxo desejado: digitar
/work-issue <args>→ o agente carrega a skillwork-issue(via ferramenta de skills) e segue o ciclo completo (claim → plano de implementação → pausa humana → execução →/simplify→ capture-review-debts → PR);/plan-issue <args>idem para o ciclo de intenção (parse → planos → gate → registro). Argumentos repassados via$ARGUMENTS. - Anti-goals de produto: não transcrever o corpo das skills dentro do comando (a fonte canônica continua
.agents/skills/); não criar um terceiro fluxo paralelo de planejamento.
Objetivo e aceite
/work-issuee/plan-issueaparecem no autocomplete do TUI e funcionam em qualquer diretório do repo (projeto opencode).- O template instrui o agente a carregar a skill pelo nome exato e seguir o fluxo dela ponta a ponta, sem reescrever o conteúdo.
$ARGUMENTSé repassado (ex.:/plan-issue <lote>).- Cada comando leva
model: deepseek/deepseek-v4-flashno frontmatter — sessão manual já abre no modelo de preferência (ver questão em aberto). - Abertura automática a partir de
worktree next/plan(OPS26) usa estes comandos como primeira mensagem.
Dados (intenção)
- Vou apresentar dados? Não — sem superfície de dados.
Direção no codebase (hipótese)
- Áreas prováveis:
.opencode/commands/work-issue.mde.opencode/commands/plan-issue.md(novos; precedente:issue.mdeworktree.mdjá existem); frontmatterdescription+model; corpo com instrução curta de "carregue a skill X e siga-a", com$ARGUMENTSno fim. - Precedente a olhar:
.opencode/commands/worktree.md(formato frontmatter + corpo +!bash);.agents/skills/work-issue/SKILL.mdeplan-issue/SKILL.md(nomes exatos a referenciar). - Risco de acoplamento: o nome do comando casa com o nome da skill (
/work-issue↔ skillwork-issue) — se uma skill for renomeada, o comando quebra silenciosamente; manter nomes amarrados.
Dependências
- Nenhuma. (Pré-requisito do fluxo de launch da OPS26.)
Fora de escopo
- Alterar o conteúdo das skills
work-issue/plan-issue. - O launch automático do opencode a partir do CLI
worktree— item próprio (OPS26). - Comandos para outras skills (só as duas pedidas; qualquer outra segue o mesmo padrão quando alguém quiser).
Rabbit holes de produto
- "Um comando por skill do repo": escopo explode para uma fileira de arquivos de comando. Corte neste item: só
work-issueeplan-issue; o padrão fica documentado pelo par. - "Template do comando = skill copiada": duplicação cara de manter — o comando referencia a skill pelo nome, não a reproduz.
Questões em aberto (produto)
model:no frontmatter dos comandos? Opções: A)deepseek/deepseek-v4-flashnos dois — sessão manual já abre no modelo de preferência, e o launch da OPS26 não precisaria do flag | B) herdar o modelo da sessão. Recomendação: A — é exatamente o "pré-selecionado" que o usuário pediu para o launch; por consistência, o atalho manual deve fazer o mesmo. (assumido — validar no gate)- Comando
work-issuetambém defineagent? Opções: A) não (usa o agente da sessão) | B) fixarbuild. Recomendação: A — o ciclo da skill decide o agente, não o atalho.
Referências
- GitHub Issue #570
.opencode/commands/worktree.mde.opencode/commands/issue.md— precedentes do formato.agents/skills/work-issue/SKILL.md,.agents/skills/plan-issue/SKILL.md— nomes e fluxos a referenciar- Docs opencode: https://opencode.ai/docs/commands — frontmatter (
description,model,agent) e$ARGUMENTS