@sabaiway/agent-workflow-memory 1.6.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,23 @@ All notable changes to the memory substrate. Versions are this **package's** npm
4
4
  they are distinct from the **deployment-lineage** stamp written into a project's
5
5
  `docs/ai/.memory-version` (which tracks the shared `agent-workflow` lineage, head `1.3.0`).
6
6
 
7
+ ## 1.7.0 — Humanize the deploy/version report (memory)
8
+
9
+ A **feature** release (report-prose only — the atomic stamp-WRITE mechanics and the *Stamp = lineage
10
+ head, not package version* gotcha are unchanged; deployment-lineage head stays `1.3.0`, no migration).
11
+
12
+ The substrate's upgrade report no longer surfaces the internal `docs/ai` **structure version**
13
+ (`.memory-version`) on the happy path:
14
+
15
+ - A zero-diff equal-head upgrade says **settings already current — no update needed**; a writeful
16
+ reconcile (a footprint move / config seed) instead reports **what changed** and asks before commit.
17
+ A fresh bootstrap keeps its deploy-success framing. Neither shows the structure number.
18
+ - The number surfaces only at the never-downgrade **STOP** gate and on an **explicit user ask** (a
19
+ read-only answer that writes nothing) — named "the `docs/ai` structure version", never "lineage
20
+ head", with a plain two-axes note (*Version disclosure*). Memory adds **no status mode** (the one
21
+ intended kit↔memory asymmetry).
22
+ - Pinned by a new static contract test (`scripts/skill-report-contract.test.mjs`).
23
+
7
24
  ## 1.6.0 — §2.6 carries the review-loop economics disciplines (memory)
8
25
 
9
26
  A **feature** release. The `agent_rules.md` substrate **§2.6** lens gains the review-loop economics
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: agent-workflow-memory
3
3
  description: Deploy or upgrade a portable AI-agent memory substrate in any project — an entry-point `AGENTS.md` (+ `CLAUDE.md` alias) and a structured `docs/ai/` context store with cap/archive/index enforcement. Use when the user wants to bootstrap `docs/ai/`, set up the Memory Map and session protocols, install the docs-rotation pre-commit hook, or run `/agent-workflow-memory` / `/agent-workflow-memory upgrade`. Triggers on "set up the memory system", "deploy the AI memory here", "bootstrap docs/ai", "upgrade the memory substrate". This is the substrate only — the workflow methodology (plan→execute→review, queue, Cleanup) is owned elsewhere and injected into AGENTS.md by the family composition root.
4
4
  disable-model-invocation: true
5
5
  metadata:
6
- version: '1.6.0'
6
+ version: '1.7.0'
7
7
  ---
8
8
 
9
9
  # agent-workflow-memory
@@ -116,7 +116,8 @@ bootstrapping over a live system, but the user makes the final call.
116
116
  lineage, a **separate axis** from this package's npm version (the two may even coincide by
117
117
  accident; see *Stamp = lineage head, not package version*). Use the atomic writer in
118
118
  `scripts/stamp-takeover.mjs` (write-temp + rename).
119
- 11. **Report & ask.** Show `tree docs/ai/`, 2–3 lines on filled-vs-TODO, then **ask before
119
+ 11. **Report & ask.** Show `tree docs/ai/`, 2–3 lines on filled-vs-TODO its normal deploy-success
120
+ framing, with **no `docs/ai` structure number** (see *Version disclosure*) — then **ask before
120
121
  committing** — never auto-commit. **Exception — delegated mode (below): skip this gate.**
121
122
 
122
123
  > **Delegated mode (invoked by the composition root) — applies to BOTH bootstrap and upgrade.**
@@ -150,7 +151,10 @@ Fill strategy:
150
151
  2. **Never-downgrade gate FIRST, then the stamp-independent hidden-mode reconcile (D14).** Compare the
151
152
  stamp to the **deployment-lineage head** (`LINEAGE_HEAD`, `1.3.0`). **Greater than the head, or
152
153
  unparseable → STOP and report immediately, before ANY write** (never downgrade or guess, and never
153
- touch `.git/info/exclude`). Otherwise (stamp **≤ head**) reconcile the hidden-mode footprint but
154
+ touch `.git/info/exclude`). This STOP is one of the only two places the number is shown (see
155
+ *Version disclosure* below): tell the user **the `docs/ai` structure version** their deployment
156
+ carries versus the one this substrate expects, plus the plain one-line two-axes note — naming it the
157
+ structure version, **never** "lineage head". Otherwise (stamp **≤ head**) reconcile the hidden-mode footprint — but
154
158
  first **infer this deployment's OWN visibility from its git state** (NOT from whether the machine-global
155
159
  excludes list these paths — another repo on the host may have added them): if `AGENTS.md` (or
156
160
  `docs/ai/`) is **tracked / committed** → **VISIBLE** → do nothing (never write `.git/info/exclude`);
@@ -170,8 +174,13 @@ Fill strategy:
170
174
  its own reconcile — this substrate is standalone and only seeds-or-preserves; it owns no cross-package
171
175
  refresh helper.) This is why an equal-head (`1.3.0`) deployment still gains the config seed **without a
172
176
  lineage-head bump or a migration file** (the stamp-independent-reconcile precedent — like the pointer
173
- slots + the hidden-mode footprint). **Then**, if the stamp **equals** the head → report "up to date"
174
- (plus any footprint move / config seed just made) and stop.
177
+ slots + the hidden-mode footprint). **Then**, if the stamp **equals** the head → the substrate is
178
+ current (no structure migration is due), and stop after reporting. Report **in the user's
179
+ conversational language**: if step 2's reconcile just **changed something** (a footprint move /
180
+ config seed), say **what changed** in plain terms and ask before committing; if **nothing changed at
181
+ all**, say their **settings are already current — no update is required**. Either way, show **no**
182
+ structure number, stamp filename, or internal versioning vocabulary on this happy-path exit — the
183
+ number is inert here and belongs to *Version disclosure* (below).
175
184
  3. Show the relevant `${CLAUDE_SKILL_DIR}/CHANGELOG.md` context (entries newer than the stamp).
176
185
  4. Apply `${CLAUDE_SKILL_DIR}/migrations/<version>-<slug>.md` in **semver order**, only those
177
186
  newer than the stamp. Migrations are **idempotent**.
@@ -186,9 +195,37 @@ Fill strategy:
186
195
  gracefully **no-op** on that slot (adding a slot to already-deployed files is the composition
187
196
  root's reconcile, not this substrate's job). On any malformed marker state (single, reversed,
188
197
  nested, or duplicate pair), **no-op with an error** — never edit.
189
- 7. **Re-stamp** `docs/ai/.memory-version` to the lineage head (atomic write). Report changes;
190
- **ask before committing** **except in delegated mode** (see the *Delegated mode* note above),
191
- where the composition root owns the single gate and this step raises none.
198
+ 7. **Re-stamp** `docs/ai/.memory-version` to the lineage head (atomic write — mechanics unchanged).
199
+ Report changes **in plain human terms** (which parts of the deployment are now different);
200
+ **omit the raw structure number**, and do not recite the two-axes note here (it belongs to
201
+ *Version disclosure*). **Ask before committing** — **except in delegated mode** (see the *Delegated
202
+ mode* note above), where the composition root owns the single gate and this step raises none.
203
+
204
+ ---
205
+
206
+ ## Version disclosure — the `docs/ai` structure version, on demand only
207
+
208
+ The deployment carries an internal **`docs/ai` structure version** in `.memory-version` (the
209
+ `LINEAGE_HEAD` — the number `upgrade` compares the stamp against to decide whether a migration is due).
210
+ It is un-actionable in the happy path and reads as smaller than this package's npm version, so the
211
+ happy path **hides** it. This substrate has **no status mode** (unlike the family composition root), so
212
+ the number surfaces in exactly **two** places, and nowhere else:
213
+ 1. the **never-downgrade STOP** (*Mode: upgrade* step 2) — the stamp is ahead of what this substrate
214
+ knows, so the number IS the message;
215
+ 2. when the **user explicitly asks** about versions — a **read-only** answer: read `.memory-version`
216
+ and state it plainly (with the two-axes note). This adds **no mode** and **writes nothing**.
217
+
218
+ When you show it, **name what it versions — "the `docs/ai` structure version"** (render that meaning in
219
+ the user's conversational language) — **never** "lineage head" or any raw internal token. Pair it with
220
+ **one plain-language line** telling the two axes apart, on demand only:
221
+
222
+ > the number your project carries versions its `docs/ai` **structure**; the (usually larger) number on
223
+ > npm is this package's **own version** — the two advance independently, so a bigger package number is
224
+ > **not** a newer deployment.
225
+
226
+ **Never** print this two-axes line on a successful equal-head exit — only at the STOP or on an explicit
227
+ ask. (This is the one intended kit↔memory asymmetry: the kit hosts the number in its `status` mode; the
228
+ memory substrate has none, so it relies on the STOP + the explicit ask — never invent a status mode.)
192
229
 
193
230
  ---
194
231
 
package/capability.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "schema": 1,
4
4
  "name": "agent-workflow-memory",
5
5
  "kind": "memory-substrate",
6
- "version": "1.6.0",
6
+ "version": "1.7.0",
7
7
  "provides": ["context"],
8
8
  "roles": {},
9
9
  "detect": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sabaiway/agent-workflow-memory",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "Portable, cross-agent memory substrate for AI coding agents — an AGENTS.md entry point + docs/ai context with cap/archive/index enforcement, deployable standalone or as part of the agent-workflow family. The memory layer of the agent-workflow family.",
5
5
  "keywords": [
6
6
  "ai-agents",