From Develop Orchestrator
Manually evaluate the develop flow's accumulated postmortems and decide what to tweak before the next run. Trigger on "/develop:flywheel", "tune the develop flow", "review the postmortems", "what should I improve before the next run", "grow the flow". Reads .claude/develop-flywheel.md across runs, flags recurring/breaking finding categories, and proposes the cheapest remediation lever + target for each — human-gated. Run periodically between feature runs, not per feature (PF already logs each run).
How this skill is triggered — by the user, by Claude, or both
Slash command
/develop:flywheelThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`/develop:run` *logs* a postmortem after every run; this skill *acts* on the accumulated
/develop:run logs a postmortem after every run; this skill acts on the accumulated
logs. It's the human-gated half of the flywheel: read what
keeps escaping, decide where to tighten, and apply it — so the next run is stronger. Run it
periodically once a few runs have accumulated, not after every feature.
.claude/develop-flywheel.md — the postmortem log + this repo's promoted-anchors table..claude/develop.config.json, .claude/develop-routing.json — what gates/agents already
exist (you reuse-first against these)..claude/agents/ — the repo's own agents (to spot unwired ones — step 1b)..claude/CLAUDE.md — the repo's existing rules.Read every postmortem block in .claude/develop-flywheel.md and the promoted-anchors table
(so you don't re-propose what's already promoted).
A repo agent that exists but nothing routes to is a missed reuse — it should have been used. A quick light grep finds them: list the repo's agents, list the names referenced in routing, and report the difference.
# repo-local agents that exist
for f in .claude/agents/*.md; do basename "$f" .md; done | sort -u > /tmp/have
# agent names referenced by any route (agent: "x" / agents: ["x", …])
grep -oE '"agents?"[[:space:]]*:[[:space:]]*(\[[^]]*\]|"[^"]*")' .claude/develop-routing.json \
| grep -oE '"[a-z0-9][a-z0-9-]*"' | tr -d '"' | grep -vE '^(agent|agents)$' | sort -u > /tmp/routed
# UNWIRED = exists but not routed
comm -23 /tmp/have /tmp/routed
(If comm isn't available, just read both files and diff the name sets — it's a tiny list.)
Carry the unwired list into step 4: for each, ask "should this have caught one of the
recurring findings?" If yes, wiring it is the cheapest possible fix — it already exists.
Group the preventable escaped findings by category across runs; count recurrences and
flag any breaking-class ones. Set the irreducible floor aside — those aren't
preventable; don't try to "fix" them, just confirm they're staying flat.
A category is promotion-ready when it has appeared ≥ 2 times across runs or is breaking-class. A category already promoted but still recurring is a signal its existing lever is inadequate → mark it for strengthening, not a duplicate.
For each flagged category, pick the remediation per reuse-and-defer.md:
CLAUDE.md, a gate, a hook, a reviewer?
If it exists and the finding still escapes, propose strengthening that — never add a
duplicate alongside it.develop-routing.json. That's a
cheap, direct edit, not a build: an existing agent that should have been used beats authoring
a new one.hook → gate → plan-anchor → rule → agent (building a new reviewer is the last
resort). Name the concrete target (which file / anchor / route / rule line).Present a report, cheapest/earliest lever first:
Tweaks before next run (you approve which to apply):
1. <category> ×<n> runs [breaking?] → <lever>: <target>
edit: <the exact change> apply: direct | defer-to-workflow
2. ...
Irreducible floor: <n> (unchanged — expected)
Unwired: <agent> exists but isn't routed — should have caught <category>? → wire it (cheap)
Prune: <reviewer> — subsumed by <lever> (optional)
Ask the user which proposals to apply (AskUserQuestion, or an explicit approve list).
Nothing is applied without approval — this is the promotion gate.
.claude/develop-flywheel.md; a gates[] entry in
develop.config.json; a route added/pruned in develop-routing.json; a rule line in
CLAUDE.md; a hook in .claude/hooks/ + settings..claude/ for review.Update the promoted-anchors table (date / runs seen / lever applied), mark deferred items as
pending-workflow, and annotate the postmortem entries you addressed. Next /develop:run
reads the strengthened definitions automatically.
.claude/ without approval. The classifier proposes; the human
promotes.npx claudepluginhub chrisjenx/cjs-orchestrator --plugin developGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.