Skip to content

skill-quality: measure and improve description-driven auto-invocation (eval-based) #3526

Description

@kyle-sexton

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

  1. 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).
  2. 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.
  3. 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).
  4. 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions