feat(create-meith): scaffold plugin and theme workspaces from the worked examples - #258
Merged
Conversation
…ked examples npx create-meith --plugin <name> and --theme <name> write standalone extension workspaces: source and a passing test generated from examples/hello-plugin and examples/iris-theme by scripts/extension-scaffold-gen.mts (pnpm extension:gen, checked in verify and CI so the scaffold cannot drift from the examples), a README that walks through running the extension inside a scaffolded board, and a pre-filled marketplace listing.json that passes the marketplace validator. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22SRRgkUV7doefmw9NMNf
This was referenced Aug 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of MEI-115 (deliverable 1 of 4: scaffolds). The remaining deliverables — packed-kit smoke, authoring tutorial, and the approved first-cohort plugins — follow as separate PRs, per the ticket.
What this adds
npx create-meith --plugin <name>andnpx create-meith --theme <name>write standalone extension workspaces:scripts/extension-scaffold-gen.mtsreadsexamples/hello-pluginandexamples/iris-theme, rewrites their example-specific names into placeholder tokens through an anchored substitution list (every anchor must match, and no trace ofhello/irismay survive — the script fails loudly either way), and emitspackages/create-meith/src/extension-templates.ts.pnpm extension:gen:checkjoinsverifyand the CIstaticjob, so editing an example is editing the scaffold and the two cannot drift — theboard-installer-gen.mtspattern the ticket recommends.package.jsondepending on the published@meith/plugin-kit(or@meith/theme-kit+@meith/theme-default) at the exact release version, a tsconfig, a vitest setup, and the example's tests exercising a real hook (view.footer) or the resolved theme contract.community.plugins.ts/community.config.tsregistration) and marketplace submission.listing.jsonthat passesmarketplace-gen'svalidateEntry(asserted in the tests).The plugin scaffold, unlike the example it comes from, exports the fixed
plugin/messagesnamescommunity plugin:addandboard:genexpect, so it is manifest-installable as scaffolded.Validated
pnpm verifypasses (including the newextension:gen:checkgate; 36 new tests).npm install,npm test, andnpm run typecheckall pass for both (the typecheck run is what surfaced the@types/nodedevDependency the scaffold now carries).slots:checklearned to skip the generated templates file, which holds adefineTheme(call as string data — documented indocs/contributing/development.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01G22SRRgkUV7doefmw9NMNf
Generated by Claude Code