announce
Draft X/Twitter announcement post (or thread) for the latest plugin release
Identify skills injected where not needed, propose regex and description tightening
> /plugin marketplace add iliaal/whetstone > /plugin install whetstone@iliaal-marketplace
How it fires
How this command gets triggered: by you, by Claude, or both.
/analyze-misfiresContext preview
What this command does when you run it.
Identify skills injected where not needed, propose regex and description tightening
name: analyze-misfires description: Identify skills injected where not needed, propose regex and description tightening argument-hint: "[--min-examples 30] [--top 5]"
Identify skills whose trigger regex matches too broadly, causing injection into irrelevant tasks. Propose concrete fixes to `skill-patterns.sh` and skill descriptions.
MIN_EXAMPLES=30 (default) TOP=5 (how many worst misfires to investigate, default: 5)
Parse from: `$ARGUMENTS`
python3 distillery/scripts/distiller.py harvest-sessions python3 distillery/scripts/distiller.py analyze-misfires --min-examples <MIN_EXAMPLES>
Present the full misfire table. Flag skills with misfire rate > 15%.
For each of the top `TOP` misfiring skills:
1. Read the current regex from `plugins/whetstone/hooks/skill-patterns.sh` (grep for `SKILL_PATTERNS[<skill-name>]`) 2. Read the skill's YAML description from its SKILL.md 3. Review the irrelevant task samples from the analyze-misfires output 4. Identify what the regex is matching that it shouldn't (e.g., "database" matching audit tasks that mention databases)
For each misfiring skill, propose:
1. **Tightened regex** -- remove overly broad terms, add word boundaries, require more specific combinations 2. **Description update** -- add explicit "not for X" exclusions if the description is attracting wrong matches 3. **Tier adjustment** -- if the skill is Tier 1 but shouldn't fire as eagerly, suggest moving to Tier 2
Present each proposed change for review before applying. Format:
=== ia-postgresql (51% misfire) === Current regex: SKILL_PATTERNS[ia-postgresql]='postgres|jsonb|rls|cte[s]?|window\.?function' Problem: "postgres" matches any mention of PostgreSQL in task context, including Laravel tasks that reference a postgres database Proposed regex: SKILL_PATTERNS[ia-postgresql]='postgres.*(?:query|schema|index|optim)|jsonb|rls|\bcte[s]?\b|window\.?function|explain\s+analyze' Description change: Add "Not for tasks that merely use PostgreSQL as a backend"
For each approved change:
After applying changes, re-run analyze-misfires to confirm misfire rates dropped:
python3 distillery/scripts/distiller.py harvest-sessions python3 distillery/scripts/distiller.py analyze-misfires
Compare before/after misfire rates for the changed skills.
# iterate: test a candidate pattern against inline queries
python3 distillery/scripts/distiller.py eval-triggers <ia-name> \
--pattern '<regex>' \
--queries '{"should_trigger":["real use 1","real use 2"],"should_not_trigger":["misfire 1","misfire 2"]}'
# regression gate: runs the committed fixtures (a /release + /audit-plugin gate)
python3 distillery/scripts/distiller.py test-triggers --skill <ia-name>Always pass the full `ia-` prefixed name. `test-triggers --skill <name>` exits 2 if the name matches no fixture file, so `--skill debugging` fails where `--skill ia-debugging` runs.
A Claude Code plugin that makes AI coding agents follow engineering discipline. Plan before coding. Verify before claiming done. Find root cause before patching. Review before merge. Skills activate based on file type and task signals, not manual toggling.
Repo: iliaal/whetstone
Draft X/Twitter announcement post (or thread) for the latest plugin release
Deep quality audit of all skills, agents, and commands for inconsistencies, gaps, duplication, and token waste
Analyze negative-signal sessions for a skill, identify failure patterns, propose and apply fixes
Eval all skills with sufficient data, rank by procedure-following score, identify candidates for optimization
Propose a skill revision and compare fresh executions under a frozen rubric
Prune stale entries from the whetstone sync decision log