run-plan

Installation
SKILL.md

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

  1. Approval first — refuse otherwise. Read .forsvn/runs/<slug>/plan.md. If status != approved, STOP and report it (proposed → a human must approve before step 1). Never run, never self-approve.
  2. Publish gate is absolute. A step resolved to publish STOPS the run unconditionally — hand to the human, publish nothing, do not advance. Hard-coded in gate_class; never downgradable by .forsvn/config.json.
  3. Stricter gate wins. Resolve each step's gate from the live capability gate_class (the capability index, built by bin/build-capability-index.ts) AND the plan row's gate. If either says publish, it's a publish stop. A missing/unknown gate is treated as review (never auto).
  4. 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.
  5. Legible + never auto-ratify. Every advance narrates ▸ Step n/N …; every leaf artifact stays decision_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):

Installs
3
GitHub Stars
12
First Seen
3 days ago
run-plan — hungv47/meta-skills