@sabaiway/agent-workflow-engine 1.14.1 → 1.15.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,20 @@ 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 `2.0.0`).
6
6
 
7
+ ## 1.15.0 — Canon autonomy prose + the sandbox cost-lane (AD-044 Plan 4)
8
+
9
+ A **feature** release (ships with kit 1.45.0 / memory 2.1.0). This publish delivers the Plan-3
10
+ `autonomy-slot.md` fragment to the install base — the third AGENTS.md `workflow:autonomy` slot
11
+ finally fills everywhere, so the kit's `ENGINE_FRAGMENT_CAVEATS` soft-skip residual retires on
12
+ refresh. Canon additions, appended without renumbering: orchestration.md trailing **§7
13
+ Checkpoint-bounded autonomy** (sandbox-as-floor, red-lines always-ask, informational for delegated
14
+ backends — enforcement stays the OS sandbox + the orchestrator); planning.md trailing **§10**
15
+ (autonomy at plan/execution checkpoints); procedures.md gains the read-at-start clause beside its
16
+ preamble. orchestration.md §5 gains the sandbox cost-lane token (sandbox-safe L0 surfaces ·
17
+ genuinely-unsandboxed bridge wrappers · command-shape-dependent npm-cache commands; move only the
18
+ failing command out of the sandbox, batch consecutive unsandboxed calls) — parity-pinned on both
19
+ the engine and kit sides.
20
+
7
21
  ## 1.14.1 — npm 12 tarball-guard compat + the lineage-head preamble correction
8
22
 
9
23
  A **patch** release (no canon content change; co-released with memory 2.0.0 + kit 1.42.0 — the
package/README.md CHANGED
@@ -51,6 +51,10 @@ the canonical methodology reference on disk:
51
51
  - [`references/orchestration-slot.md`](references/orchestration-slot.md) — the **bounded** one-line
52
52
  orchestration fragment the composition root injects into a deployed `AGENTS.md`, routing to the
53
53
  in-project recipes surface.
54
+ - [`references/autonomy-slot.md`](references/autonomy-slot.md) — the **bounded** one-line autonomy
55
+ fragment the composition root injects into a deployed `AGENTS.md`: the cross-agent read contract
56
+ for `docs/ai/autonomy.json` (read at session start; the canonical default floor when absent; STOP
57
+ on malformed), routing to the in-project `set-autonomy` / `autonomy-doctor` surfaces.
54
58
  - [`references/procedures.md`](references/procedures.md) — the canonical **activity-procedures** canon:
55
59
  the named activities (`plan-authoring`, `plan-execution`) as ordered steps with typed recipe slots,
56
60
  read live and rendered by the read-only `/agent-workflow-kit procedures <activity>`.
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.14.1'
6
+ version: '1.15.0'
7
7
  ---
8
8
 
9
9
  # agent-workflow-engine
@@ -34,6 +34,14 @@ slot fill is needed but the engine is absent, the kit's reconcile **fails loudly
34
34
  orchestration fragment the composition root injects into a deployed `AGENTS.md`, between the
35
35
  `<!-- workflow:orchestration:start -->` / `<!-- workflow:orchestration:end -->` markers. It names the
36
36
  four recipes and routes to `/agent-workflow-kit recipes`, never to this engine-internal reference.
37
+ - [`references/autonomy-slot.md`](references/autonomy-slot.md) — the **bounded** one-line autonomy
38
+ fragment the composition root injects into a deployed `AGENTS.md`, between the
39
+ `<!-- workflow:autonomy:start -->` / `<!-- workflow:autonomy:end -->` markers. It carries the
40
+ cross-agent READ CONTRACT for the per-project autonomy policy (`docs/ai/autonomy.json`): read at
41
+ session start, the canonical default floor when the file is absent, STOP on malformed — plus the
42
+ honesty note that the policy is informational for delegated backends (enforcement stays the OS
43
+ sandbox + the orchestrator). It routes to the kit's `set-autonomy` / `autonomy-doctor` surfaces,
44
+ never to any engine-internal reference.
37
45
  - [`references/procedures.md`](references/procedures.md) — the canonical **activity-procedures** canon:
38
46
  the ordered steps of the named activities (`plan-authoring`, `plan-execution`) with **typed recipe
39
47
  slots** that bind to the orchestration recipes, composing with `planning.md` without restating it. It
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.14.1",
6
+ "version": "1.15.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.14.1",
3
+ "version": "1.15.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",
@@ -0,0 +1 @@
1
+ > **Autonomy policy** — checkpoint-bounded autonomy, declared per project in `docs/ai/autonomy.json` (red-lines + a per-activity level: `sandbox` or `prompt`). Read it at session start. File absent → the computed defaults ARE the policy: commit/push/publish `ask`; network/credentials/fs-outside-repo `deny`; an absent activity floors at `prompt`. Malformed → STOP loudly, never guess. Set it with `/agent-workflow-kit set-autonomy` (previews first; hand-edit stays supported); provision the OS sandbox with `/agent-workflow-kit autonomy-doctor` (consent-gated). For delegated backends this policy is informational — enforcement stays the OS sandbox + the orchestrator process.
@@ -131,6 +131,14 @@ approval asks (commit / push / publish — cost tiering never touches approval g
131
131
  **Asymmetric pairing** is the default composition: the cheap lane drafts, a deterministic tool or
132
132
  the frontier verifies and signs — never the reverse.
133
133
 
134
+ **Sandbox lanes.** Under an OS sandbox the lanes split once more by **surface class**: the L0
135
+ surfaces are **sandbox-safe** (gate/ledger/state/fold checks, git reads, plain no-network tests);
136
+ the bridge wrappers are **genuinely unsandboxed** (they need network); npm-cache-touching commands
137
+ are **COMMAND-SHAPE dependent** — first try the sandbox-safe shape (cache under `$TMPDIR`,
138
+ offline/notifier off) before moving anything out. Two driving rules: **move ONLY the failing
139
+ command out of the sandbox, never its class**, and **BATCH consecutive unsandboxed calls** — a
140
+ blanket unsandbox after one failure is the canonical over-reaction.
141
+
134
142
  **Incident repair (your own error) defaults down-lane:** salvage recorded state first (journals,
135
143
  transcripts, git), replay it deterministically (L0), hand the leftovers to L1 in one batch —
136
144
  frontier re-derivation of recoverable state is the expensive failure mode, and the maintainer
@@ -156,3 +164,20 @@ default; it **never executes** a recipe and **never runs a subscription CLI**. T
156
164
  executes the chosen recipe through the bridge skills, accepts or rejects every edit, runs the
157
165
  verification gate, and makes the **one** commit — exactly as the plan lifecycle (`planning.md`)
158
166
  requires.
167
+
168
+ ## 7. Checkpoint-bounded autonomy (the policy every recipe runs under)
169
+
170
+ Autonomy is **checkpoint-bounded**: between human checkpoints the orchestrator runs as autonomously
171
+ as the project declares, and the checkpoints themselves never move. The policy is declared per
172
+ project in `docs/ai/autonomy.json` — **red-lines** (always in force: `commit`/`push`/`publish` ask;
173
+ `network`/`credentials`/`fs_outside_repo` deny) plus a **per-activity autonomy level**: `sandbox`
174
+ (the OS sandbox confines and auto-allows confined commands — work runs to the next checkpoint
175
+ without per-command prompts) or `prompt` (every non-allowlisted command prompts; the sandbox, where
176
+ enabled, still confines). **Read it at session start.** An **absent** file means the computed
177
+ defaults ARE the policy (every activity floors at `prompt`); a **malformed** file is a loud STOP —
178
+ never guess around it. The **sandbox is the floor, not the permission**: red-line commands keep
179
+ their asks at every level, and cost tiering (§5) never touches an approval gate. For **delegated
180
+ backends the policy is informational** — enforcement stays the OS sandbox plus the orchestrator
181
+ process (a backend never gains autonomy the orchestrator itself does not have). Declare and edit
182
+ the policy with `/agent-workflow-kit set-autonomy` (previews first; hand-editing stays supported);
183
+ render it into the harness settings with the kit's velocity `--autonomy` mode.
@@ -134,3 +134,18 @@ These disciplines keep a plan converging instead of churning, and keep a fold or
134
134
  **Convergence heuristic.** When a review round keeps finding code-mechanism issues on a stable architecture, STOP refining prose — either raise the spec to invariant + acceptance altitude, or hand the mechanics to Execute. Do not re-litigate code mechanics in the plan.
135
135
 
136
136
  **Computed instrument (plan-execution).** The **review-ledger** computes the crossover-stop for the plan-execution (code) loop: each round and each triage classification — **fixable-bug** (a fold pinned by a red→green test) / **inherent-layer-residual** (raised to an acceptance criterion) / **escalate** (a maintainer decision) — is recorded, and the stop decision is READ from the ledger, never remembered; its `--check` is the loop's gate (the exit contract lives in the tool's own header — point, don't restate). The same per-round tally + classification discipline governs plan-authoring review; the ledger itself is plan-execution-scoped.
137
+
138
+ ## 10. Autonomy at the plan checkpoints
139
+
140
+ The plan lifecycle's human checkpoints — plan **approval** (plan-authoring ends there), each
141
+ **gated commit** (plan-execution commits per Step), and any push/publish ask — are **fixed points
142
+ the autonomy policy never moves** (`orchestration.md` §7). What the per-activity level changes is
143
+ the texture *between* them: under `sandbox` autonomy the executor runs a whole working stretch —
144
+ edits, tests, gates, review dispatches — to the next checkpoint without per-command prompts (the
145
+ OS sandbox confines the blast radius); under `prompt` it asks along the way. **Read the policy at
146
+ session start** (`docs/ai/autonomy.json`; absent → the computed defaults ARE the policy; malformed
147
+ → STOP loudly) alongside the standing recipe preference, and state the effective level in the
148
+ session's opening summary so the human knows which texture to expect. A plan itself never needs to
149
+ restate the policy — it is per-project configuration, not plan content; a plan names an autonomy
150
+ requirement only when a Step genuinely departs from the declared level (e.g. a consent-gated
151
+ privileged install), and that departure is always an explicit ask, never a silent widening.
@@ -28,6 +28,11 @@ single project's stages.
28
28
  project's standing recipe preference in `docs/ai/orchestration.json` (set it in plain language with
29
29
  `/agent-workflow-kit set-recipe` — it previews then writes; hand-editing the file stays supported); the
30
30
  kit resolves it against backend readiness. Do not re-ask each session what is already configured there.
31
+ Read the **autonomy policy** the same way and at the same moment: `docs/ai/autonomy.json` declares the
32
+ red-lines and the per-activity autonomy level (absent → the computed defaults ARE the policy; malformed
33
+ → STOP loudly, never guess; set it with `/agent-workflow-kit set-autonomy`) — the per-activity
34
+ procedures below run UNDER that policy (`orchestration.md` §7), and the kit's `procedures` advisor
35
+ prints the resolved level beside each activity's recipes.
31
36
 
32
37
  **Communication contract.** Every user-facing message delivers the artifact **inline** — the plan, the
33
38
  next-session prompt, the diff, the value asked for — never a bare pointer ("see §X / open the file") as a