fix(cli): carry the catalog's recommended field under metadata, where Claude Code does not warn - #803
Merged
Merged
Conversation
… Claude Code does not warn
`claude plugin validate` warned `Unknown field 'recommended'` on our source catalog and on
every claude build, and CI now runs that validation on each pull request. Measured against
Claude Code's validator: a plugin entry's `metadata` object is the one place a catalog may
carry its own field without a warning, while `category`, `tags` and `keywords` are official
and mean something else. The field moves there: the source catalog, the fixtures, the schema,
the repository validator, the parser (which reads no other spelling) and the claude-style
catalog every build writes. The nine-cell golden is re-baselined for claude and cursor, whose
catalogs now carry `metadata.recommended`.
Red first: the parser test failed with `expected false to be true`, the catalog builder test
with `expected undefined to strictly equal { recommended: false }`.
Closes #800
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb
AIDD-Session-Id: 4acc9a1c-19bc-4468-b8b6-e86644bcba60
Merged
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.
🎯 What & why
claude plugin validatewarnedplugins[7].recommended: Unknown field 'recommended'. Claude Code ignores it at load timeon our source catalog and on every claude build, and #795 made CI run that validation on each pull request. A warning that never goes away trains everyone to ignore the next one. The field is ours:aidd setupandplugin search --recommendeddraw the curated install path from it.🛠️ How it works
metadataobject is the one placement that passes silently (metadata.recommended, any content).category,tags,keywordspass too but are official fields with their own meaning;x-recommended, a top-levelx-aidd, andmetadata.*at marketplace level all warn.metadata: the source catalog (8 entries), the five fixtures,assets/schemas/claude-marketplace-manifest.json,scripts/validate-json.mjs, the parser indistribution/domain/catalog.ts(which reads no other spelling), and the claude-style catalog every build writes (tools/domain/marketplace-catalog.ts).claudeandcursor, whose marketplace-mode catalogs now carrymetadata.recommended; the seven other cells are byte-identical.docs/CREATE_PLUGIN.mdsays where the field goes and why.🧪 How to verify
claude plugin validate .at the repository root →✔ Validation passed, no warning.node scripts/check-claude-accepts-build.cjs→✔ Validation passed, no warning (was "passed with warnings").cd cli && pnpm vitest run tests/contexts/distribution/domain/catalog.unit.test.ts tests/contexts/tools/domain/marketplace-catalog.unit.test.tsexpected false to be true(parser),expected undefined to strictly equal { recommended: false }(builder).setupthen proposes no curated set untilaidd update. The CLI and the catalog release together, so only a user pinning an old CLI against the new marketplace ref sees it.recommended(none known) is read as not recommended.🔗 Linked issue
Closes #800
✅ I certify
🤖 Generated with Claude Code
https://claude.ai/code/session_011x4ms5qcGuZgYhCxfdHMUb