Files
holocron/plugins/kyberforge/skills/skill-write/references/deployment-modes.md
Defame1297 3a85632df0 refactor(kyberforge): make skill-write and skill-audit self-contained with shared resources
- Move validate.sh ownership to skill-audit/scripts/ — it is the canonical
  structural validator; skill-write now delegates Step 5 to /skill-audit
- Add skill-write/references/scripts.md and deployment-modes.md for progressive
  disclosure of package runner patterns and plugin cache isolation rules
- Fix skill-audit Step 1 cross-skill path reference (was repo-absolute, now
  skill-relative); add manual fallback for sandboxed/Bash-denied contexts
- Scope Step 2 "read every file" to exclude binaries and unreferenced files
- Fix new-skill.sh next-steps output to reference /skill-audit instead of
  the removed validate.sh
- Remove stale Dependencies section from skill-audit README; flip dependency
  arrow — skill-write depends on skill-audit, not vice versa

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 19:35:10 +00:00

2.0 KiB

Deployment Modes

Skills deploy in two modes. Both resolve relative paths from the skill root — the SKILL.md body works the same in either. Differences only arise when referencing files outside the skill directory.

Cache isolation (plugin mode)

When a plugin is installed, its directory is copied to a cache. Only the plugin's own files are copied. Any path that leaves the skill directory breaks post-install:

../other-skill/validate.sh              # breaks
plugins/kyberforge/skills/other-skill/  # breaks
../../shared/utils.sh                   # breaks

Fix: duplicate the file into the skill's own scripts/ or assets/. There is no plugin-level shared/ mechanism — the spec defines no cross-skill sharing, and ../ paths are broken by construction.

Env vars (plugin mode only)

These variables are injected when the plugin is loaded from an install cache. They are not available in standalone mode.

Variable Value
${CLAUDE_PLUGIN_ROOT} Absolute path to the plugin's install directory. Changes on update.
${CLAUDE_PLUGIN_DATA} Persistent directory that survives updates. Use for node_modules, generated state, caches.

Use ${CLAUDE_PLUGIN_ROOT} only in hook commands and .mcp.json configs — not in SKILL.md body text, since standalone deployments won't have it.

Standalone mode

Deployed directly to ~/.agents/skills/<name>/. No plugin context, no env vars injected. All file references must resolve within the skill directory. Skill invocations (e.g. /skill-audit) work if the called skill is also installed.

Cross-tool portability

SKILL.md is portable — the same file works in Claude Code and Copilot CLI. Agent definitions and manifest files (plugin.json, hooks.json) are tool-specific and must be authored separately per tool.

Shared assets between skills

If two skills in the same plugin need the same file, duplicate it into each skill's assets/ or scripts/. Add a comment in both copies noting the mirror relationship so they stay in sync when the spec changes.