skills/arc-coordinating/SKILL.md
Use when managing worktrees for multi-epic projects, when specs/<spec-id>/dag.yaml exists, or when coordinating parallel development
npx skillsauth add gregoryho/arcforge arc-coordinatingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use the Node.js CLI (scripts/coordinator.js) for worktree lifecycle and cross-session coordination.
.arcforge-epic exists and epic id should be inferredSingle-epic projects: Use arc-implementing directly (except merge in a worktree).
If already in a worktree: Use arc-implementing, except for merge (allowed).
DAG requirement: specs/<spec-id>/dag.yaml must exist and be committed before running coordinator commands. In base-side sessions with multiple specs, commands that cannot aggregate (next, parallel, expand, loop) require --spec-id <id>; merge / cleanup accept positional epic ids as disambiguator.
| Command | Purpose | CLI Mapping |
|---------|---------|-------------|
| expand | Create worktrees for ready epics | arcforge expand |
| merge | Merge completed epics | arcforge merge |
| status | Show workflow progress | arcforge status |
| cleanup | Remove merged worktrees | arcforge cleanup |
| sync | Synchronize worktree ↔ DAG state | arcforge sync |
| next | Show next ready task | arcforge next |
| parallel | Show parallelizable tasks | arcforge parallel |
| block | Mark a task blocked in DAG | arcforge block |
| reboot | Generate 5-Question context | arcforge reboot |
IMPORTANT: Set SKILL_ROOT to the absolute path from the skill loader header (# SKILL_ROOT: ...).
: "${SKILL_ROOT:=${ARCFORGE_ROOT:-}/skills/arc-coordinating}"
if [ ! -d "$SKILL_ROOT" ]; then
echo "ERROR: SKILL_ROOT=$SKILL_ROOT does not exist. Set ARCFORGE_ROOT or SKILL_ROOT manually." >&2
exit 1
fi
Then use node "${SKILL_ROOT}/scripts/coordinator.js" <command> for all commands:
node "${SKILL_ROOT}/scripts/coordinator.js" status
node "${SKILL_ROOT}/scripts/coordinator.js" expand
node "${SKILL_ROOT}/scripts/coordinator.js" merge
JSON output: Add --json flag for machine-readable output:
node "${SKILL_ROOT}/scripts/coordinator.js" status --json
Workflow:
node "${SKILL_ROOT}/scripts/coordinator.js" <command>If the current directory is an arcforge-managed worktree (contains
.arcforge-epic):
.arcforge-epicgit worktree list --porcelain — the coordinator
automatically recognizes which entries are arcforge-managed worktrees and
picks the base for youHEADdag.yamlIf base worktree cannot be found or base branch cannot be inferred → report blocked and STOP.
✅ Coordinator: expand complete
⚠️ Coordinator: merge blocked
⚠️ Coordinator: blocked
${SKILL_ROOT}/scripts/coordinator.js⚠️ Coordinator: merge blocked
git worktree list --porcelain, base worktree HEADtesting
Use when the user explicitly runs the slash command `/arc-auditing-spec <spec-id>` to produce a read-only advisory audit of an arcforge SDD spec family (design.md, spec.xml, dag.yaml). Only triggered by direct user invocation; never auto-invoked from any pipeline skill (arc-brainstorming, arc-refining, arc-planning).
development
Use when the user wants to create, query, audit, or initialize an Obsidian vault — wiki / knowledge base / second brain, project tracker, news pipeline, journal, or any typed-note vault. Trigger on saving notes / capturing ideas / sharing URLs to document; querying the vault ("what do I know about", "search my vault"); auditing health (missing links, orphans, drift); ingesting raw files; "init a new vault" or "register vault"; mentions of any registered vault. Also triggers on casual "save this" / "file this back". Do NOT trigger for Excalidraw diagram creation (use arc-diagramming-obsidian), general code, debugging, PR reviews, web searches.
testing
Use when maintaining ArcForge itself by creating, editing, or verifying ArcForge skills before deployment
testing
Use when you need to verify work is complete before making completion claims