Skip to content

feat(plugin): directory listing icon and links - #37

Merged
MyPrototypeWhat merged 3 commits into
mainfrom
claude/directory-listing
Oct 22, 2026
Merged

MyPrototypeWhat merged 3 commits into
mainfrom
claude/directory-listing

Conversation

@MyPrototypeWhat

Copy link
Copy Markdown
Collaborator

What ships

The material Anthropic's plugin directory reads for the plugins/refkit listing:

  • plugins/refkit/assets/icon.svg (the source) and icon.png (512×512, rendered by the new scripts/build-plugin-icon.mts with resvg). The icon is a fan of reference cards, standing for refkit's many sources. The front card carries an "allowed" license badge. The black tile behind them is filled with dim license ids in monospace (CC0-1.0, CC-BY-SA-3.0, PD, …). Those rows come from a seeded generator, so they read as noise but never change. Re-render after editing the SVG with npx tsx scripts/build-plugin-icon.mts.
  • .claude-plugin/plugin.json gains icon, documentationUrl (the plugin README) and supportUrl (repo issues). Claude Code ignores these fields; the directory listing uses them.
  • .codex-plugin/plugin.json uses the same artwork as interface.logo (PNG) and interface.composerIcon (SVG).
  • Tests (plugin-manifest) check that icon is a square PNG of at least 512px inside the plugin, that the docs and support links are https, and that Codex gets the same artwork.

Verification

  • pnpm typecheck && pnpm lint && pnpm test:run: 554 passed, 23 skipped.
  • claude plugin validate --strict plugins/refkit with Claude Code 2.1.308 passes, including its built-in directory checks ("These checks found nothing to report"). claude plugin validate . passes.
  • The branch is 15 commits behind main (the 0.9.0 release). git merge-tree merges it cleanly, and in the merged tree every lockstep field is 0.9.0 with the new listing fields intact. CI runs on that merge.

After merge

Submit in the developer portal at claude.ai/directory/manage. Choose Submit new → Plugin bundle, enter repo refkitjs/refkit and folder plugins/refkit, then run Validate. Expect the pinned npx launcher to be held for a reviewer.

- plugins/refkit/assets/icon.svg (source) + icon.png (512px, rendered by
  scripts/build-plugin-icon.mts with resvg): a fanned hand of reference cards
  for refkit's many sources, the front one carrying an allowed-license badge.
- .claude-plugin/plugin.json: icon, documentationUrl, supportUrl for the
  Anthropic directory listing (Claude Code ignores them).
- .codex-plugin/plugin.json: the same artwork as interface.logo/composerIcon.
- Validated with Claude Code 2.1.308: plugin validate --strict passes,
  including its directory checks.
The icon background is now a dim field of license ids (CC0-1.0, CC-BY-SA-3.0,
PD, …) in monospace, from a seeded generator so the rows read as noise but stay
fixed. build-plugin-icon.mts loads system fonts (Menlo) to rasterise the text.
Scale the card group 1.18× and narrow the fan to ±18° so the cards fill the
tile; black background, separators and badge ring; texture dimmed for black.
@MyPrototypeWhat
MyPrototypeWhat merged commit 0eabd1f into main Oct 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant