forge-orchestrate
Skill2 starsChanged 5 months agoMITView on GitHub
Drive the full 12-stage Forge pipeline end-to-end by adopting the
In this repository46 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- forge-opencode/CLAUDE.mdCLAUDE.md
- forge-adoptSkill
- forge-arch-proSkill
- forge-archSkill
- forge-autopilotSkill
- forge-autopilot-stopSkill
- forge-build-proSkill
- forge-buildSkill
- forge-deploySkill
- forge-doctorSkill
- dreamer-runSkill
- forge-evalSkill
- forge-feedbackSkill
- flowSkill
- forge-force-advanceSkill
- graduateSkill
- health-checkSkill
- forge-initSkill
- forge-monitorSkill
- forge-plan-proSkill
- forge-planSkill
- preflightSkill
- forge-product-proSkill
- forge-productSkill
- forge-releaseSkill
- forge-resolveSkill
- forge-resumeSkill
- forge-retroSkill
- forge-reviewSkill
- forge-rulesSkill
- forge-set-profileSkill
- skill-creatorSkill
- forge-spec-proSkill
- forge-specSkill
- forge-sprint-proSkill
- forge-sprintSkill
- forge-srs-proSkill
- forge-srsSkill
- forge-statusSkill
- forge-trace-matrixSkill
- forge-uninstallSkill
- forge-validateSkill
- watchSkill
- watch-stopSkill
- forge-whySkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 2 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 61
Adopt the persona: Read agents/orchestrator.md and follow it completely for the rest of this run — it is your operating protocol, not …
- Very specific: line 68
If pipeline/state.md doesn't exist, tell the user to run /forge:init first and stop.
- Very specific: line 71
Resolve the plan: Read references/stage-order.md in full.
- Very specific: line 73
No argument → from current_stage + 1 through 12 (or the current cycle's exit, if current_stage falls inside a non-full cycle's entry..exit …
- Distinctive: line 79
If the request is ambiguous about scope, ask once (bundled, not a drip) before starting.
- Very specific: line 131
If stage 12 completed, say the cycle is done, point to /forge:retro, and note the next advance wraps to (cycle + 1, stage 0).
- Distinctive: line 136
After a run, these should hold:
- Very specific: line 140
Every stage the loop claims to have completed has a passing gate recorded (check check-gate.py's output for that stage, or the stage's …
- Very specific: line 144
No stage's persona work happened without its own SKILL.md being followed (this skill never substitutes its own shortcut version of a …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/forge:orchestrate — full-pipeline orchestration
/forge:orchestrate is a dedicated, single-purpose answer to "run the pipeline for
me." It adopts the Orchestrator persona (agents/orchestrator.md) and walks the
pipeline stage-by-stage, reusing each stage's own /forge:* skill — never
reimplementing stage logic — while owning one thing no other driver in the system
treats as a checked postcondition: verifying pipeline/state.md actually advanced
after every single stage, not just assuming state-manager.py advance's exit code
means the write landed.
When to Use
/forge:orchestrate(defaults to running through to stage 12, or the current cycle's exit stage)./forge:orchestrate to stage N— run up to and including stage N./forge:orchestrate iteration/hotfix/tech-debt— run one of the named cycles fromreferences/stage-order.md'scyclestable (entry → exit).- The user wants several stages driven without issuing each
/forge:*command by hand, and wants a persona explicitly accountable for the pipeline bookkeeping.
When NOT to Use
- A single stage → just run that stage's own command (e.g.
/forge:build). - The user wants self-heal on gate failure, background dispatch, or context-window
checkpointing → that's
/forge:autopilot, which already implements all three (see Relationship note below); don't duplicate that machinery here. - The user wants to override a known blocker →
/forge:force-advance, not this.
Relationship to /forge:autopilot
Both skills drive multiple stages. Use this table to route:
| Need | Use |
Self-heal a blocked gate via /forge:resolve | /forge:autopilot |
| Background/headless dispatch, session reuse | /forge:autopilot |
| Context-window checkpoint/rotate on a long run | /forge:autopilot |
| A named, dedicated persona driving the run with a hard verify-every-advance rule | /forge:orchestrate (this skill) |
They are not mutually exclusive: /forge:orchestrate's per-stage loop is
deliberately simpler (no self-heal, no background mode) so the state.md verification
step is the one thing it can never skip — including cases where autopilot's own
advance step (state-manager.py advance + autopilot.py record) doesn't itself
re-read state.md afterward.
Steps
- Adopt the persona. Read
agents/orchestrator.mdand follow it completely for the rest of this run — it is your operating protocol, not background reading. - Orient.
Ifpython3 ${CLAUDE_PLUGIN_ROOT}/scripts/state-manager.py read --cwd .pipeline/state.mddoesn't exist, tell the user to run/forge:initfirst and stop. Notecurrent_stageandcycle. - Resolve the plan. Read
references/stage-order.mdin full. Determine the ordered list of stages to run:- No argument → from
current_stage + 1through 12 (or the current cycle'sexit, ifcurrent_stagefalls inside a non-fullcycle'sentry..exitrange). to stage N→ fromcurrent_stage + 1throughN.- A cycle name (
iteration/hotfix/tech-debt) → that cycle'sentry..exitrange, only ifcurrent_stageis at or beforeentry. If the request is ambiguous about scope, ask once (bundled, not a drip) before starting.
- No argument → from
- Pre-flight the first stage in the plan:
A non-zero exit means the prerequisite artifact is missing — stop and relay the error (it names the missing file and the skill that produces it).python3 ${CLAUDE_PLUGIN_ROOT}/scripts/state-manager.py preflight --stage {first_stage} --cwd . Loop over the plan, one stage at a time. For each
{stage}:a. Narrate:
[Forge] orchestrator: stage {stage} — {label from stage-order.md}.b. Run the stage. Read that stage's row in
stage-order.mdfor itsagentandskill, then read and followskills/forge-<name>/SKILL.mdexactly (the same file that stage's own/forge:*command would run) — including its own persona-adoption step. Do not skip or summarize that skill's steps.c. Check the gate:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-gate.py --stage {stage} --cwd . \ --plugin-dir ${CLAUDE_PLUGIN_ROOT}Parse the JSON
details[]. Anyseverity: blockerentry withpassed: false→ STOP: print the unmet blockers verbatim and tell the user to fix them (or run/forge:autopilotfor self-heal, or/forge:force-advance --reason "…"to override deliberately). Do not advance past a blocker.d. Advance + reflect on a clean gate:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/state-manager.py advance --to {stage + 1} --cwd . python3 ${CLAUDE_PLUGIN_ROOT}/scripts/stage-reflect.py --stage {stage} --cwd . \ --gate-status passe. Verify the advance landed — this is the step this skill exists to guarantee:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/state-manager.py read --cwd .Confirm
current_stagenow equals{stage + 1}. If it does not, STOP immediately and report a state.md write failure — never tell the user the stage completed when the file disagrees.f. If
{stage}was the last one in the plan, or{stage} == 12, exit the loop.- Finish. Summarize: stages completed this run, the final
current_stage(read fresh, not assumed), and thenext_hint:
If stage 12 completed, say the cycle is done, point topython3 ${CLAUDE_PLUGIN_ROOT}/scripts/state-manager.py next-hint --stage {last completed stage}/forge:retro, and note the next advance wraps to(cycle + 1, stage 0).
Verification
After a run, these should hold:
pipeline/state.md'scurrent_stagematches exactly what was reported to the user — never inferred, always re-read after eachadvance.- Every stage the loop claims to have completed has a passing gate recorded (check
check-gate.py's output for that stage, or the stage'sreflection.md). - A run that stopped at a blocker left
state.mdat the last successfully verified stage, not at the blocked one. - No stage's persona work happened without its own
SKILL.mdbeing followed (this skill never substitutes its own shortcut version of a stage's steps).
Examples
User: "/forge:orchestrate to stage 3"
Claude: [adopts orchestrator persona, reads state.md: current_stage=1]
"Running stages 2–3. Starting Stage 2 (Product + UX)…" [follows forge-product's
SKILL.md, gate passes, advances, verifies current_stage=2] "Stage 2 done, verified.
Starting Stage 3 (Architecture)…" [gate fails: blocker] "🚫 Stopped at Stage 3 —
architecture.md is missing a data model section (blocker). Fix that and re-run
/forge:orchestrate to stage 3, or /forge:autopilot to self-heal."
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

