From arcforge
Sets up isolated git worktree for single epic from dag.yaml using arcforge expand --epic. Handles git worktree add, project setup, and dag.yaml updates.
npx claudepluginhub gregoryho/arcforge --plugin arcforgeThis skill uses the workspace's default tool permissions.
Create an isolated workspace for a single epic. This skill is a thin wrapper
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Create an isolated workspace for a single epic. This skill is a thin wrapper
around arcforge expand --epic <id> — it does not create worktrees by hand.
For multi-epic batch expansion, use arc-coordinating expand instead.
REQUIRED BACKGROUND: arc-using — read the Worktree Rule for the three
norms (no hardcoded paths, no manual git worktree add, enter via
arcforge status --json).
Read the epic id from dag.yaml or the user's request. Abort if the epic id
is unknown — you cannot create a worktree for an epic that is not in the DAG.
node "${SKILL_ROOT}/scripts/coordinator.js" expand --epic <epic-id> --project-setup
What this does (single authoritative implementation in ${ARCFORGE_ROOT}/scripts/lib/coordinator.js):
${ARCFORGE_ROOT}/scripts/lib/worktree-paths.js
(~/.arcforge/worktrees/<project>-<hash>-<epic>/).git worktree add <path> -b <epic-id>..arcforge-epic marker with base worktree + base branch.package.json → npm install,
pyproject.toml → pip install -e ., Cargo.toml → cargo build,
go.mod → go mod download) when --project-setup is passed.dag.yaml epic status and worktree field.The command prints JSON. Read the path field — do not reconstruct it from
pattern knowledge, and do not hardcode it in subsequent messages.
Use the completion format below, filling the absolute path from the command output.
Stop immediately if you catch yourself thinking:
git worktree add it directly" — NO. Bypasses the
.arcforge-epic marker and dag.yaml update that arc-coordinating sync
depends on, producing silently broken state../worktrees/" — NO. The
canonical path is derived at runtime; putting it elsewhere makes every
downstream tool fail to find it.~/.arcforge/worktrees/... in my output" — NO. Read
the path field from the CLI's JSON output. The derivation rule has
evolved before and will evolve again.arcforge expand will refuse and that refusal is correct.─────────────────────────────────────────────────
✅ Worktree created for <epic-id>
Path: <absolute path from arcforge expand JSON>
Branch: <epic-id>
Tracking: .arcforge-epic
Next: cd to the path, then use `/arc-finishing-epic` when work is complete
─────────────────────────────────────────────────
─────────────────────────────────────────────────
⚠️ Worktree creation blocked
Epic: <epic-id>
Reason: <stderr from arcforge expand>
Common causes:
- Epic not in dag.yaml
- Epic not ready (dependencies incomplete)
- Git worktree add failed (uncommitted changes, branch conflict)
Report the exact CLI error and stop.
─────────────────────────────────────────────────
arc-coordinating (when a single epic needs expansion), arc-agent-driven, arc-executing-tasks/arc-finishing-epic to integratearc-coordinating expand (batch mode — all ready epics at once, no --epic flag)