The Idea Engine of the studio: agent skills, shipped as a Claude Code plugin.
.claude-plugin/
plugin.json every skill path, listed explicitly
skills/
<category>/
README.md what the category is for
<skill-name>/
SKILL.md the skill
*.md its own references and formats, flat beside it
Each skill is self-contained: the reference material and output formats it owns sit inside its own folder, not in a shared templates/ or references/ pile at the root. A skill folder is the unit you read, move, or delete.
When two skills in a category genuinely share a reference, the skill that creates the thing owns the file and the others point across at it — one source of truth, no copies.
- Skills: lowercase kebab-case, domain first —
client-intake,idea-grill,idea-research,project-brief. The domain word groups a category into a readable sequence, and the frontmatterdescription(not the name) is what actually triggers a skill. Noproduct-prefix: the category folder already says that. - Sibling files:
UPPERCASE-KEBAB.md.*-FORMAT.mdfor an output shape the skill fills in; a plain name for reference material it reads.
| Category | For |
|---|---|
product |
Client pain → idea → verdict → project definition |
Not here. Skills are reusable behaviour; idea and project documents are project memory with a different lifecycle. See WORKSPACE.md.
registry.yaml—web-developmet-registryholds the catalog. A second copy here would be a stale duplicate.workflows/*.yaml— nothing executes YAML steps. Sequencing lives in each skill's closing section, which an agent actually reads.category:frontmatter — Claude Code readsname,description,allowed-tools. The folder carries the category.
As a plugin, from the studio marketplace:
/plugin marketplace add stubbornweb/solo-product-studio
/plugin install idea-engine@studio
Or symlink a single skill while tuning it:
ln -s "$PWD/skills/product/idea-grill" ~/.claude/skills/idea-grillThe symlink is the better loop while a skill is still moving — edit, run it on a real idea, edit again.
- It earns a slot by failing in practice first. Write it after watching the gap, not before.
- One folder under a category, one
SKILL.md, folder name matching frontmattername. - Its references and formats go beside it, not in a shared root folder.
- Add the path to
.claude-plugin/plugin.jsonand the row to the categoryREADME.md.