How to adopt a pack
How to adopt a pack
Section titled “How to adopt a pack”This guide shows an adopting user how to turn a bundled pack on or off and satisfy its prerequisites. For what each pack does and what it needs, see the pack catalog; for the model and manifest fields, see packs and plugins.
Before you begin
Section titled “Before you begin”- Have the core runtime installed (
git,jq,yq,python3; plusnodefor the validation toolchain). Every pack relies on the core engine. - Check whether your target pack needs an extra tool — the catalog and the
dependencies reference list these per pack
(for example
pandocforpdf,ghfor the GitHub channels,nlmfornotebooklm). Install the tool first; a pack with a missing tool reports the install step and stops rather than erroring.
-
Confirm the pack is registered. A pack must already be declared in
harness.config.jsonpacks[]before it can be toggled. The bundled packs are all declared; list them with:Terminal window jq -r '.packs[].name' harness.config.json -
Enable the pack. This flips its
enabledflag and re-materializes the active set:Terminal window scripts/pack-toggle.sh <pack-name> onpack-toggle.shcallsscripts/sync-packs.shfor you, which writes Claude Code’s nativeenabledPluginsinto the instance-local.claude/settings.local.json(gitignored; deep-merged with the template-managed.claude/settings.json) and records the resolved skills in.claude/enabled-packs.json. -
Verify the pack is active:
Terminal window jq -r '.enabledPlugins[]' .claude/enabled-packs.jsonThe pack name should appear in the list.
-
Install any tool the pack requires, if you have not already, then exercise the pack’s skill (the catalog entry names the trigger).
Disable a pack
Section titled “Disable a pack”scripts/pack-toggle.sh <pack-name> offDisabled packs are omitted from both .claude/settings.local.json and
.claude/enabled-packs.json, so their skills are no longer active.
Defaults
Section titled “Defaults”By default the five reports genres (academic, briefing, engineering,
exec-summary, trend-analysis) are enabled; every other pack is disabled and
opt-in. The blog channel is a first-class, always-on output and is not a pack.
Ontology packs use a different surface
Section titled “Ontology packs use a different surface”This guide covers the skill, channel, and genre plugin packs in
harness.config.json packs[]. Ontology data packs are not toggled with
pack-toggle.sh — they live in harness.config.json ontologies[] and are
enabled and bound to a topic differently. See
Ontology packs.