Skip to content

feat(claude): enable the full 65-plugin catalog at project scope - #2631

Merged
kyle-sexton merged 3 commits into
mainfrom
claude/melodic-software-plugins-dts0df
Aug 14, 2026
Merged

feat(claude): enable the full 65-plugin catalog at project scope#2631
kyle-sexton merged 3 commits into
mainfrom
claude/melodic-software-plugins-dts0df

Conversation

@kyle-sexton

@kyle-sexton kyle-sexton commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

No linked issue

Summary

Enables all 65 plugins in this repo's marketplace at project scope, so the checkout dogfoods everything it publishes, while keeping the checkout-relative directory marketplace source that lets a session exercise in-flight plugin changes.

Fix

.claude/settings.json:

  • Enabled 65 plugins under enabledPlugins — the exact plugin count in .claude-plugin/marketplace.json — sorted alphabetically, one per line, so a single entry can be flipped to false without disturbing the rest.
  • That includes the 7 catalog entries marked defaultEnabled: false, which install as false and were enabled explicitly: ai-briefing, dometrain, firecrawl, kindle-dedrm, miro, songwriting, x.
  • Added $schema pointing at json.schemastore.org/claude-code-settings.json for editor validation.
  • extraKnownMarketplaces.melodic-software keeps the relative directory / ./ source. Existing env and worktree keys are unchanged.

Installs were driven from a parse of marketplace.json rather than a hand-transcribed list, so the enabled set cannot drift from the catalog.

An earlier revision of this branch switched the marketplace to a github source with autoUpdate. That was reverted in 7d574f3 and deliberately not reinstated: a relative directory source resolves against the repository checkout, so a session loads plugin code as changed on the current branch, whereas a github source installs from published main and makes it impossible to validate a plugin change before release. Catalog breadth and marketplace source are independent choices; only the breadth changed here.

docs/CLOUD-SESSIONS.md described a curated nine-plugin set and would otherwise have contradicted the shipped config. It now documents the full-catalog choice, states the per-turn context cost as the trade, points consumer repos at enabling only what they need, and records the two unset credentials below. The claude-code-plugins row in docs/CLOUD-FLEET-SETUP.md no longer lists enabledPlugins as undecided.

Verification

  • enabledPlugins count is 65 and equals the plugin count in .claude-plugin/marketplace.json; every value is true; zero names missing and zero extra when diffed against the catalog programmatically.
  • claude plugin list --json reported 65 plugins, all at scope: project, all enabled: true, ids matching the catalog exactly.
  • .claude-plugin/marketplace.json on this branch was confirmed byte-identical to main before being parsed as the source of truth.
  • Valid JSON; 2-space indent, LF, final newline, no trailing whitespace, per .editorconfig and .gitattributes.
  • .claude/settings.local.json and the user-scope settings file were not modified.

Not verified: runtime plugin behavior. Hooks, MCP servers, and skills load in a subsequent session, and claude plugin list --json exposes no error field, so a clean load rests on all 65 installing and listing without error rather than on a positive error report. Two plugins bundle MCP servers whose required credentials are unset and which exit at startup until configured: miro (miro_api_token) and dometrain (dometrain_api_key). A further 30 plugins have optional-only userConfig options unset. The claude plugin list verification above was run against the earlier github-source revision; the enabled set is identical, but it was not re-run after the source reverted to directory.

Related

Refs the automated Codex review on this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MifjAMa5pCvgBsdLWL64WQ

… plugins

Register the melodic-software marketplace from its GitHub source at project
scope and enable every plugin in .claude-plugin/marketplace.json (65 total)
via enabledPlugins, sorted alphabetically so individual entries are easy to
find and flip.

The seven catalog entries marked defaultEnabled:false (firecrawl, songwriting,
kindle-dedrm, ai-briefing, miro, dometrain, x) install as false, so each was
explicitly enabled.

Also adds a $schema pointer for editor validation and autoUpdate on the
marketplace entry. Existing env and worktree keys are preserved.

Note: this replaces the previous directory/./ marketplace source with the
GitHub source, so this checkout now consumes the published catalog rather
than the local working tree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MifjAMa5pCvgBsdLWL64WQ
@cursor

cursor Bot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@kyle-sexton kyle-sexton changed the title Configure Claude Code plugins and update marketplace source chore(claude): install melodic-software marketplace and enable all 65 plugins Aug 14, 2026
@claude

claude Bot commented Aug 14, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 1m 53s —— View job


Security review complete

  • Gather context (diff, changed files)
  • Apply skip gate / assess security-relevant surface
  • Review changed file(s) for security issues
  • Post final findings

Scope: .claude/settings.json only (75 additions / 6 deletions), per gh pr diff / git show d9a37cb.

Changes reviewed:

  1. Added $schema for IDE validation — no security impact.
  2. Enabled 65 plugins under enabledPlugins ("<plugin>@melodic-software": true). Verified every enabled plugin id corresponds to an existing directory under plugins/ in this repo — no typosquatted or unexpected plugin names introduced.
  3. Changed extraKnownMarketplaces.melodic-software.source from a local directory (./) to a github source (melodic-software/claude-code-plugins) with autoUpdate: true, and no ref/commit pin.

Why #3 isn't flagged as a finding: on its face this looks like the supply-chain pattern the review criteria calls out (unpinned source + auto-update = code that can change without a new review). However, this is the repo's own documented, intentional convention, not something introduced by this PR:

No CRITICAL/IMPORTANT/SUGGESTION findings. Diff is a config-only change (no code, no workflow permissions:, no secrets/token handling) and matches established, documented project convention.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d9a37cb3fe

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .claude/settings.json Outdated
Comment thread .claude/settings.json
Comment thread .claude/settings.json
@kyle-sexton
kyle-sexton enabled auto-merge (squash) August 14, 2026 22:58
@github-actions

github-actions Bot commented Aug 14, 2026

Copy link
Copy Markdown

Last security-reviewed head: 2a5c689edfb460c87d49ea84ad129a9c87075102. On the next push, the relevance gate compares only the commits since this SHA; delete this comment to force a full re-review.

@kyle-sexton
kyle-sexton disabled auto-merge August 14, 2026 23:00
Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
@kyle-sexton kyle-sexton changed the title chore(claude): install melodic-software marketplace and enable all 65 plugins fix(claude): enable curated checkout plugins Aug 14, 2026
Re-enables all 65 marketplace plugins in project scope while keeping the
checkout-relative `directory` source restored in 7d574f3.

The two concerns were separable. The marketplace source is the one that
matters: a relative `directory` source resolves against the repository
checkout, so a session here exercises plugin code as changed on the current
branch. A `github` source installs from published `main` instead, which
makes it impossible to validate an in-flight plugin change before release —
so the checkout source stays. Breadth of `enabledPlugins` is an independent
choice, and this repo dogfoods what it publishes, so the full catalog is on.

Entries stay sorted alphabetically, one per line, so a single plugin can be
flipped without disturbing the rest.

Documents the trade in CLOUD-SESSIONS.md, which previously described a
curated nine-plugin set, and notes that `miro` and `dometrain` carry
required credentials that are unset here, so their MCP servers exit at
startup until configured. Refreshes the fleet-setup row that still listed
`enabledPlugins` as undecided.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MifjAMa5pCvgBsdLWL64WQ
@claude

claude Bot commented Aug 14, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 3m 14s —— View job


Security review complete

Scope: relevance gate compares against the last reviewed head d9a37cb. Two commits landed since then — 7d574f3 and 2a5c689edfb460c87d49ea84ad129a9c87075102 (current HEAD) — touching .claude/settings.json, docs/CLOUD-FLEET-SETUP.md, docs/CLOUD-SESSIONS.md.

Net change to .claude/settings.json since the last review: only the extraKnownMarketplaces.melodic-software.source block — d9a37cb2a5c689 diff shows 7d574f3 reverted it from {"source":"github","repo":"melodic-software/claude-code-plugins"} + autoUpdate: true back to the checkout-relative {"source":"directory","path":"./"}, and 2a5c689 made no further change to it. See .claude/settings.json#L76-L83. This is a security-positive change (removes the unpinned remote autoUpdate source flagged in the prior review) — no new concern here.

enabledPlugins is byte-identical to the already-reviewed d9a37cb state — all 65 plugins true, including miro (L48) and dometrain (L33), which the marketplace catalog marks defaultEnabled: false. I re-examined this independently (it's the subject of two Codex P1/P2 comments) since the prior review's writeup didn't explicitly reason about it:

  • plugins/miro/.mcp.json sources its credential from ${user_config.miro_api_token} (explicit per-user/per-project config, not an ambient env var), and the docs added in this PR (docs/CLOUD-SESSIONS.md L184-190) disclose that both MCP servers exit at startup until that credential is configured, and document /plugin configure / flipping to false as the mitigation for sessions that shouldn't attempt it.
  • The marketplace source is checkout-relative (directory/./), so no new code-execution trust boundary is crossed by enabling more of this same repo's own plugins.
  • This is unchanged, previously-reviewed, and now further disclosed in-repo — I'm not raising it as a new security finding. (Whether the full 65-plugin default is the right project default vs. the curated 9 the PR description still claims is a config/scope judgment call, not a vulnerability — out of scope for this security-only lane.)

No CRITICAL/IMPORTANT/SUGGESTION findings. Nothing in the reviewed diff introduces an injection surface, auth/access-control gap, unsafe secret handling, or GitHub Actions permission-widening.
· branch claude/melodic-software-plugins-dts0df

@kyle-sexton
kyle-sexton enabled auto-merge (squash) August 14, 2026 23:07
@kyle-sexton kyle-sexton changed the title fix(claude): enable curated checkout plugins feat(claude): enable the full 65-plugin catalog at project scope Aug 14, 2026
@kyle-sexton
kyle-sexton merged commit 72d46c0 into main Aug 14, 2026
43 checks passed
@kyle-sexton
kyle-sexton deleted the claude/melodic-software-plugins-dts0df branch August 14, 2026 23:12
@claude

claude Bot commented Aug 14, 2026

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 34s —— View job


Code review skipped

  • Gather context (diff, changed files)
  • Invoke /review:code-review and apply its skip gate
  • Post final summary

Per the /review:code-review skip gate, this stops before deep review: the PR is closed (merged), so there is no open pull request to post inline review comments against. No findings were produced and nothing further was posted.

For reference, the change itself (.claude/settings.json enabling the curated nine-plugin set plus $schema) already received:

  • A security review from Claude (no findings; config-only change matching documented convention).
  • Automated review from chatgpt-codex-connector flagging the marketplace source, credentialed-plugin, and plugin-set-scope points — those were addressed/superseded by the version that merged, per the PR's final diff.

@github-actions

Copy link
Copy Markdown

Claude has reviewed this PR 1 time. The lane skips further automatic reviews after 5; deleting this comment resets the count.

cursor Bot pushed a commit that referenced this pull request Aug 15, 2026
#2631 enabled the plugin catalog; #2655 registered the bootstrap hook.

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Aug 15, 2026
Keep catalog attribution on #2631 only; #2655 owns the SessionStart hook.

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Aug 15, 2026
Incorporate the 2026-08-14 live Melodic environment verification (#2654)
into CLOUD-FLEET-SETUP.md, attribute SessionStart registration to #2655
and catalog enablement to #2631, and keep residual host notes for .NET
allowlist / env cache rebuild.

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
cursor Bot pushed a commit that referenced this pull request Aug 15, 2026
Incorporate the 2026-08-14 live Melodic environment verification (#2654)
into CLOUD-FLEET-SETUP.md. Attribute SessionStart registration to #2655
and catalog enablement to #2631; keep residual host notes for .NET
allowlist and env cache rebuild.

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
kyle-sexton added a commit that referenced this pull request Aug 15, 2026
#2668)

No linked issue

## Summary

Folds the 2026-08-14 live verification of the Melodic cloud environment
(#2654) into `docs/CLOUD-FLEET-SETUP.md`, and swaps the guide's embedded
environment setup script for a three-line bootstrap that curls the
canonical script from the new `cloud-environment` component in standards
(melodic-software/standards#388) — so environment behavior changes land
by reviewed PR instead of hand-edits to an account-scoped UI field.

## Fix

- **Step 1 network access**: the Custom allowlist (default package
managers + `dot.net`, `aka.ms`, `builds.dotnet.microsoft.com`,
`download.visualstudio.microsoft.com`) is now documented as the
requirement, not a fallback — #2654 Blocker 1 reproduced the .NET
installer's `403` under Trusted, overturning the 2026-08-13 probe-based
optimism.
- **Setup script section**: embedded script replaced by the bootstrap +
pointers to the standards component and its README; documents the
per-step timestamped log (`/var/log/melodic-env-setup.log`), the
completion stamp (`/opt/melodic-env-setup.done`, written strictly last),
and the cache-rebuild lifecycle (a merged standards change reaches
environments only on a forced rebuild or ~7-day expiry).
- **Verification checklist**: new item 0 checks the stamp first — a
missing stamp is the #2654 Blocker 2 signature (cache build interrupted
~13 s in; PowerShell and the baked-in bootstrap never ran). The .NET
item now points at confirming the allowlist rather than "applying the
fallback".
- **Findings + audit table**: the "bootstrap is unwired" finding is
marked resolved — #2631 registered the SessionStart hook and enabled the
65-plugin catalog, #2657 closed the cp311 pyyaml hash gap the hook died
on (verified against PyPI's published digests; coverage gap, not
tampering). Remaining #2654 actions are environment-side (apply the
allowlist, rebuild the cache, re-run the checklist).

## Verification

- `markdownlint-cli2 docs/CLOUD-FLEET-SETUP.md` — 0 issues
- All referenced anchors
(`#step-1--the-shared-environment-claudeai-ui-one-time`,
`#verification-checklist`) unchanged and resolvable
- Claims cross-checked against the primary sources: #2654 (live run
forensics), #2631 / #2657 diffs on `main`, and the component content in
melodic-software/standards#388

## Related

- Refs #2654 — the verification report this folds in (left open: the
environment-side actions — Custom allowlist + cache rebuild + checklist
re-run — are still pending)
- Refs #2631, #2657 — the repo-side fixes the Findings section now
records
- Refs melodic-software/standards#388 — the canonical setup script this
guide now bootstraps from
- Refs #2613 — the original fleet guide PR this follows up

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx

---
_Generated by [Claude
Code](https://claude.ai/code/session_01AXaqhrFZeGTzbCJun12Ngx)_

Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
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.

3 participants