chore(evals): author skill evals for docs-hygiene (5 skills) - #132
Conversation
Add rich-form evals/evals.json for each docs-hygiene skill and bump the plugin version so the marketplace redelivers the new shipped component. Skills (6 cases each — routing, happy path, guardrail/refusal, anti-pattern): - compress: default-vs-audit routing, content preservation over flavor, separate semantic-diff pass, sub-3% revert, refuse code files, SSOT relocation is not flavor - declutter: shape/tier classification, read-only even when asked to fix, slot-variable not a ghost-ref, exempt sections, flavor is /compress, Diataxis preamble treatment - encapsulation-audit: detect routing, single-violation not gated by Rule of Three, filter-taxonomy legal hits, Path B missing-action files+stops, scripts/ entry-surface legal, duplication routes to /extract-ssot - extract-ssot: identify on duplication smell, refuse below Rule of Three, Tier 0 over recall, code cluster out of scope, DESCRIBE/USE/EXPOSE, one-level-deep citations - rename-references: audit sweep, never trust single-pattern grep, English verb forces ambiguous confirm, re-sweep until zero, refuse framework migration, plan-doc auto-excluded Two markdown fixtures back the compress and declutter happy-path cases. All 5 conform to the bundled evals.schema.json; check-skill.sh presence gate passes (0 errors). Version bump is minor (evals are additive, backward-compatible) per the docs-hygiene 0.1.0 -> 0.2.0 delivery. Co-authored-by: Claude <noreply@anthropic.com>
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_d6a1f196-7ea7-4b3d-96d8-e10de25b304c) |
|
Claude finished @kyle-sexton's task in 3m 24s —— View job PR Review: chore(evals): author skill evals for docs-hygiene (5 skills)Tasks
SummaryWell-structured eval set with strong behavioral grounding. All 30 cases are schema-compliant and traced to specific hard rules in the corresponding SKILL.md files. A few minor gaps worth addressing, none of which block merge. Schema / StructureAll five Behavioral Contract FidelityEach case checked against the corresponding SKILL.md: compress (6/6) — All cases trace cleanly:
declutter (6/6) — Cases accurate, one gap noted below. encapsulation-audit (6/6) — Case 3 is particularly apt: the plugin-cache hit uses extract-ssot (6/6) — All cases map to documented hard rules. Case 5 ( rename-references (6/6) — Case 6 ( Findings1.
The fixture The preamble on this Explanation-quadrant file (a retry policy) would likely be Tier 2 KEEP — but it's still a reportable finding. A grader comparing the expected_output against a real run could be confused by the omission. Suggested fix: either add the preamble finding to 2.
The prompt says "Compress CLAUDE.md". This tests the behavioral route (sub-3% revert) without a 3.
The name is FixturesBoth fixtures are correct:
Version Bump
VerdictApprove with minor note. Finding #1 (preamble gap in |
## What Adds rich-form `evals/evals.json` for five `implementation` skills — `implement`, `implement-dispatch`, `build`, `lint`, `setup` — and bumps the plugin manifest `0.2.0` → `0.3.0` so marketplace consumers pick up the new shipped eval component. | Skill | Cases | Focus | |---|---|---| | `implement` | 6 | bugfix-mode incremental cadence, branch-check stops on default branch, major divergence routes back to planning, never-declares-impossible-without-alternatives, over-correction guard on pushback, autonomous run chains to `/implement-dispatch` | | `implement-dispatch` | 6 | autonomous dispatches even when plan is all-main-window, interactive all-main-window hands back to `/implement`, verify worker return against direct evidence, brief carries scope-fence + divergence clause, non-interactive moderate divergence takes conservative + `DEVIATIONS.md`, autonomous fresh-context verifier before DONE | | `build` | 5 | ecosystem auto-detection, missing-tool skip-not-FAIL, consumer config wins over bundled default, build scope excludes lint-only `yaml`/`cross-cutting`, clean-tree branch-diff fallback | | `lint` | 5 | check-mode lint-only detection, `--fix` mode parse, owns `yaml`+`cross-cutting`, missing-tool skip + file-outside-ecosystem silent, no-changes directs to `/lint all` | | `setup` | 4 | infer-then-interview before writing, idempotent read-existing-first, writes consumer-tracked config not plugin dir, ambiguous-inference asks not guesses | Each case carries `id`, kebab-case `name`, `prompt`, `expected_output`, `files`, and an `expectations` array of objectively-verifiable checks — modeled on the `bug-report` rich-form exemplar. No fixtures needed (routing/discipline/guardrail behaviors). ## Warrant All five skills carry judgment-bearing behavioral contracts that could silently regress, so **no skip verdicts** — including the three the issue flagged as gray-zone (`build`/`lint`/`setup`): - **`implement` / `implement-dispatch`** — mode/orchestration routing, divergence handling, scope-fence and over-correction guards. - **`build` / `lint`** — ecosystem-detection routing, `skip`-not-`FAIL` missing-tool guardrail, consumer-config-wins ladder precedence, and the build-vs-lint scope split (`cross-cutting`'s `**` must never leak into `/build`). These are emit-shape + guardrail contracts, not pure mechanics — cases target the judgment, not "does it detect dotnet". - **`setup`** — a config-writer skill is explicitly warrantable per the playbook (the `codebase-audit/setup` eval is the model): interview/infer/write-scope discipline, idempotent read-existing, and the write-only-in-consumer-`.claude/ecosystems/` guardrail. ## Validation - `check-jsonschema` against `plugins/skill-quality/reference/evals.schema.json` — all 5 conform. - `check-skill.sh` (skills_root = `plugins/implementation/skills`) — all 5 **PASS, 0 errors**. Remaining WARNs are pre-existing skill-body Gotchas-surface items, out of scope for an evals-only PR. - `scripts/validate-plugins.sh --strict` (manifests + catalog) — pass. - LF endings, final newline, `typos` clean. ## Version-bump level The issue left the level unspecified. `implementation` is one multi-skill plugin, so a single manifest bump covers all five; chose a **minor** bump (`0.2.0` → `0.3.0`) — evals are an additive, backward-compatible shipped component with no behavioral change to the skills. Matches the docs-hygiene evals-backfill precedent (#132); reversible to patch if a maintainer prefers. Refs melodic-software/medley#1449 <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Documentation and test-artifact JSON only; no runtime or skill logic changes. > > **Overview** > Adds **rich-form** `evals/evals.json` for five implementation skills (`implement`, `implement-dispatch`, `build`, `lint`, `setup`) so judgment-bearing contracts can be regression-tested with prompts, `expected_output`, and verifiable `expectations` (no fixtures). Coverage spans orchestration routing and divergence guards, worker verification and scope-fenced briefs, build/lint ecosystem scope and skip-not-FAIL behavior, consumer config ladder precedence, and setup interview/write-location discipline. > > Bumps the plugin manifest **0.2.0 → 0.3.0** and documents the release in **CHANGELOG** as an additive shipped component with **no skill behavior changes**. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 26d367d. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>


What
Adds rich-form
evals/evals.jsonfor all fivedocs-hygieneskills and bumps the plugin'splugin.jsonversion so marketplace consumers pick up the new shipped eval component.compressdeclutter/compress, Diataxis preambleencapsulation-auditscripts/entry-surface legal, dedup routes to/extract-ssotextract-ssotrename-referencesTwo markdown fixtures back the
compressanddeclutterhappy-path cases. Each case carriesid, kebab-casename,prompt,expected_output, optionalfiles, and anexpectationsarray of objectively-verifiable checks — modeled on thebug-reportrich-form exemplar.Warrant
All five skills carry judgment-bearing behavioral contracts (action routing + guardrail/refusal rules + guarded anti-patterns) — none is pure-reference, so no skip verdicts.
Decision called out
Version-bump level was unspecified by the issue.
docs-hygieneis a single multi-skill plugin, so one manifest bump covers all five: chose a minor bump (0.1.0->0.2.0) — evals are an additive, backward-compatible shipped component. Matches the sibling evals PR precedent; reversible to patch if a maintainer prefers.Validation
check-jsonschemaagainst the bundledplugins/skill-quality/reference/evals.schema.json— all 5 conformcheck-skill.shpresence gate — all 5 PASS, 0 errors (remaining WARNs are pre-existing skill-body Gotchas-surface items, out of scope for an evals-only PR)scripts/validate-plugins.sh(manifests + catalog,--strict) — passtyposcleanDoc drift noted
The issue cites
docs/MIGRATION-PLAYBOOK.md"Evals — warrant policy and consumer-verify recipe" anddocs/evals-coverage.md; neither exists on currentmain(they live on the unmerged evals-backfill branch). Did not block this work; the coverage doc is now stale re docs-hygiene and will need reconciling when that branch lands.Refs melodic-software/medley#1450
Note
Low Risk
Additive eval JSON and fixtures only; no skill runtime or application logic changes. Version bump is backward-compatible packaging.
Overview
Ships rich-form
evals/evals.jsonfor all fivedocs-hygieneskills (compress,declutter,encapsulation-audit,extract-ssot,rename-references), with six cases each covering action routing, guardrails, refusals, and sibling-skill boundaries. Cases useprompt,expected_output, and verifiableexpectations(plus optionalfiles).Adds markdown fixtures for the
compressanddeclutterfixture-driven cases (verbose-onboarding-snippet.md,noisy-rule-snippet.md).Bumps
docs-hygieneplugin manifest version0.1.0→0.2.0so marketplace installs pick up the new eval component.Reviewed by Cursor Bugbot for commit ef0ab0b. Bugbot is set up for automated code reviews on this repo. Configure here.