Problem
When agent skills were migrated from configs.macos to codeassembly, platform-specific skill handling was omitted. In the previous repo, Claude Code and Rovo Dev each had their own skill directories (agents/claude/skills/ and agents/rovodev/skills/) that the deployment script (sync-agent-files.sh) merged into the shared skills. In codeassembly, installSkills() installs ALL skills to ALL platforms with no filtering.
Additionally, the rovodev-generate-prompts.sh script that generated ~/.rovodev/prompts.yml (Rovo Dev's skill discovery file) was not migrated.
Impact:
review-permissions skill is missing from Claude Code
brainstorming and systematic-debugging skills (with supporting files) are missing from Rovo Dev
- Rovo Dev skill autocomplete is broken (no
prompts.yml)
Relevant considerations
- The three missing skills exist in
configs.macos under agents/claude/skills/ and agents/rovodev/skills/. The systematic-debugging skill has 10 files (SKILL.md + 9 supporting files).
- Currently
installSkills() in packages/agents/src/commands/install.ts reads all entries from content/skills/ and installs them indiscriminately. Subagents already have platform-specific overlays (_data/claude.yml, _data/rovodev.yml), but no equivalent mechanism exists for skills.
- The
prompts.yml format is a flat YAML list of skills where user-invocable is not false. brainstorming has user-invocable: false (internal skill); systematic-debugging has no user-invocable field (defaults to included).
parseFrontmatter() from frontmatter-merger.ts is already exported and can be reused for reading skill frontmatter.
Proposed solution
Add a content/skills/_platforms/{platformId}/ directory convention (following the existing _data underscore-prefix pattern), modify installSkills() to skip _platforms in the main loop and separately install platform-specific skills, and add a generatePromptsYml() function that scans installed skills and writes prompts.yml for Rovo Dev.
Acceptance criteria
- The agent-specific skill directories, including all their files, are migrated to
codeassembly under content/skills/_platforms/{platformId}/
- The skills are installed only to their respective agent's skill directory (
review-permissions → Claude only; brainstorming, systematic-debugging → Rovo only)
~/.rovodev/prompts.yml is correctly populated by the install command with all invocable skills (shared + rovodev-specific)
prompts.yml is tracked in the install manifest for drift detection and uninstall
- Existing tests updated; new tests cover platform filtering and prompts.yml generation
_platforms/ convention documented in PROJECT.md
Problem
When agent skills were migrated from
configs.macostocodeassembly, platform-specific skill handling was omitted. In the previous repo, Claude Code and Rovo Dev each had their own skill directories (agents/claude/skills/andagents/rovodev/skills/) that the deployment script (sync-agent-files.sh) merged into the shared skills. Incodeassembly,installSkills()installs ALL skills to ALL platforms with no filtering.Additionally, the
rovodev-generate-prompts.shscript that generated~/.rovodev/prompts.yml(Rovo Dev's skill discovery file) was not migrated.Impact:
review-permissionsskill is missing from Claude Codebrainstormingandsystematic-debuggingskills (with supporting files) are missing from Rovo Devprompts.yml)Relevant considerations
configs.macosunderagents/claude/skills/andagents/rovodev/skills/. Thesystematic-debuggingskill has 10 files (SKILL.md + 9 supporting files).installSkills()inpackages/agents/src/commands/install.tsreads all entries fromcontent/skills/and installs them indiscriminately. Subagents already have platform-specific overlays (_data/claude.yml,_data/rovodev.yml), but no equivalent mechanism exists for skills.prompts.ymlformat is a flat YAML list of skills whereuser-invocableis notfalse.brainstorminghasuser-invocable: false(internal skill);systematic-debugginghas nouser-invocablefield (defaults to included).parseFrontmatter()fromfrontmatter-merger.tsis already exported and can be reused for reading skill frontmatter.Proposed solution
Add a
content/skills/_platforms/{platformId}/directory convention (following the existing_dataunderscore-prefix pattern), modifyinstallSkills()to skip_platformsin the main loop and separately install platform-specific skills, and add ageneratePromptsYml()function that scans installed skills and writesprompts.ymlfor Rovo Dev.Acceptance criteria
codeassemblyundercontent/skills/_platforms/{platformId}/review-permissions→ Claude only;brainstorming,systematic-debugging→ Rovo only)~/.rovodev/prompts.ymlis correctly populated by the install command with all invocable skills (shared + rovodev-specific)prompts.ymlis tracked in the install manifest for drift detection and uninstall_platforms/convention documented in PROJECT.md