Register as a Claude Code plugin marketplace (Day 1, #49) - #57
Merged
Conversation
Adds .claude-plugin/marketplace.json + plugin.json so tastemaker installs natively via: /plugin marketplace add codeswithroh/tastemaker /plugin install tastemaker@codeswithroh No terminal, no git clone, no finding the right skills directory - matching taste-skill's lowest-friction install path, which this whole week's roadmap (issue #49) exists to close. This required a real repo restructure, not just two new JSON files. Verified empirically (not assumed) via Claude Code's own plugin schema docs plus real installs against this exact machine's CLI (v2.1.70): - A plugin's skills load by default from a skills/<name>/SKILL.md layout under the plugin's source - confirmed against Anthropic's own first-party netlify-skills plugin (already installed here), whose real on-disk cache uses exactly that structure. A bare root-level SKILL.md (our old layout) is not what gets scanned. - Moved SKILL.md, references/, scripts/, assets/, and the vendored ideagram/ sub-skill into skills/tastemaker/ as a single git-mv unit (all renames tracked, zero content edits) - confirmed beforehand that nothing inside that cluster references paths outside it, so the move is safe with no internal links to fix. - Real end-to-end install testing caught and fixed an actual bug: an initial strict:false + explicit skills: array config (mirroring netlify's marketplace.json literally) produced "conflicting manifests" and failed to load. Simplifying to source: "./" with no strict/skills override (relying on the default skills/ scan, which already matches our structure) fixed it - verified via `claude plugin list` flipping from a real caught failure to "✔ enabled", cache inspection confirming SKILL.md at the exact scanned path, and the install manifest structurally matching two other known-working installed plugins. - Deliberately omitted `version` from plugin.json (confirmed optional, falls back to git commit SHA) rather than adding a placeholder - real semantic versioning is issue #53's (Day 5) job, not this one's. Consequences of the restructure, fixed in the same pass since they're directly caused by it, not scope creep: - README.md: Quick Start now leads with the plugin install command; manual git-clone install corrected to copy skills/tastemaker specifically (the old `git clone -> ~/.claude/skills/tastemaker` would now put SKILL.md one directory too deep). Project layout diagram updated to the real nested structure. - CONTRIBUTING.md: local setup now cds into skills/tastemaker/ before running any script commands, since every path in the file (scripts/check_contrast.py, references/style-tokens.md, etc.) is relative to that folder now, not the repo root. The one script reaching outside the skill folder (validate_assets.py against .github/assets/) updated to the correct relative path. - .github/PULL_REQUEST_TEMPLATE.md and preset_submission.yml: the two checkbox items that read as literal copy-pasteable commands corrected to the new path. bug_report.yml's dropdown labels left as short-form category names (scripts/, references/) since those were never literal paths to begin with. marketplace.json names the marketplace "codeswithroh" (a publisher namespace) rather than "tastemaker" (the product name), deliberately leaving room to list additional plugins under the same marketplace if issue #51's free/paid variant decision produces more of them. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2 tasks
codeswithroh
added a commit
that referenced
this pull request
Jul 26, 2026
…elog current (#71) Resolves #53. Added version: 1.0.0 to SKILL.md's frontmatter — a real, considered call: the generative core (palette gen, structure/diversification, gates, verbs) has been exercised across many real builds, not just written and left untested, which is past a 0.x designation honestly. The site changelog (site/changelog.html) was 12 merged PRs behind (#47, #48, #57, #58, #59, #64-67, #69-70 were missing) — backfilled those before generating the root file from it, so the two don't start out already drifted. CHANGELOG.md is a condensed summary pointing to the site as the canonical, PR-linked detailed record, per the issue's second option. Also fixes a real, already-merged bug: the marketing site's actual live domain is tastemaker-ai-skill.netlify.app, not tastemaker-skill.online — the wrong domain had been used in #70's sponsor-pitch.md draft; corrected here before it's used for real outreach.
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.
Closes #49.
What this does
Adds `.claude-plugin/marketplace.json` + `plugin.json` so tastemaker installs natively via:
```
/plugin marketplace add codeswithroh/tastemaker
/plugin install tastemaker@codeswithroh
```
No terminal, no git clone, no finding the right skills directory — matching taste-skill's lowest-friction install path, which this issue exists to close.
Why this required a real restructure, not just two JSON files
Read Claude Code's actual plugin-marketplace docs rather than guessing: a plugin's skills load by default from a
skills/<name>/SKILL.mdlayout under the plugin's source. Confirmed against Anthropic's own first-partynetlify-skillsplugin (already installed on this machine) — its real on-disk cache uses exactly that structure. A bare root-levelSKILL.md(our old layout) is not what gets scanned.So: moved
SKILL.md,references/,scripts/,assets/, and the vendoredideagram/sub-skill intoskills/tastemaker/as a singlegit mvunit — all renames tracked at 100% similarity, zero content changes. Confirmed beforehand nothing inside that cluster references paths outside it, so the move was safe.Caught a real bug via actual end-to-end testing
An initial
strict: false+ explicitskills:array config (mirroring netlify'smarketplace.jsonliterally) produced "conflicting manifests" and failed to load — a real, caught failure, not a hypothetical. Simplifying tosource: "./"with nostrict/skillsoverride (relying on the defaultskills/scan, which already matches our structure) fixed it. Verified viaclaude plugin listflipping from the caught failure to✔ enabled, cache inspection confirmingSKILL.mdat the exact scanned path, and the install manifest structurally matching two other known-working installed plugins.Deliberately omitted
versionfromplugin.json(confirmed optional, falls back to git commit SHA) rather than adding a placeholder — real semantic versioning is #53's (Day 5) job.Fixed in the same pass (caused by the restructure, not scope creep)
`marketplace.json` names the marketplace "codeswithroh" (a publisher namespace), not "tastemaker" (the product name) — deliberately leaving room for more plugins if #51's free/paid variant decision produces them.
Test plan
🤖 Generated with Claude Code