@pilotspace/add 1.17.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +144 -0
- package/GETTING-STARTED.md +20 -64
- package/README.md +128 -56
- package/agents/add.md +68 -0
- package/bin/cli.js +86 -21
- package/package.json +2 -3
- package/personas-teacher/VENDOR.md +6 -0
- package/skill/add/SKILL.md +100 -134
- package/skill/add/adopt.md +28 -0
- package/skill/add/beyond.md +36 -0
- package/skill/add/deltas.md +25 -2
- package/skill/add/design.md +56 -74
- package/skill/add/{report-template.md → gate-udd.md} +28 -38
- package/skill/add/intake.md +56 -25
- package/skill/add/loop.md +32 -19
- package/skill/add/phases/build.md +78 -0
- package/skill/add/phases/direction.md +280 -0
- package/skill/add/phases/verify.md +160 -0
- package/skill/add/run.md +11 -18
- package/skill/add/terms.md +18 -0
- package/tooling/add.py +2383 -3261
- package/tooling/add_engine/autonomy.py +2 -37
- package/tooling/add_engine/components.py +4 -87
- package/tooling/add_engine/constants.py +145 -91
- package/tooling/add_engine/guidelines.py +9 -11
- package/tooling/add_engine/io_state.py +69 -2
- package/tooling/add_engine/predicates.py +90 -2
- package/tooling/add_engine/search.py +6 -6
- package/tooling/add_engine/taskdoc.py +15 -10
- package/tooling/templates/CONVENTIONS.md.tmpl +1 -1
- package/tooling/templates/GLOSSARY.md.tmpl +10 -4
- package/tooling/templates/MILESTONE.md.tmpl +20 -16
- package/tooling/templates/PLAN.md.tmpl +128 -0
- package/tooling/templates/PROJECT.md.tmpl +6 -1
- package/tooling/templates/PROMPT.persona.md.tmpl +17 -21
- package/tooling/templates/personas/_template.md.tmpl +33 -29
- package/tooling/templates/personas/build-engineer.md.tmpl +45 -0
- package/tooling/templates/personas/data-steward.md.tmpl +45 -0
- package/tooling/templates/personas/evidence-verifier.md.tmpl +45 -0
- package/tooling/templates/personas/platform-engineer.md.tmpl +45 -0
- package/tooling/templates/personas/product-lead.md.tmpl +51 -0
- package/tooling/templates/personas/quality-auditor.md.tmpl +47 -0
- package/tooling/templates/personas/release-manager.md.tmpl +52 -0
- package/tooling/templates/personas/security-gatekeeper.md.tmpl +45 -0
- package/tooling/templates/personas/software-architect.md.tmpl +45 -0
- package/tooling/templates/personas/stream-orchestrator.md.tmpl +44 -0
- package/tooling/templates/personas/technical-writer.md.tmpl +49 -0
- package/tooling/templates/personas/ux-experience-lead.md.tmpl +48 -0
- package/tooling/templates/specs/SPEC.md.tmpl +18 -0
- package/tooling/templates/udd-wireframe.md +1 -1
- package/agents/add-advisor.md +0 -31
- package/agents/add-build.md +0 -29
- package/agents/add-design.md +0 -32
- package/agents/add-persona.md +0 -33
- package/agents/add-verify.md +0 -36
- package/docs/00-introduction.md +0 -46
- package/docs/01-principles.md +0 -71
- package/docs/02-the-flow.md +0 -113
- package/docs/03-step-1-specify.md +0 -123
- package/docs/04-step-2-scenarios.md +0 -90
- package/docs/05-step-3-contract.md +0 -80
- package/docs/06-step-4-tests.md +0 -85
- package/docs/07-step-5-build.md +0 -82
- package/docs/08-step-6-verify.md +0 -105
- package/docs/09-the-loop.md +0 -75
- package/docs/10-setup-and-stages.md +0 -118
- package/docs/11-governance.md +0 -91
- package/docs/12-roles.md +0 -99
- package/docs/13-adoption.md +0 -67
- package/docs/14-foundation.md +0 -142
- package/docs/15-foundations-and-lineage.md +0 -106
- package/docs/16-releasing.md +0 -182
- package/docs/17-components.md +0 -143
- package/docs/18-personas.md +0 -80
- package/docs/README.md +0 -77
- package/docs/add-competencies.png +0 -0
- package/docs/add-flow.png +0 -0
- package/docs/add-foundation.png +0 -0
- package/docs/add-hierarchy.png +0 -0
- package/docs/add-milestone-task-lifecycle.png +0 -0
- package/docs/add-task-growth-wheel.png +0 -0
- package/docs/appendix-a-templates.md +0 -88
- package/docs/appendix-b-prompts.md +0 -154
- package/docs/appendix-c-glossary.md +0 -176
- package/docs/appendix-d-worked-example.md +0 -231
- package/docs/appendix-e-checklists.md +0 -92
- package/docs/appendix-f-requirements-matrix.md +0 -171
- package/docs/appendix-g-references.md +0 -106
- package/skill/add/advisor.md +0 -81
- package/skill/add/compact-foundation.md +0 -40
- package/skill/add/components.md +0 -52
- package/skill/add/confidence.md +0 -32
- package/skill/add/fold.md +0 -63
- package/skill/add/graduate.md +0 -39
- package/skill/add/phases/0-ground.md +0 -64
- package/skill/add/phases/0-setup.md +0 -103
- package/skill/add/phases/1-specify.md +0 -61
- package/skill/add/phases/2-scenarios.md +0 -48
- package/skill/add/phases/3-contract.md +0 -60
- package/skill/add/phases/4-tests.md +0 -61
- package/skill/add/phases/5-build.md +0 -62
- package/skill/add/phases/6-verify.md +0 -69
- package/skill/add/phases/7-observe.md +0 -45
- package/skill/add/phases/fast-lane.md +0 -34
- package/skill/add/release.md +0 -61
- package/skill/add/scope.md +0 -72
- package/skill/add/self-improve.md +0 -20
- package/skill/add/sensitivity.md +0 -51
- package/skill/add/setup-review.md +0 -48
- package/skill/add/soul.md +0 -58
- package/skill/add/streams.md +0 -269
- package/tooling/add_engine/release.py +0 -86
- package/tooling/templates/TASK.fast.md.tmpl +0 -78
- package/tooling/templates/TASK.md.tmpl +0 -181
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,150 @@ All notable changes to the ADD method (`@pilotspace/add` on npm,
|
|
|
4
4
|
`pilotspace-add` on PyPI) are documented here. The format follows
|
|
5
5
|
[Keep a Changelog](https://keepachangelog.com/); versions follow semver.
|
|
6
6
|
|
|
7
|
+
## [2.0.0] — 2026-07-18
|
|
8
|
+
|
|
9
|
+
Major: ADD 2.0 — a skill-led method on a thin state kernel. The skill drives
|
|
10
|
+
the loop; `add.py` records state and guards the seams; **personas carry the
|
|
11
|
+
playbooks** the platform pillars used to hard-code.
|
|
12
|
+
|
|
13
|
+
- **engine-kernel-trim** — the verb surface collapses 54 → 31: the platform
|
|
14
|
+
pillars die as engine code (streams/waves/DAG orchestration · components/
|
|
15
|
+
federation · release/graduation engines · gate-audit machinery · fold/compact
|
|
16
|
+
consolidation · team verbs · the SPEC-delta trio · doctor/worktree-prep) and
|
|
17
|
+
their workflows live on as seed-persona playbooks. `add.py` shrinks
|
|
18
|
+
9,558 → 6,596 lines; the phase guides fold 17 → 12.
|
|
19
|
+
- **PLAN.md** — the task doc is `PLAN.md` everywhere (was TASK.md; the
|
|
20
|
+
template is `PLAN.md.tmpl`), and the new one-shot **`add.py migrate`**
|
|
21
|
+
converts a 1.x board: renames live + archived task docs, seeds any missing
|
|
22
|
+
living spec, idempotent, refuses `migrate_conflict` before touching anything.
|
|
23
|
+
- **5-DD living specs** — `.add/specs/` (domain · system · experience ·
|
|
24
|
+
quality · method) with **`add.py delta-append`** as the in-flight lesson
|
|
25
|
+
channel; the fold ceremony is gone.
|
|
26
|
+
- **book-stops-shipping** — the AIDD book publishes at
|
|
27
|
+
https://pilotspace.github.io/ADD/ and never installs; engine chapter
|
|
28
|
+
pointers deep-link the site (`BOOK_URL`), installers drop the docs tree,
|
|
29
|
+
and a legacy `.add/docs/` from 1.x is user-space (never swept).
|
|
30
|
+
- **phase-collapse-3** — the lifecycle is direction · build · verify: ONE
|
|
31
|
+
freeze approval crosses the whole Direction bundle; the 3-call walk
|
|
32
|
+
(`new-task` · `freeze --by --cross` · `gate PASS`) is the whole ceremony.
|
|
33
|
+
- **persona routes + route scoreboard (GEPA)** — the persona proposes the
|
|
34
|
+
lane (`route:` header, ratified at freeze); every recorded gate appends a
|
|
35
|
+
route-outcome trace, and `add.py deltas` rolls the traces up per lane —
|
|
36
|
+
the evidence the PM persona reflects on GEPA-style, proposing route-rule
|
|
37
|
+
deltas the human folds into the persona file.
|
|
38
|
+
|
|
39
|
+
Breaking (the 2.0 line): removed verbs refuse as unknown commands; task docs
|
|
40
|
+
must be `PLAN.md` (`add.py migrate` is the paved path); the book no longer
|
|
41
|
+
lands in `.add/docs/`; `TASK.fast.md.tmpl` is gone (one template, every lane).
|
|
42
|
+
|
|
43
|
+
## [1.18.0] — 2026-07-14
|
|
44
|
+
|
|
45
|
+
Minor: eleven milestones, expanded from the original July-7 two-milestone cut
|
|
46
|
+
(unpublished — the 1.17.0-amend precedent) to attribute everything merged
|
|
47
|
+
since. Headline: **six-phase-loop** — the lifecycle merges 8 phases into 6
|
|
48
|
+
(specify absorbs scenarios; verify absorbs observe), phase guides disclose
|
|
49
|
+
into the roster's bundle subagents, and the tick into build re-renders the
|
|
50
|
+
frozen spec. Also: **expectations-first** (plan phase; ONE freeze),
|
|
51
|
+
**plan-legibility**, **quality-floors**, **risk-proportional-ceremony**,
|
|
52
|
+
**three-phase-flow**, **add-bench** + **add-bench-v2** (the trust benchmark
|
|
53
|
+
that measured it all), **add-lean-loop**, plus the original
|
|
54
|
+
**build-strategy-facets** and **delta-drain**. The ceremony-to-effort and
|
|
55
|
+
call-floor features (compound ticks · scope echo · kickoff truth · skill
|
|
56
|
+
orient split) ship here too; their milestones remain open on measurement
|
|
57
|
+
criteria. Folded in after the July-14 cut: the **engine-minimalism /
|
|
58
|
+
context-cost thread** — a progressive foundation read, a lean default `status`,
|
|
59
|
+
and one fewer ceremony turn per crossing — measured by **token-anatomy** and
|
|
60
|
+
**honest-fidelity-meter**. No gate weakened; a security finding still HARD-STOPs.
|
|
61
|
+
|
|
62
|
+
### Changed (the headline)
|
|
63
|
+
- **The loop is six phases**: `specify → plan → tests → build → verify → done`.
|
|
64
|
+
Scenarios live inside SPECIFY (§2 unchanged as a section); the observe duties
|
|
65
|
+
live inside VERIFY (§7 unchanged). Legacy phase tokens (`ground`, `contract`,
|
|
66
|
+
`scenarios`, `observe`) normalize on read — in-flight boards migrate loud and
|
|
67
|
+
safe; the skip grammar is retired (nothing is skippable; vestigial `skips:`
|
|
68
|
+
headers are noted at gate, never fatal) (six-phase-loop).
|
|
69
|
+
- **Guides re-cut to 6 files**; delegating spawns a bundle agent that loads its
|
|
70
|
+
own phase guides — the orchestrator reads only SKILL.md; the inline lane stays
|
|
71
|
+
first-class (six-phase-loop).
|
|
72
|
+
- The specification bundle approves at ONE freeze on the plan phase
|
|
73
|
+
(expectations-first); the freeze report renders the BUILD PLAN block and the
|
|
74
|
+
resolved scope echo (plan-legibility, ceremony-to-effort).
|
|
75
|
+
|
|
76
|
+
### Added
|
|
77
|
+
- **Build-entry spec echo** — the tests→build tick prints the §1 Must/Reject
|
|
78
|
+
rules + the frozen §3 contract head, so the builder starts from the spec on
|
|
79
|
+
the screen, not from memory; fail-open, both entry paths (six-phase-loop).
|
|
80
|
+
- **Per-phase persona presets** — teacher-grade expert stances per owned phase
|
|
81
|
+
in the roster agents; project-persona routing stays first; a preset never
|
|
82
|
+
lowers a gate (six-phase-loop).
|
|
83
|
+
- **Compound ticks** — `freeze --cross` lands in tests; `gate` records from
|
|
84
|
+
build (one call fewer per crossing); init prints the resume pointer
|
|
85
|
+
(call-floor).
|
|
86
|
+
- **Quality floors** — spec-dialect warn at build entry · fast-lane
|
|
87
|
+
`Boundary:` freeze-refusal · §6 DIALECT check line (quality-floors).
|
|
88
|
+
- **The trust benchmark** — arms × workload-milestones harness with
|
|
89
|
+
deterministic oracles, tamper/regression meters, and the
|
|
90
|
+
cost-per-trusted-feature verdict (add-bench, add-bench-v2).
|
|
91
|
+
- **AI-plan-verify gate + phase bundles** (three-phase-flow) · message-layer
|
|
92
|
+
error ergonomics, −24% turns at equal rigor (risk-proportional-ceremony).
|
|
93
|
+
|
|
94
|
+
### Added (from the original July-7 cut)
|
|
95
|
+
- **Faceted §5 build strategy** — four domain-generic facet lines drafted at
|
|
96
|
+
the tests→build cross: `Approach` (domain strategy) · `Data strategy` ·
|
|
97
|
+
`Pattern` · `Optimization stance`; the fast lane collapses them to one line
|
|
98
|
+
(build-strategy-facets).
|
|
99
|
+
- **per-facet ADR harvest** — each §5 facet lands in §7 Decisions (ADR) as its
|
|
100
|
+
own actor-tagged line at done (build-strategy-facets).
|
|
101
|
+
- **compact-foundation `--propose`** — a read-only preview of the compaction a
|
|
102
|
+
run would take; inspect before any byte moves (delta-drain).
|
|
103
|
+
- **`verify` flow value for personas** — personas route to the verify surface
|
|
104
|
+
directly; the streams.md worker-contract `<persona>` block names the flow
|
|
105
|
+
preference (delta-drain).
|
|
106
|
+
- **persona roster line** — `status`/`check` render an engine-built roster with
|
|
107
|
+
flows, never hand-maintained (delta-drain).
|
|
108
|
+
|
|
109
|
+
### Changed
|
|
110
|
+
- §5 build strategy guidance, phase guides, and the TASK.md/TASK.fast.md
|
|
111
|
+
templates teach and carry the facet block (build-strategy-facets).
|
|
112
|
+
|
|
113
|
+
### Fixed
|
|
114
|
+
- **Installer data loss** — `.claude/agents` is a shared namespace: init/update
|
|
115
|
+
now land only ADD's own roster files per-file (atomic), removal is
|
|
116
|
+
explicit-tombstone-only — the user's own subagents survive every install and
|
|
117
|
+
update (loose task installer-shared-namespace-guard, PR #151).
|
|
118
|
+
|
|
119
|
+
### Added (engine-minimalism — the context-cost thread)
|
|
120
|
+
- **Progressive foundation read** — `status --foundation` prints a MAP (the preamble +
|
|
121
|
+
`invariants:` + Domain + Spec in full; every other section collapsed to its heading +
|
|
122
|
+
an on-demand `add.py status --foundation "<section>"` pull), so the cross-milestone
|
|
123
|
+
foundation that is re-read every turn is a slice, not the whole file; a named section
|
|
124
|
+
fleshes out on demand and `--all` restores the whole foundation (foundation-slice, −59%
|
|
125
|
+
on a 55KB foundation). Invariants never collapse — the contracts that bind every task
|
|
126
|
+
always survive the map.
|
|
127
|
+
- **Lean default `status`** — bare `status` prints the resume essentials; five heavy
|
|
128
|
+
blocks gate behind `--all`; `status --brief` is the mid-task resume; `status --section
|
|
129
|
+
<n>` reads one TASK.md §body instead of the whole growing file (engine-minimalism).
|
|
130
|
+
- **`--help` diet** — the top-level help drops from 121 lines to 19 (engine-minimalism).
|
|
131
|
+
|
|
132
|
+
### Changed (engine-minimalism)
|
|
133
|
+
- **One fewer ceremony turn per crossing** — a green build steers straight to `gate PASS`;
|
|
134
|
+
the redundant pre-gate `advance` is folded away (ceremony-turn-cut / advance-fold).
|
|
135
|
+
- **Leaner per-turn engine output** — bare `status` stops restating the 'now' card in its
|
|
136
|
+
resume block; `new-task` teaches the full annotated recipe once per project, compact
|
|
137
|
+
thereafter; the skill re-orients from each verb's `next:` footer instead of re-running
|
|
138
|
+
`status` (engine-output-trim, status-brief-adoption, trust-the-footer).
|
|
139
|
+
|
|
140
|
+
### Added (measurement — not shipped in the package)
|
|
141
|
+
- **Token anatomy** attributes a benchmark run's cache-read cost by category; a
|
|
142
|
+
deterministic **`requirement_coverage`** meter replaces the artifact-blind spec-fidelity
|
|
143
|
+
judge (now a source-aware, non-gating annotation); scoring is hermetic per boot
|
|
144
|
+
(token-anatomy, honest-fidelity-meter). Dev harness under `benchmark/` — not in the
|
|
145
|
+
npm/PyPI tarball.
|
|
146
|
+
|
|
147
|
+
### Disclosed waivers (non-security, signed)
|
|
148
|
+
- `reclaim-ticket-race` — lock-reclaim TOCTOU flake; owner Tin Dang, expires 2026-08-04.
|
|
149
|
+
- `js-reclaim-lock-heartbeat` — JS lock-heartbeat race; owner Tin Dang, expires 2026-08-04.
|
|
150
|
+
|
|
7
151
|
## [1.17.0] — 2026-07-06
|
|
8
152
|
|
|
9
153
|
Minor: four milestones — **method-ergonomics** (every recurring gate rule becomes
|
package/GETTING-STARTED.md
CHANGED
|
@@ -53,7 +53,8 @@ at the `prototype` stage. (Prefer to choose up front? Both installers take
|
|
|
53
53
|
changed later — see the appendix.)
|
|
54
54
|
|
|
55
55
|
Either one creates `.add/` (your runtime), drops the `add` skill into
|
|
56
|
-
`.claude/skills/add
|
|
56
|
+
`.claude/skills/add/`. The book itself is published at
|
|
57
|
+
https://pilotspace.github.io/ADD/ and never installs into the project. It deliberately
|
|
57
58
|
does **not** initialise the project — that's the agent's first move, so nothing
|
|
58
59
|
gets decided without you in the loop.
|
|
59
60
|
|
|
@@ -61,7 +62,7 @@ gets decided without you in the loop.
|
|
|
61
62
|
handoff — from here on it's conversation, not terminal commands.
|
|
62
63
|
|
|
63
64
|
> Why stages exist: the steps never change, only how *deeply* you run them.
|
|
64
|
-
> See
|
|
65
|
+
> See https://pilotspace.github.io/ADD/10-setup-and-stages/.
|
|
65
66
|
|
|
66
67
|
### Updating to a newer ADD — no re-install
|
|
67
68
|
|
|
@@ -79,7 +80,7 @@ pipx run pilotspace-add update
|
|
|
79
80
|
pip install -U pilotspace-add && pilotspace-add update
|
|
80
81
|
```
|
|
81
82
|
|
|
82
|
-
`update` clean-replaces the managed layer (`skill` · `.add/tooling`
|
|
83
|
+
`update` clean-replaces the managed layer (`skill` · `.add/tooling`)
|
|
83
84
|
and **never touches your work** — `state.json`, `PROJECT.md`, milestones, tasks and
|
|
84
85
|
archive are left exactly as they were (it backs `state.json` up first regardless). It
|
|
85
86
|
is idempotent (same version twice is a no-op) and writes a `.add/.add-version` stamp.
|
|
@@ -115,7 +116,7 @@ contract → review the result.** Everything between is the agent. For the
|
|
|
115
116
|
transfer-money feature above, that's four short conversations — and zero typed
|
|
116
117
|
commands.
|
|
117
118
|
|
|
118
|
-
> New term: **Onboarding** — the install→first-milestone path. See
|
|
119
|
+
> New term: **Onboarding** — the install→first-milestone path. See https://pilotspace.github.io/ADD/appendix-c-glossary/.
|
|
119
120
|
|
|
120
121
|
---
|
|
121
122
|
|
|
@@ -169,56 +170,11 @@ Confirm your project is internally consistent at any time:
|
|
|
169
170
|
python3 .add/tooling/add.py check
|
|
170
171
|
```
|
|
171
172
|
|
|
172
|
-
It verifies state is valid, every task has its
|
|
173
|
+
It verifies state is valid, every task has its PLAN.md, and markers match. Exit
|
|
173
174
|
code 0 means healthy — handy as a CI gate.
|
|
174
175
|
|
|
175
176
|
---
|
|
176
177
|
|
|
177
|
-
## Enforce the decision points in CI
|
|
178
|
-
|
|
179
|
-
`add.py audit` re-verifies every recorded human gate on your board — a named
|
|
180
|
-
human at each contract freeze, exactly one gate outcome per done task, a human
|
|
181
|
-
reviewer wherever the security line carries a note. It exits non-zero naming
|
|
182
|
-
the task and the finding, which makes it a CI gate: enforcement runs on a
|
|
183
|
-
machine the agent does not control, so the agent can never stamp its own work
|
|
184
|
-
green (*never self-gate*).
|
|
185
|
-
|
|
186
|
-
Drop this workflow into `.github/workflows/seam-audit.yml`:
|
|
187
|
-
|
|
188
|
-
```yaml
|
|
189
|
-
name: seam-audit
|
|
190
|
-
|
|
191
|
-
on:
|
|
192
|
-
push:
|
|
193
|
-
branches: [main]
|
|
194
|
-
pull_request:
|
|
195
|
-
|
|
196
|
-
permissions:
|
|
197
|
-
contents: read
|
|
198
|
-
|
|
199
|
-
jobs:
|
|
200
|
-
seam-audit:
|
|
201
|
-
name: Decision-point audit (recorded human gates)
|
|
202
|
-
runs-on: ubuntu-latest
|
|
203
|
-
steps:
|
|
204
|
-
- uses: actions/checkout@v4
|
|
205
|
-
|
|
206
|
-
- uses: actions/setup-python@v5
|
|
207
|
-
with:
|
|
208
|
-
python-version: '3.12'
|
|
209
|
-
|
|
210
|
-
- name: Audit recorded decision points
|
|
211
|
-
run: python3 .add/tooling/add.py audit
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
The command is the same one you can run locally — the installer already placed
|
|
215
|
-
`add.py` at `.add/tooling/add.py`, and the audit is read-only (it never edits
|
|
216
|
-
your board). A red `seam-audit` job means a decision record is malformed or a
|
|
217
|
-
security note was left to the auto-gate; fix the record (or escalate the gate
|
|
218
|
-
to a human), never the auditor.
|
|
219
|
-
|
|
220
|
-
---
|
|
221
|
-
|
|
222
178
|
## Under the hood — the seven phases by hand (escape hatch)
|
|
223
179
|
|
|
224
180
|
Everything above is what the agent drives for you through the one-approval flow. This
|
|
@@ -227,7 +183,7 @@ each one produces and step in manually whenever you want to. You never *have* to
|
|
|
227
183
|
these — they are the agent's hands, and yours when you take the wheel.
|
|
228
184
|
|
|
229
185
|
The rhythm is always: **fill the section → run `python3 .add/tooling/add.py advance`.**
|
|
230
|
-
The tool keeps the `phase:` marker at the top of
|
|
186
|
+
The tool keeps the `phase:` marker at the top of PLAN.md in sync.
|
|
231
187
|
|
|
232
188
|
### Before the phases — initialise and scaffold
|
|
233
189
|
|
|
@@ -244,7 +200,7 @@ python3 .add/tooling/add.py new-task transfer --title "Transfer money between my
|
|
|
244
200
|
> any build. Plain `init` skips that gate, which is fine here: by hand, the
|
|
245
201
|
> human IS the one driving every step.
|
|
246
202
|
|
|
247
|
-
This scaffolds `.add/tasks/transfer/
|
|
203
|
+
This scaffolds `.add/tasks/transfer/PLAN.md` — **one file holding all seven phase
|
|
248
204
|
sections** — plus empty `tests/` and `src/` folders, and makes it the active task
|
|
249
205
|
at phase `specify`. Open it in your editor; you'll fill it top to bottom.
|
|
250
206
|
|
|
@@ -254,7 +210,7 @@ You can also change the project's depth at any time:
|
|
|
254
210
|
python3 .add/tooling/add.py stage mvp
|
|
255
211
|
```
|
|
256
212
|
|
|
257
|
-
### Phase 1 — Specify (
|
|
213
|
+
### Phase 1 — Specify (https://pilotspace.github.io/ADD/03-step-1-specify/)
|
|
258
214
|
|
|
259
215
|
Write the rules in **§1**. State what it *must* do, what it must *reject* (each
|
|
260
216
|
with a named error code), and what's true after success:
|
|
@@ -278,7 +234,7 @@ Confirm every assumption (no FX, no daily limit in v1). Then:
|
|
|
278
234
|
python3 .add/tooling/add.py advance
|
|
279
235
|
```
|
|
280
236
|
|
|
281
|
-
### Phase 2 — Scenarios (
|
|
237
|
+
### Phase 2 — Scenarios (https://pilotspace.github.io/ADD/04-step-2-scenarios/)
|
|
282
238
|
|
|
283
239
|
In **§2**, turn each rule into a Given/When/Then. For every rejection, assert what
|
|
284
240
|
must stay **unchanged**:
|
|
@@ -293,7 +249,7 @@ Scenario: insufficient funds
|
|
|
293
249
|
|
|
294
250
|
Then `python3 .add/tooling/add.py advance`.
|
|
295
251
|
|
|
296
|
-
### Phase 3 — Contract (
|
|
252
|
+
### Phase 3 — Contract (https://pilotspace.github.io/ADD/05-step-3-plan/)
|
|
297
253
|
|
|
298
254
|
In **§3**, fix the external shape and **freeze** it (`Status: FROZEN @ v1`):
|
|
299
255
|
|
|
@@ -306,19 +262,19 @@ POST /transfers body: { fromAccountId, toAccountId, amount }
|
|
|
306
262
|
|
|
307
263
|
A frozen contract is the decision point that makes the AI build safe. Then advance.
|
|
308
264
|
|
|
309
|
-
### Phase 4 — Tests, red first (
|
|
265
|
+
### Phase 4 — Tests, red first (https://pilotspace.github.io/ADD/06-step-4-tests/)
|
|
310
266
|
|
|
311
267
|
Write one test per scenario into `.add/tasks/transfer/tests/`, then **run them and
|
|
312
268
|
confirm they FAIL** — there's no code yet. A test that passes now is testing
|
|
313
269
|
nothing. This is red/green TDD: red before green. Then advance.
|
|
314
270
|
|
|
315
|
-
### Phase 5 — Build (
|
|
271
|
+
### Phase 5 — Build (https://pilotspace.github.io/ADD/07-step-5-build/)
|
|
316
272
|
|
|
317
273
|
Now let the AI write code into `.add/tasks/transfer/src/` until **every test
|
|
318
274
|
passes** — without changing any test or the frozen contract. Honor the safety rule
|
|
319
275
|
(here: debit + credit in one atomic transaction). Then advance.
|
|
320
276
|
|
|
321
|
-
### Phase 6 — Verify (
|
|
277
|
+
### Phase 6 — Verify (https://pilotspace.github.io/ADD/08-step-6-verify/)
|
|
322
278
|
|
|
323
279
|
In **§6**, confirm the evidence (all green, nothing weakened) and check what tests
|
|
324
280
|
miss: concurrency, security, architecture. Record the gate — and close the task:
|
|
@@ -330,7 +286,7 @@ python3 .add/tooling/add.py gate PASS
|
|
|
330
286
|
`gate PASS` marks the task `done`. (Use `gate HARD-STOP` to send it back to Build,
|
|
331
287
|
or `gate RISK-ACCEPTED` for a signed, non-security waiver.)
|
|
332
288
|
|
|
333
|
-
### Phase 7 — Observe (
|
|
289
|
+
### Phase 7 — Observe (https://pilotspace.github.io/ADD/09-the-loop/)
|
|
334
290
|
|
|
335
291
|
In **§7**, note what to watch in production and the next spec delta. Every learning
|
|
336
292
|
becomes the next `new-task`. The flow is a loop, not a finish line.
|
|
@@ -341,11 +297,11 @@ becomes the next `new-task`. The flow is a loop, not a finish line.
|
|
|
341
297
|
|
|
342
298
|
You just ran the method; now read *why* it's shaped this way:
|
|
343
299
|
|
|
344
|
-
- The shift & principles —
|
|
345
|
-
- The flow end to end —
|
|
346
|
-
- Each step in depth —
|
|
347
|
-
- Operating it on a team —
|
|
348
|
-
- A fully worked example —
|
|
300
|
+
- The shift & principles — https://pilotspace.github.io/ADD/00-introduction/, https://pilotspace.github.io/ADD/01-principles/
|
|
301
|
+
- The flow end to end — https://pilotspace.github.io/ADD/02-the-flow/
|
|
302
|
+
- Each step in depth — https://pilotspace.github.io/ADD/03-step-1-specify/ through https://pilotspace.github.io/ADD/09-the-loop/
|
|
303
|
+
- Operating it on a team — https://pilotspace.github.io/ADD/11-governance/, https://pilotspace.github.io/ADD/12-roles/
|
|
304
|
+
- A fully worked example — https://pilotspace.github.io/ADD/appendix-d-worked-example/
|
|
349
305
|
- Building UI? The render-ready UDD foundation — `.add/DESIGN.md` is the prose
|
|
350
306
|
front-door to a lintable design system (`.add/design/` tokens · catalog ·
|
|
351
307
|
prototypes) the AI drafts from; `add.py check` lints it (delete `DESIGN.md` if
|
package/README.md
CHANGED
|
@@ -2,27 +2,34 @@
|
|
|
2
2
|
<a href="https://www.npmjs.com/package/@pilotspace/add"><img alt="npm version" src="https://img.shields.io/npm/v/@pilotspace/add.svg"></a>
|
|
3
3
|
<a href="https://pypi.org/project/pilotspace-add/"><img alt="PyPI version" src="https://img.shields.io/pypi/v/pilotspace-add.svg"></a>
|
|
4
4
|
<a href="https://github.com/pilotspace/ADD/blob/main/LICENSE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-yellow.svg"></a>
|
|
5
|
+
<a href="https://pilotspace.github.io/ADD/"><img alt="Read the book" src="https://img.shields.io/badge/docs-read%20the%20book-blue.svg"></a>
|
|
5
6
|
<a href="https://github.com/pilotspace/ADD/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/pilotspace/ADD.svg"></a>
|
|
6
7
|
</p>
|
|
7
8
|
|
|
8
9
|
# ADD — AI-Driven Development
|
|
9
10
|
|
|
10
|
-
**
|
|
11
|
+
**Your AI's first milestone is always great. ADD is for every milestone after that.**
|
|
11
12
|
|
|
12
13
|
> A minimal, state-tracked skill for building software when the AI writes the code
|
|
13
14
|
> and **you** own the two things it cannot do alone: decide *what* to build, and
|
|
14
15
|
> *verify* it is correct. Native on Claude Code; every other CLI coding agent
|
|
15
16
|
> follows the same loop through the phase guides.
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
**The agent is the hands. ADD is the memory, judgment, and conscience — the part
|
|
19
|
+
of the team that survives when the context window doesn't.** Memory: the board,
|
|
20
|
+
frozen contracts, and living specs on disk (`add.py status` resumes any session
|
|
21
|
+
losslessly). Judgment: personas propose each task's lane and the loop learns from
|
|
22
|
+
the traced outcomes (`add.py deltas`). Conscience: evidence-scored gates, the
|
|
23
|
+
tamper tripwire, the security hard-stop. It sits on top of a context foundation
|
|
24
|
+
(DDD → SDD → UDD) and runs as a red/green TDD ↔ AI-build loop.
|
|
25
|
+
The full reasoning — *why* every rule exists — is [the AIDD book, published
|
|
26
|
+
online](https://pilotspace.github.io/ADD/). Read it once; keep it open beside you.
|
|
21
27
|
|
|
22
28
|
```
|
|
23
29
|
Foundation (context): DDD · SDD · UDD
|
|
24
30
|
Engine (this skill): TDD ⇄ ADD
|
|
25
|
-
Flow per
|
|
31
|
+
Flow per task: Direction (spec · scenarios · contract · red tests → ONE freeze)
|
|
32
|
+
→ Build (red → green) → Verify (evidence-scored gate) ↻
|
|
26
33
|
```
|
|
27
34
|
|
|
28
35
|
## Quick Start
|
|
@@ -41,29 +48,66 @@ Then, in your coding agent, say what you want to build:
|
|
|
41
48
|
|
|
42
49
|
> `/add` — *"Let users log in with email + password / SSO, and keep them signed in for 30 days unless they explicitly log out."*
|
|
43
50
|
|
|
44
|
-
The agent sizes it into a milestone (you confirm the shape), drafts the
|
|
45
|
-
scenarios → contract → tests as one
|
|
46
|
-
contract), then builds and verifies to
|
|
47
|
-
**Use it**, and the
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
The agent sizes it into a milestone (you confirm the shape), drafts the
|
|
52
|
+
specification bundle — spec → scenarios → contract → red tests as one Direction
|
|
53
|
+
pass (you approve once, at the frozen contract), then builds and verifies to
|
|
54
|
+
green. Full detail below — **Install**, **Use it**, and the
|
|
55
|
+
[10-minute Quickstart](./GETTING-STARTED.md).
|
|
56
|
+
|
|
57
|
+
## Highlights
|
|
58
|
+
|
|
59
|
+
- 📉 **Anti-context-rot by design** — every decision lives on disk (`PLAN.md`, frozen contracts, red suites, `.add/state.json`), so a fresh session resumes losslessly; measured flat 1.0 quality across evolving milestones while conversation-carried flows decayed.
|
|
60
|
+
- ✅ **Approve once, then let it run** — one human sign-off at the frozen contract; the agent drives Direction → Build → Verify.
|
|
61
|
+
- 🔬 **Proof, not promises** — verified against observed behavior and pre-declared expectations, never just a plausible-looking diff; weakening a test to reach green is treated as tampering.
|
|
62
|
+
- 💸 **Lean by measurement** — a thin 31-verb state kernel, a 3-call task walk, one file per feature; $2.20 per trusted milestone vs spec-kit's $3.90 in the latest head-to-head.
|
|
63
|
+
- 🔒 **Security never gets waved through** — any security finding is a hard stop, human in the loop.
|
|
64
|
+
- 🧠 **Personas route the work** — a project-owned persona proposes each task's lane, the freeze ratifies it, outcomes are traced, and the loop reflects on the record (GEPA) so the method adapts to your codebase.
|
|
65
|
+
- 🎨 **See it before you build it** — a wireframe and a zero-dependency HTML mock, approved before any code.
|
|
66
|
+
- 👥 **Built for teams** — git-native multi-user, N parallel milestones, DAG-scheduled waves.
|
|
67
|
+
- 🧩 **One slice, many components** — monorepo or multi-repo, in one team.
|
|
68
|
+
- 🤝 **Works with your AI** — Claude, Copilot, Cursor, Codex, Gemini; install via npm, pip, or the Claude Code plugin.
|
|
69
|
+
|
|
70
|
+
> _Direction before speed. Trust comes from passing tests — not from reading code and finding it plausible._
|
|
71
|
+
|
|
72
|
+
## Why ADD — the pain point is context rot, and we measured it
|
|
73
|
+
|
|
74
|
+
Every AI coding tool can write code fast now, and every flow we benchmark aces a
|
|
75
|
+
greenfield first milestone. The unsolved part is **trust across change**: when the
|
|
76
|
+
spec evolves in milestone 2 and breaks compatibility in milestone 3, does the work
|
|
77
|
+
you already trusted *stay* trusted?
|
|
78
|
+
|
|
79
|
+
Our benchmark runs the same six-milestone evolving project through each flow under
|
|
80
|
+
a pinned model with deterministic probe scoring
|
|
81
|
+
([report, revised edition](https://github.com/pilotspace/ADD/blob/main/benchmark/results/2026-07-add-2.0-remeasure.md)).
|
|
82
|
+
The causal finding: when ONE continued conversation carried the milestones, every
|
|
83
|
+
flow decayed the same way (coverage .92 → .75, with an early list-shape spec
|
|
84
|
+
violation carried through five further milestones, never re-examined). When every
|
|
85
|
+
milestone instead started a **fresh session resuming from disk**, ADD held every
|
|
86
|
+
floor at 1.0 across all six milestones — through a breaking shape change and a
|
|
87
|
+
cross-cutting refactor — with zero regressions, at ~$2.90 per milestone (a 3–5×
|
|
88
|
+
cut vs ADD 1.x's $4.65–13.94 per trusted feature). Honesty note, from the same
|
|
89
|
+
report: on this friendly workload a strong model under spec-kit also passed the
|
|
90
|
+
restart-mode floors (and ran cheaper) — we published the retraction of our own
|
|
91
|
+
earlier collapse claim when we found the meter defect behind it. What ADD uniquely
|
|
92
|
+
adds is the *guarantees*: contracts that can't be silently edited, tests that
|
|
93
|
+
can't be quietly weakened, security findings that can't scroll past.
|
|
94
|
+
|
|
95
|
+
That's the design, in three moves:
|
|
53
96
|
|
|
54
97
|
- **One file per feature.** Spec, scenarios, contract, test-plan, and gate record
|
|
55
|
-
all live inline in a single `
|
|
56
|
-
- **State on disk, not in chat.** A Python
|
|
98
|
+
all live inline in a single `PLAN.md`. No sprawling doc tree.
|
|
99
|
+
- **State on disk, not in chat.** A stdlib-Python kernel tracks where you are in
|
|
57
100
|
`.add/state.json`, so a fresh session resumes with one command instead of
|
|
58
|
-
re-reading the repo.
|
|
59
|
-
- **Progressive disclosure.** The skill
|
|
60
|
-
|
|
101
|
+
re-reading the repo — and instead of trusting a long conversation's memory.
|
|
102
|
+
- **Progressive disclosure.** The skill narrates the whole loop itself and loads a
|
|
103
|
+
deeper phase reference only when the beat needs it — the context window stays
|
|
104
|
+
lean.
|
|
61
105
|
|
|
62
106
|
## Where ADD fits vs. skill libraries (e.g. agency-agents)
|
|
63
107
|
|
|
64
|
-
ADD is
|
|
65
|
-
|
|
66
|
-
personas. Skill libraries like [agency-agents](https://github.com/msitarzewski/agency-agents), or
|
|
108
|
+
ADD is the **trust layer** — the gated loop (Direction → Build → Verify)
|
|
109
|
+
that decides when work is trusted, and the on-disk memory it runs on. It is not a
|
|
110
|
+
catalog of ready-made expert personas. Skill libraries like [agency-agents](https://github.com/msitarzewski/agency-agents), or
|
|
67
111
|
role-specific subagents (a backend expert, a security reviewer, a senior Java engineer), sit at a
|
|
68
112
|
different layer: they answer **who does the work** — a domain stance, vocabulary, and craft rules
|
|
69
113
|
for one kind of task. ADD answers **how you trust what gets built**, no matter who or what wrote it.
|
|
@@ -75,23 +119,26 @@ never a runtime dependency — down to the three parts a project actually needs:
|
|
|
75
119
|
stance), **Critical Rules** (the non-negotiables), and **Success Metrics** (the done-bar). The
|
|
76
120
|
project then owns that persona outright.
|
|
77
121
|
|
|
78
|
-
A distilled persona is applied as an **advisory overlay** during
|
|
122
|
+
A distilled persona is applied as an **advisory overlay** during direction, build, or verify — it
|
|
79
123
|
shapes *how* a step gets done, never whether it happens: it can't skip a gate, edit a frozen
|
|
80
|
-
contract, or wave through a security finding.
|
|
81
|
-
|
|
124
|
+
contract, or wave through a security finding. In 2.0 personas also carry **task-kinds** and
|
|
125
|
+
propose each task's route (full walk · fast lane · inline); the freeze ratifies the route, the
|
|
126
|
+
gate traces the outcome, and `add.py deltas` rolls the traces into a per-lane scoreboard the
|
|
127
|
+
loop reflects on (GEPA). That gated loop is what ADD contributes underneath any persona,
|
|
128
|
+
distilled or not.
|
|
82
129
|
|
|
83
130
|
## Best setup: ADD alongside other agent libraries
|
|
84
131
|
|
|
85
132
|
1. **Install ADD** (below) — it drives the loop: which phase you're in, what needs your approval,
|
|
86
133
|
whether something is proven.
|
|
87
|
-
2. **Keep whatever subagent libraries you already use.** ADD
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
3. **Prefer
|
|
93
|
-
independent adversarial refute-read,
|
|
94
|
-
Reach for another specialist when a piece needs deep domain expertise
|
|
134
|
+
2. **Keep whatever subagent libraries you already use.** ADD ships ONE `add` agent in the same
|
|
135
|
+
`.claude/agents/` mechanism as any other Claude Code subagent — the spawn names the mode
|
|
136
|
+
(direction · build · verify · advise · persona) and the agent loads that beat's guide plus the
|
|
137
|
+
best-fit persona. It coexists with a distilled persona, an agency-agents-derived specialist,
|
|
138
|
+
or a built-in expert with zero conflict; nothing is replaced.
|
|
139
|
+
3. **Prefer the `add` agent for anything phase-shaped** — spawn it in verify mode for the
|
|
140
|
+
independent adversarial refute-read, in build mode for a red→green batch — before an ad-hoc
|
|
141
|
+
spawn. Reach for another specialist when a piece needs deep domain expertise the phase guide
|
|
95
142
|
doesn't carry (a Java-specific review, a payments-domain lens).
|
|
96
143
|
4. **The gates hold no matter who did the work.** A delegated subagent proposes; the orchestrating
|
|
97
144
|
agent records. A security finding is always a `HARD-STOP`, and a low self-reported confidence
|
|
@@ -99,7 +146,7 @@ any persona, distilled or not.
|
|
|
99
146
|
|
|
100
147
|
## Install
|
|
101
148
|
|
|
102
|
-
Pick your ecosystem — all three install the same skill
|
|
149
|
+
Pick your ecosystem — all three install the same skill and tooling:
|
|
103
150
|
|
|
104
151
|
```bash
|
|
105
152
|
# Node / npm
|
|
@@ -118,8 +165,8 @@ pilotspace-add init
|
|
|
118
165
|
/plugin install add@add-method
|
|
119
166
|
```
|
|
120
167
|
|
|
121
|
-
The plugin carries the engine
|
|
122
|
-
|
|
168
|
+
The plugin carries the engine. On first `/add`, the skill materializes it into the
|
|
169
|
+
project (`node "${CLAUDE_PLUGIN_ROOT}/bin/cli.js" init --no-skill`) and scaffolds
|
|
123
170
|
`.add/` — a self-contained, portable result identical to the npm/pip flow. The skill stays
|
|
124
171
|
in the plugin, so nothing is duplicated.
|
|
125
172
|
|
|
@@ -128,9 +175,12 @@ defaults to `prototype` (pass `--name "My App" --stage mvp` to choose up front).
|
|
|
128
175
|
|
|
129
176
|
**Already installed?** Refresh to the latest without a re-install —
|
|
130
177
|
`npx @pilotspace/add@latest update` (or `pipx run pilotspace-add update`)
|
|
131
|
-
re-materializes the skill
|
|
178
|
+
re-materializes the skill and tooling while leaving your project work
|
|
132
179
|
(`.add/state.json`, `PROJECT.md`, milestones, tasks) untouched; add `--check` to
|
|
133
|
-
see whether a project is behind the installed package.
|
|
180
|
+
see whether a project is behind the installed package. Coming from 1.x? One
|
|
181
|
+
command — `python3 .add/tooling/add.py migrate` — converts the whole board
|
|
182
|
+
(task docs to `PLAN.md`, living 5-DD specs seeded); it's idempotent and refuses
|
|
183
|
+
to guess on conflicts.
|
|
134
184
|
|
|
135
185
|
**New here?** Follow the [10-minute Quickstart](./GETTING-STARTED.md) — it walks
|
|
136
186
|
your first feature end to end.
|
|
@@ -139,11 +189,15 @@ This installs:
|
|
|
139
189
|
|
|
140
190
|
| Path | What |
|
|
141
191
|
|------|------|
|
|
142
|
-
| `.claude/skills/add/` | the `add` skill Claude loads
|
|
143
|
-
| `.add/tooling/add.py` | scaffolder +
|
|
144
|
-
| `.add/
|
|
192
|
+
| `.claude/skills/add/` | the `add` skill Claude loads — the loop itself, plus three on-demand phase references |
|
|
193
|
+
| `.add/tooling/add.py` | the state kernel — scaffolder + tracker, 31 verbs (Python, stdlib only) |
|
|
194
|
+
| `.add/personas-teacher/` | the vendored teacher corpus personas are distilled from (off-build reading, never runtime) |
|
|
145
195
|
| `.add/DESIGN.md` | (UI projects) the prose front-door to the **render-ready UDD foundation** — delete it if your project has no UI |
|
|
146
196
|
|
|
197
|
+
The AIDD book itself no longer installs into projects — it lives online at
|
|
198
|
+
[pilotspace.github.io/ADD](https://pilotspace.github.io/ADD/), and the engine
|
|
199
|
+
deep-links the exact chapter whenever a gate or guide cites its rationale.
|
|
200
|
+
|
|
147
201
|
On a UI project, UDD gives the AI a frozen design ground to draft from: `DESIGN.md`
|
|
148
202
|
plus a lintable JSON foundation under `.add/design/` (design tokens · component
|
|
149
203
|
catalog · prototype trees). `add.py check` lints that foundation, going red with a
|
|
@@ -165,9 +219,9 @@ exactly what that means, so there are no surprises:
|
|
|
165
219
|
- **What it runs:** the bundled engine and bootstrapper only — `node bin/cli.js` and
|
|
166
220
|
`python3 .add/tooling/add.py`. No downloaded or remote code is executed; everything it
|
|
167
221
|
runs ships in the package.
|
|
168
|
-
- **What it writes:** files under your project's `.add/` (state, milestones, tasks
|
|
169
|
-
|
|
170
|
-
it also materializes the engine
|
|
222
|
+
- **What it writes:** files under your project's `.add/` (state, milestones, tasks) and
|
|
223
|
+
the managed guideline block in `CLAUDE.md` / `AGENTS.md`. On a plugin install
|
|
224
|
+
it also materializes the engine into `.add/` on first run. It writes nowhere
|
|
171
225
|
outside the project working directory; it never touches files above the project root.
|
|
172
226
|
- **Network:** one optional, advisory update check. On `status` / `guide` the engine may
|
|
173
227
|
make a single HTTPS GET to `https://registry.npmjs.org/@pilotspace/add/latest` to see if
|
|
@@ -192,9 +246,9 @@ the `/add` skill natively; every other agent follows the same loop through the
|
|
|
192
246
|
phase guides via `add.py status` / `guide`.
|
|
193
247
|
|
|
194
248
|
The agent orients from `state.json`, **sizes your request into a milestone** (you
|
|
195
|
-
confirm the shape), then drafts each
|
|
196
|
-
Scenarios + Contract + Tests as one
|
|
197
|
-
frozen contract**. A self-driving build→verify run takes it to green; security
|
|
249
|
+
confirm the shape), then drafts each task's **specification bundle** — Spec +
|
|
250
|
+
Scenarios + Contract + Tests as one Direction pass — and you give **one approval at
|
|
251
|
+
the frozen contract**. A self-driving build→verify run takes it to green; security
|
|
198
252
|
findings always stop back to you.
|
|
199
253
|
|
|
200
254
|
Under the hood the agent runs the CLI as its hands — and you can hand-drive it too:
|
|
@@ -218,19 +272,37 @@ python3 .add/tooling/add.py status # where am I? (resume point)
|
|
|
218
272
|
|
|
219
273
|
The durable asset is the decisions — spec, scenarios, contract, tests. The code is
|
|
220
274
|
one implementation that satisfies them and can be regenerated. If the thing you'd
|
|
221
|
-
be upset to lose is "the code," you're still working the old way.
|
|
275
|
+
be upset to lose is "the code," you're still working the old way. This is also the
|
|
276
|
+
anti-context-rot stance in one sentence: the artifacts on disk, not the
|
|
277
|
+
conversation, are the project's memory.
|
|
222
278
|
|
|
223
279
|
## Read the method
|
|
224
280
|
|
|
225
|
-
Start at [
|
|
281
|
+
Start at [the book](https://pilotspace.github.io/ADD/) — Foundations → the loop →
|
|
226
282
|
operating it across a team → templates, prompts, and a full worked example.
|
|
227
283
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
284
|
+
More entry points:
|
|
285
|
+
|
|
286
|
+
- 📖 [Read the book online](https://pilotspace.github.io/ADD/) — the full AIDD method, chapter by chapter
|
|
287
|
+
- 🔍 [Full hands-on walkthrough](./GETTING-STARTED.md) — one real feature, end to end
|
|
288
|
+
- 📊 [Benchmark results](https://github.com/pilotspace/ADD/tree/main/benchmark/results) — every trust and cost claim, measured
|
|
289
|
+
- ⚖️ [ADD vs spec-kit — the honest comparison](https://pilotspace.github.io/ADD/appendix-h-add-vs-spec-kit/) — where we tie, where they win, what only ADD guarantees
|
|
290
|
+
- 🗞️ [ADD Across the Org: AI-Driven Development Beyond Code](https://inkpaper-blog.pages.dev/series/add-across-the-org/)
|
|
291
|
+
|
|
292
|
+
## What's new in 2.0
|
|
293
|
+
|
|
294
|
+
- **Skill-led loop on a thin kernel** — the skill narrates Direction → Build →
|
|
295
|
+
Verify; `add.py` shrinks to a 31-verb state kernel (54 → 31).
|
|
296
|
+
- **`PLAN.md` + one-shot `migrate`** — the per-task file is the plan; a whole 1.x
|
|
297
|
+
board converts with one idempotent command.
|
|
298
|
+
- **Five living 5-DD specs with `delta-append`** — the project's evolving truth,
|
|
299
|
+
compacted forward instead of rewritten.
|
|
300
|
+
- **Persona routes + the GEPA scoreboard** — personas propose lanes, gates trace
|
|
301
|
+
outcomes, `deltas` shows the per-lane record, and the loop reflects on it.
|
|
302
|
+
- **The book stops shipping** — published online only, deep-linked from the engine.
|
|
303
|
+
- **Measured**: every trust floor 1.0 across the 3-milestone benchmark at $2.20 per
|
|
304
|
+
trusted milestone; plus a new `--session-mode continue` harness that measures
|
|
305
|
+
context rot itself.
|
|
234
306
|
|
|
235
307
|
## Develop
|
|
236
308
|
|