@sabaiway/agent-workflow-kit 1.29.0 → 1.31.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 +86 -0
- package/README.md +7 -2
- package/SKILL.md +33 -519
- package/bridges/antigravity-cli-bridge/SKILL.md +1 -1
- package/bridges/antigravity-cli-bridge/bin/agy-review.sh +145 -4
- package/bridges/antigravity-cli-bridge/bin/agy-review.test.mjs +169 -1
- package/bridges/antigravity-cli-bridge/capability.json +3 -2
- package/bridges/codex-cli-bridge/SKILL.md +1 -1
- package/bridges/codex-cli-bridge/bin/codex-review.sh +120 -3
- package/bridges/codex-cli-bridge/bin/codex-review.test.mjs +132 -0
- package/bridges/codex-cli-bridge/capability.json +3 -2
- package/capability.json +1 -1
- package/launchers/windsurf-workflow.md +4 -2
- package/package.json +1 -1
- package/references/modes/agents.md +11 -0
- package/references/modes/backends.md +9 -0
- package/references/modes/bootstrap.md +49 -0
- package/references/modes/gates.md +17 -0
- package/references/modes/grounding.md +12 -0
- package/references/modes/help.md +7 -0
- package/references/modes/hook.md +24 -0
- package/references/modes/procedures.md +18 -0
- package/references/modes/recipes.md +18 -0
- package/references/modes/review-state.md +13 -0
- package/references/modes/set-recipe.md +23 -0
- package/references/modes/setup.md +30 -0
- package/references/modes/status.md +22 -0
- package/references/modes/uninstall.md +18 -0
- package/references/modes/upgrade.md +46 -0
- package/references/modes/velocity.md +18 -0
- package/references/shared/composition-handoff.md +39 -0
- package/references/shared/deploy-tail.md +61 -0
- package/references/shared/report-footer.md +116 -0
- package/references/templates/agent_rules.md +3 -2
- package/references/templates/handover.md +1 -0
- package/tools/commands.mjs +15 -1
- package/tools/detect-backends.mjs +2 -0
- package/tools/engine-source.mjs +2 -1
- package/tools/grounding.mjs +263 -0
- package/tools/procedures.mjs +50 -5
- package/tools/recipes.mjs +78 -12
- package/tools/review-state.mjs +395 -0
- package/tools/set-recipe.mjs +15 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,92 @@ Semantically versioned ([semver](https://semver.org)), newest first. The `versio
|
|
|
4
4
|
is the current release. `upgrade` mode reads a project's `docs/ai/.workflow-version` and applies
|
|
5
5
|
every `migrations/<version>-<slug>.md` newer than it, in semver order.
|
|
6
6
|
|
|
7
|
+
## 1.31.0 — Progressive disclosure: SKILL.md becomes a thin router over references/modes + references/shared (AD-039)
|
|
8
|
+
|
|
9
|
+
A **feature** release; packaging-only for deployments (the deployment lineage stays `1.3.0` — no
|
|
10
|
+
`docs/ai` structure change, no migration). The 112,106 B / 680-line SKILL.md monolith — loaded
|
|
11
|
+
whole on EVERY invocation — becomes a **10,139 B router** plus per-mode files, so an invocation
|
|
12
|
+
reads only what it needs:
|
|
13
|
+
|
|
14
|
+
- **The router** keeps the always-needed core: the composition-root decision (detect → delegate /
|
|
15
|
+
fallback + the init refresh-cascade), the safe-routing rule + version-status routing note, and
|
|
16
|
+
16 bare `### Mode:` headers each carrying ONE line — the catalog `kind` EXACTLY + ``read
|
|
17
|
+
`${CLAUDE_SKILL_DIR}/references/modes/<mode>.md` before acting.``
|
|
18
|
+
- **`references/modes/<key>.md` ×16** — the mode bodies, moved verbatim (set-equality-guarded
|
|
19
|
+
against the `tools/commands.mjs` catalog). **`references/shared/`** — the point-of-use
|
|
20
|
+
contracts: `report-footer.md` (backend-status line · version block + welcome mat · version
|
|
21
|
+
disclosure), `composition-handoff.md` (hand-off + bounded pointer reconciliation),
|
|
22
|
+
`deploy-tail.md` (Gotchas · Setup contracts · System principles · Hard-Constraints template).
|
|
23
|
+
Each mode file opens with one `Requires:` line naming its shared reads (bootstrap/upgrade → all
|
|
24
|
+
three; status → the report footer; the daily modes none).
|
|
25
|
+
- **Byte budgets are acceptance, not vibes** — the new `test/router-contract.test.mjs` asserts,
|
|
26
|
+
over the real files: router ≤ 10,240 B · router + any mode ≤ 28,672 · every full read set
|
|
27
|
+
≤ 53,248 · the daily no-shared modes ≤ 16,384 (realized: 10,139 · 27,392 · 48,419 · 14,121 —
|
|
28
|
+
a daily `help` run is ~10× lighter, the worst path (`upgrade`) ~2.3×). It also pins the D4
|
|
29
|
+
pointer audits permanently: every `Requires:` resolves, zero italic/plain cross-mode refs, zero
|
|
30
|
+
bare kit-relative links, moved shared-section references carry their pointer.
|
|
31
|
+
- **Nothing else moved:** runtime routing untouched (`routeInvocation` never reads SKILL.md);
|
|
32
|
+
packaging additive (`references/` already rides `files[]`; the npx installer copies it
|
|
33
|
+
recursively; tarball 96 → 115 files, exact-count-pinned); frontmatter byte-compatible with the
|
|
34
|
+
twin version readers; 7 content-coupled guards re-anchored to the new files.
|
|
35
|
+
|
|
36
|
+
## 1.30.0 — Review-recipe enforcement: the configured recipe is impossible to miss, "reviewed ≠ shipped" is detectable, grounding is a command (AD-038)
|
|
37
|
+
|
|
38
|
+
A **feature** release (ships the bundled bridges refreshed to **2.2.0**). Origin: a real
|
|
39
|
+
council-substitution incident + independent kit-user feedback — the configured review recipe could
|
|
40
|
+
be silently skipped, downgraded, or run before later edits, and nothing could detect it. Three
|
|
41
|
+
mechanisms, each self-firing at its point of use:
|
|
42
|
+
|
|
43
|
+
- **The discovery line** — `tools/recipes.mjs --active-line` (`Mode: recipes`): exactly ONE
|
|
44
|
+
machine-composed line rendering the **CONFIGURED** recipe of every activity/slot from
|
|
45
|
+
`docs/ai/orchestration.json` + live readiness — source labeled, degradation stated, wrapper set
|
|
46
|
+
named, explicitly contrasted with the readiness recommendation (which is informational). Wired
|
|
47
|
+
where a session already reads: the deployed `agent_rules.md` §1.1 gains step 2 (read the
|
|
48
|
+
orchestration config BEFORE picking a task; a silent recipe downgrade is a forbidden
|
|
49
|
+
substitution) and `handover.md` gains a standing **"Active recipes:"** slot — both template
|
|
50
|
+
regions byte-identical with the memory copies (new `test/template-region-parity.test.mjs`,
|
|
51
|
+
injected-divergence non-vacuous); `set-recipe` now ECHOES the freshly composed line + a
|
|
52
|
+
handover-slot reminder after every successful `--write` (additive `activeLine` field in
|
|
53
|
+
`--json`). New `test/active-recipe-line.test.mjs` proves the line derives from the CONFIG, not
|
|
54
|
+
the recommendation.
|
|
55
|
+
- **`/agent-workflow-kit review-state`** (`tools/review-state.mjs`, read-only + colocated tests) —
|
|
56
|
+
makes "reviewed ≠ shipped" mechanically detectable. The 2.2.0 review wrappers append one JSONL
|
|
57
|
+
receipt per SUCCESSFUL review to `<git dir>/agent-workflow-review-receipts.jsonl`
|
|
58
|
+
(`AW_REVIEW_RECEIPTS` overrides; never committable by construction); the checker resolves the
|
|
59
|
+
effective `plan-execution.review` recipe, recomputes the canonical **uncommitted-state
|
|
60
|
+
fingerprint** (sha256 over staged diff + unstaged diff + untracked-not-ignored contents — exactly
|
|
61
|
+
the review-payload domain), and `--check` exits 0 only when every recipe-named backend holds a
|
|
62
|
+
**fresh, grounded, current-fingerprint** receipt (**presence, not unanimity** — verdicts stay
|
|
63
|
+
orchestrator judgment). Any later edit stales the receipts; plan/diff receipts and continuations
|
|
64
|
+
(`fresh:false`) are informational-only — after a fold, only a fresh grounded re-run restores
|
|
65
|
+
green. Normative exit contract in the tool header; plan-in-flight detector keyed on the
|
|
66
|
+
documented `docs/plans` naming convention; honest residual stated (`--no-verify`, receipt-file
|
|
67
|
+
deletion — discipline, not a sandbox). The gate line is **never auto-seeded** ([[AD-021]]): the
|
|
68
|
+
template `gates.json` stays empty; the candidate line lives in `Mode: review-state`/`Mode: gates`
|
|
69
|
+
prose. New `test/review-fingerprint-parity.test.mjs` proves bash (both wrappers, byte-identical
|
|
70
|
+
block) ↔ node fingerprint parity — hash, serialization, AND behavioral domain equality.
|
|
71
|
+
- **`/agent-workflow-kit grounding`** (`tools/grounding.mjs` + colocated tests) — the
|
|
72
|
+
grounded-review facts assembler, catalogued honestly as a **WRITER**: `--constraints` slices the
|
|
73
|
+
root `AGENTS.md` Hard-Constraints section verbatim (exactly-one-match, else a loud STOP);
|
|
74
|
+
`--plan <path>` extracts the decision-bearing sections (`## Approach` + `## Verification`
|
|
75
|
+
required, `## Decisions (locked)` when present; duplicates STOP); output honors the wrapper's
|
|
76
|
+
`AGY_MAX_PROMPT_BYTES` budget minus `--reserve-bytes` with a loud tail-trim; `--out` accepts only
|
|
77
|
+
gitignored / out-of-repo scratch (a tracked or in-repo not-ignored path is refused — a new
|
|
78
|
+
untracked file would move the fingerprint it grounds). `procedures.mjs` renders the invocation as
|
|
79
|
+
a POPULATED pre-step whenever agy is dispatched (exactly one plan in flight → its path; else a
|
|
80
|
+
placeholder + discovery caveat; additive `groundingPreStep` in `--json`).
|
|
81
|
+
- **Bundled bridges 2.2.0** (mirrors byte-refreshed): `codex-review.sh` mandates + parses ONE
|
|
82
|
+
literal `Verdict: ship|revise|rethink` line (schema mode reads the JSON field); `agy-review.sh`
|
|
83
|
+
records the `### Verdict` token verbatim (SHIP / SHIP WITH NITS / REWORK), `grounded` +
|
|
84
|
+
`factsHash` from `--facts` (an empty payload is visible), and marks continuations `fresh:false`
|
|
85
|
+
with a one-line fresh-run notice; a receipt write failure warns and never fails the review. The
|
|
86
|
+
review-role `capability.json` contracts gain the `receipt` block (the fingerprint definition
|
|
87
|
+
home) — three-way lockstep wrapper `--help` ↔ manifest ↔ `detect-backends.mjs` registry,
|
|
88
|
+
drift-guarded.
|
|
89
|
+
- **Catalog/report wiring:** two new SKILL modes + README rows; the bootstrap/upgrade report
|
|
90
|
+
footers paste the active-recipe line beside the backend-status line; `package-content` pin
|
|
91
|
+
94 → 96 (the two new tools).
|
|
92
|
+
|
|
7
93
|
## 1.29.0 — Velocity scope C: an opt-in PreToolUse gate-approval hook
|
|
8
94
|
|
|
9
95
|
A **feature** release (ships the bundled bridges unchanged at **2.1.0**). The shipped, probe-proven
|
package/README.md
CHANGED
|
@@ -234,6 +234,8 @@ file), or run the guarded `/agent-workflow-kit uninstall`.
|
|
|
234
234
|
| `/agent-workflow-kit recipes` | any time | **read-only** orchestration advisor: presents four named recipes for composing the bridges into plan → execute → review — **Solo / Reviewed / Council / Delegated** — plans + recommends one for your environment (degrading with a stated reason when a backend isn't ready), and offers the choice. The orchestrator runs it via the bridge skills and **always commits**; the kit never executes a recipe, never runs a subscription CLI, never commits. |
|
|
235
235
|
| `/agent-workflow-kit procedures <activity>` | any time | **read-only** activity-procedures advisor: prints a named activity's ordered steps (`plan-authoring` / `plan-execution`) read **live** from the engine, plus the **resolved recipe per slot** from your `docs/ai/orchestration.json` (agent-writable via `set-recipe`, or hand-edited) + backend readiness (default Reviewed when a backend is ready, Council on request, slot-aware incl. Delegated) — and, for every dispatched backend, the **full driving contract at the point of use** (exact copy-pasteable invocation, grounding levers like agy's `--facts`/`--decided`, the round-2 `--continue` delta, guarded passthrough), verbatim from the bridge manifests (drift-guarded; each wrapper's `--help` prints the same). `--override <slot>=<recipe>` adjusts one slot per run. Composes with `recipes`; never writes, never commits, never runs a subscription CLI. |
|
|
236
236
|
| `/agent-workflow-kit set-recipe` | any time | **config writer** for `docs/ai/orchestration.json`: tell the agent your preference in plain language and it maps it to explicit `--set <activity>.<slot>=<recipe>` / `--unset` ops; the kit validates, **previews by default**, and writes only on `--write` (deployment-gated, atomic, symlink/TOCTOU-safe), resolving the effective recipe vs live readiness. Writes **only** that file — **never runs a backend, never commits**; hand-editing stays fully supported. |
|
|
237
|
+
| `/agent-workflow-kit review-state` | any time | **read-only review-receipt checker** — makes "reviewed ≠ shipped" detectable: the bridge review wrappers append a receipt per successful review (into a file inside the git dir — never committable); this checks that every backend your configured `plan-execution.review` recipe names holds a **fresh, grounded receipt for the current uncommitted tree** (any later edit moves the fingerprint and stales the receipt; a review continuation never re-attests a folded tree). `--check` gives a gate exit code to declare in `docs/ai/gates.json` **by hand** (never auto-seeded). Never writes, never commits, never runs a subscription CLI; it spawns read-only `git` queries to fingerprint the tree — and `git commit --no-verify` stays possible (discipline, not a sandbox). |
|
|
238
|
+
| `/agent-workflow-kit grounding` | any time | **grounded-review facts assembler** — mechanizes populating `agy-review --facts @f`: slices your entry-point's **Hard Constraints** section verbatim (exactly one match, else a loud stop) and/or a plan's decision-bearing sections (`## Approach` + `## Verification` required, `## Decisions (locked)` when present; duplicates stop), under the same byte budget the agy wrapper enforces (minus `--reserve-bytes` for the artifact share), with a loud tail-trim on overflow. Prints to stdout; `--out` writes **one scratch file only** (gitignored / outside the repo — a tracked or not-ignored in-repo path is refused). Never commits, never runs a subscription CLI. |
|
|
237
239
|
| `/agent-workflow-kit uninstall` | opt-in, any time | **guarded teardown** — the inverse of `init` / `setup`. Removes only what's **provably ours** (managed skill dirs + bridge wrappers; in a project, the hidden-mode git-ignore block it added + the pre-commit hook it installed); **never deletes** your `docs/ai` / `AGENTS.md` (prints the exact `rm` to run by hand) or your `.claude/settings.json` (prints an **edit** — remove the attribution key, review any velocity `permissions.*` — never an `rm`). Always `--dry-run` first; preflight-then-mutate; never commits. |
|
|
238
240
|
| `/agent-workflow-kit velocity` | Claude Code · opt-in | **onboarding velocity profile** — seeds a fixed, audited **read-only** allowlist into `.claude/settings.json` so routine read-only commands stop idling on approval prompts while you're away; opt-in `acceptEdits`; plus a **read-only advisory** of likely project gate commands to add by hand. Writes **only** `.claude/settings.json` — **never** allowlists commit/push/publish, never writes `settings.local.json`, never commits. A seeded entry is a **trust posture, not a sandbox** (a runtime residual remains at the settings level — its guard ships as the opt-in `hook` command); a direct commit/push/publish still asks. `--dry-run` first. |
|
|
239
241
|
| `/agent-workflow-kit agents` | Claude Code · opt-in | **cheap-lane subagents** — places bundled subagent definitions (`.claude/agents/`) pinned to a **cheap model** (haiku, low effort, read-only tools) for mechanical work: extraction sweeps, changelog fact-skeletons, gate-failure triage. Judgment, review, and real code stay on your main lane — these vehicles only extract and draft, and their output is verified. Preview by default (`--apply` writes); an existing customized file is **preserved, never overwritten**; never touches `settings*.json`, never commits. |
|
|
@@ -304,7 +306,8 @@ One kit, two tiers — **no logic is duplicated per tool:**
|
|
|
304
306
|
- The **output** (`AGENTS.md` + `docs/ai/`) is read natively by Claude Code (via the `CLAUDE.md`
|
|
305
307
|
alias) · Codex · Cursor · Devin Desktop · Copilot · Gemini CLI & 20+ tools.
|
|
306
308
|
- The **bootstrapper** runs from Claude Code · Codex · Devin Desktop — their launchers point at the
|
|
307
|
-
same `SKILL.md
|
|
309
|
+
same `SKILL.md` router (which loads its `references/modes/` + `references/shared/` files per
|
|
310
|
+
invocation), so deployment logic lives in one place.
|
|
308
311
|
|
|
309
312
|
---
|
|
310
313
|
|
|
@@ -313,10 +316,12 @@ One kit, two tiers — **no logic is duplicated per tool:**
|
|
|
313
316
|
```
|
|
314
317
|
agent-workflow-kit/
|
|
315
318
|
├── README.md ← you are here (the kit's manual)
|
|
316
|
-
├── SKILL.md ← agent-facing
|
|
319
|
+
├── SKILL.md ← thin agent-facing router: mode index + safe routing
|
|
317
320
|
├── CHANGELOG.md ← version history
|
|
318
321
|
├── capability.json ← agent-workflow family manifest (composition-root)
|
|
319
322
|
├── references/
|
|
323
|
+
│ ├── modes/ ← one file per mode (deploy/upgrade/… procedures)
|
|
324
|
+
│ ├── shared/ ← shared contracts (footer · hand-off · tail)
|
|
320
325
|
│ ├── templates/ ← AGENTS.md + every docs/ai file
|
|
321
326
|
│ ├── scripts/ ← caps / archive / index + tests
|
|
322
327
|
│ └── contracts.md ← visibility / language / attribution rules
|