@sabaiway/agent-workflow-engine 1.10.0 → 1.12.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,41 @@ All notable changes to the methodology engine. Versions are this **package's** n
4
4
  they are distinct from the **deployment-lineage** stamp written into a project's `docs/ai/`
5
5
  (which tracks the shared `agent-workflow` lineage, head `1.3.0`).
6
6
 
7
+ ## 1.12.0 — Plans carry a home for review-settled decisions (§7 optional `## Decisions (locked)`)
8
+
9
+ A **feature** release (canon text + its tests; installer unchanged; deployment-lineage head stays
10
+ `1.3.0` — no migration). Decisions a plan's review loop SETTLED (fixtures, contracts, boundary
11
+ clauses) now have a canonical, machine-extractable home:
12
+
13
+ - **`references/planning.md` §7** — the plan-document structure gains one optional row after
14
+ `## Approach`: `## Decisions (locked) ← optional: settled, binding decisions the executor must
15
+ not re-litigate`. The heading string is load-bearing: the kit's grounded-review facts assembler
16
+ (`grounding.mjs`, AD-038) extracts the section by exact-heading match.
17
+ - **`references/planning.md` §8** — one checklist bullet: decisions the review loop settled live
18
+ under the optional `## Decisions (locked)` heading — binding for the executor, never re-litigated
19
+ at Execute.
20
+ - **`test/planning-canon.test.mjs`** — pins the exact §7 row (heading + optional + executor-binding
21
+ wording, positioned after `## Approach`) and the §8 mention.
22
+
23
+ ## 1.11.0 — Plans carry only checked syntax (the §9 checked-vs-unchecked boundary)
24
+
25
+ A **feature** release (canon text + its tests; installer unchanged). The §9 "No code-mechanics in
26
+ the plan" rule now names a hard discriminator for what syntax plan prose may carry:
27
+
28
+ - **`references/planning.md` §9 (B5)** — **checked syntax**: a Step's exact paths + commands stay
29
+ REQUIRED (§7/§8) and count as checked because the plan's own Verification runs them against an
30
+ explicit expected outcome or gate — merely running without asserting checks nothing; the only
31
+ other syntax a plan may carry is a literal fixture/schema fragment a named test copies or
32
+ validates. **Un-run, logic-bearing syntax** — control-flow, a regex, a glob, a grammar, an
33
+ algorithm body, a mini-DSL, anything that transforms data or evaluates a condition — never lives
34
+ in plan prose, however plausible or shell-verified it looks ("I ran it in my shell" is not a
35
+ checker): a fold or draft that wants one writes the red→green test-as-spec at Execute instead.
36
+ - **`references/procedures.md` plan-authoring step 5** — the terse mirror of the same boundary at
37
+ the point of use (the kit advisor prints this section verbatim).
38
+ - **Lockstep tests** — `planning-canon.test.mjs` (§9 it-block) and `procedures-canon.test.mjs`
39
+ (Set-1) pin the two new tokens `checked syntax` + `logic-bearing`; non-vacuity proven by an
40
+ injected red→green in both guards.
41
+
7
42
  ## 1.10.0 — Cost-lane vocabulary in the orchestration canon (§5)
8
43
 
9
44
  A **feature** release (canon text + its tests; installer unchanged). Work now has named **cost
package/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: agent-workflow-engine
3
3
  description: Canonical home of the agent-workflow planning methodology — the Plan→Phase→Step→Substep vocabulary, plan lifecycle, queue.md series index, mandatory Cleanup phase, the bounded methodology slot fragment, the orchestration-recipe vocabulary (Solo / Reviewed / Council / Delegated), and the activity-procedures canon (plan-authoring / plan-execution, with typed recipe slots). A published, installable npm package (available:true) that *provides* the methodology text; it mutates nothing. The composition root (agent-workflow-kit) reads this canon LIVE from the installed engine and injects the bounded slots from it — one source of truth, no bundled mirror; `npx @sabaiway/agent-workflow-kit@latest init` installs the engine.
4
4
  disable-model-invocation: true
5
5
  metadata:
6
- version: '1.10.0'
6
+ version: '1.12.0'
7
7
  ---
8
8
 
9
9
  # agent-workflow-engine
package/capability.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "schema": 1,
4
4
  "name": "agent-workflow-engine",
5
5
  "kind": "methodology-engine",
6
- "version": "1.10.0",
6
+ "version": "1.12.0",
7
7
  "available": true,
8
8
  "provides": ["plan"],
9
9
  "roles": {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sabaiway/agent-workflow-engine",
3
- "version": "1.10.0",
3
+ "version": "1.12.0",
4
4
  "description": "Canonical home of the agent-workflow planning methodology — the Plan→Phase→Step vocabulary, plan lifecycle, queue.md series index, and mandatory Cleanup phase, consumed by the kit (composition root). The methodology engine of the agent-workflow family.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -89,6 +89,7 @@ A harness "approved — you can now start coding" prompt (e.g. Claude Code's **E
89
89
 
90
90
  ## Context ← why this Plan exists, current state, why now (reads cold)
91
91
  ## Approach ← chosen design + an explicit "What we are NOT doing"
92
+ ## Decisions (locked) ← optional: settled, binding decisions the executor must not re-litigate
92
93
  ## Phase 1: <name>
93
94
  ### 1.1. <step> ← exact paths + commands
94
95
  ## Phase 2: <name>
@@ -108,6 +109,7 @@ A harness "approved — you can now start coding" prompt (e.g. Claude Code's **E
108
109
  - If part of a series: `queue.md` is initialised / updated (§3).
109
110
  - No `git add <plan>` and no "commit the plan" wording in the final report.
110
111
  - Every code-touching decision cites the `file:line` it is grounded in; the plan stays at intent / invariant / acceptance altitude, leaving fine code-mechanics to Execute (§9).
112
+ - Decisions the review loop SETTLED (fixtures, contracts, boundary clauses) live under the optional `## Decisions (locked)` heading (§7) — binding for the executor, never re-litigated at Execute.
111
113
 
112
114
  ## 9. Right-altitude & code-grounded folds
113
115
 
@@ -115,7 +117,7 @@ These disciplines keep a plan converging instead of churning, and keep a fold or
115
117
 
116
118
  **Right altitude.** A plan pins *intent + architecture + invariants + acceptance criteria* — the named tests that must stay green and the new tests that must pass. It does NOT spell out fine code-mechanics in prose: those are resolved in code at Execute (against the real files + the per-Step review + the gates), where prose cannot diverge from reality. Most "blockers" that resurface across review rounds are code-level details that never belonged in a prose plan.
117
119
 
118
- **No code-mechanics in the plan.** A Step still carries its exact paths + commands (§7, §8); the ceiling is on *fold-bred* detail a review fold must not push fine code-mechanics (`cd`, an env default, a flag) into prose, where they diverge from reality. A fold that needs a mechanic is the trigger to write the test (test-as-spec) instead.
120
+ **No code-mechanics in the plan.** A Step still carries its exact paths + commands (§7, §8) — checked syntax: the plan's own Verification runs them against an explicit expected outcome or gate, and merely running without asserting checks nothing; the only other syntax a plan may carry is a literal fixture/schema fragment a named test copies or validates. Un-run, logic-bearing syntax — control-flow, a regex, a glob, a grammar, an algorithm body, a mini-DSL, anything that transforms data or evaluates a condition — never lives in plan prose, however plausible or shell-verified it looks ("I ran it in my shell" is not a checker): a fold or draft that wants one is the trigger to write the red→green test-as-spec at Execute instead.
119
121
 
120
122
  **Fold by code, not prose.** Before folding any code-touching finding into the plan, READ the cited `file:line`; the fold cites it. A fold grounded in prose alone drifts from the code and seeds the next bug.
121
123
 
@@ -57,8 +57,10 @@ Produce a self-contained, cold-readable plan, reviewed to the configured depth b
57
57
  **0 blockers + 0 majors** from every backend the recipe names (the convergence bar,
58
58
  [`planning.md`](planning.md) §9); folding ≠ convergence — re-review after folding. Fold a
59
59
  code-touching finding **test-as-spec** (a named acceptance test, not a prose paragraph); a fold must
60
- add **no code-mechanics** to the plan — a Step still carries its own exact paths + commands, but a
61
- fold needing a mechanic is the trigger to name the test instead. Council runs every named backend
60
+ add **no code-mechanics** to the plan — a Step still carries its own exact paths + commands
61
+ (checked syntax: its Verification asserts an expected outcome), but un-run, logic-bearing syntax
62
+ (control-flow, a regex, a glob, a mini-DSL) never enters plan prose — a fold needing one is the
63
+ trigger to name the test instead. Council runs every named backend
62
64
  **every round** (recipe fidelity,
63
65
  [`orchestration.md`](orchestration.md) §4) — never quietly drop a ready backend. Cap architecture
64
66
  plan-review at **≤2 rounds**, stopping at the **crossover** where **backend divergence** (one backend