Skip to content

skill metadata: trigger phrases crammed into description; when_to_use is unused and the shared listing budget silently drops them #1271

Description

@kyle-sexton

Observation

Measured on the tree as of filing:

  • 187 SKILL.md files; 135 are model-invocable and therefore occupy the
    skill listing.
  • Those 135 carry 80,026 characters of description into a shared
    listing budget.
  • when_to_use — the dedicated field for trigger phrases, appended to
    description in the listing — is used in 2 files
    (playbooks/boris, playwright/playwright). Everywhere else triggers are
    crammed into description as Use when: '…', '…'.
  • discipline (renamed from re-anchor by refactor(discipline): rename re-anchor plugin to discipline #1276) alone is 14 skills and 8,809 characters, roughly 11% of the
    budget from one plugin.

The failure mode is silent. Descriptions are dropped from least-invoked skills
first on overflow, so a skill can lose exactly the trigger words that would have
surfaced it — and nothing reports that it happened. This was found while
investigating why an existing capability appeared not to exist.

Descriptions also open by restating the skill's own name
("Re-anchor research and…" on do-your-research), spending characters against
the cap on a token already on the line.

displayName is out of scope: all 5 uses are acronym casing in
marketplace.json, and a semantic rename would be a divergent second use of the
field owing its own recorded rationale.

Direction (no open decision)

Migrate trigger phrases from description into when_to_use across the skills
that lack it, and drop name-restating description prefixes. Both fields feed the
same 1,536-character cap, so this is a structural split rather than a saving by
itself — the saving comes from the prefixes and from not duplicating the name.

Re-measure at authoring time and report the before/after total so the change is
verifiable rather than asserted. The figures above are a point-in-time
measurement, not a contract.

Blocked by

Cleared. PR #1276 merged the re-anchordiscipline rename, so this
migration no longer races a bulk rename of the same files.

Collision risk

No existing issue covers this — searched all states for when_to_use,
description, listing, metadata, displayName, trigger, budget.
Closest matches are #304 (fresh-eyes program, unrelated scope) and #1212 (SDLC
stage-gate, matched on the word "metadata" only). If another session is already
carrying this work, this issue is what makes the overlap visible before either
side writes code.

Acceptance

  • Trigger phrases live in when_to_use; description states what the skill
    does
  • No description opens by restating the skill's own name
  • displayName is unchanged
  • Total model-invocable description characters reported before and after
  • Every touched plugin carries a version bump and CHANGELOG entry

This was generated by AI during a /planning:interview session on the fact-check capability.

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

    needs-humanHuman-in-the-loop required; autonomous sessions must not resolve items carrying this.priority: mediumReal value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.work-class: structuralRefactors, migrations, contract changes; cross-cutting and hard to reverse.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions