wiki-knowledge

Skills are host-neutral; model tiers, hooks and subagents stay in the Claude Code plugin

The plugin’s eight skills are authored once, host-neutrally, and published as one Agent Skills package: canonical in wiki-plugin/skills/, copied verbatim to repo-root skills/ in the same PR as any canonical edit (scripts/sync-skills.sh), installed anywhere with npx skills add dhague/wiki-knowledge --all. Everything that cannot be expressed portably — the model: sonnet|haiku tier split on the three subagents, hooks/hooks.json, the bin/enchiridion shim and the marketplace install — stays in the Claude Code plugin, the only host surface that can carry it. The per-host installers are deleted rather than maintained alongside: the OpenCode npm deployer with its session-tracker and wiki() plugins, and the generated DSH profile bundle. The hosts read the same .agents/skills/ directory natively — the skills CLI installs OpenCode skills there, and DSH scans <projectRoot>/.agents/skills at rank 200 and ~/.agents/skills at rank 500 — so one install command covers both.

Why

Four install surfaces were carrying four different subsets of the same eight skills: the Claude Code marketplace (8), the OpenCode npm deployer (6 — it dropped exactly wiki-lint and wiki-export), the generated DSH bundle (8 skills read in place, plus three agent-as-tool rows), and per-skill ZIPs for Joule (2). Each was hand-maintained, and the same skill text was being read by DSH and OpenCode from wiki-plugin/skills/ with Claude-Code-only prose intact — the ~/.claude/plugins/cache/... binary glob and the wiki(args=[...]) branches. Moving to the standard removes three mechanisms, and the skills’ own text becomes the one thing that must stay portable because it is now what every host reads.

Considered options

Consequences