Scenario 18: Debug committed vs effective Claude plugin settings
Use this when the plugin set declared in the project's .claude/settings.json differs from what Claude Code actually loads after merging user, project, and...
Frequency: Rare · Status: Shipped
Use this when the plugin set declared in the project's
.claude/settings.json differs from what Claude Code actually loads after
merging user, project, and local scopes.
Typical commands:
harnesstap scan . --harness claude-code --dry-run
harnesstap scan . --harness claude-code
harnesstap resource list --type plugin_pin_pin
harnesstap resource show formatter@team-marketplace --all-fields
harnesstap layer show my-setupStart by re-scanning the project so HarnessTap captures the current committed plugin declarations in the library. Then compare:
- Committed plugins — what the repo declares in
.claude/settings.json - Effective behavior — what Claude loads after scope merge, often explained
by a
~/.claude/settings.jsonuser-scope entry that overrides the project
layer show reveals which plugin pins a layer expects at apply time.
layer apply --strict-plugin-versions is the enforcement path when you want
CI or automation to fail on a mismatch.
When scope merge is the root cause, inspect .claude/settings.json in the
repo and ~/.claude/settings.json at user scope directly.
Scenario 17: Migrate HarnessTap state to a new machine
Use this when moving setups across laptops or onto a dev box. For a single archive that includes harness preferences and config, prefer Scenario 28.
Scenario 19: Sync plugin resources from install trees
Use this when plugin install trees on disk have changed and HarnessTap's library copies are stale or missing resolved versions.