Generate `program.md` at the repo root from the autoresearch program template, with mutable/immutable scope and verifier commands baked in via light templating. Run after autoresearch-verify produces the verifier script. The generated program.md is the operating directive for a fresh agent session running the autoresearch loop — after this skill runs, the autoresearch skills are no longer in the picture. Use when a user wants to generate the loop directive for an autoresearch run.
How this skill is triggered — by the user, by Claude, or both
Slash command
/will-wright-eng-skills:autoresearch-programThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Stamp out the loop directive (`program.md`) for an autoresearch run. This skill substitutes repo-specific values into a template and writes the result to the repo root. Once `program.md` exists, the autoresearch skills exit the picture — the human hands `program.md` to a fresh agent session and the loop runs from there.
Stamp out the loop directive (program.md) for an autoresearch run. This skill substitutes repo-specific values into a template and writes the result to the repo root. Once program.md exists, the autoresearch skills exit the picture — the human hands program.md to a fresh agent session and the loop runs from there.
program.md is voiced as a direct address to the loop agent: imperative, concrete, researcher-tone (LOOP FOREVER, What you CAN do / What you CANNOT do, NEVER STOP, Simplicity criterion, Rewinding). This voice is load-bearing — it sets the autonomy expectation and the discipline. Preserve it during substitution.
autoresearch-verify has been run and the verifier script exists. Confirm both modes work (light and heavy) by reading the verifier and, if possible, running each mode once.autoresearch-method has been read; repo fit is confirmed.program.md is a tracked file the team shares.<repo root>/program.md — generated by substituting placeholders in ./program.template.md..gitignore updates for the results-log path and any verifier persistence directory, if not already ignored.The skill does not start the loop, create branches, or run the verifier.
./program.template.md — the loop directive with {{PLACEHOLDER}} tokens. Read this file as the substitution source.Read the repo and ask the human as needed. Settle every value before substituting.
program.md itself.autoresearch. Each run creates <prefix>/<tag>.python verify.py --mode light. Override if the verify skill used a different filename or invocation.python verify.py --mode heavy. Same caveat.results.jsonl at the repo root.light.valid is true AND light.score is strictly better than the current best (in the direction given by light.objective)." Adjust if the metric is noisy (require N consecutive better runs, require a margin above the noise floor, require a minimum sample size). The heavy gate is enforced separately by the loop and does not need to be repeated in this rule. Phrase the rule in plain English directed at the loop agent — it will read this prose, not parse it.| Placeholder | Replaced by |
|---|---|
{{MUTABLE_SCOPE}} | Mutable scope bullets |
{{IMMUTABLE_SCOPE}} | Immutable scope bullets |
{{BRANCH_PREFIX}} | Branch prefix |
{{VERIFY_CMD_LIGHT}} | Light verifier command |
{{VERIFY_CMD_HEAVY}} | Heavy verifier command |
{{RESULTS_LOG}} | Results log path |
{{ACCEPTANCE_RULE}} | Acceptance rule prose |
Read ./program.template.md from this skill directory.
Perform a literal string replacement for each {{PLACEHOLDER}} listed above. Do not modify any other text. Specifically, leave verbatim:
These sections are the methodology. They carry the voice and the autonomy directive that make the loop work. If you find yourself wanting to rewrite a section, soften the tone, or add a new section, stop and surface the disagreement to the human.
program.mdWrite the substituted content to <repo root>/program.md. If a program.md already exists, show the human the diff and confirm before overwriting.
.gitignoreIf the results log path is not already gitignored, append it. Also ignore any verifier persistence directory referenced by the loop (e.g. verify_runs/). Do not gitignore the verifier script itself — it must be tracked.
Tell the human:
Where program.md was written.
The mutable and immutable scope at a glance.
The verifier commands baked in.
The next step: start a fresh agent session and prompt it with:
Read
program.mdand follow it exactly. Begin with setup, then enter the loop and do not stop until I interrupt you.
program.md.autoresearch-verify.The autoresearch skills are no longer in the picture. The loop is self-contained:
program.md is the operating directive.verify.py or equivalent) produces light scores and heavy integrity verdicts.To run, hand program.md to a fresh agent session.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub will-wright-eng/skills