Subtask

Despacha trabajadores de IA paralelos a worktrees git aislados a través de la CLI subtask

Por zippoxer · zippoxer/subtask

Funciona con configuración ★ 7.6/10

Subtask — Despacha trabajadores de IA paralelos a worktrees git aislados a través de la CLI subtask

Qué hace

Enseña a Claude Code a orquestar trabajo paralelo a través de la CLI Go `subtask`: cada tarea obtiene su propio worktree y rama git, además de un registro de tarea con título, rama base y un historial de eventos. Cubre el ciclo completo de borrador, envío a un trabajador, revisión del diff, avance de etapas (de doing a review a ready), y squash-merge de vuelta a la rama base. Se activa cuando el usuario pide delegar trabajo a trabajadores o subagentes, ejecutar varias tareas en paralelo, o menciona Subtask por su nombre.

Informe de la prueba

Se construyó la CLI Go desde el código fuente (go1.26.5) y se ejecutó todo bajo un HOME temporal; los ~/.claude/skills y ~/.subtask reales se verificaron sin cambios. Los 13 comandos que la tabla de SKILL.md enumera (ask, draft, send, stage, list, show, diff, merge, close, workspace, interrupt, log, trace) existen en el binario, y `subtask install --no-prompt --scope user --harness claude` escribió SKILL.md en ~/.claude/skills/subtask/SKILL.md. Artefacto de línea base (/tmp/st-baseline): la corrección de dos errores Python independientes a mi manera dio 2 ramas secuenciales y `git worktree list` mostrando 1 entrada, sin metadatos de tarea. Artefacto de habilidad (/tmp/st-skill2): siguiendo el cuerpo literalmente, `git worktree list` mostró 3 entradas (main + fix/duration-hours + feat/retry-validation en vivo simultáneamente en rutas distintas), una carpeta .subtask/tasks/<task>/ por tarea que contenía TASK.md (frontmatter de título/rama base), WORKFLOW.yaml y history.jsonl, una tabla de estado `subtask list` mostrando ambos en curso con +1 -1 y +7 -3, y `subtask merge` aplastando cada uno en main ("Merged ... Workspace freed") para un main limpio de 2 commits. El único paso que no pude ejecutar es el trabajador de IA real: `subtask send` aprovisionó el worktree y despachó, pero el arnés murió en 3.6s y `subtask trace` mostró que el prompt del trabajador respondió con "Invalid API key - Please run /login" porque el HOME temporal no tiene credenciales, así que comprometí manualmente la salida del trabajador para probar la revisión/fusión. También encontré un bloqueador indocumentado: en un repositorio donde /.subtask/ no estaba gitignored antes de redactar, `subtask merge` se negó con "has uncommitted changes" (ensureGitignore solo se llama desde `subtask config`, no `draft`). Escaneo de seguridad limpio: SKILL.md no tiene URLs, scripts, base64 o texto de inyección, y los hooks de plugin opcionales solo muestran recordatorios de "consider loading the subtask skill".

Probado el: 2026-07-21 · Claude Code 2.x (agent harness)

Instalación

git clone --depth 1 https://github.com/zippoxer/subtask.git /tmp/subtask-src
mkdir -p ~/.claude/skills/subtask
cp /tmp/subtask-src/pkg/install/SKILL.md ~/.claude/skills/subtask/SKILL.md
# REQUIRED: the skill is a thin wrapper and does nothing without the `subtask` Go binary.
#   brew install zippoxer/tap/subtask
#   # or: go install github.com/zippoxer/subtask/cmd/subtask@latest
#   # or: curl -fsSL https://subtask.dev/install.sh | bash   (upstream install script; audit before running)
# Then configure the worker harness (writes the same SKILL.md itself, so the copy above is optional):
#   subtask install --no-prompt --scope user --harness claude   # or --harness codex / opencode
#   # plain `subtask install` is interactive and fails without a TTY ("could not open a new TTY")
# REQUIRED: the chosen harness CLI (claude / codex / opencode) must be installed and authenticated,
#   otherwise `subtask send` fails with "claude failed: exit status 1".
# Recommended: commit `/.subtask/` to .gitignore BEFORE drafting tasks, or `subtask merge` aborts
#   with "has uncommitted changes" because .subtask/ is untracked inside each worktree.
# Optional plugin (adds hooks that remind Claude to load the skill):
#   /plugin marketplace add zippoxer/subtask  &&  /plugin install subtask@subtask

Comandos y prompts de ejemplo

  • /subtaskDespacha trabajadores de IA paralelos a worktrees git aislados a través de la CLI subtask

Los skills se activan con peticiones en lenguaje natural, sin comandos que memorizar. Tras instalarlo, prompts como estos lo activan (en inglés):

  • Delegate this task to a subtask worker
  • Run these three tasks in parallel workspaces
  • Create a new subtask for this feature