@pilotspace/add 1.5.0 → 1.7.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 CHANGED
@@ -4,6 +4,97 @@ 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
+ ## [1.7.0] — 2026-06-18
8
+
9
+ The installer & onboarding release: standing up — or repairing — ADD is now one
10
+ guided installer that adapts to the terminal and the agent, and the method's own
11
+ build loop gained recorded delta resolution, guided choices at every human gate,
12
+ and a milestone-close ship review. All additive; no breaking changes (SemVer MINOR).
13
+
14
+ ### Added
15
+ - **Guided, agent-aware, self-healing installer (`installer-experience`)** — `npx
16
+ @pilotspace/add` (and `pilotspace-add`) now runs an interactive `@clack/prompts`
17
+ onramp in a real terminal and degrades to a byte-identical plain-text flow in
18
+ CI / non-TTY (the pip twin matches, on the stdlib). It **detects the active agent**
19
+ (Claude Code · Claude app/cowork · Codex · OpenCode · generic) and writes that
20
+ agent's integration file (`CLAUDE.md` / `AGENTS.md`) as a marker-delimited pointer,
21
+ then prints that agent's exact next step. `init` **and** `update` now **heal/reconcile**
22
+ a partial `.add/` — restoring missing managed assets and refreshing stale ones
23
+ **without touching** `state.json` / `PROJECT.md` / milestones / tasks.
24
+ - **Global install (`--global`)** — install the engine + book + skill once into a
25
+ shared ADD home (`ADD_HOME` → `XDG_DATA_HOME/add` → `~/.add`) and reuse it across
26
+ projects; `update --global` refreshes the home and propagates to every registered
27
+ project. The home mirrors the bundled layer; the registry is a flat, atomically
28
+ written `registry.json`, and a corrupt registry fails loud (read-before-write,
29
+ zero-mutation abort).
30
+ - **Global data (`--global-data`)** — opt-in (implies `--global`): a one-way snapshot
31
+ of a project's **user-data** under `<home>/data/<key>` keyed by project path, so the
32
+ shared home remembers each opting project. The per-project, git-tracked default is
33
+ byte-unchanged; without the flag, data stays local.
34
+ - **Claude Code plugin distribution** — ADD is now installable straight from a
35
+ marketplace, with no npm or pip step: `/plugin marketplace add pilotspace/ADD`
36
+ then `/plugin install add@add-method`. A repo-root `.claude-plugin/marketplace.json`
37
+ lists the `add` plugin, which bundles the skill, the engine, and the AIDD book; on
38
+ first run the skill materializes the engine and book INTO the project
39
+ (`cli.js init --no-skill`) so every agent and a human at the shell get a
40
+ self-contained result identical to an npm/pip install. The skill stays in the plugin
41
+ (no duplicate); boundaries are disclosed in the README and guarded by
42
+ `tooling/test_plugin_manifest.py`.
43
+ - **Recorded delta resolution (`delta-resolution`)** — both delta types now resolve
44
+ explicitly: SPEC deltas get a `seed` / `drop` lifecycle and competency deltas
45
+ consolidate into the foundation via **`add.py fold`** (transcription-only, human-
46
+ authorized). `add.py check` stays green only when deltas are well-formed.
47
+ - **Guided-choice prompts (`decision-suggestions`)** — every human gate (intake ·
48
+ bundle approval · verify · milestone close · release) renders a recommended pick
49
+ plus 1–3 described alternatives. Presentation-only — the engine is untouched.
50
+ - **Milestone-close ship review (`ship-review`)** — closing a milestone now records a
51
+ cross-task ship review (ship-by-domain · per-task evidence · goal-met map) that the
52
+ existing engine gate reads, plus AI-defined release-step hints that feed `release.md`.
53
+
54
+ ### Notes
55
+ - The `udd-design-loop` work (the `design.md` UDD loop + the wireframe/HTML-mock
56
+ recipe, described narratively under [1.5.0]) is attributed to this cut in the
57
+ `RELEASES.md` ledger — its first explicit ledger accounting.
58
+ - **The engine records; the human ships.** `add.py release` recorded the `RELEASES.md`
59
+ row and this changelog lineage; it never bumps a version source, tags, or publishes.
60
+ The human-gated `git tag v1.7.0` triggers the npm / PyPI publish.
61
+
62
+ ## [1.6.0] — 2026-06-16
63
+
64
+ The releasing release: shipping a versioned cut is now a first-class **5th ADD
65
+ scope level**, not an ad-hoc ritual. The AI gathers the inventory and drafts
66
+ evidence-backed notes, the engine records the cut behind a security-hard-stop
67
+ readiness floor, and the human owns the tag and publish. All additive; no
68
+ breaking changes (SemVer MINOR).
69
+
70
+ ### Added
71
+ - **The RELEASE scope level (`release.md`)** — the on-demand guide for the 7-step
72
+ flow `cue → gather → draft notes → readiness floor → human confirms → cut → watch`,
73
+ orthogonal to stage: bundle one or more closed milestones into a versioned,
74
+ watched cut. Cross-referenced from `SKILL.md`.
75
+ - **`add.py release-report`** — a read-only gather of the five record-sets (closed
76
+ milestones · their consolidated deltas · riding `RISK-ACCEPTED` waivers · open
77
+ security `HARD-STOP` · scenarios → monitors), with `--json`, plus the
78
+ `→ releasable: N milestone(s)` status cue.
79
+ - **`add.py release <version>`** — a guarded, record-only cut: it prepends the
80
+ `CHANGELOG.md` block, appends an append-only `RELEASES.md` ledger row
81
+ (newest-first), and attributes the bundled milestones — behind a four-code
82
+ readiness floor (`release_security_open` · `release_tests_red` ·
83
+ `release_no_closed_milestone` · `release_undisclosed_waiver`). The security stop
84
+ is **un-forceable**: `--force` can override the other three, never that one.
85
+ - **`RELEASES.md`** — the append-only release ledger (date · version · milestones ·
86
+ waivers · evidence); membership is the attribution source, so the cue never has
87
+ to read a compacted milestone file.
88
+ - **Book chapter 16 (`16-releasing.md`)** + five glossary entries (Release · Release
89
+ scope level · Readiness floor · RELEASES.md ledger · Hotfix release) + the
90
+ `test_release_docs_accord` guard that keeps the book in accord with `release.md`.
91
+
92
+ ### Notes
93
+ - **The engine records; the human ships.** `add.py release` writes the changelog +
94
+ ledger + attribution; it never bumps a version source, tags, publishes, or
95
+ deploys. The outward act stays human-owned and tool-agnostic — exactly the
96
+ human-gated `git tag` that cut this very release.
97
+
7
98
  ## [1.5.0] — 2026-06-16
8
99
 
9
100
  The UDD design-loop release: defining the design *before* the code is now a
package/README.md CHANGED
@@ -30,7 +30,7 @@ across sessions (context rot). ADD fixes both:
30
30
 
31
31
  ## Install
32
32
 
33
- Pick your ecosystem — both install the same skill, tooling, and book:
33
+ Pick your ecosystem — all three install the same skill, tooling, and book:
34
34
 
35
35
  ```bash
36
36
  # Node / npm
@@ -43,6 +43,17 @@ pip install pilotspace-add
43
43
  pilotspace-add init
44
44
  ```
45
45
 
46
+ ```text
47
+ # Claude Code plugin — no npm or pip needed
48
+ /plugin marketplace add pilotspace/ADD
49
+ /plugin install add@add-method
50
+ ```
51
+
52
+ The plugin carries the engine and the book. On first `/add`, the skill materializes them
53
+ into the project (`node "${CLAUDE_PLUGIN_ROOT}/bin/cli.js" init --no-skill`) and scaffolds
54
+ `.add/` — a self-contained, portable result identical to the npm/pip flow. The skill stays
55
+ in the plugin, so nothing is duplicated.
56
+
46
57
  No flags needed — the project name is inferred from your folder and the stage
47
58
  defaults to `prototype` (pass `--name "My App" --stage mvp` to choose up front).
48
59
 
@@ -75,6 +86,28 @@ Project state (`.add/state.json`) and the living-documentation files (`CONVENTIO
75
86
  human-owned voice) are *not* created here — the installer drops files only;
76
87
  initialisation is the agent's first move when you run `/add`.
77
88
 
89
+ ## What this plugin does, writes, and runs (boundaries)
90
+
91
+ ADD is a development methodology, so by design it works *inside your project* — here is
92
+ exactly what that means, so there are no surprises:
93
+
94
+ - **Runs only when you ask.** Nothing executes on install. The skill acts when you run
95
+ `/add` (or another agent follows the guideline block). It is user-initiated, every time.
96
+ - **What it runs:** the bundled engine and bootstrapper only — `node bin/cli.js` and
97
+ `python3 .add/tooling/add.py`. No downloaded or remote code is executed; everything it
98
+ runs ships in the package.
99
+ - **What it writes:** files under your project's `.add/` (state, milestones, tasks, the
100
+ book) and the managed guideline block in `CLAUDE.md` / `AGENTS.md`. On a plugin install
101
+ it also materializes the engine + book into `.add/` on first run. It writes nowhere
102
+ outside the project working directory; it never touches files above the project root.
103
+ - **Network:** one optional, advisory update check. On `status` / `guide` the engine may
104
+ make a single HTTPS GET to `https://registry.npmjs.org/@pilotspace/add/latest` to see if
105
+ a newer version exists — at most once per 24h (cached in `.update-cache.json`), 1.5s
106
+ timeout, fail-open (offline ⇒ silent no-op). It only writes a one-line note to **stderr**
107
+ and never changes a command's output or exit code. Disable it entirely with
108
+ `ADD_NO_UPDATE_CHECK=1`. No other network access, no telemetry, no analytics.
109
+ - **No secrets, no credentials, no privileged access.** Pure local file orchestration.
110
+
78
111
  ## Use it
79
112
 
80
113
  ADD is AI-first: you talk to the agent; it drives the method. In Claude Code, run