@pilotspace/add 1.17.0 → 2.1.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.
Files changed (120) hide show
  1. package/CHANGELOG.md +193 -0
  2. package/GETTING-STARTED.md +20 -64
  3. package/README.md +138 -158
  4. package/agents/add-advisor.md +66 -21
  5. package/agents/add-worker.md +102 -0
  6. package/bin/cli.js +88 -21
  7. package/package.json +2 -3
  8. package/personas-teacher/VENDOR.md +6 -0
  9. package/skill/add/SKILL.md +100 -144
  10. package/skill/add/adopt.md +28 -0
  11. package/skill/add/beyond.md +37 -0
  12. package/skill/add/deltas.md +25 -2
  13. package/skill/add/design.md +56 -74
  14. package/skill/add/{report-template.md → gate-udd.md} +28 -38
  15. package/skill/add/intake.md +56 -25
  16. package/skill/add/loop.md +32 -19
  17. package/skill/add/persona-author/SKILL.md +116 -0
  18. package/skill/add/persona-author/assets/example-design-persona.md +55 -0
  19. package/skill/add/persona-author/assets/example-persona.md +57 -0
  20. package/skill/add/persona-author/references/contract.md +69 -0
  21. package/skill/add/persona-author/references/patterns.md +122 -0
  22. package/skill/add/persona-author/references/seeding.md +79 -0
  23. package/skill/add/phases/build.md +79 -0
  24. package/skill/add/phases/direction.md +287 -0
  25. package/skill/add/phases/verify.md +161 -0
  26. package/skill/add/run.md +16 -18
  27. package/skill/add/terms.md +18 -0
  28. package/tooling/add.py +2421 -3258
  29. package/tooling/add_engine/autonomy.py +2 -37
  30. package/tooling/add_engine/components.py +4 -87
  31. package/tooling/add_engine/constants.py +148 -93
  32. package/tooling/add_engine/guidelines.py +10 -11
  33. package/tooling/add_engine/io_state.py +72 -5
  34. package/tooling/add_engine/predicates.py +90 -2
  35. package/tooling/add_engine/search.py +6 -6
  36. package/tooling/add_engine/taskdoc.py +15 -10
  37. package/tooling/templates/CONVENTIONS.md.tmpl +1 -1
  38. package/tooling/templates/GLOSSARY.md.tmpl +10 -4
  39. package/tooling/templates/MILESTONE.md.tmpl +20 -16
  40. package/tooling/templates/PLAN.md.tmpl +129 -0
  41. package/tooling/templates/PROJECT.md.tmpl +6 -1
  42. package/tooling/templates/PROMPT.persona.md.tmpl +17 -21
  43. package/tooling/templates/personas/build-engineer.md.tmpl +45 -0
  44. package/tooling/templates/personas/data-steward.md.tmpl +45 -0
  45. package/tooling/templates/personas/evidence-verifier.md.tmpl +45 -0
  46. package/tooling/templates/personas/platform-engineer.md.tmpl +45 -0
  47. package/tooling/templates/personas/product-lead.md.tmpl +51 -0
  48. package/tooling/templates/personas/quality-auditor.md.tmpl +47 -0
  49. package/tooling/templates/personas/release-manager.md.tmpl +52 -0
  50. package/tooling/templates/personas/security-gatekeeper.md.tmpl +45 -0
  51. package/tooling/templates/personas/software-architect.md.tmpl +45 -0
  52. package/tooling/templates/personas/stream-orchestrator.md.tmpl +44 -0
  53. package/tooling/templates/personas/technical-writer.md.tmpl +49 -0
  54. package/tooling/templates/personas/ux-experience-lead.md.tmpl +48 -0
  55. package/tooling/templates/specs/SPEC.md.tmpl +18 -0
  56. package/tooling/templates/udd-wireframe.md +1 -1
  57. package/agents/add-build.md +0 -29
  58. package/agents/add-design.md +0 -32
  59. package/agents/add-persona.md +0 -33
  60. package/agents/add-verify.md +0 -36
  61. package/docs/00-introduction.md +0 -46
  62. package/docs/01-principles.md +0 -71
  63. package/docs/02-the-flow.md +0 -113
  64. package/docs/03-step-1-specify.md +0 -123
  65. package/docs/04-step-2-scenarios.md +0 -90
  66. package/docs/05-step-3-contract.md +0 -80
  67. package/docs/06-step-4-tests.md +0 -85
  68. package/docs/07-step-5-build.md +0 -82
  69. package/docs/08-step-6-verify.md +0 -105
  70. package/docs/09-the-loop.md +0 -75
  71. package/docs/10-setup-and-stages.md +0 -118
  72. package/docs/11-governance.md +0 -91
  73. package/docs/12-roles.md +0 -99
  74. package/docs/13-adoption.md +0 -67
  75. package/docs/14-foundation.md +0 -142
  76. package/docs/15-foundations-and-lineage.md +0 -106
  77. package/docs/16-releasing.md +0 -182
  78. package/docs/17-components.md +0 -143
  79. package/docs/18-personas.md +0 -80
  80. package/docs/README.md +0 -77
  81. package/docs/add-competencies.png +0 -0
  82. package/docs/add-flow.png +0 -0
  83. package/docs/add-foundation.png +0 -0
  84. package/docs/add-hierarchy.png +0 -0
  85. package/docs/add-milestone-task-lifecycle.png +0 -0
  86. package/docs/add-task-growth-wheel.png +0 -0
  87. package/docs/appendix-a-templates.md +0 -88
  88. package/docs/appendix-b-prompts.md +0 -154
  89. package/docs/appendix-c-glossary.md +0 -176
  90. package/docs/appendix-d-worked-example.md +0 -231
  91. package/docs/appendix-e-checklists.md +0 -92
  92. package/docs/appendix-f-requirements-matrix.md +0 -171
  93. package/docs/appendix-g-references.md +0 -106
  94. package/skill/add/advisor.md +0 -81
  95. package/skill/add/compact-foundation.md +0 -40
  96. package/skill/add/components.md +0 -52
  97. package/skill/add/confidence.md +0 -32
  98. package/skill/add/fold.md +0 -63
  99. package/skill/add/graduate.md +0 -39
  100. package/skill/add/phases/0-ground.md +0 -64
  101. package/skill/add/phases/0-setup.md +0 -103
  102. package/skill/add/phases/1-specify.md +0 -61
  103. package/skill/add/phases/2-scenarios.md +0 -48
  104. package/skill/add/phases/3-contract.md +0 -60
  105. package/skill/add/phases/4-tests.md +0 -61
  106. package/skill/add/phases/5-build.md +0 -62
  107. package/skill/add/phases/6-verify.md +0 -69
  108. package/skill/add/phases/7-observe.md +0 -45
  109. package/skill/add/phases/fast-lane.md +0 -34
  110. package/skill/add/release.md +0 -61
  111. package/skill/add/scope.md +0 -72
  112. package/skill/add/self-improve.md +0 -20
  113. package/skill/add/sensitivity.md +0 -51
  114. package/skill/add/setup-review.md +0 -48
  115. package/skill/add/soul.md +0 -58
  116. package/skill/add/streams.md +0 -269
  117. package/tooling/add_engine/release.py +0 -86
  118. package/tooling/templates/TASK.fast.md.tmpl +0 -78
  119. package/tooling/templates/TASK.md.tmpl +0 -181
  120. package/tooling/templates/personas/_template.md.tmpl +0 -82
package/CHANGELOG.md CHANGED
@@ -4,6 +4,199 @@ 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.1.0] — 2026-07-22
8
+
9
+ Minor: the two-agent roster matures and the persona author learns from real
10
+ corpora; TDD flexes for non-coding tasks; every honest verify→build round
11
+ becomes engine-visible; the dogfood foundation completes its 2.0 migration.
12
+
13
+ - **two-agent roster** — `add` retires; **add-worker** runs every EXECUTION
14
+ beat (direction · build · verify · persona) and **add-advisor** is the
15
+ second mind serving EVERY beat (propose-plan · advise-midflight · refute)
16
+ with a per-beat calibration map. The worker gains a mid-flight **support
17
+ fan-out** for medium/large builds: non-overlapping §3-Scope slices,
18
+ worktree isolation per support worker, the lead serializes git and re-runs
19
+ the FULL suite on every return; the quality floor multiplies, never dilutes.
20
+ - **persona-author skill** — the static `.add/personas/_template.md` retires
21
+ for a `persona-author` skill (contract · patterns · seeding references +
22
+ two worked examples). Patterns grow 9 → 11 from a deep diagnosis of 13
23
+ sample subagents and the 256-file teacher corpus: NEW *numbers-you'd-defend*
24
+ (a named budget beats an adjective; fake precision is worse than none) and
25
+ *per-flow stance* (what a lens LEADS with at build vs REFUSES at verify —
26
+ the verify stance carries a default NEEDS-WORK verdict); seeding gains
27
+ mine-the-gold / refuse-the-rot source guidance. All 6 live roster personas
28
+ folded to patterns-v11.
29
+ - **flexible TDD** — §4 supports failing-first **acceptance checks** for
30
+ non-coding kinds (docs · release · infra): verifiable pass/fail evidence,
31
+ red before the artifact exists, green after — the red→green discipline
32
+ holds; only the must-be-executable-code requirement is lifted. Guide,
33
+ template, and book reframe; NO engine change (the kernel was already
34
+ tolerant); 21 non-coding prose-guard tests retired dogfooding the policy.
35
+ - **round-visible runs** — every verify→build return trip is a recorded
36
+ **round**: `add.py phase build [--note "finding"]` and every non-exhausted
37
+ heal return increment an uncapped, observational `tasks[slug].rounds`
38
+ (count + timestamped history, notes verbatim); `status` names `round N`;
39
+ the route trace carries `"rounds"` beside `"heals"`. Heal stays the
40
+ cheat-classed, capped subset; rounds are the honest whole. `--note` off
41
+ the build target refuses (`phase_note_build_only`).
42
+ - **foundation-split** — the dogfood board completes the 1.x→2.0 foundation
43
+ migration this package's own `migrate` verb leaves to judgment: PROJECT.md
44
+ 322 → 63 lines (engine-read lines byte-identical), the pre-2.0 standing
45
+ picture folded into the five `.add/specs/` living specs with a per-bullet
46
+ fold ledger — the worked example external 2.0 upgraders can follow.
47
+ - **SKILL.md command cookbook** — the skill router carries the common
48
+ call recipes so agents skip the `-h` round-trip; README copy tightened
49
+ (benefit-led highlights, honest tradeoffs, no dollar figures).
50
+
51
+ Retired (no CLI/install surface change): the `add` roster agent (superseded
52
+ by add-worker + add-advisor) and the static persona template (superseded by
53
+ the persona-author skill; `init` now creates an empty personas dir and the
54
+ hints point at the skill).
55
+
56
+ ## [2.0.0] — 2026-07-18
57
+
58
+ Major: ADD 2.0 — a skill-led method on a thin state kernel. The skill drives
59
+ the loop; `add.py` records state and guards the seams; **personas carry the
60
+ playbooks** the platform pillars used to hard-code.
61
+
62
+ - **engine-kernel-trim** — the verb surface collapses 54 → 31: the platform
63
+ pillars die as engine code (streams/waves/DAG orchestration · components/
64
+ federation · release/graduation engines · gate-audit machinery · fold/compact
65
+ consolidation · team verbs · the SPEC-delta trio · doctor/worktree-prep) and
66
+ their workflows live on as seed-persona playbooks. `add.py` shrinks
67
+ 9,558 → 6,596 lines; the phase guides fold 17 → 12.
68
+ - **PLAN.md** — the task doc is `PLAN.md` everywhere (was TASK.md; the
69
+ template is `PLAN.md.tmpl`), and the new one-shot **`add.py migrate`**
70
+ converts a 1.x board: renames live + archived task docs, seeds any missing
71
+ living spec, idempotent, refuses `migrate_conflict` before touching anything.
72
+ - **5-DD living specs** — `.add/specs/` (domain · system · experience ·
73
+ quality · method) with **`add.py delta-append`** as the in-flight lesson
74
+ channel; the fold ceremony is gone.
75
+ - **book-stops-shipping** — the AIDD book publishes at
76
+ https://pilotspace.github.io/ADD/ and never installs; engine chapter
77
+ pointers deep-link the site (`BOOK_URL`), installers drop the docs tree,
78
+ and a legacy `.add/docs/` from 1.x is user-space (never swept).
79
+ - **phase-collapse-3** — the lifecycle is direction · build · verify: ONE
80
+ freeze approval crosses the whole Direction bundle; the 3-call walk
81
+ (`new-task` · `freeze --by --cross` · `gate PASS`) is the whole ceremony.
82
+ - **persona routes + route scoreboard (GEPA)** — the persona proposes the
83
+ lane (`route:` header, ratified at freeze); every recorded gate appends a
84
+ route-outcome trace, and `add.py deltas` rolls the traces up per lane —
85
+ the evidence the PM persona reflects on GEPA-style, proposing route-rule
86
+ deltas the human folds into the persona file.
87
+
88
+ Breaking (the 2.0 line): removed verbs refuse as unknown commands; task docs
89
+ must be `PLAN.md` (`add.py migrate` is the paved path); the book no longer
90
+ lands in `.add/docs/`; `TASK.fast.md.tmpl` is gone (one template, every lane).
91
+
92
+ ## [1.18.0] — 2026-07-14
93
+
94
+ Minor: eleven milestones, expanded from the original July-7 two-milestone cut
95
+ (unpublished — the 1.17.0-amend precedent) to attribute everything merged
96
+ since. Headline: **six-phase-loop** — the lifecycle merges 8 phases into 6
97
+ (specify absorbs scenarios; verify absorbs observe), phase guides disclose
98
+ into the roster's bundle subagents, and the tick into build re-renders the
99
+ frozen spec. Also: **expectations-first** (plan phase; ONE freeze),
100
+ **plan-legibility**, **quality-floors**, **risk-proportional-ceremony**,
101
+ **three-phase-flow**, **add-bench** + **add-bench-v2** (the trust benchmark
102
+ that measured it all), **add-lean-loop**, plus the original
103
+ **build-strategy-facets** and **delta-drain**. The ceremony-to-effort and
104
+ call-floor features (compound ticks · scope echo · kickoff truth · skill
105
+ orient split) ship here too; their milestones remain open on measurement
106
+ criteria. Folded in after the July-14 cut: the **engine-minimalism /
107
+ context-cost thread** — a progressive foundation read, a lean default `status`,
108
+ and one fewer ceremony turn per crossing — measured by **token-anatomy** and
109
+ **honest-fidelity-meter**. No gate weakened; a security finding still HARD-STOPs.
110
+
111
+ ### Changed (the headline)
112
+ - **The loop is six phases**: `specify → plan → tests → build → verify → done`.
113
+ Scenarios live inside SPECIFY (§2 unchanged as a section); the observe duties
114
+ live inside VERIFY (§7 unchanged). Legacy phase tokens (`ground`, `contract`,
115
+ `scenarios`, `observe`) normalize on read — in-flight boards migrate loud and
116
+ safe; the skip grammar is retired (nothing is skippable; vestigial `skips:`
117
+ headers are noted at gate, never fatal) (six-phase-loop).
118
+ - **Guides re-cut to 6 files**; delegating spawns a bundle agent that loads its
119
+ own phase guides — the orchestrator reads only SKILL.md; the inline lane stays
120
+ first-class (six-phase-loop).
121
+ - The specification bundle approves at ONE freeze on the plan phase
122
+ (expectations-first); the freeze report renders the BUILD PLAN block and the
123
+ resolved scope echo (plan-legibility, ceremony-to-effort).
124
+
125
+ ### Added
126
+ - **Build-entry spec echo** — the tests→build tick prints the §1 Must/Reject
127
+ rules + the frozen §3 contract head, so the builder starts from the spec on
128
+ the screen, not from memory; fail-open, both entry paths (six-phase-loop).
129
+ - **Per-phase persona presets** — teacher-grade expert stances per owned phase
130
+ in the roster agents; project-persona routing stays first; a preset never
131
+ lowers a gate (six-phase-loop).
132
+ - **Compound ticks** — `freeze --cross` lands in tests; `gate` records from
133
+ build (one call fewer per crossing); init prints the resume pointer
134
+ (call-floor).
135
+ - **Quality floors** — spec-dialect warn at build entry · fast-lane
136
+ `Boundary:` freeze-refusal · §6 DIALECT check line (quality-floors).
137
+ - **The trust benchmark** — arms × workload-milestones harness with
138
+ deterministic oracles, tamper/regression meters, and the
139
+ cost-per-trusted-feature verdict (add-bench, add-bench-v2).
140
+ - **AI-plan-verify gate + phase bundles** (three-phase-flow) · message-layer
141
+ error ergonomics, −24% turns at equal rigor (risk-proportional-ceremony).
142
+
143
+ ### Added (from the original July-7 cut)
144
+ - **Faceted §5 build strategy** — four domain-generic facet lines drafted at
145
+ the tests→build cross: `Approach` (domain strategy) · `Data strategy` ·
146
+ `Pattern` · `Optimization stance`; the fast lane collapses them to one line
147
+ (build-strategy-facets).
148
+ - **per-facet ADR harvest** — each §5 facet lands in §7 Decisions (ADR) as its
149
+ own actor-tagged line at done (build-strategy-facets).
150
+ - **compact-foundation `--propose`** — a read-only preview of the compaction a
151
+ run would take; inspect before any byte moves (delta-drain).
152
+ - **`verify` flow value for personas** — personas route to the verify surface
153
+ directly; the streams.md worker-contract `<persona>` block names the flow
154
+ preference (delta-drain).
155
+ - **persona roster line** — `status`/`check` render an engine-built roster with
156
+ flows, never hand-maintained (delta-drain).
157
+
158
+ ### Changed
159
+ - §5 build strategy guidance, phase guides, and the TASK.md/TASK.fast.md
160
+ templates teach and carry the facet block (build-strategy-facets).
161
+
162
+ ### Fixed
163
+ - **Installer data loss** — `.claude/agents` is a shared namespace: init/update
164
+ now land only ADD's own roster files per-file (atomic), removal is
165
+ explicit-tombstone-only — the user's own subagents survive every install and
166
+ update (loose task installer-shared-namespace-guard, PR #151).
167
+
168
+ ### Added (engine-minimalism — the context-cost thread)
169
+ - **Progressive foundation read** — `status --foundation` prints a MAP (the preamble +
170
+ `invariants:` + Domain + Spec in full; every other section collapsed to its heading +
171
+ an on-demand `add.py status --foundation "<section>"` pull), so the cross-milestone
172
+ foundation that is re-read every turn is a slice, not the whole file; a named section
173
+ fleshes out on demand and `--all` restores the whole foundation (foundation-slice, −59%
174
+ on a 55KB foundation). Invariants never collapse — the contracts that bind every task
175
+ always survive the map.
176
+ - **Lean default `status`** — bare `status` prints the resume essentials; five heavy
177
+ blocks gate behind `--all`; `status --brief` is the mid-task resume; `status --section
178
+ <n>` reads one TASK.md §body instead of the whole growing file (engine-minimalism).
179
+ - **`--help` diet** — the top-level help drops from 121 lines to 19 (engine-minimalism).
180
+
181
+ ### Changed (engine-minimalism)
182
+ - **One fewer ceremony turn per crossing** — a green build steers straight to `gate PASS`;
183
+ the redundant pre-gate `advance` is folded away (ceremony-turn-cut / advance-fold).
184
+ - **Leaner per-turn engine output** — bare `status` stops restating the 'now' card in its
185
+ resume block; `new-task` teaches the full annotated recipe once per project, compact
186
+ thereafter; the skill re-orients from each verb's `next:` footer instead of re-running
187
+ `status` (engine-output-trim, status-brief-adoption, trust-the-footer).
188
+
189
+ ### Added (measurement — not shipped in the package)
190
+ - **Token anatomy** attributes a benchmark run's cache-read cost by category; a
191
+ deterministic **`requirement_coverage`** meter replaces the artifact-blind spec-fidelity
192
+ judge (now a source-aware, non-gating annotation); scoring is hermetic per boot
193
+ (token-anatomy, honest-fidelity-meter). Dev harness under `benchmark/` — not in the
194
+ npm/PyPI tarball.
195
+
196
+ ### Disclosed waivers (non-security, signed)
197
+ - `reclaim-ticket-race` — lock-reclaim TOCTOU flake; owner Tin Dang, expires 2026-08-04.
198
+ - `js-reclaim-lock-heartbeat` — JS lock-heartbeat race; owner Tin Dang, expires 2026-08-04.
199
+
7
200
  ## [1.17.0] — 2026-07-06
8
201
 
9
202
  Minor: four milestones — **method-ergonomics** (every recurring gate rule becomes
@@ -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/`, and bundles the book into `.add/docs/`. It deliberately
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 `.add/docs/10-setup-and-stages.md`.
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` · `.add/docs`)
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 `.add/docs/appendix-c-glossary.md`.
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 TASK.md, and markers match. Exit
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 TASK.md in sync.
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/TASK.md` — **one file holding all seven phase
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 (`.add/docs/03-step-1-specify.md`)
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 (`.add/docs/04-step-2-scenarios.md`)
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 (`.add/docs/05-step-3-contract.md`)
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 (`.add/docs/06-step-4-tests.md`)
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 (`.add/docs/07-step-5-build.md`)
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 (`.add/docs/08-step-6-verify.md`)
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 (`.add/docs/09-the-loop.md`)
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 — `.add/docs/00-introduction.md`, `.add/docs/01-principles.md`
345
- - The flow end to end — `.add/docs/02-the-flow.md`
346
- - Each step in depth — `.add/docs/03-step-1-specify.md` through `.add/docs/09-the-loop.md`
347
- - Operating it on a team — `.add/docs/11-governance.md`, `.add/docs/12-roles.md`
348
- - A fully worked example — `.add/docs/appendix-d-worked-example.md`
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