Motivation
The frontmatter-alignment interview (#3524) settled that discoverability rides almost entirely on description content: auto-invocation is the model matching a request against the listing text, so description quality is the fleet's highest-leverage unmeasured surface. The fleet currently passes all static checks (zero skills over the 1,536 cap, trigger phrases enforced by check-skill.sh), but nothing measures whether the descriptions actually win the invocations they should.
One question is already closed, by citation
Packed description vs when_to_use split: nothing to measure. The official frontmatter reference states when_to_use is "Appended to description in the skill listing and counts toward the 1,536-character cap", and the harness joins them with a literal 3-char " - " (encoded in check-skill.sh's combined-length check and audit_skill_visibility.py's ListingConfig.joiner_chars). Identical content split differently produces byte-near-identical model input, so an A/B on the field split has no effect to detect. The fleet keeps the packed pattern; this issue is about the content, not the field layout.
Proposed work
- Instrument. Model-graded invocation probes using machinery the repo already owns:
claude plugin eval fixtures and/or headless claude -p runs, where each probe is a realistic user request and the grade is whether the intended skill is selected (and no competitor is). Start with a small probe set over the skills with the weakest invocation evidence (claude-ops:audit-skill-visibility's starvation report is the ranking input).
- Baseline, then treatment. Grade current descriptions; then rewrite candidates per the platform best-practices levers (key use case first, specific vocabulary, third person, what AND when) under
check-skill.sh's trigger-preservation constraint; re-grade.
- Candidates parked from the sweep interview:
paths adoption for genuinely file-scoped skills (a precision lever; wrong globs suppress, so adopt only with probe coverage).
- The two near-cap descriptions (
claude-ops:audit-performance at 1,526 and claude-ops:audit-skill-visibility at 1,518 of 1,536): trim only if probes show tail content matters.
when_to_use convergence for the 3 outlier skills using it (cosmetic; only if free).
- Exit criterion. A repeatable probe suite in CI-or-on-demand form, plus either measured improvements applied fleet-wide or a recorded finding that current descriptions already saturate the probes.
Constraints
- Trigger-phrase preservation is a hard gate (
check-skill.sh fails dropped triggers vs base).
- Aggregate listing budget policy stays owned by
claude-ops:audit-skill-visibility; this issue measures per-skill description quality only.
Motivation
The frontmatter-alignment interview (#3524) settled that discoverability rides almost entirely on
descriptioncontent: auto-invocation is the model matching a request against the listing text, so description quality is the fleet's highest-leverage unmeasured surface. The fleet currently passes all static checks (zero skills over the 1,536 cap, trigger phrases enforced bycheck-skill.sh), but nothing measures whether the descriptions actually win the invocations they should.One question is already closed, by citation
Packed description vs
when_to_usesplit: nothing to measure. The official frontmatter reference stateswhen_to_useis "Appended todescriptionin the skill listing and counts toward the 1,536-character cap", and the harness joins them with a literal 3-char " - " (encoded incheck-skill.sh's combined-length check andaudit_skill_visibility.py'sListingConfig.joiner_chars). Identical content split differently produces byte-near-identical model input, so an A/B on the field split has no effect to detect. The fleet keeps the packed pattern; this issue is about the content, not the field layout.Proposed work
claude plugin evalfixtures and/or headlessclaude -pruns, where each probe is a realistic user request and the grade is whether the intended skill is selected (and no competitor is). Start with a small probe set over the skills with the weakest invocation evidence (claude-ops:audit-skill-visibility's starvation report is the ranking input).check-skill.sh's trigger-preservation constraint; re-grade.pathsadoption for genuinely file-scoped skills (a precision lever; wrong globs suppress, so adopt only with probe coverage).claude-ops:audit-performanceat 1,526 andclaude-ops:audit-skill-visibilityat 1,518 of 1,536): trim only if probes show tail content matters.when_to_useconvergence for the 3 outlier skills using it (cosmetic; only if free).Constraints
check-skill.shfails dropped triggers vs base).claude-ops:audit-skill-visibility; this issue measures per-skill description quality only.