@sabaiway/agent-workflow-engine 1.1.0 → 1.3.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,51 @@ 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.3.0 — Activity procedures: named, recipe-aware playbooks
8
+
9
+ The engine now also owns the **activity-procedures** canon — *how to perform* a named workflow
10
+ activity, as ordered steps with **typed recipe slots** that bind to the orchestration recipes (Solo /
11
+ Reviewed / Council / Delegated). Two v1 activities: **`plan-authoring`** (slot: `review`) and
12
+ **`plan-execution`** (slots: `execute`, `review`). The canon composes with `planning.md` (it binds to
13
+ the §7 structure, §8 self-review, and §4 Cleanup without restating them) and stays **generic** — it
14
+ bakes in no single project's stages, deferring any project-declared release/publishing to that
15
+ project's `workflow:methodology` slot. The kit reads this canon **live** and surfaces a read-only
16
+ `/agent-workflow-kit procedures <activity>` that renders the steps + the resolved effective recipe per
17
+ slot (from `docs/ai/orchestration.json` + backend readiness).
18
+
19
+ ### Added
20
+ - **`references/procedures.md`** — the canonical activity-procedures canon: `plan-authoring` +
21
+ `plan-execution` as `## <activity>` sections, each opening with a machine-parseable `Slots:` line
22
+ (the only line the kit parses, drift-guarded against its activity table). It carries the
23
+ load-bearing "Delegated → dispatch execution first" rule and restates the commit contract as a
24
+ commit-BOUNDARY rule (when an activity has a commit boundary the orchestrator owns that commit; a
25
+ backend never commits — `plan-authoring` ends at approval with no commit, `plan-execution` commits
26
+ per Step).
27
+
28
+ The deployment-lineage head stays **`1.3.0`** (no `docs/ai` structural change; no migration file). The
29
+ npm package version is a separate axis.
30
+
31
+ ## 1.2.0 — Orchestration recipes: a named vocabulary for composing the bridges
32
+
33
+ The engine now also owns the **orchestration-recipe** canon — the named patterns an agent uses to
34
+ compose the optional execution-backends (the `codex` / `agy` bridges) into `plan → execute → review`.
35
+ Four recipes, built over the bridges' role vocabulary: **Solo** (no backend — the floor), **Reviewed**
36
+ (one backend reviews), **Council** (both review, you synthesize), **Delegated** (a backend executes a
37
+ bounded sub-task). The orchestrator always owns the decisions and the single commit; a backend is
38
+ advisory or delegated, never autonomous. The kit reads this canon **live** and surfaces a read-only
39
+ `/agent-workflow-kit recipes` advisor that plans a recipe for the current environment.
40
+
41
+ ### Added
42
+ - **`references/orchestration.md`** — the canonical narrative: the four recipes over the role
43
+ vocabulary, the when/why decision guidance, the graceful-degradation lattice (Council → Reviewed →
44
+ Solo; Delegated → Solo, always with a stated reason), and the quota/health guard.
45
+ - **`references/orchestration-slot.md`** — the bounded **one-line** fragment the composition root
46
+ injects into a deployed `AGENTS.md` (between the `workflow:orchestration` markers). It names the four
47
+ recipes and routes to `/agent-workflow-kit recipes` — never to this engine-internal reference.
48
+
49
+ The deployment-lineage head stays **`1.3.0`** (no `docs/ai` structural change; no migration file). The
50
+ npm package version is a separate axis.
51
+
7
52
  ## 1.1.0 — Live-read ready: never-downgrade gate + installer hardening
8
53
 
9
54
  The kit now reads this canon **live from the installed engine** and has retired its bundled mirror
package/README.md CHANGED
@@ -3,8 +3,9 @@
3
3
  **The canonical home of the `agent-workflow` planning methodology.** It owns the
4
4
  methodology *text* — the Plan → Phase → Step vocabulary, the plan-file lifecycle
5
5
  (`docs/plans/*.md`, ephemeral, never committed), the `queue.md` series index, the mandatory
6
- final **Phase: Cleanup**, and the bounded methodology slot fragment the family kit injects
7
- into a deployed project's `AGENTS.md`.
6
+ final **Phase: Cleanup**, the **orchestration-recipe** vocabulary (Solo / Reviewed / Council /
7
+ Delegated), and the two bounded slot fragments the family kit injects into a deployed project's
8
+ `AGENTS.md`.
8
9
 
9
10
  This is the **methodology engine** of the `agent-workflow` family — the canonical source the
10
11
  rest of the family builds on. It is **content**, not a runtime: it reads nothing, writes
@@ -41,14 +42,23 @@ the canonical methodology reference on disk:
41
42
  Plan → Phase → Step vocabulary, the plan-file lifecycle, the `queue.md` series index, the
42
43
  mandatory final **Phase: Cleanup**, and the plan-then-execute split.
43
44
  - [`references/methodology-slot.md`](references/methodology-slot.md) — the **bounded**
44
- fragment the composition root injects into a deployed `AGENTS.md` (a short summary +
45
+ methodology fragment the composition root injects into a deployed `AGENTS.md` (a short summary +
45
46
  pointer, kept under the entry point's line cap).
47
+ - [`references/orchestration.md`](references/orchestration.md) — the canonical **orchestration-recipe**
48
+ reference: the four recipes (Solo / Reviewed / Council / Delegated) over the bridges' role
49
+ vocabulary, the when/why, the graceful-degradation lattice, and the quota/health guard.
50
+ - [`references/orchestration-slot.md`](references/orchestration-slot.md) — the **bounded** one-line
51
+ orchestration fragment the composition root injects into a deployed `AGENTS.md`, routing to the
52
+ in-project recipes surface.
53
+ - [`references/procedures.md`](references/procedures.md) — the canonical **activity-procedures** canon:
54
+ the named activities (`plan-authoring`, `plan-execution`) as ordered steps with typed recipe slots,
55
+ read live and rendered by the read-only `/agent-workflow-kit procedures <activity>`.
46
56
 
47
57
  ## What this package ships
48
58
 
49
- `SKILL.md` (the canon overview + ownership rule), `references/` (the full methodology
50
- reference + the bounded slot fragment), `capability.json` (the family manifest), and this
51
- installer. It ships **no** family-wide tooling (the schema/validator/injection live in the
59
+ `SKILL.md` (the canon overview + ownership rule), `references/` (the full methodology + the
60
+ orchestration + activity-procedures references + the two bounded slot fragments), `capability.json`
61
+ (the family manifest), and this installer. It ships **no** family-wide tooling (the schema/validator/injection live in the
52
62
  composition root) and mutates nothing — preserving "knows nobody".
53
63
 
54
64
  ## License
package/SKILL.md CHANGED
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  name: agent-workflow-engine
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, and the bounded methodology slot fragment. 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 slot from it — one source of truth, no bundled mirror; `npx @sabaiway/agent-workflow-kit@latest init` installs the engine.
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.1.0'
6
+ version: '1.3.0'
7
7
  ---
8
8
 
9
9
  # agent-workflow-engine
@@ -26,6 +26,19 @@ slot fill is needed but the engine is absent, the kit's reconcile **fails loudly
26
26
  composition root injects into a deployed project's `AGENTS.md`, between the
27
27
  `<!-- workflow:methodology:start -->` / `<!-- workflow:methodology:end -->` markers. A short
28
28
  summary + pointer, not the full reference, so the entry point stays under its line cap.
29
+ - [`references/orchestration.md`](references/orchestration.md) — the canonical **orchestration-recipe**
30
+ reference: the four recipes (Solo / Reviewed / Council / Delegated) defined over the bridges' role
31
+ vocabulary, the when/why decision guidance, the graceful-degradation lattice, and the quota/health
32
+ guard. The kit owns the executable dispatch and surfaces it as `/agent-workflow-kit recipes`.
33
+ - [`references/orchestration-slot.md`](references/orchestration-slot.md) — the **bounded** one-line
34
+ orchestration fragment the composition root injects into a deployed `AGENTS.md`, between the
35
+ `<!-- workflow:orchestration:start -->` / `<!-- workflow:orchestration:end -->` markers. It names the
36
+ four recipes and routes to `/agent-workflow-kit recipes`, never to this engine-internal reference.
37
+ - [`references/procedures.md`](references/procedures.md) — the canonical **activity-procedures** canon:
38
+ the ordered steps of the named activities (`plan-authoring`, `plan-execution`) with **typed recipe
39
+ slots** that bind to the orchestration recipes, composing with `planning.md` without restating it. It
40
+ stays generic (no project-specific stages baked in). The kit reads it live and renders the steps +
41
+ the resolved effective recipe per slot via the read-only `/agent-workflow-kit procedures <activity>`.
29
42
 
30
43
  ## Ownership rule (the engine knows nobody)
31
44
 
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.1.0",
6
+ "version": "1.3.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.1.0",
3
+ "version": "1.3.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",
@@ -1 +1 @@
1
- > **Workflow methodology** — plan → execute → review. Plans are ephemeral `docs/plans/*.md` (gitignored, **never committed**); every Plan ends with a mandatory **Phase: Cleanup**; series order lives in `docs/plans/queue.md`. Full vocabulary, lifecycle, and the plan-then-execute split live in the project's **planning skill** (it overrides the generic `writing-plans`); summary in `docs/ai/agent_rules.md` §5.
1
+ > **Workflow methodology** — plan → execute → review. Plans are ephemeral `docs/plans/*.md` (gitignored, **never committed**); every Plan ends with a mandatory **Phase: Cleanup**; series order lives in `docs/plans/queue.md`. Full vocabulary, lifecycle, and the plan-then-execute split live in the project's **planning skill** (it overrides the generic `writing-plans`); summary in `docs/ai/agent_rules.md` §5. Named activities (plan-authoring, plan-execution) have procedures — see `/agent-workflow-kit procedures <activity>` for the steps + resolved recipe.
@@ -0,0 +1 @@
1
+ > **Orchestration recipes** — compose plan → execute → review with a named recipe: **Solo** (no backend), **Reviewed** (one backend reviews), **Council** (both review, you synthesize), **Delegated** (a backend executes a bounded sub-task); the orchestrator always commits, a backend is never autonomous. Pick + plan one for this environment with `/agent-workflow-kit recipes` (read-only); the deployed how/why lives in your `docs/ai/` workflow docs.
@@ -0,0 +1,92 @@
1
+ # Orchestration Recipes
2
+
3
+ Canonical, on-demand reference for **how an orchestrating agent composes the optional
4
+ execution-backends** (the family's subscription-CLI bridges) into the `plan → execute → review`
5
+ flow. This is the *narrative* source of truth — the **vocabulary** (what each recipe is), the
6
+ **when/why** (which to reach for), the **graceful-degradation lattice** (what happens when a backend
7
+ is unavailable), and the **quota/health guard**. The kit (`agent-workflow-kit`) owns the *executable*
8
+ dispatch (`tools/recipes.mjs` — `planRecipe` / `recommendRecipe`) and surfaces it read-only as
9
+ `/agent-workflow-kit recipes`; the two representations are kept in lockstep by a recipe-name parity
10
+ guard. For the plan lifecycle this composes with, see [`planning.md`](planning.md).
11
+
12
+ ---
13
+
14
+ ## 1. The role vocabulary recipes are built over
15
+
16
+ A recipe is an **orchestration pattern**, not a runnable script. The **orchestrator** (the main
17
+ agent) always owns the decisions, the edits it accepts, verification, and the **single commit** — a
18
+ backend is **advisory or delegated, never autonomous, and never commits**.
19
+
20
+ Each backend declares what it can do in its `capability.json` `provides` / `roles`:
21
+
22
+ - **`codex-cli-bridge`** (`codex`) — `provides: ["execute", "review"]`. It can run a bounded
23
+ execution sub-task (`codex-exec`, output: a diff) and give an advisory review (`codex-review`,
24
+ modes `plan` / `code`).
25
+ - **`antigravity-cli-bridge`** (`agy`) — `provides: ["review", "probe"]`. It can give an advisory
26
+ review and answer a bounded probe (both via `agy-run`).
27
+
28
+ Both are **subscription** backends with a **finite quota** — spend deliberately.
29
+
30
+ ## 2. The four recipes
31
+
32
+ | Recipe (id) | Pattern | Roles needed | Backends that satisfy it |
33
+ |-------------|---------|--------------|--------------------------|
34
+ | **Solo** (`solo`) | The orchestrator plans, executes, and self-reviews. No backend. | none | — (always available; the floor) |
35
+ | **Reviewed** (`reviewed`) | The orchestrator executes; **one** backend reviews the result (advisory). | ≥1 backend providing `review` | `codex` and/or `agy` |
36
+ | **Council** (`council`) | **Both** backends review independently; the orchestrator synthesizes the two opinions. | ≥2 backends providing `review` | `codex` **and** `agy` |
37
+ | **Delegated** (`delegated`) | The orchestrator hands a **bounded** execution sub-task to a backend, then reviews the returned diff and commits. | ≥1 backend providing `execute` | `codex` only |
38
+
39
+ ## 3. When / why to reach for each (the decision vocabulary)
40
+
41
+ - **Solo** — the default for small, self-contained, low-risk work where a second opinion would not
42
+ change the outcome: typos, one-line fixes, mechanical edits, doc tweaks. It is also the **floor**
43
+ every other recipe degrades to, so the flow never blocks on a backend.
44
+ - **Reviewed** — the everyday choice when work carries real risk (a bug class, a security surface, a
45
+ non-obvious refactor) and an independent reviewer is worth one backend's quota. When **both**
46
+ backends can review, prefer **`codex`** (deterministic tie-break — `agy` carries a standing health
47
+ caveat, §5).
48
+ - **Council** — for high-stakes or genuinely ambiguous decisions where two *diverse* opinions catch
49
+ what one would miss. It spends **two** backends' quota, so reserve it for changes that justify the
50
+ cost.
51
+ - **Delegated** — when a bounded, well-specified sub-task can be handed off (parallelism, or to keep
52
+ the orchestrator's own context focused). Only `codex` provides `execute`. The orchestrator still
53
+ reviews the returned diff and owns the commit — delegation never bypasses the review or the gate.
54
+
55
+ ## 4. Graceful degradation (never silent)
56
+
57
+ Availability is **pure file-presence**: a backend is dispatchable **iff its detector `readiness` is
58
+ `ready`** — full stop. Every other readiness (`needs-skill` / `needs-cli` / `needs-credentials` /
59
+ `degraded`) means *not dispatchable*, and the specific value is the human reason (not installed → run
60
+ `/agent-workflow-kit setup`; CLI missing → install the CLI; credentials missing → log in; degraded →
61
+ the wrapper is not on `PATH`). This is a claim about **set-up state only** — never about whether a
62
+ backend's *service* is actually responsive.
63
+
64
+ When a recipe's roles can't be satisfied, it **degrades to a weaker recipe with a stated reason** —
65
+ always reported, never silently dropped:
66
+
67
+ - **Council → Reviewed → Solo.** Only one of the two reviewers is `ready` → Reviewed with that one;
68
+ neither is `ready` → Solo.
69
+ - **Delegated → Solo.** No backend provides `execute` and is `ready` → Solo, with the reason.
70
+ - **Reviewed → Solo.** No backend provides `review` and is `ready` → Solo, with the reason.
71
+
72
+ ## 5. Quota & health guard (advisory)
73
+
74
+ Backends are **subscription** services with **finite** quota. The orchestrator should: prefer the
75
+ cheapest model that fits the task; not reach for a top-tier model by reflex; and remember that
76
+ **Council spends two backends' quota** for one decision.
77
+
78
+ A **standing health advisory** applies to `agy`: the Antigravity service can **stall on substantive
79
+ prompts** (a long hang that returns nothing — an external service issue, not a setup problem;
80
+ tracked as **Issue-001** in the kit's known issues). It is **invisible to file-presence detection**,
81
+ so it is *not* a readiness signal — it is a static caveat attached whenever a recipe would use `agy`. While it lasts, **prefer `codex`** for substantive
82
+ reviews (this is the Reviewed tie-break in §3). The recipe machinery **never runs a subscription
83
+ CLI** to check — detection stays read-only.
84
+
85
+ ## 6. The orchestrator always commits
86
+
87
+ No recipe makes a backend write to the repo or create a commit. The kit's `recipes` surface is
88
+ **read-only** — it lists the recipes, plans one for the current environment, and recommends a
89
+ default; it **never executes** a recipe and **never runs a subscription CLI**. The orchestrator
90
+ executes the chosen recipe through the bridge skills, accepts or rejects every edit, runs the
91
+ verification gate, and makes the **one** commit — exactly as the plan lifecycle (`planning.md`)
92
+ requires.
@@ -0,0 +1,70 @@
1
+ # Activity Procedures
2
+
3
+ Canonical, on-demand reference for **how an orchestrating agent performs a named activity** — the
4
+ ordered steps of a workflow activity with **typed recipe slots** that bind to the
5
+ [orchestration recipes](orchestration.md) (Solo / Reviewed / Council / Delegated). This is the
6
+ *how to perform* source of truth; it composes with — and never restates — the plan structure and
7
+ lifecycle in [`planning.md`](planning.md). The composition root (`agent-workflow-kit`) reads this
8
+ canon LIVE and renders the requested activity's steps + the resolved effective recipe per slot via
9
+ the read-only `/agent-workflow-kit procedures <activity>`; it parses ONLY each section's `Slots:`
10
+ line (drift-guarded against its activity table), never the steps.
11
+
12
+ A **recipe slot** is a point in an activity where a recipe applies: `review` accepts
13
+ `solo | reviewed | council`; `execute` accepts `solo | delegated`. The per-project default lives in
14
+ `docs/ai/orchestration.json` and is resolved against backend readiness by the kit — never decided in
15
+ this canon. Each activity section below begins with a machine-parseable `Slots:` line (the only line
16
+ the kit parses) and then its ordered steps. Terse by design: it points at the canon it binds to, it
17
+ does not restate it.
18
+
19
+ The commit rule holds across every activity: **when an activity has a commit boundary, the
20
+ orchestrator owns that commit; a backend is advisory or delegated, never autonomous, and never
21
+ commits** (see [`orchestration.md`](orchestration.md) §6). Not every activity commits —
22
+ `plan-authoring` ends at **approval** and produces **no** commit (plans are ephemeral, never
23
+ committed); `plan-execution` commits **per Step**. Any project-declared release/publishing or extra
24
+ stages are honored per the project's `workflow:methodology` slot — this generic canon bakes in no
25
+ single project's stages.
26
+
27
+ ---
28
+
29
+ ## plan-authoring
30
+
31
+ Slots: review
32
+
33
+ Produce a self-contained, cold-readable plan, reviewed to the configured depth before approval.
34
+
35
+ 1. **Research** — gather the exact files, contracts, and constraints the plan will touch.
36
+ 2. **Draft** — write the plan to the document structure defined in [`planning.md`](planning.md) §7,
37
+ with exact paths and commands per Step. Bind to that structure; do not restate it here.
38
+ 3. **Self-review** — run the [`planning.md`](planning.md) §8 checklist (exact paths/commands, strict
39
+ vocabulary, every out-of-plan recommendation folded into a Step, `queue.md` updated for a series).
40
+ 4. **review {recipe}** — review the draft at the depth the resolved `review` recipe selects: Solo
41
+ (self-review only), Reviewed (one backend reviews), or Council (both backends review, you
42
+ synthesize). The kit resolves the effective recipe from `docs/ai/orchestration.json` + readiness.
43
+ 5. **Fold + loop** — fold every finding back into the draft and re-review until the review is clean.
44
+ 6. **Present for approval** — surface the finished plan to the user; do not begin execution here.
45
+
46
+ The plan MUST end with the mandatory **Phase: Cleanup** ([`planning.md`](planning.md) §4) — a plan
47
+ without it is not done.
48
+
49
+ ## plan-execution
50
+
51
+ Slots: execute, review
52
+
53
+ Execute an approved plan Step by Step; each Step is one logical commit.
54
+
55
+ 1. **Per Step, resolve the recipe** — the kit resolves `execute` and `review` for this run from
56
+ `docs/ai/orchestration.json` + readiness (a per-run `--override <slot>=<recipe>` is allowed).
57
+ 2. **If `execute` resolved to Delegated, dispatch execution FIRST** — hand the bounded sub-task to the
58
+ backend (codex-exec → a diff) *before* integrating; otherwise the orchestrator implements the Step
59
+ directly.
60
+ 3. **Implement / integrate** — apply the change (your own edits, or the reviewed delegated diff),
61
+ following the project's reuse + clean-code rules.
62
+ 4. **Self-review** — run the [`planning.md`](planning.md) §8 self-review on the change.
63
+ 5. **review {recipe}** — review the result at the resolved `review` depth (Solo / Reviewed / Council),
64
+ exactly as in plan-authoring.
65
+ 6. **Gates** — run the project's verification gate (tests + checks) to green before committing.
66
+ 7. **Commit boundary** — the orchestrator makes the single commit for the Step; a backend never
67
+ commits. The project's commit-approval policy (e.g. ask first) lives in the project's own rules.
68
+
69
+ Honor any project-declared release/publishing or extra stages (per the `workflow:methodology` slot)
70
+ before the plan's Cleanup — this generic canon does not enumerate them.