Subtask

Sender parallelle AI-arbejdere til isolerede git worktrees via subtask CLI'en

Af zippoxer · zippoxer/subtask

Virker med opsætning ★ 7.6/10

Subtask — Sender parallelle AI-arbejdere til isolerede git worktrees via subtask CLI'en

Hvad det gør

Lærer Claude Code at orkestrere parallelt arbejde gennem `subtask` Go CLI'en: hver opgave får sit eget git worktree og branch, plus en opgavepost med titel, base branch og en hændelseshistorik. Dækker hele loopet med udkast, send til en arbejder, gennemgå diff, fremfør stadier (fra 'doing' til 'review' til 'ready') og squash-merge tilbage til base branch. Udløses, når brugeren beder om at delegere arbejde til arbejdere eller subagenter, køre flere opgaver parallelt eller nævner Subtask ved navn.

Testrapport

Byggede Go CLI'en fra kilde (go1.26.5) og kørte alt under en mktemp HOME; de rigtige ~/.claude/skills og ~/.subtask blev verificeret uberørte. Alle 13 kommandoer, som SKILL.md-tabellen lister (ask, draft, send, stage, list, show, diff, merge, close, workspace, interrupt, log, trace) findes i binæren, og `subtask install --no-prompt --scope user --harness claude` skrev SKILL.md til ~/.claude/skills/subtask/SKILL.md. Baseline-artefakt (/tmp/st-baseline): at rette to uafhængige Python-fejl på min egen måde gav 2 sekventielle branches og `git worktree list`, der viste 1 post, uden opgavemetadata. Skill-artefakt (/tmp/st-skill2): at følge kroppen ordret gav `git worktree list` med 3 poster (main + fix/duration-hours + feat/retry-validation live samtidigt på forskellige stier), en .subtask/tasks/<task>/-mappe pr. opgave, der indeholder TASK.md (titel/base-branch frontmatter), WORKFLOW.yaml og history.jsonl, en `subtask list` status-tabel, der viser begge i gang med +1 -1 og +7 -3, og `subtask merge`, der squasher hver til main ("Merged ... Workspace freed") for en ren 2-commit main. Det ene trin, jeg ikke kunne udføre, er den faktiske AI-arbejder: `subtask send` provisionerede worktree'et og afsendte, men harness døde på 3,6 sekunder, og `subtask trace` viste, at arbejderprompten svarede med "Invalid API key - Please run /login", fordi den midlertidige HOME ikke har legitimationsoplysninger, så jeg hånd-committede arbejderoutputtet for at teste review/merge. Stødte også på en udokumenteret blokerende faktor: i et repo, hvor /.subtask/ ikke var gitignored før udarbejdelse, nægtede `subtask merge` med "has uncommitted changes" (ensureGitignore kaldes kun fra `subtask config`, ikke `draft`). Sikkerhedsscan ren: SKILL.md har ingen URL'er, scripts, base64 eller injection-tekst, og de valgfrie plugin-hooks ekkoer kun "consider loading the subtask skill" påmindelser.

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

Installation

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

Kommandoer og eksempelprompter

  • /subtaskSender parallelle AI-arbejdere til isolerede git worktrees via subtask CLI'en

Skills udløses af almindelige forespørgsler — ingen kommandoer at huske. Efter installationen aktiverer prompter som disse skillen (på engelsk):

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