Skip to content

Listing-budget decision: full-install aggregate is 86.5k chars (~10.8x the default budget) #2022

Description

@kyle-sexton

Context

Menu item #4 of the Boris-talk digest: every always-loaded skill description is a per-turn tax, so the marketplace's full-install listing surface is itself an unhobbling concern. This is the report-only analysis; the target decision (digest questions.md #4) is the operator's and gates any remediation.

Current numbers, measured on main (19a3f7b3) with skill-quality's check-listing-budget.sh pooled over plugins/*/skills:

  • 134 listing-eligible skills across 61 plugin roots (skills with disable-model-invocation: true excluded — they spend no budget).
  • Aggregate: 86,499 chars ≈ 10.8x the 8,000-char documented default budget (SLASH_COMMAND_TOOL_CHAR_BUDGET fallback, ~1% of context window). Live, Claude Code drops the least-invoked skills' descriptions to name-only when this overflows — silently degrading auto-invocation for the tail.
  • Advisory only: the live figure depends on the consumer's model window, skillListingBudgetFraction, and skillOverrides; /doctor in a live session is the authority. The estimate is an upper bound for full-install consumers.

Top contributors (entry chars):

chars skill root
1468 babysit-loop plugins/source-control/skills
1197 audit-instructions plugins/claude-config/skills
1161 audit-derivability plugins/docs-hygiene/skills
1116 running-retro plugins/session-flow/skills
1072 reconcile plugins/session-flow/skills
1058 clarify plugins/adhd/skills
1057 improve plugins/architecture/skills
1054 script-the-deterministic-work plugins/discipline/skills
1028 audit-answers plugins/planning/skills
1022 reuse-or-replace plugins/discipline/skills

Context for the decision: a full install is ~86k chars ≈ 21–22k tokens of always-loaded listing text before any work starts. But installs are per-plugin selective — no consumer is forced to take all 61 roots — and per-skill entries are already capped at 1,536 chars by the skill-quality per-skill gate (none currently exceed it).

Proposed work — the operator picks one (questions.md #4)

  1. Accept-as-is with rationale: installs are selective; the per-skill 1,536 cap plus the advisory aggregate report is enough. Record the rationale here and close.
  2. Tighten the worst descriptions: mechanical pass over the top-N contributors (e.g. everything >1,000 chars — 10 skills) trimming toward the trigger phrases that earn their keep. No structural change.
  3. Curated starter bundles / per-plugin caps: define install sets or a hard per-plugin budget in doctrine. Structural; needs its own design pass.

A quarterly report-only "listing-budget watch" recurring routine is being wired separately (self-maintenance pilot) so drift is observed regardless of which option is chosen.

Acceptance criteria

  • Operator has chosen among the three options above (or named a fourth) and the choice is recorded on this issue.
  • If option 2/3: follow-up work items exist for the remediation; if option 1: rationale recorded and this issue closed.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: mediumReal value, no hard deadline; normal backlog flow.status: needs-decisionAwaiting a human or maintainer judgment call.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions