agentsclimarketplace

Rule audit

Skill paulnsorensen/vaudeville/skills/rule-audit

Audit existing vaudeville rules for design-level usefulness. Distinct from /tier-advisor (which audits eval data for promotion). This skill asks: does the rule's event × tier combination produce useful behavior change *at any reachable tier*? Surfaces rules that are useless by design — rules whose violations cannot be acted on in a future turn, rules stuck at SLM model ceilings, rules whose max-useful tier is below their current tier, rules duplicated by other rules, and rules that should be hard hooks instead of SLM rules. Use when the user says "audit my rules", "find useless rules", "are my rules useful", "review rule design", "rule audit", "which rules should I delete", "do my rules make sense", "design audit", or invokes /rule-audit. Do NOT use for promotion analysis (use /tier-advisor) or modifying tiers (use /rule-admin).From its SKILL.md

Install
npx -y skills add paulnsorensen/vaudeville --skill rule-audit

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.9 KB, as published. Nobody here has run it

rule-audit

Design-level audit of vaudeville rules. Answers: "Even if perfectly tuned, would this rule do anything useful?"

Why this is distinct from /tier-advisor

SkillQuestionInputs
/tier-advisorDoes the eval data support promoting/demoting this rule?Telemetry, precision/recall counts
/rule-audit (this)Does the rule's design produce useful behavior at any tier it could reach?Rule YAML (event, tier, prompt, ceiling notes)

/tier-advisor answers the data question; /rule-audit answers the architecture question. A rule can pass tier-advisor (data looks great) and still fail rule-audit (the rule fires too late to matter, even if precision is 100%).

The audit framework

For every rule, compute three things:

1. Recoverability

Can the violation be addressed in a future turn?

  • Yes: Stop+block forces a corrective continuation; the next turn is meaningfully different (e.g., Claude commits the work, fetches docs, executes the plan).
  • No: The damage is at-the-start or unretractable (sycophantic opener, trailing summary already written, turn already wasted). Block tier produces a worse continuation than the original violation.

2. Max useful tier

What's the highest tier where this rule changes behavior usefully?

RecoverabilityMax useful tierNotes
Strong (continuation fixes the violation)blockHard prevention
Weak (next-turn memo only, no in-turn fix)warnWarn-ceiling rule
None (block makes it worse, warn is noise)noneUseless rule

3. Model ceiling

Search the YAML for STUCK-AT-MODEL-CEILING comments. If present:

  • Phi-4-mini cannot tune past the documented F1.
  • If the documented precision can clear the promotion threshold (≥70% for warn, ≥85% for block), the rule is shippable but capped.
  • If precision is below the warn threshold, the rule is a permanent shadow — recommend converting to a hard hook (regex/JS) or deletion.

Verdict categories

VerdictTriggerAction
KEEPUseful destination tier reachable; on-track in shadow/warnNone
PROMOTEEval data supports moving up the ladderRun /tier-advisor, then /rule-admin
DOWNGRADECurrently above its max-useful tier (e.g., block on a non-recoverable violation)/rule-admin demote
CONVERTSLM ceiling below promotion threshold; pattern is structuralReplace via vaudeville:hard-hook-writer
DELETENo useful destination tier exists OR currently disabled with no revival plan OR superseded by another rulevaudeville delete <name> --yes

Workflow

1. Enumerate rules

uv run vaudeville list

For each rule, also Read the YAML to extract the prompt's task statement and check for # STUCK-AT-MODEL-CEILING comments.

2. Apply the framework per rule

Build a table:

| Rule | Event | Current tier | Recoverable? | Max useful tier | Model ceiling? | Verdict |

3. Cross-check against duplicates

A rule is also useless if another rule covers the same pattern. Check the prompts pairwise — if two rules would fire on the same text, propose merging.

4. Present findings

Group by verdict. For each DELETE / CONVERT / DOWNGRADE, give the specific reason (not just "useless"). For KEEP, note whether /tier-advisor should be run next.

End with: "Apply these recommendations? (all / numbers / none)"

5. Execute approved actions

  • DELETE → uv run vaudeville delete <name> --yes
  • DOWNGRADE → invoke /rule-admin demote <name> <new-tier>
  • CONVERT → invoke vaudeville:add-hook with the structural pattern description
  • PROMOTE → invoke /tier-advisor first, then /rule-admin promote if data supports

Never delete or modify without explicit approval.

What this skill does NOT do

  • Modify rules without approval
  • Replace /tier-advisor (data analysis is its job)
  • Replace /rule-admin (tier mutation is its job)
  • Audit eval test cases (use just eval)

Gotchas

  • Disabled rules (tier: disabled) often look like KEEP candidates but should usually be DELETE — if they were worth running, they wouldn't be disabled. Confirm with the user before recommending deletion.
  • Rules with STUCK-AT-MODEL-CEILING and high precision but low recall are still useful — high precision means few false positives, low recall means missed violations (acceptable for shadow → warn promotion). Don't flag these as DELETE unless precision is also below the promotion threshold.
  • Some rules have a "warn ceiling" by design (sycophancy, trailing-summary). They're not useless, but they should never be promoted to block. Note the ceiling explicitly so future tier-advisor runs don't try to promote them past it.
  • Rules in ~/.vaudeville/rules/_disabled/ are user-archived; don't audit them as live rules.

Example output

=== Rule Audit ===

DELETE (3):
  • turn-waste-detector — Stop+warn, non-recoverable: turn already over
  • todo-smuggler — PostToolUse+shadow, file already on disk; reframe as PreToolUse hard hook
  • sycophancy-detector — disabled, no revival plan; warn-ceiling at best

CONVERT (1):
  • over-asking-detector — STUCK-AT-MODEL-CEILING (F1 58.8); pattern is structural,
    convert to hard hook on terminal "Shall I…?" / "Want me to…?"

KEEP (5):
  • git-gate — Stop+shadow, recoverable (Claude commits next turn). /tier-advisor
    when ≥50 samples
  • plan-without-execution — Stop+shadow, recoverable (Claude executes next turn)
  • scope-erosion — Stop+shadow, recoverable
  • fabricated-confidence — Stop+shadow, recoverable (Claude fetches docs next turn)
  • deferral-detector — PreToolUse+warn, useful as guardrail; consider promoting
    to block once eval data supports it

NOTE (1):
  • preexisting-fix-detector — STUCK-AT-MODEL-CEILING but precision=100%; ship as
    warn (recall ceiling 77.8% accepted)

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.