spec-run
Skill0 starsChanged 45 days agoMITView on GitHub
Run outstanding plans unattended to done — every question settled up front, work isolated in a worktree, each plan executed and reviewed, pins moved, the branch integrated, and a report of what needs the user. Use when the user wants to walk away while plans are implemented ("run it", "run it overnight", "take it from here"), or invokes /spec-run.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- mmerah/rulehalltheir own version, first seen Nov 1, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- mmerah/rulehall★ 4same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- architectureSkill
- debugSkill
- fan-outSkill
- finishSkill
- merge-conflictsSkill
- reviewSkill
- spec-adoptSkill
- spec-amendSkill
- spec-boundariesSkill
- spec-implementSkill
- spec-initSkill
- spec-reviewSkill
- spec-shapeSkill
- tddSkill
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 5 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Run plans to done while the user is away.
- Very specific: line 17
If run.mjs active shows a run in progress, this is a resume — after a compaction or in a new session.
- Very specific: line 38
Verification commands: Test, typecheck, lint: from the repo's agent instructions, or its manifest (package.json scripts, Makefile, …
- Distinctive: line 41
Baseline: Run the suite on the starting commit.
- Distinctive: line 44
End state: Leave the branch for review (the default), merge into the base branch locally, or push and open a pull request.
- Distinctive: line 94
When a notification tool is available, send one line as the run ends.
- Distinctive: line 108
No check-ins between tasks.
≈ “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
Run plans to done while the user is away. Everything that needs the user happens before the run starts. After that, the run decides how, parks questions about what, and stops only for the few things under Stops.
run.mjs below means node ${CLAUDE_PLUGIN_ROOT}/scripts/run.mjs; run.mjs help
lists its commands.
If run.mjs active shows a run in progress, this is a resume — after a
compaction or in a new session. Skip to step 4 and continue each plan from
run.mjs status <plan>.
Procedure
- Scope. The plans the user named, or every outstanding one:
capabilities whose spec differs from its pin (
node specs/registry.mjs checklists them with their plans) and standalone plans indocs/changes/active/. Order them so a plan whose capabilitydepends-onanother outstanding capability runs after it. A feature with no plan yet goes to spec-shape first — this skill runs plans; it does not write them. Readiness — settle it now, while the user is here. Collect everything the run would otherwise stop for, then ask it one question at a time, recommended answer first:
- Open questions in the plans. Tasks that cite an open
-U-,[human]tasks, and whatever spec-implement's pre-flight would park. Each is answered now — spec-amend folds the answer into the spec before the run — or accepted as a park. - Verification commands. Test, typecheck, lint: from the repo's agent instructions, or its manifest (package.json scripts, Makefile, Cargo.toml, pyproject.toml). Confirm any you inferred.
- Baseline. Run the suite on the starting commit. Red at baseline is the user's call: fix it first, or run anyway with those failures recorded as pre-existing.
- End state. Leave the branch for review (the default), merge into the base branch locally, or push and open a pull request. Pushing and opening a PR act outside the repository, so they happen only on an explicit yes here.
- Permissions. A permission prompt mid-run waits for the user. If the session cannot edit files and run the verification commands unprompted, say so, so the user can change modes (auto mode, or allow rules for those commands). You do not change permission settings.
Then state the run in two lines: the plans, the task count, the end state, and what would stop it. That is the last message that needs an answer.
- Open questions in the plans. Tasks that cite an open
- Isolate. On the default branch, work in a worktree: the harness's own
tool when it has one (EnterWorktree in Claude Code); otherwise confirm
.worktrees/is ignored (git check-ignore -q .worktrees— add it to.gitignoreand commit if not) andgit worktree add .worktrees/<run-name> -b spec-run/<run-name>. Already on a feature branch or in a linked worktree → run there. Install dependencies from the lockfile present:pnpm-lock.yaml→ pnpm install,bun.lock→ bun install,uv.lock→ uv sync,poetry.lock→ poetry install,Cargo.lock→ cargo fetch,go.sum→ go mod download,package-lock.json→ npm ci. Then mark the run —run.mjs active set <plan>…, which the session hook reads after a compaction — and log its base on each plan:run.mjs log <plan> "run: started (base <sha7>) — end state: <choice>". - Run each plan through spec-system:spec-implement, in order. Between
plans,
checkpasses and the plan's pin or archive commit has landed. A plan that ends partial keeps its pin; later plans that do not depend on it go ahead. One line of narration per task at most — the run logs are the record. While subagents work, wait in bounded stretches and keep the bookkeeping moving; never sit in one open-ended wait. - Integrate by the end state chosen in step 2, through spec-system:finish. A red suite on the integrated result stops the integration and goes under Blocked on me.
Report, then
run.mjs active clearand remove.spec-run/— git and the plans are the record now. Lead with what needs the user:- Blocked on me — parked tasks and their questions, pre-existing failures, anything not integrated.
- Changed — per plan: pin moved or not, statements now true with evidence, verified counts, and where the work is (branch, PR, merge).
- Found — anomalies, deferred minors, and friction worth fixing in
the repo: a rule the reviewer enforced by hand more than once is a
candidate invariant with a
checked-by. - Rulings — every ruling from every plan's run log, with its cost if wrong.
When a notification tool is available, send one line as the run ends.
Stops
A run stops early only for an irreversible or destructive operation, a security-sensitive action, a side effect outside the repository not authorised in step 2, or every remaining task parked. A behaviour question parks one task, not the run. A red test is work, not a stop.
Rules
- A run executes plans. It never writes or amends a spec. A parked question the user answers later goes through spec-amend, which unparks the task; the next run picks it up.
- No check-ins between tasks.
push --force,reset --hardon a shared branch,branch -D, andclean -fare never part of a run.
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.

