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-acceleration → qe/skills/benchmark, audit/skills/issues → qe/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.
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:vsbenchmark:vsaudit:) 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-reviewis not available to a marketplace plugin — the shortest stable form is/<plugin>:<skill>. That makes the design question: one plugin namedqe, 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 thequanteconmarketplace:/qe:check-style(+ 6 per-category sub-skills)/qe:check-stylecheck-<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/benchmark:review-acceleration/qe:benchmark/qe:review-acceleration./audit:issues/qe:audit-issuesaudit-stem keeps the family greppable if/qe:audit-prs,/qe:audit-translationsetc. ever pass the validation gate (#16) — without needing a plugin to hold them.Result: four visible commands instead of ten.
What consolidation costs, honestly
auditis 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.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.claude plugin uninstall benchmark@quantecon audit@quantecon) or stale skills linger under the old names; lecture repos'.claude/settings.jsondropbenchmark@quanteconfromenabledPlugins. Both are one-time and documentable in the changelog entry.Mechanics (one PR, mostly mechanical)
benchmark/skills/review-acceleration→qe/skills/benchmark,audit/skills/issues→qe/skills/audit-issues; rename skill frontmattername:to match directories.benchmark/scripts/andaudit/{references,scripts}/underqe/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.benchmark/CHANGELOG.mdandaudit/CHANGELOG.mdintoqe/CHANGELOG.mdas clearly-marked historical sections (their old version numbers and tags —audit--v0.2.0etc. — 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).myst.yml(the docs site rendersbenchmark/README.mdandaudit/references/*.mdin 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.