codemap.md 2.9 KB

src/skills/

Responsibility

  • Own metadata-driven OpenCode custom skills shipped with this package.
  • Maintain the skill contract artifacts (SKILL.md, README.md, per-skill helper files) that are copied into ${configDir}/skills at install time.
  • Preserve a canonical registry boundary: runtime code consumes skill definitions as data, not as executable plugin dependencies.

Design

  • CUSTOM_SKILLS in src/cli/custom-skills.ts is the authoritative skill manifest for bundled skills; each entry maps folder name + sourcePath to an install-time consumer.
  • install.ts runs installCustomSkill() which recursively copies bundled skill directories into the OpenCode skills directory.
  • This directory is partitioned by skill:
    • src/skills/codemap/ (command-style repository mapping skill)
    • src/skills/clonedeps/ (workflow skill for dependency source mirroring)
    • src/skills/simplify/ (readability/refactor guidance skill)
    • src/skills/deepwork/ (orchestrator-only workflow for heavy coding sessions)
    • src/skills/reflect/ (orchestrator-only workflow for learning from repeated work and suggesting reusable improvements)
    • src/skills/worktrees/ (orchestrator-only workflow for safe Git worktree lanes)
    • src/skills/oh-my-opencode-slim/ (orchestrator-only plugin configuration and self-improvement guidance)
    • src/skills/release-smoke-test/ (orchestrator-only workflow for packed release-candidate runtime validation)
  • Files are considered static runtime payload. No plugin TS module in src/ imports these files directly; they are loaded by OpenCode via filesystem installation.

Flow

  • bun run install delegates to src/cli/install.ts, where installCustomSkills gates copying of each CUSTOM_SKILLS entry.
  • installCustomSkill() computes packageRoot, validates sourcePath, then performs a recursive directory copy via copyDirRecursive().
  • During plugin release, the files whitelist in package.json must include src/skills so src/skills/** survive npm pack.
  • OpenCode plugin startup discovers these installed folders and reads each SKILL.md as a prompt-level contract.

Integration

  • src/cli/custom-skills.ts: source-of-truth registry consumed by installer and permission helpers.
  • src/cli/skills.ts:getSkillPermissionsForAgent() auto-populates permission rules for bundled skills when agent policy is derived from built-in recommendations.
  • verify-release-artifact.ts enforces artifact completeness by asserting key bundled skill payloads such as src/skills/simplify/SKILL.md, src/skills/codemap/SKILL.md, src/skills/clonedeps/SKILL.md, and src/skills/deepwork/SKILL.md, src/skills/reflect/SKILL.md, src/skills/worktrees/SKILL.md, src/skills/release-smoke-test/SKILL.md, plus src/skills/oh-my-opencode-slim/SKILL.md, are present in the tarball.
  • package.json scripts (verify:release, build) rely on these assets to ensure install-time skill availability.