Getting started
Install (Claude Code)
No clone, no shell script — install the plugin from inside Claude Code:
/plugin marketplace add addit-digital/addit-harness
/plugin install addit-harness@addit
/addit-harness:setup
- The plugin (
agents/,skills/) tracks the repo via git automatically — no re-run needed to pick up updates. /addit-harness:setupplaces the parts a plugin can’t carry natively (CLAUDE.md,AGENTS.md,rules/,references/,settings.json) — run it once after installing, and again after an update to re-sync. Add--scope projectto confine it to the current project instead of~/.claude(default), or--linkto symlink instead of copy.- The plugin itself can also be scoped:
/plugin install addit-harness@addit --scope localkeeps it to just the current repo;--scope projectshares it with collaborators via that repo’s.claude/settings.json; default--scope useris global.
addit-harness supports Claude Code only. If you used the old install.sh, see
Migrating from install.sh below.
First run
The first time you start an interactive terminal session after installing, the
plugin shows one welcome line. If setup has not run yet, it says to run
/addit-harness:setup; once setup has run, it points at
/addit-harness:dev-flow <what to build>. Both versions mention
/addit-harness:tips.
- It appears once. The session-start hook creates an empty marker file,
onboarding/welcome-v1, in the plugin’s data folder before printing, and stays silent whenever that file exists. If the folder cannot be written, it prints nothing. - It appears only at a fresh startup in an interactive terminal session (the
hook checks that
CLAUDE_CODE_ENTRYPOINTisclior unset): not underclaude -p, and not on resume,/clearor compaction. If your first session is headless, the welcome waits for the first interactive one. The filter is deliberately narrow: other entrypoints (the desktop app, IDE integrations) are not shown the welcome. - It is shown to you as a hook message and is not added to the model’s context. Nothing is sent anywhere (see Privacy).
When setup finishes it prints a next-steps line: /addit-harness:dev-flow for
non-trivial work, /addit-harness:tips for the short guide, and a reminder that
local telemetry stays off unless you turn it on in /config.
/addit-harness:tips prints five short tips: when to use /dev-flow, that you
approve the plan before any code is written, where the documents land, how to
call the specialist agents (and the Go and React convention commands), and how
the local telemetry option works. It is user-invoked only; the model does not
run it on its own.
What setup does to your settings.json
Setup merges the plugin’s settings.json into yours instead of replacing
it, and backs up your previous file first (~/.claude/.install-backups/<timestamp>/,
or .claude/.install-backups/<timestamp>/ for --scope project):
- Keys the template does not set (
hooks,statusLine,envand so on) are kept as they are. permissionslists (allow,deny,ask) are unioned: your own rules stay, first, and the template’s are added after them.enabledPlugins,extraKnownMarketplacesandenvare merged key by key with your values winning, so a plugin you disabled stays disabled and an environment variable you set is never overwritten.envgainsCLAUDE_CODE_ENABLE_TODO_TOOLS=1unless you already set that variable. It turns on Claude Code’s task tools, which are off by default on newer models, so/dev-flowcan keep a lifecycle task list (see Watching a run). The extra per-turn context this costs has not been measured. To opt out, set your own value for the variable; setup keeps it.modelis set to the template’s value (opusplan). Change it back with/modelif you prefer another default.- With
--link,settings.jsonis symlinked instead of merged.
Re-running is idempotent. On a re-sync, setup also removes reference files
that an earlier release shipped and a later one replaced
(references/java/java-best-practices.md, references/go/app-erp-conventions.md),
but only when the file is unchanged or is a symlink into the plugin. A file you
edited is copied to the backup folder and left in place, and setup tells you.
--plugins (opt-in). /addit-harness:setup --plugins also runs
claude plugin marketplace add and claude plugin install for every
marketplace and every plugin set to true in the placed settings.json
(language servers, pr-review-toolkit, figma and others). It needs the
claude CLI on PATH. If an install fails from inside a session, run the
printed claude plugin ... command in a normal shell.
Migrating from install.sh
install.sh, sync_tools.py and tools.config.json were removed; addit-harness
supports Claude Code only. To move to the plugin:
/plugin marketplace add addit-digital/addit-harness
/plugin install addit-harness@addit
/addit-harness:setup [--plugins]
With --scope global, setup retires the unprefixed copies the old script put
in ~/.claude/agents and ~/.claude/skills. A copy at least 50% similar (by
lines) to the plugin’s version is backed up and then removed; a less similar
file with the same name is left alone and reported. Config already synced into
another tool keeps working but no longer updates; to keep using the old
installer, pin tag addit-harness--v0.3.0.
The @addit-harness:feature-investigator agent was renamed to
@addit-harness:product-owner; the old name no longer resolves.
The @addit-harness: namespacing gotcha
Plugin-provided agents are namespaced — invoke them as
@addit-harness:code-reviewer, not bare @code-reviewer. This is the most
common “why isn’t this working” moment for new installs. See
Subagents for the full list.
Verify it worked
Run /agents — you should see @addit-harness:code-reviewer and the other
fourteen subagents listed. If they’re missing, re-run
/addit-harness:setup and check the plugin installed without errors.
All docs
The sidebar has the full list; here’s the same thing with what each page actually covers, so you don’t have to click through page by page to find it:
Start
- What’s new — what changed in the upcoming release, including breaking changes
- Concepts — tiered conventions, curation philosophy, deterministic orchestration
- The engineering loop — the loop, where documents go, and the doc protocol
- How dev-flow works — tiers, gates and loops, phase by phase
- Example workflow — one
/dev-flowrun, end to end
Reference
- Subagents — what each of the 15 subagents does, and its tools
- Skills & commands — every
/slash-commandthis plugin adds - Model & cost — which subagent runs on which model, and how to cut spend
- Enabling MCP — connecting Jira, databases, and other optional integrations
- Local telemetry — the opt-in, local-only usage log and its export
Guides
- Use cases — concrete workflows showing which configs fire together
- Extending — adding your own conventions, agents, or skills
Project