agentleFS
fullymiddleagedfullymiddleaged/Clawness/skills/audit-rules/SKILL.md

audit-rules

Skill5 starsChanged 4 months agoMITView on GitHub

Review one domain of the Clawness rule corpus for correctness against current official documentation, then record what was established as a version stamp (applies_to / verified / sources) on each rule individually. For maintainers and fork maintainers. Reports verdicts and writes stamps; never rewrites rule text.

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. About 0 are common, 6 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    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
  1. Distinctive:

    Run the mechanical checks first, so the review has the numbers in front of it:

    line 28
  2. Very specific:

    Every rules/<domain>/*.yml, plus any existing applies_to on them.

    line 47
  3. Very specific:

    Follow the lookup procedure in skills/refresh/SKILL.md step 3 — same procedure, different destination: that one writes to one project's …

    line 52
  4. Distinctive:

    Per rule, from that rule's evidence: Do not derive a domain-wide span and apply it across the folder.

    line 90
  5. Very specific:

    All three fields, or the rule stays silent — applies_to alone is asserted, not established, and deliberately arms nothing.

    line 102
  6. Distinctive:

    Don't stamp a folder. Ever.

    line 120
  7. Distinctive:

    Don't rewrite rule text. Report it.

    line 121
  8. Distinctive:

    Don't stamp from memory — every stamp needs a URL you actually read.

    line 122
  9. Distinctive:

    Don't treat repeated per-project overrides of one id as noise.

    line 123

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Audit a rule domain

clawness audit-rules measures what is measurable — missing provenance, eval blind spots, near-duplicate rules, unreachable rules. This skill is the half that isn't measurable: is this rule still true?

It is also where version ranges come from. There is no way to derive what a rule was written against — git dates are a weak proxy (an author can write for an older major than the day's current one) and rule text names an API, not a version. So applies_to is an output of this review, established rule by rule from that rule's own evidence.

One domain per run. 212 rules in one pass is not a review. Reviewing several domains at once is how a careful pass becomes a bulk stamp, which is the exact failure per-rule stamping exists to prevent.

Before you start

Run the mechanical checks first, so the review has the numbers in front of it:

The clawness CLI ships with the plugin but isn't on your PATH; run it via the bundled launcher, falling back to the bootstrap's wrapper on older Claude Code (editable/manual installs may use python -m clawness.cli instead):

CLAW="${CLAUDE_PLUGIN_ROOT}/scripts/clawness-cli.sh"
[ -f "$CLAW" ] || CLAW="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/clawness/clawness-cli.sh"
bash "$CLAW" audit-rules --stale --overlap

--overlap matters here specifically: near-duplicates within the domain you are about to review are cheapest to spot while you have all of it in your head.

Steps

1. Read the whole domain

Every rules/<domain>/*.yml, plus any existing applies_to on them. Note which frameworks the domain names and what versions the current rules imply.

2. Look up what is current

Follow the lookup procedure in skills/refresh/SKILL.md step 3 — same procedure, different destination: that one writes to one project's .clawness/rules/, this one fixes the corpus upstream. In short: the framework's own migration guide, then its changelog, then the current official docs page. Not recalled knowledge — a model's sense of "what's current" lags real releases by exactly the gap this feature exists to close.

3. Give each rule a verdict

VerdictMeaning
Still trueCorrect at the current major. The honest majority.
Now wrongThe API or the recommendation changed.
Now the framework defaultTrue but redundant — the framework does it for you, so the rule is noise competing for a top-k slot.
UnsettledThe docs didn't answer it. Leave it alone and say so.

4. Report, don't rewrite

Never edit rule text from this pass. A rule silently flipped by a hallucination governs every subsequent prompt in every project that installs Clawness — strictly worse than a stale one, because it looks reviewed. Report the verdicts and let the maintainer decide what to change.

The one thing this skill does write is the stamp (step 5).

5. Stamp each rule individually

For every rule you settled, add:

applies_to: {"Next.js": "13-15"}
verified: "<YYYY-MM, this month>"
sources: ["<the URL that justified it>"]

Rules on rules:

  • Per rule, from that rule's evidence. Do not derive a domain-wide span and apply it across the folder. A domain range is the union of its rules' ranges, which is the widest claim available, and wide is the direction that fails silently.
  • Both bounds need evidence, and the lower one is the easy one to fake. "True from 13" is a claim about 13, not a free consequence of checking 17.
  • Where evidence doesn't settle a bound, narrow. Too narrow produces a visible false warning that gets corrected; too wide produces silence that doesn't.
  • Leave unsettled rules unstamped and list them. A gap is truthful; a stamp that says "checked" when nobody checked is the original bug wearing a hallmark.
  • The label must be one a detector emits ("Next.js", not "next"). A label nothing emits never matches, so the rule can never be flagged stale again.
  • All three fields, or the rule stays silent — applies_to alone is asserted, not established, and deliberately arms nothing.

6. Verify

bash "$CLAW" lint     # validates labels, ranges, and dates mechanically
bash "$CLAW" eval --floor-mrr 0.85 --floor-hit 0.95

eval must be unchanged: stamps are excluded from the search text, so a moved score means something went into the wrong field.

Then report: how many rules reviewed, how many still true, how many wrong, how many left unsettled, and the domain-level --stale count before and after.

Don't

  • Don't stamp a folder. Ever.
  • Don't rewrite rule text. Report it.
  • Don't stamp from memory — every stamp needs a URL you actually read.
  • Don't treat repeated per-project overrides of one id as noise. That is the signal the rule needs fixing here, upstream, rather than being patched in every project separately.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.