coding-agent-work-loop
Inglês · 中文
Transforme comentários de issues / PRs do GitHub na entrada e saída da sua IA local. Um timer systemd + alguns scripts shell + duas labels do GitHub permitem que você converse com a IA diretamente pela interface web do GitHub (ou pelo aplicativo iOS gh).
Este skill é agnóstico em relação ao agente por design. O worker CLI é selecionado por
WORKER_AGENT=<nome>emcoding-agent.config; os scripts de daemon / dispatch passam por uma fina camada de driver que conecta diferentes CLIs de agentes. Drivers embutidos:claude(padrão, Claude Code),opencode(sst/opencode),codex(OpenAI Codex CLI),cursor(Cursor Agent CLI). Adicione o seu próprio viascripts/drivers/<nome>.sh— consulte docs/drivers.md.
Quando invocar
O usuário chama este skill a partir do runtime do agente host via /coding-agent-work-loop <comando> ou uma solicitação em linguagem natural. Formas comuns:
- "Instale este daemon no projeto X" → executa o fluxo
setup - "Qual é o estado do agente de codificação?" → executa o fluxo
status - "Desabilite o agente de codificação no projeto X" → executa o fluxo
disable
O que você (o agente) deve fazer quando invocado
setup (implantar em um projeto host)
O usuário fornece um caminho de projeto host (ex.: ~/github/meuprojeto). Passos:
- Verifique se o caminho existe e é um repositório git (tem
.git) - Verifique as dependências:
git,gh(deve estar logado viagh auth login),tmux,jq,flock,systemctl, além do worker CLI selecionado porWORKER_AGENT(padrãoclaude; outros embutidos:opencode,codex,cursor). Cada um deve ser resolvível viacommand -v. - Execute:
bash "${CLAUDE_PLUGIN_ROOT:-$HOME/.agents/skills/coding-agent-work-loop}/setup.sh" <caminho-do-projeto-host>$CLAUDE_PLUGIN_ROOTé o env da raiz do skill que o Claude Code injeta; se ausente, use o caminho canônico~/.agents/skills/coding-agent-work-loop. setup.shimprime orientações dos próximos passos quando terminar — repasse-as ao usuário textualmente.
status
O usuário quer o estado. Passos:
systemctl --user list-timers 'coding-agent-poll@*' --no-pager— saúde dos timerssystemctl --user list-units 'coding-agent-poll@*.service' --no-pager— última execução- Para cada
~/.config/coding-agent-work-loop/*.confregistrado:tail -20 $STATE_DIR/poll.log(leiaSTATE_DIRdo conf)gh issue list --repo $REPO --label pending/agent+gh pr list --repo $REPO --label pending/agent
- Resuma para o usuário
cleanup (após um PR ser aceito / rejeitado)
O usuário fez merge de um PR ou quer abortar o trabalho em uma issue. Passos:
- Confirme que a issue foi finalizada (PR merged ou fechado)
- Execute:
Flags opcionais:bash "$CLAUDE_PLUGIN_ROOT/scripts/cleanup-issue.sh" <número-da-issue>--force(limpa mesmo se o worker estiver ocupado),--keep-worktree(apenas encerra a sessão),--delete-branch(também remove o branch local)
O que cleanup-issue.sh faz:
- Verificação de ocupação (recusa por padrão, a menos que
--force) - Executa o
CLEANUP_HOOKdo projeto (configurado emcoding-agent.config, ex.: desmontar portas tailscale, parar servidor de desenvolvimento) - Encerra a sessão tmux do worker
- Remove a worktree (padrão)
- Opcionalmente, remove o branch local
disable
O usuário quer parar um projeto. Passos:
- Confirme o nome da instância (
systemctl --user list-timers 'coding-agent-poll@*') systemctl --user disable --now coding-agent-poll@<chave>.timer- Opcional: remova os links simbólicos de instância
~/.config/systemd/user/coding-agent-poll@<chave>.{service,timer}(deixe o template original intacto) - Opcional: remova
~/.config/coding-agent-work-loop/<chave>.conf - Reporte o resultado
O que NÃO é colocado no projeto host
Após o setup, a worktree do projeto host recebe apenas duas coisas:
- Uma linha no
.gitignore(excluindocoding-agent.config) - Um arquivo
coding-agent.config(gitignorado, configuração)
Scripts, unidades systemd, estado e logs ficam todos fora do projeto host (diretório do skill + ~/.config/ + ~/.local/state/).
Arquitetura completa
Consulte o README.md anexo.
Listagem de arquivos
setup.sh— inicializa um projeto hostscripts/— scripts de daemon e dispatch (nunca copiados para o projeto host)prompts/— templates de prompt iniciais do worker (podem ser sobrescritos via.agents/skills/coding-agent-work-loop/prompts/do projeto host)systemd/— unidades template[email protected]/.timer; o setup as copia para~/.config/systemd/user/coding-agent.config.example— template de configuração