Description
Phase 0 of the open-standard epic #51 — make the skills portable before publishing (#50) and before wiring tier-2 harnesses (#46 Codex, #125 Gemini CLI). Blocks the rest of the epic.
Workstreams
- Guard MCP references — skill bodies reference
mcp__dart__* and very-good-cli tools. Ensure they degrade gracefully (clear fallback instructions) where MCP is absent, so skills stay useful on harnesses without those servers.
- Namespacing + collision audit — flatten skill names to kebab-case under
.agents/skills/; audit for cross-plugin collisions with vgv-wingspan; prefix vgv- where needed.
- Argument / path fallbacks — add symptom-described fallbacks for
$ARGUMENTS and ${CLAUDE_SKILL_DIR} so bodies survive hosts that do not substitute them (describe the symptom, never name the token, or Claude Code substitutes it inside the explanation).
- Hook adaptation groundwork — factor the enforcement hook scripts so they can be re-pointed to Codex (
hooks.json / [hooks]) and Gemini CLI (Claude-hook migration) with minimal per-host divergence. OpenCode uses a JS/TS plugin API rather than the Claude shell contract, so its hook is a separate rewrite — keep the enforcement logic isolated enough to reimplement.
- Reserved slash-command collision audit — check skill names against Codex, Gemini CLI, and OpenCode built-in commands (precedent: Copilot's built-in
/review).
- SKILL.md frontmatter compatibility — Gemini CLI silently skips a SKILL.md if the frontmatter is not the first thing in the file, if
name/description is missing, or if the --- delimiters are off. Validate every skill parses on Codex + Gemini + OpenCode, and confirm our extra fields (when_to_use, allowed-tools, argument-hint, etc.) are ignored rather than fatal. Add a CI lint that fails on malformed frontmatter so skills never vanish silently.
Requirements
Additional Context
Part of epic #51. Blocks #50, #46, #125.
Description
Phase 0 of the open-standard epic #51 — make the skills portable before publishing (#50) and before wiring tier-2 harnesses (#46 Codex, #125 Gemini CLI). Blocks the rest of the epic.
Workstreams
mcp__dart__*andvery-good-clitools. Ensure they degrade gracefully (clear fallback instructions) where MCP is absent, so skills stay useful on harnesses without those servers..agents/skills/; audit for cross-plugin collisions withvgv-wingspan; prefixvgv-where needed.$ARGUMENTSand${CLAUDE_SKILL_DIR}so bodies survive hosts that do not substitute them (describe the symptom, never name the token, or Claude Code substitutes it inside the explanation).hooks.json/[hooks]) and Gemini CLI (Claude-hook migration) with minimal per-host divergence. OpenCode uses a JS/TS plugin API rather than the Claude shell contract, so its hook is a separate rewrite — keep the enforcement logic isolated enough to reimplement./review).name/descriptionis missing, or if the---delimiters are off. Validate every skill parses on Codex + Gemini + OpenCode, and confirm our extra fields (when_to_use,allowed-tools,argument-hint, etc.) are ignored rather than fatal. Add a CI lint that fails on malformed frontmatter so skills never vanish silently.Requirements
$ARGUMENTS/${CLAUDE_SKILL_DIR}fallbacks in placeAdditional Context
Part of epic #51. Blocks #50, #46, #125.