Scenario 34: Understand portability limits
Use this when planning a multi-harness rollout, evaluating a plugin repo, or debugging why layer apply / mirror did not reproduce every on-disk artifact...
Frequency: Occasional · Status: Shipped
Use this when planning a multi-harness rollout, evaluating a plugin repo, or
debugging why layer apply / mirror did not reproduce every on-disk
artifact from the source repo.
Start with the full reference:
Quick checklist:
# See what HarnessTap can import from a dual-mode repo
harnesstap scan . --dry-run
# Preview what each harness would receive
harnesstap layer apply my-setup --project . --harness claude-code,codex,windsurf,opencode --dry-run
# Check mirror warnings for harness-specific surfaces
harnesstap mirror . --dry-run --format json
# List harness capabilities (use --supported for natively serialized hosts only)
harnesstap harness list --format jsonFully bridgeable: skills, instructions, rules, MCP (stdio/http), static commands (md/toml), agents.
Partially bridgeable: hooks (importable, but ${*_PLUGIN_ROOT} paths need
plugin install), Copilot namespaced commands.
Harness-specific (mirror warnings): OpenCode .mjs server plugins, pi
extensions, Gemini extension manifests, statusline hooks, runtime session config.
Workarounds: layer plugin pins + resource sync, automatic dual-mode scan,
mirror --reference auto|plugin, and native copilot plugin install for Copilot
plugin trees.
Scenario 33: Mirror with plugin-source fallback
Use this when mirror would fail because the project's main harness has no on-disk resource tree — common in plugin-only repos that ship...
Scenario 35: Add a remote skill package
Use this when you want to install skills from a GitHub repo or local skill package in one step — similar to skills add, but with HarnessTap library import...