feat(claude): enable the full 65-plugin catalog at project scope - #2631
Conversation
… 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
|
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. |
|
Claude finished @kyle-sexton's task in 1m 53s —— View job Security review complete
Scope: Changes reviewed:
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 |
There was a problem hiding this comment.
💡 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".
|
Last security-reviewed head: |
Co-authored-by: Kyle Sexton <kyle-sexton@users.noreply.github.com>
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 finished @kyle-sexton's task in 3m 14s —— View job Security review complete
Scope: relevance gate compares against the last reviewed head Net change to
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. |
|
Claude finished @kyle-sexton's task in 34s —— View job Code review skipped
Per the For reference, the change itself (
|
|
Claude has reviewed this PR 1 time. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
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>
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>
#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>
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
directorymarketplace source that lets a session exercise in-flight plugin changes.Fix
.claude/settings.json:enabledPlugins— the exact plugin count in.claude-plugin/marketplace.json— sorted alphabetically, one per line, so a single entry can be flipped tofalsewithout disturbing the rest.defaultEnabled: false, which install asfalseand were enabled explicitly:ai-briefing,dometrain,firecrawl,kindle-dedrm,miro,songwriting,x.$schemapointing atjson.schemastore.org/claude-code-settings.jsonfor editor validation.extraKnownMarketplaces.melodic-softwarekeeps the relativedirectory/./source. Existingenvandworktreekeys are unchanged.Installs were driven from a parse of
marketplace.jsonrather 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
githubsource withautoUpdate. That was reverted in 7d574f3 and deliberately not reinstated: a relativedirectorysource resolves against the repository checkout, so a session loads plugin code as changed on the current branch, whereas agithubsource installs from publishedmainand 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.mddescribed 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. Theclaude-code-pluginsrow indocs/CLOUD-FLEET-SETUP.mdno longer listsenabledPluginsas undecided.Verification
enabledPluginscount is 65 and equals the plugin count in.claude-plugin/marketplace.json; every value istrue; zero names missing and zero extra when diffed against the catalog programmatically.claude plugin list --jsonreported 65 plugins, all atscope: project, allenabled: true, ids matching the catalog exactly..claude-plugin/marketplace.jsonon this branch was confirmed byte-identical tomainbefore being parsed as the source of truth..editorconfigand.gitattributes..claude/settings.local.jsonand 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 --jsonexposes 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) anddometrain(dometrain_api_key). A further 30 plugins have optional-onlyuserConfigoptions unset. Theclaude plugin listverification above was run against the earliergithub-source revision; the enabled set is identical, but it was not re-run after the source reverted todirectory.Related
Refs the automated Codex review on this PR.
🤖 Generated with Claude Code
https://claude.ai/code/session_01MifjAMa5pCvgBsdLWL64WQ