Skip to content

fix(playbooks): boris/vendor/SKILL.md collides with boris/SKILL.md and carries a 5,484-char description (3.6x the listing cap) #3506

Description

@kyle-sexton

Summary

plugins/playbooks/skills/boris/ contains two SKILL.md files that both resolve to the skill name boris, and the nested one carries by far the largest description in the entire marketplace.

Evidence

plugins/playbooks/skills/boris/SKILL.md          <- no `name:` field; falls back to dir name "boris"
plugins/playbooks/skills/boris/vendor/SKILL.md   <- frontmatter `name: boris`

boris/vendor/ contains nothing but SKILL.md — no scripts, no reference files. It reads as a vendored copy of the upstream skill that was committed alongside the adapted one.

Collision. Per Extend Claude with skills, a plugin skill's command name comes from the frontmatter name field, and a personal/project skill's from its directory. Both files here land on boris. Which definition wins follows directory-read order, so it can differ between machines.

Size. The vendored file's description is a YAML block scalar measuring 5,484 characters:

chars
boris/vendor/SKILL.md description 5,484
Claude Code listing cap per entry (skillListingMaxDescChars default) 1,536
Agent Skills spec max for description 1,024
Marketplace mean 752

It is the only skill in the fleet over the 1,536-char listing cap, and it is 3.6x over it. It is also 5.4x the 1,024-char maximum the Agent Skills spec states for the field ("description: Must be non-empty, Maximum 1,024 characters").

The description also contains PROACTIVE MODE / BROWSE MODE behavioral instructions. Those are body content — the description field is metadata used for selection, and it is truncated in the listing anyway, so instructions placed there may never reach the model intact.

Proposed fix

Delete plugins/playbooks/skills/boris/vendor/. The adapted boris/SKILL.md already has a proper description + when_to_use pair (a combined ~200 chars) and is the one intended to ship.

If the vendored copy must be retained for provenance, move it out of the skills/ tree entirely (for example plugins/playbooks/reference/boris-upstream.md) so it is not discovered as a skill.

Acceptance criteria

  • Exactly one SKILL.md resolves to the name boris within the playbooks plugin.
  • No SKILL.md under any skills/ directory has a description over 1,024 chars.
  • claude plugin validate plugins/playbooks reports no name collisions.

Related

Part of the fleet-wide listing-budget problem in #3505, but independently actionable and much smaller.

Sources

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

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions