Common issues and their fixes. If your problem isn't here, open an issue: https://github.com/MountainUnicorn/add/issues
Start with the doctor (v0.10.2+): /add:doctor (Claude) or /add-doctor (Codex) checks version agreement, hook and agent schemas, feature flags, and install-manifest integrity, and prints a remedy for each failure. Many of the issues below are ones it detects.
Cause: Claude Code needs to be restarted after adding a marketplace.
# Exit any running Claude Code sessions, then:
claude plugin marketplace list # confirm "add-marketplace" is listed
claude plugin install add@add-marketplaceSymptoms: install command exits silently, or /add:init reports "plugin not found" even after a successful install.
Fix: Clear the plugin cache and reinstall.
rm -rf ~/.claude/plugins/cache/add-marketplace
claude plugin marketplace add MountainUnicorn/add
claude plugin install add@add-marketplaceCause: The plugin installed but rules failed to auto-load. Verify:
# In your project, start Claude Code and run:
/add:initIf the interview doesn't start, check that .add/config.json exists in your project. If it does, and the interview still doesn't run, the plugin is likely installed but the skills directory wasn't parsed. Run:
claude plugin info add@add-marketplace
# Look for "skills: 26" or similar — confirms skills were picked upIf skills show 0 or the command returns nothing, reinstall (see stale cache fix above).
Clone the repo and point Claude at it directly:
git clone https://github.com/MountainUnicorn/add
cd add
claude --plugin-dir ./plugins/addThis works for contributors and users who want to pin to a specific commit.
The default interview asks ~12 questions to capture maturity, stack, and collaboration preferences. For a faster start:
/add:init --quick # 5 essential questions, ~2 minutes (greenfield projects)
/add:init --reconfigure # re-run the full interview to change settings--quick asks only: project name, stack, environment tier, maturity, and autonomy level. Everything else gets sensible defaults. You can always run --reconfigure later for the full interview.
This is a supported case, not a failure. Type "I don't understand" or ask for clarification — the agent will re-ask via a structured prompt (see rules/human-collaboration.md > Confusion Protocol).
This is intended behavior. ADD refuses to write implementation code without a spec in specs/. Create one:
/add:spec "short feature name"Or, if you're exploring, set maturity to poc in .add/config.json — POC projects don't require specs.
Check: ADD's hooks require jq on the PATH (for stdin JSON extraction).
which jq # should print a pathIf jq is missing:
- macOS:
brew install jq - Debian/Ubuntu:
apt install jq - Nix/elsewhere: see https://stedolan.github.io/jq/download/
Also verify:
ruffis on PATH for Python files (pip install ruff)eslintis available vianpxfor TS/TSX files (standard in Node projects)
Hooks fail silently by design — a broken lint pass shouldn't break your edit. Check the output above the Write result to see any hook stderr.
ADD versions before v0.9.11 copied rules into your project's .claude/rules/ during /add:init. Those copies never updated with the plugin and now duplicate (and eventually contradict) the fresh rules the SessionStart hook injects. The injected rules are canonical — delete the flagged copies:
# Only removes files matching ADD plugin rule names — your own rules are never flagged
rm .claude/rules/{flagged-files}Or let the version migration do it: on upgrade, the 0.9.10 → 0.9.11 hop offers a confirmed one-time cleanup (backs up before deleting). Rules that look duplicated or contradictory mid-session are almost always this.
Check the maturity level. TDD enforcement only activates at beta or ga maturity. .add/config.json:
{
"maturity": {
"level": "beta"
}
}POC and alpha have relaxed rules. See rules/maturity-lifecycle.md for the full cascade.
ADD's human-collaboration rule (interview protocol) is active from alpha onward. The rule explicitly says NEVER batch 5+ questions AND never generate a spec without a confirmation gate. This is working as designed.
If you want lower-ceremony interaction: .add/config.json collaboration.autonomy_level: "autonomous" reduces check-ins.
ADD reads three knowledge tiers:
- Tier 1 (plugin-global):
${CLAUDE_PLUGIN_ROOT}/knowledge/global.md - Tier 2 (user-local):
~/.claude/add/library.json - Tier 3 (project-specific):
.add/learnings.json
Tier 2 is machine-local. If you switched devices, run:
/add:init --import # reconstructs ~/.claude/add/profile.md and projects/ indexCross-project learnings accumulate via /add:retro — retros promote qualifying entries from project to workstation tier.
Registry drift. v0.6.0 added rules/registry-sync.md which auto-bumps on checkpoint writes. For projects that pre-date v0.6.0, run:
# (coming in v0.7.1)
/add:init --sync-registryUntil then, you can manually edit the registry file.
Your marketplace cache is stale.
rm -rf ~/.claude/plugins/cache/add-marketplace
claude plugin marketplace add MountainUnicorn/add
claude plugin install add@add-marketplaceADD's rules/version-migration.md runs on every session start. If your .add/config.json version is older than the installed plugin, migration runs automatically. Check .add/migration-log.md for what changed.
If migration didn't run, verify:
.add/config.jsonexists and has aversionfield- The plugin is actually loaded (see "I see
/add:init..." above)
Codex reads AGENTS.md at the project root. The install script places it there only if one doesn't already exist. If you already had an AGENTS.md, the installer skipped it to avoid overwriting your content.
Merge manually:
# The generated file is at:
cat ~/.codex/add/AGENTS.md
# Append its content into your existing AGENTS.mdCodex custom prompts are loaded from ~/.codex/prompts/*.md. Verify:
ls ~/.codex/prompts/add-*.md # should list ~24 filesIf missing, re-run the install script:
./scripts/install-codex.sh- Search existing issues: https://github.com/MountainUnicorn/add/issues
- Run
claude plugin info add@add-marketplaceand include the output - Open a new issue with: Claude Code version, OS, ADD version, and what you expected vs what happened