chore(catalog): remove plugins that are no longer published

Remove claude-design from the marketplace manifest and its catalog
README entry, and remove the playground-design-system entry from the
README. The catalog now lists 11 plugins.

Add scripts/check-public-links.mjs: fails when README.md or the
manifest links to an open/<name> repository missing from a tracked
PUBLIC_REPOS list. Chosen over the local retired-terms list because
that gate scans every tracked file, and historical docs plus
CONVENTIONS.md (which keep naming these repos on purpose) would hold
it red; a live visibility check could not be red before the repos
change visibility. Red on 5ba4a7a (6 hits), green after (0 of 36).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-23 14:18:19 +02:00
commit d0bc696da3
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
5 changed files with 172 additions and 37 deletions

View file

@ -17,6 +17,11 @@ their own Forgejo repositories under `https://git.fromaitochitta.com/open/`.
- Marketplace conventions: see CONVENTIONS.md.
- Adding/updating a plugin entry: edit `.claude-plugin/marketplace.json` (external `source: "url"` with
a pinned `ref`) and re-state the plugin in README.md with its verified version.
- **Public-link gate:** `node scripts/check-public-links.mjs` fails when README.md or the manifest
links to an `open/<name>` repository missing from `PUBLIC_REPOS` in that script — a repository
made private or removed turns those links into dead links and a manifest entry into a broken
install. Adding a plugin means adding its repository to `PUBLIC_REPOS` in the same commit;
removing one means taking it out of both.
- Plugin source, issues, and releases live in each plugin's own repository — not here.
- **Every tag this repo cuts is ANNOTATED — `git tag -a`, never a bare `git tag`.** A lightweight tag
is a branch-like ref: it can be moved to another commit with nothing recorded that it ever pointed
@ -226,7 +231,7 @@ their own Forgejo repositories under `https://git.fromaitochitta.com/open/`.
correct-but-split, 1 defect.** Exact: voyage `24 agents` / `7 hooks` / `832 tests`, linkedin-studio
`6 skills`, graceful-handoff `1 pipeline` / `48 tests`, ai-psychosis `1 skill` / `1 command`,
ms-ai-architect `29 commands` / `5 skills` / `2 hooks`, okr `7 agents` / `3 hooks`, claude-design
`5 tests`. Split: voyage `6 commands (+1 helper)` measures 7 command files, and the split is the
`5 tests` (claude-design has since left the catalog, 2026-09-23). Split: voyage `6 commands (+1 helper)` measures 7 command files, and the split is the
plugin's own — its README at `v5.9.1` reads "6 slash commands (…) + trekendsession helper", and that
file's `description:` calls itself a helper. **Defect: repo-standard `170 tests` measures 243** at
`v0.11.1` (`node --test scripts/*.test.mjs`, the version its `package.json` declares). The catalog is
@ -269,7 +274,7 @@ their own Forgejo repositories under `https://git.fromaitochitta.com/open/`.
`agents` = `agents/**/*.md` (4/4: llm-security 6, config-audit 7, ms-ai-architect 12,
linkedin-studio 20), `commands` = `commands/**/*.md` (3/3: config-audit 21, okr 16,
linkedin-studio 30), `skills` = `skills/*/SKILL.md` (4/4: repo-mailbox 3, claude-design 1,
graceful-handoff 1, repo-standard 1). `tests = ℹ tests` re-confirmed against config-audit
graceful-handoff 1, repo-standard 1; 3/3 since claude-design left the catalog 2026-09-23). `tests = ℹ tests` re-confirmed against config-audit
(`ℹ tests 1398` == badge 1398, `pass` 1374 — count `tests`, and note the suite need not be green
for the census to be valid). **`scanners` is NOT calibrated:** neither files-under-`scanners/`
(llm-security 55, config-audit 61) nor top-level `.mjs` (27 / 32) reproduces the badges (23 / 16),