@sabaiway/agent-workflow-memory 2.0.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.
- package/CHANGELOG.md +13 -0
- package/README.md +4 -3
- package/SKILL.md +40 -30
- package/capability.json +1 -1
- package/package.json +1 -1
- package/references/templates/AGENTS.md +2 -1
- package/references/templates/autonomy.json +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,19 @@ 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 `2.0.0`).
|
|
6
6
|
|
|
7
|
+
## 2.1.0 — Autonomy template seed (AD-044 Plan 4)
|
|
8
|
+
|
|
9
|
+
A **feature** release (ships with kit 1.45.0 / engine 1.15.0; the deployment lineage head stays
|
|
10
|
+
`2.0.0` — the seed is ensure-if-missing, stamp-independent). `references/templates/autonomy.json`
|
|
11
|
+
— the sparse, defaults-equivalent autonomy-policy seed (`_README` only): resolving it equals
|
|
12
|
+
resolving no file at all, TEST-PINNED, so the seed can never drift from the computed defaults
|
|
13
|
+
(commit/push/publish `ask`; network/credentials/fs-outside-repo `deny`; absent activities floor at
|
|
14
|
+
`prompt`); it is STRUCTURALLY a seed (meta keys only) — an explicit policy declaring the same
|
|
15
|
+
values reads as a real declaration on every kit surface. Lifecycle follows gates.json: bootstrap
|
|
16
|
+
seeds it, upgrade ensures-if-missing (byte-preserving), hand-editable; the kit mirrors it via the
|
|
17
|
+
template manifest. Tarball sentinel 43→44. Deliberately NOT a delegated-bootstrap required asset
|
|
18
|
+
(the AD-044 Plan-3 no-gate decision holds).
|
|
19
|
+
|
|
7
20
|
## 2.0.0 — One-file-per-ADR store: the 3-tier decisions cascade retired (AD-051)
|
|
8
21
|
|
|
9
22
|
A **MAJOR** release (BREAKING; co-released with the workflow kit 1.42.0). The deployment-lineage
|
package/README.md
CHANGED
|
@@ -33,11 +33,12 @@ Open your agent inside a project and run the skill:
|
|
|
33
33
|
- **`/agent-workflow-memory`** — bootstrap a new or empty project. Asks the three setup
|
|
34
34
|
questions (visibility, conversational language, agent attribution), then writes `docs/ai/`,
|
|
35
35
|
`AGENTS.md`, the enforcement scripts + pre-commit hook, and stamps
|
|
36
|
-
`docs/ai/.memory-version`. The
|
|
37
|
-
**orchestration** pointers, filled later by the family composition root) are
|
|
36
|
+
`docs/ai/.memory-version`. The three pointer slots in `AGENTS.md` (the **methodology**,
|
|
37
|
+
**orchestration** and **autonomy** pointers, filled later by the family composition root) are
|
|
38
|
+
left **empty**.
|
|
38
39
|
- **`/agent-workflow-memory upgrade`** — migrate an existing deployment to the skill's current
|
|
39
40
|
version. Reads `docs/ai/.memory-version`, runs only newer migrations in semver order, and
|
|
40
|
-
**preserves** anything already in
|
|
41
|
+
**preserves** anything already in every pointer slot (extract-and-reinsert — it never
|
|
41
42
|
regenerates `AGENTS.md` wholesale).
|
|
42
43
|
|
|
43
44
|
## Stamps & lineage
|
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: '2.
|
|
6
|
+
version: '2.1.0'
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# agent-workflow-memory
|
|
@@ -20,12 +20,13 @@ manually).
|
|
|
20
20
|
|
|
21
21
|
This skill is the **memory layer** of the `agent-workflow` family. It **knows nobody else** in
|
|
22
22
|
the family. In particular it does **not** own the **workflow methodology** (plan → execute →
|
|
23
|
-
review vocabulary, lifecycle, `docs/plans/queue.md`, mandatory Cleanup, plan-then-execute) **
|
|
24
|
-
orchestration recipes** — those are injected into **
|
|
25
|
-
(`workflow:methodology` + `workflow:orchestration`
|
|
23
|
+
review vocabulary, lifecycle, `docs/plans/queue.md`, mandatory Cleanup, plan-then-execute), **the
|
|
24
|
+
orchestration recipes, or the autonomy-policy contract** — those are injected into **three delimited
|
|
25
|
+
pointer slots** in `AGENTS.md` (`workflow:methodology` + `workflow:orchestration` +
|
|
26
|
+
`workflow:autonomy`) by the family **composition root**, never by this
|
|
26
27
|
skill. (This substrate does not name or depend on any specific sibling — it only honours the slot
|
|
27
|
-
contract.) This skill only ever ships **
|
|
28
|
-
in them on upgrade.
|
|
28
|
+
contract.) This skill only ever ships **all three** slots **empty** and **preserves** whatever is
|
|
29
|
+
already in them on upgrade.
|
|
29
30
|
|
|
30
31
|
The substrate **artifacts** (this skill, the templates, the deployed `docs/ai/` files) stay in
|
|
31
32
|
their **source language** — for cross-agent and cross-team portability. That is separate from the
|
|
@@ -36,8 +37,8 @@ contents).
|
|
|
36
37
|
|
|
37
38
|
## Ownership table
|
|
38
39
|
|
|
39
|
-
What this substrate owns vs what it only points at. The methodology + orchestration
|
|
40
|
-
**
|
|
40
|
+
What this substrate owns vs what it only points at. The methodology + orchestration + autonomy
|
|
41
|
+
pointers are the **three empty slots** the composition root fills — never author that text here.
|
|
41
42
|
|
|
42
43
|
| Concern | Owner | In the deployed `AGENTS.md` |
|
|
43
44
|
|---|---|---|
|
|
@@ -47,9 +48,11 @@ What this substrate owns vs what it only points at. The methodology + orchestrat
|
|
|
47
48
|
| Deployment-lineage stamp | **memory** | `docs/ai/.memory-version` |
|
|
48
49
|
| Plan→Phase→Step vocabulary, lifecycle, `queue.md`, mandatory Cleanup | **methodology** (not this skill) | the empty `workflow:methodology` slot — filled by the composition root |
|
|
49
50
|
| Orchestration recipes (Solo / Reviewed / Council / Delegated) | **methodology engine** (not this skill) | the empty `workflow:orchestration` slot — filled by the composition root |
|
|
51
|
+
| Autonomy-policy read contract (`docs/ai/autonomy.json`) | **methodology engine** (not this skill) | the empty `workflow:autonomy` slot — filled by the composition root |
|
|
50
52
|
| Per-project recipe **CONFIG** (which recipe each activity/slot uses) | **memory** seeds an *editable default* | `docs/ai/orchestration.json` (agent-writable via the composition root's `set-recipe` writer, or hand-edited; the recipe **canon** + the slot **vocabulary** live in the engine / composition root, never here) |
|
|
51
53
|
| Per-project **gate declaration** (which verification commands must be green) | **memory** seeds an *editable default* | `docs/ai/gates.json` (hand-editable; an empty list as shipped — the project declares its own commands; the **runner** lives in the composition root, never here) |
|
|
52
54
|
| Per-project **verification profile** (optional; the fold-completeness language-independence contract) | **memory** seeds an *editable default* | `docs/ai/verification-profile.json` (hand-editable; the seeded default reproduces the composition root's default V8 + node:test behaviour — delete it for exactly that; declares coverage source / single-test format / optional SARIF path; the **runner** lives in the composition root, never here) |
|
|
55
|
+
| Per-project **autonomy policy** (red-lines + per-activity autonomy level) | **memory** seeds an *editable default* | `docs/ai/autonomy.json` (hand-editable, or agent-writable via the composition root's `set-autonomy` writer; the seed is SPARSE — the onboarding note only, defaults-equivalent, so deploying it never changes behavior; the policy **canon** + the render live in the engine / composition root, never here) |
|
|
53
56
|
|
|
54
57
|
---
|
|
55
58
|
|
|
@@ -97,19 +100,22 @@ bootstrapping over a live system, but the user makes the final call.
|
|
|
97
100
|
5. **Entry-point doc.** If `AGENTS.md` / `CLAUDE.md` already exist (recon), do **not**
|
|
98
101
|
overwrite — show the user and ask whether to merge or replace. Otherwise create `AGENTS.md`
|
|
99
102
|
from `${CLAUDE_SKILL_DIR}/references/templates/AGENTS.md` and symlink `CLAUDE.md -> AGENTS.md`
|
|
100
|
-
(`ln -s AGENTS.md CLAUDE.md`). **Leave
|
|
101
|
-
`workflow:orchestration`) exactly as shipped — empty.** Filling them is the
|
|
103
|
+
(`ln -s AGENTS.md CLAUDE.md`). **Leave ALL THREE pointer slots (`workflow:methodology` +
|
|
104
|
+
`workflow:orchestration` + `workflow:autonomy`) exactly as shipped — empty.** Filling them is the
|
|
105
|
+
composition root's job.
|
|
102
106
|
6. **Deploy `docs/ai/`.** Create the files + `pages/` + the seed `adr/` store from
|
|
103
107
|
`${CLAUDE_SKILL_DIR}/references/templates/` (every non-`AGENTS.md`, non-`adr-record.md` template —
|
|
104
108
|
the latter is a skill-home authoring reference, never deployed). This deploys the HOT ADR window
|
|
105
109
|
`docs/ai/decisions.md` **and** the seed navigator `docs/ai/adr/log.md` (its `adr/` subdir copies
|
|
106
|
-
in wholesale), plus the
|
|
110
|
+
in wholesale), plus the four seeded, **user-editable** strict-JSON configs:
|
|
107
111
|
`docs/ai/orchestration.json` — the per-project recipe defaults the composition root's `procedures`
|
|
108
112
|
advisor reads — `docs/ai/gates.json` — the project's gate declaration, an empty list to fill with
|
|
109
|
-
its own verification commands, consumed by the composition root's gate runner —
|
|
113
|
+
its own verification commands, consumed by the composition root's gate runner —
|
|
110
114
|
`docs/ai/verification-profile.json` — the OPTIONAL fold-completeness verification profile (the
|
|
111
115
|
language-independence contract; the seeded default reproduces the composition root's default V8 +
|
|
112
|
-
node:test behaviour, delete it for exactly that)
|
|
116
|
+
node:test behaviour, delete it for exactly that) — and `docs/ai/autonomy.json` — the per-project
|
|
117
|
+
autonomy policy, seeded SPARSE (the onboarding note only, defaults-equivalent — behavior changes
|
|
118
|
+
only when the user declares levels). Keep each `.md` file's frontmatter.
|
|
113
119
|
7. **Fill templates** per the table below.
|
|
114
120
|
8. **Install enforcement (Node projects).** Copy `${CLAUDE_SKILL_DIR}/references/scripts/*.mjs`
|
|
115
121
|
(+ `*.test.mjs`) into the project's `scripts/`. **No Node runtime** → skip this + the hook;
|
|
@@ -136,7 +142,7 @@ bootstrapping over a live system, but the user makes the final call.
|
|
|
136
142
|
> upgrade**, do the write steps (bootstrap 1–10 / upgrade 1–7: write `docs/ai/` + `AGENTS.md` +
|
|
137
143
|
> `.memory-version`, **including seeding / stamp-independently ensuring `docs/ai/orchestration.json`**)
|
|
138
144
|
> but **do NOT** run **any** commit gate and **do NOT** ask to commit — the
|
|
139
|
-
> composition root owns the **single** commit gate, raised after it injects the
|
|
145
|
+
> composition root owns the **single** commit gate, raised after it injects the three pointer slots.
|
|
140
146
|
> The three setup answers and the target dir are passed in by the composition root; you perform no
|
|
141
147
|
> commit and no slot injection. **Standalone** invocation keeps its own commit gate (bootstrap step
|
|
142
148
|
> 11 / upgrade step 7).
|
|
@@ -178,8 +184,9 @@ Fill strategy:
|
|
|
178
184
|
**untracked AND not ignored** → **AMBIGUOUS** → **ASK** the user before writing. This visibility check
|
|
179
185
|
runs on **every** in-range upgrade, even at head — it is not gated by the stamp delta, but it is gated
|
|
180
186
|
**behind** the never-downgrade STOP above. **Also stamp-independent (same gate, before the equal-head
|
|
181
|
-
short-circuit): ensure the
|
|
182
|
-
`docs/ai/gates.json`,
|
|
187
|
+
short-circuit): ensure the FOUR seeded `.json` configs** — for `docs/ai/orchestration.json`,
|
|
188
|
+
`docs/ai/gates.json`, `docs/ai/verification-profile.json`, AND `docs/ai/autonomy.json`,
|
|
189
|
+
**create the file from its
|
|
183
190
|
`${CLAUDE_SKILL_DIR}/references/templates/` template if missing**, **preserve it byte-for-byte
|
|
184
191
|
if it already exists** (a user may have edited it; never clobber it). The shipped
|
|
185
192
|
`orchestration.json` template's `_README` already frames that config as agent-writable (set it
|
|
@@ -187,7 +194,9 @@ Fill strategy:
|
|
|
187
194
|
declaration (what to verify — consumed by the composition root's gate runner);
|
|
188
195
|
`verification-profile.json` is the OPTIONAL fold-completeness verification profile — the seeded
|
|
189
196
|
default reproduces the composition root's default V8 + node:test behaviour, so a project deletes
|
|
190
|
-
it to fall back to exactly that, or edits it for another language/runner.
|
|
197
|
+
it to fall back to exactly that, or edits it for another language/runner; `autonomy.json` is the
|
|
198
|
+
per-project autonomy policy, seeded SPARSE (the onboarding note only, defaults-equivalent —
|
|
199
|
+
agent-writable via the composition root's `set-autonomy` writer, hand-editing supported). (Refreshing the
|
|
191
200
|
orchestration `_README` note in place on an existing file is the **composition root's** job on
|
|
192
201
|
its own reconcile — this substrate is standalone and only seeds-or-preserves; it owns no
|
|
193
202
|
cross-package refresh helper. The gates declaration gets no note-refresh at all — authored
|
|
@@ -232,12 +241,13 @@ Fill strategy:
|
|
|
232
241
|
(`migrations/1.1.0-communication-language.md`); pre-1.2.0 with no *Attribution* block, ask +
|
|
233
242
|
insert defaulting to `off` (`migrations/1.2.0-agent-attribution.md`). (An answer already
|
|
234
243
|
collected by the step-4 batched prompt is carried in — never re-asked here.)
|
|
235
|
-
6. **Preserve
|
|
236
|
-
`workflow:orchestration` markers, **never regenerate the file
|
|
237
|
-
between each pair and reinsert them unchanged. If a pair is
|
|
238
|
-
gracefully **no-op** on that slot (adding a slot to
|
|
239
|
-
root's reconcile, not this substrate's job). On any
|
|
240
|
-
nested, or duplicate pair), **no-op with an error** —
|
|
244
|
+
6. **Preserve ALL pointer slots.** If `AGENTS.md` has the `workflow:methodology`,
|
|
245
|
+
`workflow:orchestration` and/or `workflow:autonomy` markers, **never regenerate the file
|
|
246
|
+
wholesale** — extract any bytes between each pair and reinsert them unchanged. If a pair is
|
|
247
|
+
absent (a legacy `AGENTS.md`), gracefully **no-op** on that slot (adding a slot to
|
|
248
|
+
already-deployed files is the composition root's reconcile, not this substrate's job). On any
|
|
249
|
+
malformed marker state (single, reversed, nested, or duplicate pair), **no-op with an error** —
|
|
250
|
+
never edit.
|
|
241
251
|
7. **Re-stamp** `docs/ai/.memory-version` to the lineage head (atomic write — mechanics unchanged).
|
|
242
252
|
Report changes **in plain human terms** (which parts of the deployment are now different);
|
|
243
253
|
**omit the raw structure number**, and do not recite the two-axes note here (it belongs to
|
|
@@ -279,9 +289,9 @@ memory substrate has none, so it relies on the STOP + the explicit ask — never
|
|
|
279
289
|
- **Stamp = lineage head, not package version.** `.memory-version` carries the **deployment-lineage
|
|
280
290
|
head** (`2.0.0`, the shared `agent-workflow` lineage) — a **separate axis** from this package's npm
|
|
281
291
|
version (the two may even coincide by accident). They move independently.
|
|
282
|
-
- **
|
|
283
|
-
text into them; on upgrade, preserve their content byte-for-byte. The
|
|
284
|
-
writer.
|
|
292
|
+
- **All three pointer slots ship empty and stay the user's.** Never author methodology,
|
|
293
|
+
orchestration or autonomy text into them; on upgrade, preserve their content byte-for-byte. The
|
|
294
|
+
composition root is their only writer.
|
|
285
295
|
- **The `Co-Authored-By` trailer is added by the harness, not by prose.** When attribution is
|
|
286
296
|
`off` + Claude Code, also set `"includeCoAuthoredBy": false` in `.claude/settings.json`.
|
|
287
297
|
- **Hidden mode is project-local, never machine-global.** Memory's hide writes to the repo's
|
|
@@ -307,10 +317,10 @@ The three setup choices each have a full contract in
|
|
|
307
317
|
## References
|
|
308
318
|
|
|
309
319
|
- [`references/contracts.md`](references/contracts.md) — the three setup contracts in full.
|
|
310
|
-
- [`references/templates/`](references/templates/) — stack-agnostic `AGENTS.md` (with the
|
|
311
|
-
pointer slots — methodology + orchestration), `agent_rules.md`, the seeded user-editable
|
|
312
|
-
`orchestration.json`
|
|
313
|
-
navigator, and all `docs/ai/` files to deploy.
|
|
320
|
+
- [`references/templates/`](references/templates/) — stack-agnostic `AGENTS.md` (with the three empty
|
|
321
|
+
pointer slots — methodology + orchestration + autonomy), `agent_rules.md`, the seeded user-editable
|
|
322
|
+
`orchestration.json` + `autonomy.json` configs, the `adr-record.md` ADR authoring reference + the
|
|
323
|
+
seed `adr/log.md` navigator, and all `docs/ai/` files to deploy.
|
|
314
324
|
- [`references/scripts/`](references/scripts/) — the Node enforcement scripts (caps + staleness +
|
|
315
325
|
index-freshness gate, one-file-per-ADR archive, hook installer) and their unit tests.
|
|
316
326
|
- [`scripts/stamp-takeover.mjs`](scripts/stamp-takeover.mjs) — the upgrade-time lineage state
|
package/capability.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sabaiway/agent-workflow-memory",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.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",
|
|
@@ -57,6 +57,8 @@ Start-of-session, during-work, and task-completion procedures live in [`docs/ai/
|
|
|
57
57
|
<!-- workflow:methodology:end -->
|
|
58
58
|
<!-- workflow:orchestration:start -->
|
|
59
59
|
<!-- workflow:orchestration:end -->
|
|
60
|
+
<!-- workflow:autonomy:start -->
|
|
61
|
+
<!-- workflow:autonomy:end -->
|
|
60
62
|
|
|
61
63
|
---
|
|
62
64
|
|
|
@@ -68,7 +70,6 @@ Start-of-session, during-work, and task-completion procedures live in [`docs/ai/
|
|
|
68
70
|
| No `any` / no unsafe casts | Linter / type-checker |
|
|
69
71
|
| Functional style (no mutation in app code) | Linter |
|
|
70
72
|
| Interactive elements semantic (button/link, not div+onClick) | Linter / a11y |
|
|
71
|
-
| No hardcoded colors — design tokens only | Code review |
|
|
72
73
|
| No business logic in components → hooks/services | Architecture review |
|
|
73
74
|
| No changes without tests (TDD) | Required |
|
|
74
75
|
| Check page docs before changes; update them after | Process |
|