What's wrong
The built-in submit-a-plugin skill's "Prepare the entry" section shows this example:
{
"id": "notes",
"displayName": "Notes",
"description": "Keeps project notes beside each bb thread.",
"icon": { "url": "./icons/notes-1234abcd.svg" },
"tags": ["notes", "interface"],
"author": { "name": "Acme", "github": "acme", "url": "https://acme.example" },
"engines": {
"bb": ">=0.40.0",
"bbPluginSdk": ">=0.5.0"
},
"source": { "git": { "url": "https://github.com/acme/bb-plugin-notes.git", "range": "^1.2.3" } }
}
The live get-bb/marketplace entry schema (schema/marketplace.schema.json, $defs.entry) declares additionalProperties: false and does not list engines among its properties (id, displayName, description, icon, tags, author, source only). An entry that includes engines fails npm run build / npm run check in the marketplace repo.
How this surfaced
Ran the skill for real across 4 independent plugin submissions this week (get-bb/marketplace#123, #124, #125, #127). Every one hit the same failure independently, because each one followed the skill's own worked example literally before checking the live schema. The skill's own prose says to treat the live marketplace repo as the source of truth over the skill text — but the worked example still shows the stale field, so it's an easy trap even though the skill's own instructions warn against it.
Suggested fix
Drop engines from the worked example in the "Prepare the entry" section (and the "Use this shape as a guide" JSON block), or add a note that engines was removed from the live schema and to always confirm current required/optional entry fields against schema/marketplace.schema.json before writing the entry.
Not filing a PR for this — just flagging, since it wasn't clear which repo canonically owns the skill markdown source (found a copy under apps/server/src/services/skills/builtin-skills/submit-a-plugin/ in a local reference checkout, but no SKILL.md there, only a scripts/ subfolder).
What's wrong
The built-in
submit-a-pluginskill's "Prepare the entry" section shows this example:{ "id": "notes", "displayName": "Notes", "description": "Keeps project notes beside each bb thread.", "icon": { "url": "./icons/notes-1234abcd.svg" }, "tags": ["notes", "interface"], "author": { "name": "Acme", "github": "acme", "url": "https://acme.example" }, "engines": { "bb": ">=0.40.0", "bbPluginSdk": ">=0.5.0" }, "source": { "git": { "url": "https://github.com/acme/bb-plugin-notes.git", "range": "^1.2.3" } } }The live
get-bb/marketplaceentry schema (schema/marketplace.schema.json,$defs.entry) declaresadditionalProperties: falseand does not listenginesamong its properties (id,displayName,description,icon,tags,author,sourceonly). An entry that includesenginesfailsnpm run build/npm run checkin the marketplace repo.How this surfaced
Ran the skill for real across 4 independent plugin submissions this week (get-bb/marketplace#123, #124, #125, #127). Every one hit the same failure independently, because each one followed the skill's own worked example literally before checking the live schema. The skill's own prose says to treat the live marketplace repo as the source of truth over the skill text — but the worked example still shows the stale field, so it's an easy trap even though the skill's own instructions warn against it.
Suggested fix
Drop
enginesfrom the worked example in the "Prepare the entry" section (and the "Use this shape as a guide" JSON block), or add a note thatengineswas removed from the live schema and to always confirm current required/optional entry fields againstschema/marketplace.schema.jsonbefore writing the entry.Not filing a PR for this — just flagging, since it wasn't clear which repo canonically owns the skill markdown source (found a copy under
apps/server/src/services/skills/builtin-skills/submit-a-plugin/in a local reference checkout, but noSKILL.mdthere, only ascripts/subfolder).