eval-set
Skill5 starsChanged 4 months agoMITView on GitHub
Build and run a project-specific retrieval eval so changes to your rules or base prompt are scored, not eyeballed. Mirrors tests/ground_truth.json + `clawness eval`: you write prompt→expected-rule cases, then measure MRR@k and hit-rate before and after an edit. Run it after trimming a base prompt into ranked retrieval (see openclaw-audit / claude-md), or whenever you change rules and want proof retrieval still surfaces what matters.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- robdasi/skillstheir own version, first seen Jun 15, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- robdasi/skills★ 0same 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 repository17 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- openclaw/CLAUDE.mdCLAUDE.md
- addSkill
- audit-rulesSkill
- bootstrapSkill
- claude-mdSkill
- messagingSkill
- openclaw-auditSkill
- perfSkill
- refreshSkill
- reviewSkill
- security-auditSkill
- statusSkill
- testSkill
- user-docsSkill
- vuln-huntSkill
- vuln-reportSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
When you move guidance out of an always-loaded base prompt (a bloated CLAUDE.md, an OpenClaw SOUL.md/AGENTS.md) into Clawness's ranked …
- Distinctive: line 69
One case per thing you care about surfacing: If you moved five conventions out of a base prompt, that is at least five cases.
- Very specific: line 100
If the right rule is missing from the list entirely, its tags/triggers don't carry the words the prompt uses — widen them (or the concept …
- Very specific: line 102
If the right rule is present but below the cutoff, something else is out-ranking it.
- Distinctive: line 104
If the *case* is unrealistic (nobody would phrase it that way), fix the case, not the corpus.
- Distinctive: line 107
Never "fix" a miss by deleting the case.
- Distinctive: line 125
Don't score mandatory rules — they're always injected.
- Distinctive: line 126
Don't chase MRR by rewording cases to match rule titles.
- Distinctive: line 128
Don't set floors you don't currently meet.
- Distinctive: line 129
Don't treat a green eval as proof a base-prompt trim was safe on its own — it proves the *listed* prompts surface the content.
≈ “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
Score your retrieval, don't eyeball it
When you move guidance out of an always-loaded base prompt (a bloated CLAUDE.md, an
OpenClaw SOUL.md/AGENTS.md) into Clawness's ranked retrieval, you trade a guarantee
for a probability: the content used to be present on every turn; now it surfaces only
when the prompt is relevant enough to rank it. That trade is usually right — it is the
whole point of /clawness:claude-md and /clawness:openclaw-audit — but it is only safe
if you can check that the content still surfaces for the prompts that need it.
This skill builds that check. It is the same machinery Clawness gates its own corpus with:
a labelled set of prompt → expected rule ID(s) cases, scored by MRR@k and hit-rate via
clawness eval. The output is a number that moves when retrieval regresses, so a rule edit
that quietly stops surfacing shows up instead of hiding until someone hits it in anger.
This is harness-agnostic — it evaluates Clawness retrieval, which is identical under Claude Code and under the OpenClaw adapter. Nothing here touches OpenClaw's own prompt.
When to run it
- After trimming a base prompt into
.clawness/rules/— write a case for each thing the moved content used to guarantee, then confirm hit-rate is 1.0 before you delete the original. This is the verification stepopenclaw-audit/claude-mdpoint at. - After editing or adding rules — re-run to confirm you didn't push an existing rule out of the top-k for prompts that depend on it.
- As a CI gate, once the set is stable — the same
--floor-mrr/--floor-hitfloors Clawness uses on its own eval.
Steps
1. Create the case file
Author .clawness/eval/cases.json in the shape below (a filled-in copy of this skill's
cases.template.json). Write it directly — the plugin root isn't reachable from skill
Bash, so don't try to cp the template from the plugin dir.
The shape (identical to tests/ground_truth.json):
{
"queries": [
{ "q": "how should I handle errors in our service layer", "expect": ["SVC-ERR-001"] }
]
}q— a prompt someone on this project would actually type. Write real phrasings, not the rule's own title; retrieval is lexical + concept-expansion, so the words matter.expect— the ranked rule ID(s) that should appear in the top-k. Any one of them counts as a hit, so list alternatives when more than one rule legitimately answers.expecttargets ranked rules only. Mandatory rules (_mandatory/) are injected every turn and are not scored — don't put them here.
Files under
.clawness/are gitignored by Clawness's default allowlist. If you want the eval set committed and shared, add!.clawness/eval/to.gitignore.
2. Write good cases
- One case per thing you care about surfacing. If you moved five conventions out of a base prompt, that is at least five cases.
- Phrase from the asker's side. "make focus states visible for keyboard nav" beats "accessibility rule for focus" — the first is what a developer types.
- Add near-miss cases too. A prompt that should not pull a rule is worth a case with the correct rule expected, so a change that over-broadens a rule shows as a new miss elsewhere.
- Keep the set stable. Its value is as a fixed baseline; churning the cases every edit defeats the point. Grow it deliberately when you add a rule area.
3. Run it
The clawness CLI ships with the plugin but isn't on PATH; use the bundled
launcher, falling back to the bootstrap's wrapper on older Claude Code:
CLAW="${CLAUDE_PLUGIN_ROOT}/scripts/clawness-cli.sh"
[ -f "$CLAW" ] || CLAW="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/clawness/clawness-cli.sh"
bash "$CLAW" eval --data .clawness/eval/cases.json(Editable/manual installs may use python -m clawness.cli eval --data ....)
It prints MRR@k, hit-rate, and every miss with what was expected versus what actually
ranked — which tells you exactly which case to fix and whether the fault is the rule's
tags/triggers or the case's phrasing.
4. Interpret and act on misses
For each miss (expected [X]; got [...]):
- If the right rule is missing from the list entirely, its
tags/triggersdon't carry the words the prompt uses — widen them (or the concept groups) rather than the case. - If the right rule is present but below the cutoff, something else is out-ranking it;
check whether a newly-added rule overlaps (
clawness audit-rules --overlap). - If the case is unrealistic (nobody would phrase it that way), fix the case, not the corpus.
Never "fix" a miss by deleting the case. A case you can't satisfy is telling you the content you trimmed does not reliably surface — put it back in the base prompt and mark it STAY.
5. Gate it (optional)
Once the set is stable and green, wire floors into CI so a regression fails the build:
bash "$CLAW" eval --data .clawness/eval/cases.json --floor-mrr 0.85 --floor-hit 0.95Pick floors from your current passing numbers, not aspirational ones — a floor above
where you are just fails every build. eval exits non-zero when a floor is breached, so
it drops into a CI step directly.
Don't
- Don't score mandatory rules — they're always injected; measuring them is noise.
- Don't chase MRR by rewording cases to match rule titles. The cases must stay realistic or the number stops meaning "will this surface for a real prompt".
- Don't set floors you don't currently meet.
- Don't treat a green eval as proof a base-prompt trim was safe on its own — it proves the listed prompts surface the content. Coverage is only as good as your cases; write one for everything the trimmed content used to guarantee.
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.

