Run plan
Turn your coding agent into a full product team — composable skills across research, marketing, product, and process. One install, every editor (Claude Code, Cursor, Codex, Windsurf, Gemini CLI, VS Code).
npx -y skills add hungv47/meta-skills --skill run-planAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Execute an APPROVED plan.md (the A3 plan-artifact at .forsvn/runs/<slug>/plan.md) step by step — auto-advance the non-publish steps within the governor envelope, narrate each applied play, and STOP hard at every publish / spend / irreversible gate, never publishing. Use to run a plan a human already approved. Not for building the plan (that's /forsvn's multi-step planner), a channel launch (run-launch), or a generic produce-and-measure loop (run-pipeline).
SKILL.md
6.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Run Plan — Approved-Plan Executor
Meta process skill. Walks an approved plan.md, auto-advancing only the non-publish steps within the A6 governor envelope and stopping hard at every publish gate. Orchestrate, don't fuse; never auto-publish, never auto-ratify, never run an unapproved plan.
Core question: "Did every non-publish step advance legibly within the envelope, and did the run STOP — publishing nothing — at the first publish gate or governor limit?"
The executor loop, the stricter-gate rule, the governor config, the worked example:
run-plan-spec.md[SPEC]. Plan schema + writer:bin/plan.ts. Governor:bin/lib/governor.ts.
Critical Gates
- Approval first — refuse otherwise. Read
.forsvn/runs/<slug>/plan.md. Ifstatus != approved, STOP and report it (proposed→ a human must approve before step 1). Never run, never self-approve. - Publish gate is absolute. A step resolved to
publishSTOPS the run unconditionally — hand to the human, publish nothing, do not advance. Hard-coded ingate_class; never downgradable by.forsvn/config.json. - Stricter gate wins. Resolve each step's gate from the live capability
gate_class(the capability index, built bybin/build-capability-index.ts) AND the plan row'sgate. If either sayspublish, it's a publish stop. A missing/unknown gate is treated asreview(neverauto). - Governor envelope (A6). Before each step call
bun bin/lib/governor.ts check …. On a stop (max-steps/checkpoint/domain-jump/budget) STOP and narrate the reason. The governor only tightens — it cannot relax a gate. - Legible + never auto-ratify. Every advance narrates
▸ Step n/N …; every leaf artifact staysdecision_state: pending. No black-box run; no auto-acceptance.
Quality Gate — 5 dimensions
Pre-exit self-check — all 5 must hold (the executor's critic):
- Approval honored — the run only proceeded because
status: approved; an unapproved plan was refused. - Publish-stop honored — every
publishstep stopped the run; nothing was published or advanced past it. - Envelope honored — each advanced step passed the governor check; a governor stop was narrated with its reason.
- Narrated — every advanced step printed
▸ Step n/N /<skill> — <play>; every stop printed■ …. - No auto-ratify — each produced artifact is
decision_state: pending; the executor approved nothing.
Before Starting
Read the plan: bun bin/plan.ts show <slug>. Refuse unless status: approved. Resume is native — the Current step pointer + the steps table's status column say exactly what ran and what's next; no chat history needed. Session profile: _shared/execution-policy.md. Mode: _shared/mode-resolver.md — --fast skips narration verbosity, never a gate or the publish stop.
Dispatch
Per ready step (all depends_on done), in depends_on order:
- Resolve the gate — stricter of the plan row
gateand the capability's livegate_class(defaultreview, neverauto). - Check the envelope —
bun bin/lib/governor.ts check --step-index <done-count> --running-domain <chain-domain> --next-domain <step-domain> [--next-skill <id> --cost-so-far <usd>]. Exit2→ STOP, narrate the reason. - If
auto/reviewand the governor proceeds — dispatch the step's leaf skill (it runs its own agents + critic), leave the artifactdecision_state: pending, narrate▸ Step n/N /<skill> — <applied play / why>, thenbun bin/plan.ts set-status <slug> <stepId> doneandbun bin/plan.ts advance <slug>. - If
publish— narrate■ Step n/N /<skill> — publish gate: human required (nothing published).and STOP. Do not dispatch, advance, or publish.
Continue until a publish gate, a governor stop, or no ready step remains. The executor owns sequencing + gate enforcement only — each step's work is the leaf's (orchestrate, don't fuse).
Chain Position
Deference: build/propose the plan → /forsvn multi-step planner (A3); a single channel launch → run-launch; a generic produce-and-measure loop → run-pipeline; approve the plan → the human, in the review surface. run-plan runs what they approved; it never plans, launches, or approves.
Anti-Patterns
anti-patterns.md [ANTI-PATTERN] — run an unapproved plan · publish or advance past a publish gate · let .forsvn/config.json downgrade a gate · auto-ratify an artifact · black-box a step (no ▸ line) · fuse a step's work instead of dispatching its leaf · ignore a governor stop.
Durable Rules (protected)
<!-- SLOW_UPDATE_START --> <!-- No pinned rules yet (populate via the slow-update workflow — references/slow-update-fence.md). --> <!-- SLOW_UPDATE_END -->Completion Status
- DONE — the plan ran to a clean terminal: every ready non-publish step advanced + narrated within the envelope, and the run stopped at a publish gate, a governor limit, or plan completion.
- DONE_WITH_CONCERNS — a leaf returned
DONE_WITH_CONCERNS, or a step degraded; the run stopped legibly but a step needs attention. - NEEDS_CONTEXT — no plan at
.forsvn/runs/<slug>/, or the slug is ambiguous. - BLOCKED —
status != approved(a human must approve first), or a leafGUARD_FAIL.
Worked Example
A 3-step plan that auto-advances research → copy, then stops at the publish gate — narration + gate resolution visible: run-plan-spec.md § Worked example.
What ships with it: 5 files
27.7 KB alongside SKILL.md
references/
- anti-patterns.md1.5 KB
- run-plan-spec.md5.4 KB
- _shared/execution-policy.md7.0 KB
- _shared/mode-resolver.md11.0 KB
- routing.yaml2.7 KB