Skip to content

Proposal: one namespace — consolidate benchmark and audit into qe, flatten the skill list #43

Description

@mmcky

This absorbs the "naming convention, once there is something to generalise from" entry from FUTURE-IDEAS.md (retired 2026-08-13) — the observation it was waiting for has now been made, from the maintainer side: three plugin prefixes is two too many for a catalog this size, and the prefix split (qe: vs benchmark: vs audit:) encodes an installation distinction users don't care about when they're typing a command.

Goal

A single, small, consolidated list of well-named skills under one namespace, so every invocation visibly reads as a QuantEcon skill: /qe:copilot-review, /qe:benchmark, /qe:audit-issues. The catalog is expected to stay small — and to shrink over time as models absorb what today needs a skill — so the organising unit should be the skill name, not a category taxonomy.

Constraint worth knowing first

Claude Code always prefixes a plugin's skills with the plugin name, so truly bare /copilot-review is not available to a marketplace plugin — the shortest stable form is /<plugin>:<skill>. That makes the design question: one plugin named qe, well-named skills inside it. (On older Claude Code versions skills also register bare, but that's a compatibility behaviour, not something to design for.)

Proposed end state

One plugin, qe, in the quantecon marketplace:

Today Proposed Notes
/qe:check-style (+ 6 per-category sub-skills) /qe:check-style Keep the umbrella; drop the six check-<category> sub-skills. The umbrella already takes categories as arguments (/qe:check-style lecture.md figures math), and natural-language invocation ("check this lecture's figures") still routes there. Six menu entries for one procedure is most of the current menu bloat.
/qe:copilot-review /qe:copilot-review Unchanged — already the right shape.
/benchmark:review-acceleration /qe:benchmark Matches how everyone already refers to it ("the benchmark skill"); triage vs review is mode selection the skill already does from its arguments. Alternative if the verb matters: /qe:review-acceleration.
/audit:issues /qe:audit-issues The audit- stem keeps the family greppable if /qe:audit-prs, /qe:audit-translations etc. ever pass the validation gate (#16) — without needing a plugin to hold them.

Result: four visible commands instead of ten.

What consolidation costs, honestly

  • The plugin is the enable unit, and today that's used deliberately: audit is excluded from lecture-repo auto-install so authors don't see org-audit tooling in their menu (README § Installation). One plugin means every consumer gets every skill. I think that's now the right trade — the cost is two extra read-only entries in a four-item menu, not a hazard — but it is the one real regression, and this issue is the place to disagree.
  • One version stream. Every change to any skill bumps qe. That's simpler than three streams (and the version-bump CI guard gets simpler too); the changelog just gains section discipline. New version should start strictly above every retiring stream (e.g. 0.5.0 > qe 0.2.2, benchmark 0.3.x/0.4.0, audit 0.2.0) so no number in the merged changelog ever names two trees.
  • Installed users must uninstall the retired plugins (claude plugin uninstall benchmark@quantecon audit@quantecon) or stale skills linger under the old names; lecture repos' .claude/settings.json drop benchmark@quantecon from enabledPlugins. Both are one-time and documentable in the changelog entry.

Mechanics (one PR, mostly mechanical)

  • Move benchmark/skills/review-accelerationqe/skills/benchmark, audit/skills/issuesqe/skills/audit-issues; rename skill frontmatter name: to match directories.
  • Move benchmark/scripts/ and audit/{references,scripts}/ under qe/ in namespaced subdirectories; update ${CLAUDE_PLUGIN_ROOT} paths in the moved SKILL.md files — this is the step to test from a real consuming project, since path bugs only surface from an install location.
  • Fold benchmark/CHANGELOG.md and audit/CHANGELOG.md into qe/CHANGELOG.md as clearly-marked historical sections (their old version numbers and tags — audit--v0.2.0 etc. — remain valid archaeology).
  • marketplace.json: remove the two plugin entries; bump the catalogue's top-level version (it moves when a plugin is added or removed).
  • Update myst.yml (the docs site renders benchmark/README.md and audit/references/*.md in place), README, CATALOG, using-skills, developing-skills.

Sequencing

After #33 merges. It's open with CI green awaiting review, and a tree-level move underneath it would force a painful rebase of a PR that's already in someone's queue. The consolidation is then a single squash-merged PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussOpen-ended team deliberation or a decision to be made

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions