coding-agent-work-loop
English · 中文
Convierte comentarios de issues / PRs de GitHub en la entrada y salida de tu IA local. Un timer de systemd + unos scripts shell + dos etiquetas de GitHub te permiten hablar con la IA directamente desde la interfaz web de GitHub (o la app iOS gh).
Este skill es independiente del agente por diseño. El CLI del worker se selecciona mediante
WORKER_AGENT=<nombre>encoding-agent.config; los scripts de daemon / despacho pasan por una capa de drivers delgada que conecta diferentes CLIs de agente. Drivers incluidos:claude(por defecto, Claude Code),opencode(sst/opencode),codex(OpenAI Codex CLI),cursor(Cursor Agent CLI). Añade el tuyo propio mediantescripts/drivers/<nombre>.sh— consulta docs/drivers.md.
Cuándo invocarlo
El usuario llama a este skill desde el runtime del agente anfitrión mediante /coding-agent-work-loop <comando> o una solicitud en lenguaje natural. Formas comunes:
- "Instala este daemon en el proyecto X" → ejecuta el flujo
setup - "¿Cuál es el estado del agente de codificación?" → ejecuta el flujo
status - "Deshabilita el agente de codificación en el proyecto X" → ejecuta el flujo
disable
Qué debe hacer el agente al ser invocado
setup (desplegar en un proyecto anfitrión)
El usuario te da una ruta de proyecto anfitrión (ej. ~/github/miproyecto). Pasos:
- Verifica que la ruta exista y sea un repositorio git (tenga
.git) - Comprueba dependencias:
git,gh(debe haber iniciado sesión congh auth login),tmux,jq,flock,systemctl, más el CLI del worker seleccionado porWORKER_AGENT(por defectoclaude; otros incluidos:opencode,codex,cursor). Cada uno debe resolverse mediantecommand -v. - Ejecuta:
bash "${CLAUDE_PLUGIN_ROOT:-$HOME/.agents/skills/coding-agent-work-loop}/setup.sh" <ruta-del-proyecto-anfitrion>$CLAUDE_PLUGIN_ROOTes la variable de entorno de la raíz del skill que inyecta Claude Code; si no está, se recurre a la ruta canónica~/.agents/skills/coding-agent-work-loop. setup.shimprime instrucciones de siguientes pasos al terminar — transfiérelas al usuario textualmente.
status
El usuario quiere el estado. Pasos:
systemctl --user list-timers 'coding-agent-poll@*' --no-pager— salud del timersystemctl --user list-units 'coding-agent-poll@*.service' --no-pager— última ejecución- Para cada
~/.config/coding-agent-work-loop/*.confregistrado:tail -20 $STATE_DIR/poll.log(leeSTATE_DIRdel archivo de configuración)gh issue list --repo $REPO --label pending/agent+gh pr list --repo $REPO --label pending/agent
- Resume para el usuario
cleanup (después de que un PR sea aceptado / rechazado)
El usuario fusionó un PR o quiere abortar el trabajo en un issue. Pasos:
- Confirma que el issue está terminado (PR fusionado o cerrado)
- Ejecuta:
Banderas opcionales:bash "$CLAUDE_PLUGIN_ROOT/scripts/cleanup-issue.sh" <número-del-issue>--force(limpiar incluso si el worker está ocupado),--keep-worktree(solo matar la sesión),--delete-branch(también eliminar la rama local)
Qué hace cleanup-issue.sh:
- Verifica si está ocupado (rechaza por defecto a menos que se use
--force) - Ejecuta el
CLEANUP_HOOKa nivel de proyecto (configurado encoding-agent.config, ej. desmontar puertos de tailscale, detener servidor de desarrollo) - Mata la sesión tmux del worker
- Elimina el worktree (por defecto)
- Opcionalmente elimina la rama local
disable
El usuario quiere detener un proyecto. Pasos:
- Confirma el nombre de la instancia (
systemctl --user list-timers 'coding-agent-poll@*') systemctl --user disable --now coding-agent-poll@<clave>.timer- Opcional: elimina los enlaces simbólicos de instancia
~/.config/systemd/user/coding-agent-poll@<clave>.{service,timer}(deja la plantilla real intacta) - Opcional: elimina
~/.config/coding-agent-work-loop/<clave>.conf - Informa al usuario
Qué NO se coloca en el proyecto anfitrión
Después del setup, el worktree del proyecto anfitrión gana solo dos cosas:
- Una línea en
.gitignore(excluyendocoding-agent.config) - Un archivo
coding-agent.config(ignorado por git, configuración)
Los scripts, unidades systemd, estado, registros viven todos fuera del proyecto anfitrión (directorio del skill + ~/.config/ + ~/.local/state/).
Arquitectura completa
Consulta el README.md adjunto.
Listado de archivos
setup.sh— arranca un proyecto anfitriónscripts/— scripts de daemon y despacho (nunca se copian al proyecto anfitrión)prompts/— plantillas de prompt inicial para el worker (se pueden sobrescribir mediante.agents/skills/coding-agent-work-loop/prompts/del proyecto anfitrión)systemd/— unidades plantilla[email protected]/.timer; el setup las copia a~/.config/systemd/user/coding-agent.config.example— plantilla de configuración