plugin-dev: manifest-reference.md incorrectly documents 'repository' as supporting object format
Summary
manifest-reference.md in the plugin-dev plugin documents the repository field as supporting both string and object formats (lines 135–156). The object format example is:
\\\json\
{
"repository": {
"type": "git",
"url": "https://github.com/user/plugin-name.git",
"directory": "packages/plugin-name"
}
}
\\
This is incorrect — the CC plugin runtime (Zod validation) only accepts a plain string. When an object is passed, installation fails with:
\\\\
repository: Invalid input: expected string, received object
\\
Root Cause
The object format was cross-contaminated from npm package.json convention. The CC runtime schema only validates repository as z.string().
Inconsistency within plugin-dev itself
validate-plugin-manifest SKILL.md (in the same plugin) correctly states repository must be a string. The two files contradict each other.
Impact
Developers following manifest-reference.md to write plugin manifests with object-format repository will get silent failures or install errors that are hard to diagnose. The plugin-validator agent (also in plugin-dev) was recommending the broken format based on this documentation, causing plugins that previously installed correctly to break after a "fix".
Fix
Remove the "Object format" section from manifest-reference.md and update the type annotation from String (URL) or Object to String (URL only), with an explicit note that object format is rejected at runtime.
Files affected
skills/plugin-structure/references/manifest-reference.md— lines 135–156 (incorrect)skills/validate-plugin-manifest/SKILL.md— already correct (string only)agents/plugin-validator.md— was recommending object format; fixed locally
Verification
All existing published plugins (including plugin-dev itself, looper, news-digest, etc.) use the string format exclusively.
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗