What's new
A summary of the changes not yet released. The full list is the Unreleased
section of the Changelog. No version number is assigned yet.
Breaking changes
| Change | What to do |
|---|---|
install.sh, sync_tools.py and tools.config.json are removed; only Claude Code is supported |
Install the plugin and run /addit-harness:setup. See Migrating from install.sh |
@addit-harness:feature-investigator is now @addit-harness:product-owner |
Use the new name. It describes the problem only and never proposes a solution |
/dev-flow scales with the task
flowchart LR
R[Request] --> T["Triage<br/>facts only, scored in JS"]
T --> G{"Tier gate<br/>light / standard / deep"}
G --> B["Intake brief<br/>(standard, deep)"]
B --> D["Design ⇄ review"]
D --> A{"You approve<br/>(hook-checked hash)"}
A --> I["Implement → review ⇄ fix → QA once"]
- Triage and tiers. A read-only
@task-triagerreports facts; a script scores them intolight,standardordeep, and you confirm or change the tier. Worst- case agent calls per whole run are 18, 46 and 50 (hard caps, mock-asserted, not measured live). - Intake. At
standardanddeep,@product-ownerasks only questions that change the approach and writes a one-page brief. - Better designs. Architects compare at least three candidates, including an
unconventional one, with prior art and a pre-mortem; your own idea is scored only at
the end. At
deep, three explorers work in parallel. - A real approval gate. A hook refuses to start implementation unless the plan carries your approval marker and is unchanged since. ADRs are written after you approve.
- Calmer failure handling. One failed agent call is logged instead of ending the
run, the final review judges the code after the last fix, QA runs once, and a
lightrun that turns out bigger than predicted stops and re-gates atstandard.
Details: How dev-flow works, and the example workflow for one run end to end.
Agents and conventions
- Every agent has an explicit
tools:list. For the four architect and design agents, first-turn context fell from about 33k to about 17k tokens in a controlled probe. See Subagents. - Frontend code has a contract, FC-1..FC-10, with an advisory line-count hook
(ESLint opt-in via
ADDIT_FE_GATE=eslint). See Concepts. - Go and Java conventions are split into cited topic files with rule ids and a short contract (G-1..G-10, J-1..J-14).
Documents
Plans, designs, briefs and reports follow one doc protocol: a template per type,
length ceilings per tier, Observed/Inferred/Unknown labels, edits in place, and one
diagram per concept. Plugin locations under docs/work/<slug>/ win over a project’s
own folders. See The engineering loop.
Setup
/addit-harness:setup now merges settings.json instead of replacing it, unions
your permission rules with the template’s, and with --plugins installs the
declared plugins. See Getting started.
Seeing where a run is
- Progress in
/workflows. The dev-flow workflows log their tier, each review round’s blocking count, every gate verdict and any halt reason, so/workflowsshows the state of a run without the conversation narrating it. The lines carry no request text or agent output (a halt reason can include an error message or, for a scope breach, file paths), and the mock suite checks their format. - A lifecycle task list. Setup’s
settings.jsonnow setsCLAUDE_CODE_ENABLE_TODO_TOOLS=1, because the task tools are off by default on newer models, and/dev-flowkeeps six tasks (triage to commit) current. Setup mergesenvkey by key, so a value you set yourself wins. Not yet proven in a live terminal: that every task update is issued, and the context the task tools add per turn.
See Watching a run.
First run
The first interactive terminal session after install shows a one-line welcome, once,
pointing at setup or /dev-flow and the new /addit-harness:tips command. It is
shown to you, not added to the model’s context, and a local empty marker file keeps
it from repeating. Setup now ends with a next-steps line. See
Getting started.
Local telemetry and privacy
An optional usage log, off by default, records metadata only to one folder on your
machine and is never sent anywhere by the plugin. /addit-harness:telemetry-export
turns it into an offline report; publishing a summary to claude.ai happens only if
you say yes. The privacy policy now lists every hook that runs a script. See
Local telemetry.