Plugin review findings
Thank you for submitting the LaunchDarkly agent skills plugin. While reviewing the repository we identified a few items in the plugin manifest and skills layout that prevent the plugin from being accepted into the public Claude Code plugin marketplace in its current shape. None are security concerns — they are structural and schema-conformance issues. Details below.
Findings
1. Non-schema logo key in plugin.json (fix)
Location: .claude-plugin/plugin.json — "logo": "logo.svg" entry.
The documented plugin manifest schema does not include a logo field. Remove "logo" from plugin.json. The logo.svg asset in the repo root can still be referenced from the README or other documentation.
2. Skills layout — nested under category directories, exposed via symlinks (blocker)
Locations:
skills/ai-configs/, skills/feature-flags/, skills/metrics/ (category directories; no SKILL.md)
- 15 symlinks at
skills/<skill-name> → skills/<category>/<skill-name>/
The documented skill layout is skills/<skill-name>/SKILL.md — one SKILL.md per directory directly under skills/. See https://docs.claude.com/en/docs/claude-code/skills.
The current repository layout places 15 skills under three category directories (ai-configs/, feature-flags/, metrics/) and exposes them at the expected top-level path via symlinks. The three category directories themselves contain no SKILL.md, so a strict reader counts them as broken skills.
The symlink workaround may resolve correctly on macOS and Linux at install time due to OS-level symlink handling, but symlink traversal inside skills/ is not a documented or supported part of the plugin loader contract — the loader is documented to discover skills at exactly skills/<name>/SKILL.md. Relying on symlinks is risky for long-term portability.
Recommended fix: flatten skills/ so each skill is a direct child (skills/aiconfig-migrate/, skills/flag-archive/, etc.) and remove the category-grouping layer + symlinks. Category metadata, if useful for organization, can be captured in each skill's frontmatter (e.g., category: feature-flags) rather than in directory structure.
3. No marketplace.json (recommended)
Location: .claude-plugin/ (currently absent).
A .claude-plugin/marketplace.json is recommended if you want users to be able to run /plugin marketplace add launchdarkly/ai-tooling to install directly from your repo. It is not strictly required for inclusion in the public Claude Code plugin marketplace — entries there are managed centrally — but it makes direct installs possible. Most single-plugin repos place marketplace.json at .claude-plugin/marketplace.json pointing the single entry at ./.
References
Next steps
Once items 1 and 2 above are addressed we can re-run the review. Item 3 is optional. Happy to answer questions on any of the above.
Plugin review findings
Thank you for submitting the LaunchDarkly agent skills plugin. While reviewing the repository we identified a few items in the plugin manifest and skills layout that prevent the plugin from being accepted into the public Claude Code plugin marketplace in its current shape. None are security concerns — they are structural and schema-conformance issues. Details below.
Findings
1. Non-schema
logokey inplugin.json(fix)Location:
.claude-plugin/plugin.json—"logo": "logo.svg"entry.The documented plugin manifest schema does not include a
logofield. Remove"logo"fromplugin.json. Thelogo.svgasset in the repo root can still be referenced from the README or other documentation.2. Skills layout — nested under category directories, exposed via symlinks (blocker)
Locations:
skills/ai-configs/,skills/feature-flags/,skills/metrics/(category directories; noSKILL.md)skills/<skill-name>→skills/<category>/<skill-name>/The documented skill layout is
skills/<skill-name>/SKILL.md— oneSKILL.mdper directory directly underskills/. See https://docs.claude.com/en/docs/claude-code/skills.The current repository layout places 15 skills under three category directories (
ai-configs/,feature-flags/,metrics/) and exposes them at the expected top-level path via symlinks. The three category directories themselves contain noSKILL.md, so a strict reader counts them as broken skills.The symlink workaround may resolve correctly on macOS and Linux at install time due to OS-level symlink handling, but symlink traversal inside
skills/is not a documented or supported part of the plugin loader contract — the loader is documented to discover skills at exactlyskills/<name>/SKILL.md. Relying on symlinks is risky for long-term portability.Recommended fix: flatten
skills/so each skill is a direct child (skills/aiconfig-migrate/,skills/flag-archive/, etc.) and remove the category-grouping layer + symlinks. Category metadata, if useful for organization, can be captured in each skill's frontmatter (e.g.,category: feature-flags) rather than in directory structure.3. No
marketplace.json(recommended)Location:
.claude-plugin/(currently absent).A
.claude-plugin/marketplace.jsonis recommended if you want users to be able to run/plugin marketplace add launchdarkly/ai-toolingto install directly from your repo. It is not strictly required for inclusion in the public Claude Code plugin marketplace — entries there are managed centrally — but it makes direct installs possible. Most single-plugin repos placemarketplace.jsonat.claude-plugin/marketplace.jsonpointing the single entry at./.References
SKILL.mdfrontmatter, layout): https://docs.claude.com/en/docs/claude-code/skillsNext steps
Once items 1 and 2 above are addressed we can re-run the review. Item 3 is optional. Happy to answer questions on any of the above.