@sabaiway/agent-workflow-engine 1.9.0 → 1.11.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,44 @@ 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.11.0 — Plans carry only checked syntax (the §9 checked-vs-unchecked boundary)
8
+
9
+ A **feature** release (canon text + its tests; installer unchanged). The §9 "No code-mechanics in
10
+ the plan" rule now names a hard discriminator for what syntax plan prose may carry:
11
+
12
+ - **`references/planning.md` §9 (B5)** — **checked syntax**: a Step's exact paths + commands stay
13
+ REQUIRED (§7/§8) and count as checked because the plan's own Verification runs them against an
14
+ explicit expected outcome or gate — merely running without asserting checks nothing; the only
15
+ other syntax a plan may carry is a literal fixture/schema fragment a named test copies or
16
+ validates. **Un-run, logic-bearing syntax** — control-flow, a regex, a glob, a grammar, an
17
+ algorithm body, a mini-DSL, anything that transforms data or evaluates a condition — never lives
18
+ in plan prose, however plausible or shell-verified it looks ("I ran it in my shell" is not a
19
+ checker): a fold or draft that wants one writes the red→green test-as-spec at Execute instead.
20
+ - **`references/procedures.md` plan-authoring step 5** — the terse mirror of the same boundary at
21
+ the point of use (the kit advisor prints this section verbatim).
22
+ - **Lockstep tests** — `planning-canon.test.mjs` (§9 it-block) and `procedures-canon.test.mjs`
23
+ (Set-1) pin the two new tokens `checked syntax` + `logic-bearing`; non-vacuity proven by an
24
+ injected red→green in both guards.
25
+
26
+ ## 1.10.0 — Cost-lane vocabulary in the orchestration canon (§5)
27
+
28
+ A **feature** release (canon text + its tests; installer unchanged). Work now has named **cost
29
+ lanes**, and the canon states who runs what:
30
+
31
+ - **`orchestration.md` §5 defines the lanes** — **L0** deterministic script · **L1** cheap
32
+ subagent (small model, low effort, read-only tools) · **L2** subscription bridge · **L3**
33
+ frontier — plus the two routing rules: route every step to the **cheapest adequate executor**,
34
+ and **a step with no named guardrail does not move down** a lane. The **red lines never move
35
+ down**: council review models · real code · ADR/plan/handover/changelog-entry wording ·
36
+ persuasive copy · go/no-go · the maintainer approval asks. Asymmetric pairing (cheap drafts,
37
+ a deterministic tool or the frontier verifies) and the incident-repair default (salvage
38
+ recorded state first, never frontier re-derivation) are canon now.
39
+ - **Lockstep tests** — `test/orchestration-canon.test.mjs` pins the four lane tokens, both
40
+ routing rules, the red-line list, and that §5 stays generic (the L0 examples name the family's
41
+ own surfaces — the gate runner over `docs/ai/gates.json`, the rotation checks — never a
42
+ project's publish mechanics); `test/procedures-canon.test.mjs` pins the same canon tokens the
43
+ composition root's advisor paraphrases, so the two cannot silently drift apart.
44
+
7
45
  ## 1.9.0 — Honest installer messaging: the verb states what was observed, the note states facts
8
46
 
9
47
  A **feature** release (installer output contract only; the canon text is unchanged). `bin/install.mjs`
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.9.0'
6
+ version: '1.11.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.9.0",
6
+ "version": "1.11.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.9.0",
3
+ "version": "1.11.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",
@@ -101,6 +101,41 @@ already accepted: run both, every round, until a round comes back clean — or u
101
101
  marks the crossover (§4), resolved at altitude rather than by exhausting the strictest backend. Spending
102
102
  quota to line-by-line re-review mechanics past that crossover is the over-run the divergence stop prevents.
103
103
 
104
+ ### Cost lanes — route every step to the cheapest adequate executor
105
+
106
+ Model quota is one axis of a wider guard: work has **lanes**, and every step routes to the
107
+ **cheapest adequate executor**:
108
+
109
+ - **L0 — deterministic script.** Anything rule-driven and verifiable by exit code: the batched
110
+ project gate matrix (the family's generic gate runner over a project-declared
111
+ `docs/ai/gates.json`), the docs cap/index checks, the rotation `--check` scripts
112
+ (changelog / issues / decisions). If a step CAN be a script, it IS a script — a model
113
+ re-reading what an exit code already proves is the canonical waste.
114
+ - **L1 — cheap subagent** (a small model at low effort, bounded read-only tools): mechanical
115
+ extraction at scale — inventories, fact sweeps, changelog fact-skeletons, digesting long
116
+ failing output. Extraction and drafting ONLY; the orchestrator verifies the output against
117
+ sources and owns every conclusion.
118
+ - **L2 — subscription bridge** (`codex` / `agy`): review and bounded delegated execution,
119
+ governed by the recipes above; real review work stays on frontier bridge models
120
+ (quality-first — economy on this lane comes from precomputed context, never a weaker model).
121
+ - **L3 — frontier main lane**: judgment — plans, folds, syntheses, ADR / handover /
122
+ changelog-entry wording, user-facing copy, go/no-go, real code.
123
+
124
+ Two rules bound the routing. **A step with no named guardrail does not move down a lane** — a
125
+ deterministic checker, a pinned test, or a verifying orchestrator must catch a cheaper executor's
126
+ error, otherwise the step stays where it is. And the **red lines never move down**: council
127
+ reviews on frontier bridge models · real code implementation · ADR / plan / handover /
128
+ changelog-entry wording · persuasive user-facing copy · go/no-go judgment · the maintainer's
129
+ approval asks (commit / push / publish — cost tiering never touches approval gates).
130
+
131
+ **Asymmetric pairing** is the default composition: the cheap lane drafts, a deterministic tool or
132
+ the frontier verifies and signs — never the reverse.
133
+
134
+ **Incident repair (your own error) defaults down-lane:** salvage recorded state first (journals,
135
+ transcripts, git), replay it deterministically (L0), hand the leftovers to L1 in one batch —
136
+ frontier re-derivation of recoverable state is the expensive failure mode, and the maintainer
137
+ never pays frontier tokens for the agent's own mistake.
138
+
104
139
  A **standing health advisory** applies to `agy`: the Antigravity service can **stall on substantive
105
140
  prompts** (a long hang that returns nothing — an external service issue, not a setup problem;
106
141
  tracked as **Issue-001** in the kit's known issues). It is **invisible to file-presence detection**,
@@ -115,7 +115,7 @@ These disciplines keep a plan converging instead of churning, and keep a fold or
115
115
 
116
116
  **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
117
 
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.
118
+ **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
119
 
120
120
  **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
121
 
@@ -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