fix(plugins): use object form for plugin.json author field#70
Conversation
Review Summary by QodoNormalize plugin.json author field to object form across six plugins
WalkthroughsDescription• Normalize plugin manifest author field from string to object form • Fix validation errors preventing six plugins from installation • Update contributor documentation with correct schema example • Unblock critical Tier-1 connector plugins for QUICKSTART path Diagramflowchart LR
A["Six plugin manifests<br/>author as string"] -- "Convert to object form" --> B["author: { name: ... }"]
B -- "Passes validation" --> C["Plugins install successfully"]
D["docs/CONTRIBUTING.md<br/>example"] -- "Update schema" --> E["Correct template<br/>for contributors"]
File Changes1. plugins/connectors/aws-inspector/.claude-plugin/plugin.json
|
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
Warning Rate limit exceeded
Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 15 minutes and 28 seconds. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThe Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Thanks @ethanolivertroy for kicking off the review — both bots came back clean here:
This PR is the small one — just the six Once this lands, #71 (the CI guard against this class of bug) becomes a clean fast-follow. |
The Claude Code plugin loader rejects manifests where `author` is a
string with `Validation errors: author: Invalid input: expected
object, received string`, which means the affected plugins cannot be
installed via `claude plugin install`.
Six plugins shipped with `author` as a bare string while the rest of
the marketplace already uses the object form. Normalise them to
`{ "name": "..." }` to match the working plugins (e.g.
`grc-engineer`, `soc2`, `nist-800-53`) and unblock installation:
- plugins/connectors/aws-inspector
- plugins/connectors/gcp-inspector
- plugins/connectors/github-inspector
- plugins/connectors/okta-inspector
- plugins/fedramp-ssp
- plugins/oscal
Also update the `plugin.json` example in `docs/CONTRIBUTING.md` so
new connector contributors land on the working schema by default.
Verified locally: all six plugins install successfully after the
patch (`claude plugin install <name>@grc-engineering-suite`).
db18604 to
9e9f53c
Compare
Greptile SummaryThis PR normalises the Confidence Score: 5/5Safe to merge — mechanical one-line fix per file with no logic changes and no new risks introduced. All seven files receive only the targeted schema normalization. Every changed file now matches the object form already validated by the plugin loader and used by all other plugins in the repo. No logic, permissions, or behaviour is altered. No issues found. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[claude plugin install plugin-name] --> B{Validate plugin.json author field}
B -->|string form - before PR| C[Validation Error: expected object received string]
B -->|object form - after PR| D[Validation Passes]
D --> E[Plugin Installed Successfully]
subgraph Before
F[author as bare string]
end
subgraph After
G[author as object with name key]
end
F --> B
G --> B
Reviews (1): Last reviewed commit: "fix(plugins): use object form for plugin..." | Re-trigger Greptile |
|
Superseded by #71, which includes the same six author-field fixes (aws/gcp/github/okta-inspector + oscal + fedramp-ssp) plus a new |
|
All good — folding it into #71 was the cleaner outcome. Thanks for the close note, @ethanolivertroy. Six author-field fixes shipping alongside the schema that prevents the next regression is a tighter unit than the manifest-only PR would have been on its own. |
Both substantive PRs (GRCEngClub#71 validator, GRCEngClub#72 India DPDPA plugin) are merged into upstream main. PR GRCEngClub#70 closed-as-superseded (folded into GRCEngClub#71). README updated to: - Reflect the merged state of all three contributions, with explicit thanks for @ethanolivertroy's maintainer-edit pass that fixed the four blockers on GRCEngClub#72 before merge (version baseline, Section 15 ₹10,000 correction, Section 2(u) paraphrase). - Acknowledge @AnandSundar's original stub PR GRCEngClub#66 that locked in the SCF metadata baseline. - Recommend the upstream Club marketplace as the primary install path now that the work has landed there. - Preserve the upstream README verbatim as UPSTREAM-README.md.
Summary
Six plugin manifests ship with
authoras a bare string, which the current Claude Code plugin loader rejects. The result: those plugins cannot be installed viaclaude plugin install.The rest of the marketplace (
grc-engineer,soc2,nist-800-53, all framework plugins) already uses the object form{ "name": "..." }. This PR normalises the six remaining manifests so they match — and so they install.Files changed
plugins/connectors/aws-inspector/.claude-plugin/plugin.jsonplugins/connectors/gcp-inspector/.claude-plugin/plugin.jsonplugins/connectors/github-inspector/.claude-plugin/plugin.jsonplugins/connectors/okta-inspector/.claude-plugin/plugin.jsonplugins/fedramp-ssp/.claude-plugin/plugin.jsonplugins/oscal/.claude-plugin/plugin.jsondocs/CONTRIBUTING.md— updated theplugin.jsonexample so new connector contributors land on the working schema by defaultDiff is one line per file, no formatting changes elsewhere.
Test plan
claude plugin install github-inspector@grc-engineering-suitesucceeds after patch (verified locally)claude plugin install aws-inspector@grc-engineering-suitesucceeds after patchclaude plugin install gcp-inspector@grc-engineering-suitesucceeds after patchclaude plugin install okta-inspector@grc-engineering-suitesucceeds after patchclaude plugin install oscal@grc-engineering-suitesucceeds after patchclaude plugin install fedramp-ssp@grc-engineering-suitesucceeds after patchgrc-engineer,soc2, etc.) still install — they already used the object formNotes
The Tier-1 connector plugins are critical for the QUICKSTART path —
/grc-engineer:gap-assessmentneeds at least one connector emitting Findings, and right now none of them install on a current Claude Code CLI.🤖 Generated with Claude Code
Summary by CodeRabbit
Documentation
Chores