improver
AGENTS.md0 starsChanged 4 months agoMITView on GitHub
improver is a Claude Code plugin — and its own marketplace — that enriches a thin, under-developed draft of a prompt, a goal, or a loop into a complete, ready-to-use artifact. It ships no application source code: no package.json, no build toolchain, nothing to compile. The entire plugin is manifests (.claude-plugin/), skill instructions (skills/*/SKILL.md), and JSON data (rules/, golden/). Treat this as a content/data repository, not a software project with a build step. There is no build, lint, or test…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository4 other files it gives its agents.
- grade-enrichmentSkill
- improve-goalSkill
- improve-loopSkill
- improve-promptSkill
The file
We split this AGENTS.md into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
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
- Very specific: line 26
Run with any evals.json-compatible runner (e.g.
- Very specific: line 126
When touching any workflow file, keep new/changed uses: pinned to a full commit SHA (the pin-check gate will otherwise fail CI) and update …
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md 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
AGENTS.md
This file provides guidance to AI coding agents (Claude Code and others) when working with code in this repository.
What this repo is
improver is a Claude Code plugin — and its own marketplace — that
enriches a thin, under-developed draft of a prompt, a goal, or a
loop into a complete, ready-to-use artifact. It ships no application
source code: no package.json, no build toolchain, nothing to compile. The
entire plugin is manifests (.claude-plugin/), skill instructions
(skills/*/SKILL.md), and JSON data (rules/, golden/). Treat this as a
content/data repository, not a software project with a build step.
Commands
There is no build, lint, or test command in the conventional sense — the equivalents are:
- Validate manifests:
claude plugin validate .(requires theclaudeCLI; this is also whatquality-gates.yml'smarketplace-validatejob runs in CI). - Run a skill's evals: each skill ships
skills/<name>/evals/evals.json(3-4 cases, ≥2 expectations each, some withdeterministic_checkslikeregex_match/file_contains/file_not_containsagainst a transcript). Run with anyevals.json-compatible runner (e.g. theautoresearchskill/plugin). There is no bundled runner script in this repo. - Self-calibrate grading:
grade-enrichment's calibration record (golden/calibration-record.json) is regenerated by a blind LLM-judge pass overgolden/{prompt,goal,loop}/case-*.json— see that skill's "Calibration gate" section for the exact procedure (never Read a golden case whole; extract onlydraft/enrichedviagrepto preserve blindness before comparing againsthuman_verdict). - Local plugin dev loop:
claude --plugin-dir /path/to/improverloads the working checkout directly, no install/publish step required.
Architecture
The four skills, one shared pipeline
skills/{improve-prompt,improve-goal,improve-loop,grade-enrichment}/SKILL.md.
The three improve-* skills all run the same four-step pipeline, described
identically in each SKILL.md:
- Load the rule pack — read
rules/<kind>-rules.json. - Confirm the artifact kind — the skill invocation is the classification. If the draft clearly reads as a different kind, surface that as a clarifying question rather than silently reclassifying it.
- Detect gaps — run the draft against every rule's
gap_check, producing one internal{rule_id, finding_refs, description}list that feeds both elicitation modes below. - Elicit and synthesize — default (single-turn): fold each gap into the
output as a concise clarifying question, nothing invented, no placeholder
tokens ever.
--interactive: batch the same gaps asAskUserQuestioncalls (max 4 questions per call) before synthesizing with real answers folded in; if the user skips a question, fall back to folding it into the output rather than inventing an answer.
grade-enrichment is the deliberate exception: strictly opt-in, never
chained into from an improve skill, and grades an already-enriched artifact
against the same rule pack that produced it.
Each skill's output contract is narrow and enforced by its own "Critical
rules" section — e.g. improve-goal must return exactly one code block
prefixed /goal and strictly under 4,000 characters (compress and re-count,
never truncate); improve-loop must never emit a fully autonomous loop as
"ready" without all three hard gates (sandboxing, iteration cap, human
checkpoint). Read the specific SKILL.md before changing any skill's
behavior — the contracts differ meaningfully per kind and are exercised by
that skill's evals.
Rule packs are versioned data, not prose
rules/{prompt,goal,loop}-rules.json — one independently versioned pack per
artifact kind (see docs/decisions/0001-rule-packs-as-versioned-cited-data.md
for the full rationale). Each rule is {id, rule, finding_refs, gap_check};
finding_refs resolves through rules/findings-index.json to a full MIF
finding @id and source URL. A rule with no citation is indistinguishable
from an invented one — none ship without one. When adding or changing a
rule, find or produce the real research finding behind it first, add/reuse
its entry in findings-index.json, then reference it by shorthand from the
rule. Each pack also declares its own target_surface (consumers,
budget_chars — e.g. goal's 4000 vs. prompt/loop's null), which is
why the packs are separate files rather than one shared pack.
Golden sets and calibration
golden/{prompt,goal,loop}/case-*.json are hand-reviewed
{draft, enriched, human_verdict} records; golden/calibration-record.json
is a committed snapshot of a blind LLM-judge run over all 9 cases (current:
9/9 agreement, threshold 0.75, grader_model recorded). grade-enrichment
reads this record before trusting any LLM-based verdict and degrades
gracefully (never blocks) when it's missing, unreadable, or below threshold
— see that skill's "Calibration gate" section.
Docs set
docs/ follows the Diátaxis framework — tutorial,
how-to, reference, explanation, plus docs/decisions/ for ADRs. docs/*.md
and the ADR carry MIF-conformant YAML frontmatter (id/type/relationships/
provenance); preserve that shape when editing, and update
docs/README.md's index/table if a new doc is added.
CI/CD conventions
This repo consumes the modeled-information-format/.github org's reusable
workflows as thin, SHA-pinned callers rather than reimplementing checks
locally:
ci.yml— pin-check (everyuses:in this repo must be a full 40-char commit SHA, no tags/branches) and workflow YAML lint (actionlint).quality-gates.yml— SAST (CodeQL inactions-only mode — no app source to scan), SCA/OSV, Trivy, Scorecard, ShellCheck, Semgrep, secrets scanning, manifest-review, plus the canonicalclaude plugin validate .job. Scorecard runs without an org GitHub App token (personal repo, no access to org-scoped secrets) — a documented, intentional degradation, not a bug.release.yml— builds a reproduciblegit archivesource tarball, attests it with SLSA build provenance (actions/attest-build-provenance), and fail-closed re-verifies the attestation before uploading to the GitHub release. Triggered byrelease: published;workflow_dispatchexercises build→attest→verify as a dry run without cutting a version.
When touching any workflow file, keep new/changed uses: pinned to a full
commit SHA (the pin-check gate will otherwise fail CI) and update the SHA
comment consistently with the surrounding style (@<sha> # vX.Y.Z for
third-party actions, bare @<sha> for the org's own reusables, whose header
comment already states the pinned ref).
Non-negotiable content rules (apply across all four skills)
- Never invent, never placeholder. Missing information becomes a
clarifying question folded into the output (or an
AskUserQuestionin--interactive) — never a[PLACEHOLDER]token, never a guess. - Preserve intent, don't redirect it. Enrichment adds specificity, structure, and missing elements; it never substitutes a different task, goal, or loop than the one drafted.
- Every enrichment decision must be citable. "Why did you add X?"
resolves to a rule
id→finding_refs→ full finding@id/URL — never a restated heuristic. - Output format is exactly what each
SKILL.mdspecifies — typically one code block and nothing else, with named exceptions (citations on explicit request,--interactiveAskUserQuestion turns preceding the final block).
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.

