Repository navigation
Releases: gtrabanco/agentic-workflow
Release list
v5.0.0-canary.20261102.1
Release Notes: Canary Cut
This prerelease contains the following changes. The next stable release will incorporate these updates.
🚀 Features
Documentation & Workflow
- Consolidated Roadmap: Merged location indexes into a single
docs/ROADMAP.md. This file now serves as the unified index for both Features and Fixes, including the active-fixes index and status conventions. - Enhanced Agent Guide: Split
AGENTS.mdinto a streamlined core guide and a dedicated deep references section to improve clarity. - Obligation-Driven Development: Introduced new mechanics for residue dimensions, two-way unused-code routing, reuse-first planning gates, and the
ask-dont-inferowner block.
Tooling & Automation
- Deterministic Ceremony CLI: Implemented a closed, deterministic CLI for all ceremony operations.
- Removal of Config-Gated Tool Guards: Removed the experimental config-gated tool guards. All commands now run ungated, reverting to the soft enforcement rules defined in
AGENTS.md.
🛠️ Fixes
Workflow & Unit Docs
- Tick-Aware Unit Docs: Updated unit-doc grammar to support executed-phase tick marks (e.g.,
- [x] P<n>). This allows lane units to track task progress without changing the underlying phase. - Intelligent Audit Routing:
product-auditfindings now include aroute:field to suggest the next action.review-implementationnow routes incomplete features toreplan-in-unitto ensure planned work is captured.
- Scaffold Parity: Added a comparator to ensure exported documentation templates remain in sync with the repository's internal structure.
Skills & Auditing
- Shadow Copy Detection: Improved
review-codeandproduct-auditto catch shadow copies of published artifacts and identify obsolete surfaces. - Schema Test Reliability: Fixed the evidence-row grammar test to correctly import the published
distsurface instead of the TS source.
Dependencies & Compatibility
- Pi 1.5.0 Compatibility: Verified compatibility with Pi 1.5.0 and updated
@types/nodeto26.6.6. - Verified Baselines: Implemented a new guard to ensure README and manifest pairings are pinned, preventing future baseline drift.
Full Changelog: v4.10.0...v5.0.0-canary.20261102.1
v4.10.0
fix(318): verify and close the class-escalation unit — measured router fields, coherent budgets, obligations ledger, PR evidence pack
feat(schema): publish the evidence-row grammar (#318 S12)
EVIDENCE_ROW_COLUMNS (claim | command | output | status), the closed
EVIDENCE_ROW_VERDICTS set, and parseEvidenceRow / validateEvidenceRow.
A repair claim's row is now a shape a driver can check: a row that omits its
claim, a backticked command, a backticked observed output or a ✓/✗ verdict
fails closed naming the cell it lacks, instead of relying on the model to
follow a sentence in a skill body.
fix(skills): fold-findings turn-contract box 6 cites the published evidence-row column set (status, not the pre-F7 ✓ spelling)
feat(pi): config-gated tool guards — owner-gated merges, history, CI and expensive tests
Four guards at the tool_call gate, all config-driven under the new guards
config key and all shipping OFF (a project opts in per guard):
merge(issue #278, extended):git merge,gh pr merge, thegh api
merge endpoints and mutations, andgit pull's merge form.history: pushes are decided by git itself — the push runs as
git push --dry-runfirst and git's outcome (forced update, ref delete,
destinationmain) declines it, so no flag spelling needs enumerating;
offline falls back to a text check on the push's own segment.ci: writing workflow definitions (.github/.gitea/.forgejo
workflows,.gitlab-ci.yml) and triggering runs (gh workflow run,
gh run rerun, thedispatchesendpoint).expensiveTests: commands matching configured patterns, gated when their
estimated token cost exceedsmaxTokens(0gates every match).
The only way through any guard is the explicit per-command token — the
command's first word — after an owner instruction in the same turn:
AW_ALLOW=merge,AW_ALLOW=force(never enables a push tomain),
AW_ALLOW=ci,AW_ALLOW=cost. Documented residuals: payloads inside scripts
or interpreter one-liners, and git aliases invoked by name.
feat(skills): human-revision-needed holds an issue or PR until a human clears it
The schema package test-suite comment now names the consolidated publish workflow (D-40-12 sibling sweep); comment-only change, declared so the multi-package parity gate passes without a version bump.
Skills carry the unified train version: release.mjs apply stamps every SKILL.md frontmatter with the train version from the changesets (D-40-14). The per-skill bump ledger retires — bump-skill slims to the lint-only skill-lint, its bundled writer is deleted, and the per-skill CHANGELOG tables freeze as archive.
The schema package's own version is no longer asserted as a literal in test/release-contract.test.mjs and test/verification-gates.test.mjs: a typed number pins today's value, disagrees with the tree after the next release, and blocks every unified-train cut (release.mjs apply rewrites versions and CHANGELOG rows, never tests). The invariant those tests gestured at is now read on both sides — scripts/version-parity-gate.mjs --pins evaluates every package under packages/ against the local sibling census, the root suite asserts the same over the shipped tree, and scripts/pin-watch.mjs applies the local rule between PRs.
Versioned skills releases (feature 40, issue #180): the release pipeline — changesets-format intent files linted by scripts/lint-changeset.mjs, the deterministic scripts/release.mjs (unified version train, canary shape, force-version, tag + stable-branch plan), the publish workflows' channel dispatch input, bump-skill slimmed to classify + run its bundled writer, and the version-parity gate's changeset route.
The packages under packages/ are bun workspace members of a private root package.json, and ONE bun.lock at the root replaces the three package-local locks. A member's sibling dependency now resolves from the folder instead of the registry, so a sibling pin can name the version the same commit ships — the shape the --pins gate requires and that a package-local lock made impossible: an unpublished pin does not resolve, and a stale lock fails --frozen-lockfile, so no PR could both bump a sibling and stay installable. The published manifest is untouched (it keeps the exact version; npm publish never ships a workspace: protocol). scripts/workspace-lock-policy.test.mjs owns the one-lock rule, and the per-package lockfile-policy tests keep the policies that are still per package.
The workspace also carries the compiler upgrade that goes with that policy: typescript moves from a full 6.0.3 pin and a major-only 6 to a deliberate partial pin 7 in both packages — TypeScript honours semver, so a major-only pin keeps receiving its fixes and the native compiler's performance work, and the committed workspace lock records the exact resolution (7.0.2) either way.
What's Changed
- fix(285): pre-execution lineage gate reads lane-era surfaces — schema 4.6.0 binds acceptance when present by @gtrabanco in #289
- feat(unit-lane): gap interview + ## Future deferred-idea tracking by @gtrabanco in #296
- feat(72): pi 1.0.0 compatibility guard — PR-time two-leg drift check, verified baseline, re-verification evidence by @gtrabanco in #290
- feat(unit-lane): per-phase execute-phase hand-offs, tiered triage, and the close-out receipt ladder (closes #291) by @gtrabanco in #297
- docs(74): post-merge reconciliation of #270 and #272 — union review receipt + cross-PR drift repair (#275) by @gtrabanco in #298
- feat(75): PR-triggered version-parity gate for @gtrabanco/pi-agentic-workflow (Closes #292) by @gtrabanco in #299
- feat(76): the product route — machine routing for product-owned review findings; Axis B verified (#293) by @gtrabanco in #300
- fix(skills): harden needs-input interactive contracts (execute-phase, unit-lane, init-workspace) by @gtrabanco in #302
- feat(36): verification-contract hygiene — determinism rule, fuzz recognition, ledger repairs by @gtrabanco in #304
- feat(unit-lane): separate design/plan into investigate → orient → ask stages (fix #303) by @gtrabanco in #310
- feat: promise-coherence guard — every executable claim must reproduce at the head (#305) by @gtrabanco in #309
- feat: Serena provisioning present by default on both paths (feature 67, #219) by @gtrabanco in #313
- feat(scripts): run a unit's whole delivery cycle from code (78) by @gtrabanco in #314
- feat(66): Engram memory substrate — probe, protocol, provisioning parity by @gtrabanco in #312
- feat(skills): spec-by-reference unit doc — S# quoting, S#-linked tasks, append-only Log, collapsed findings (#308) by @gtrabanco in #311
- docs(state): settle merged roadmap rows and clear the fix index by @gtrabanco in #320
- fix(deps): pin @gtrabanco/agentic-workflow 0.4.0 by @gtrabanco in #322
- feat(pi)!: replace the @bacnh85/pi-serena bridge with native MCP registration by @gtrabanco in #324
- feat(scripts): roadmap settle is code — writer call sites, check gate, unit-cycle settle by @gtrabanco in #323
- docs(policy): English-only is permanent — bilingualism moves to the web layer (#232) by @gtrabanco in #325
- fix(deps): pin @gtrabanco/agentic-workflow 0.4.0 → 0.5.0 (0.35.2) by @gtrabanco in #326
- fix(gate): verify dependency pins against the local package version, not only npmjs by @gtrabanco in #327
- fix(76): fold F25 — pin the emitted-branch rule for both freeze-batch classes by @gtrabanco in #328
- feat(84): the survivors-sweep gate — published vocabularies, sweep receipts, sibling pins by @gtrabanco in #330
- feat(180): unified versioned skills releases by @gtrabanco in #335
- feat(331): authoring-repo setup — setup-env, update-tools, SETUP.md, CI check by @gtrabanco in #334
- test(schema): read the version pin instead of typing it by @gtrabanco in #341
- feat(packaging): link the packages from the folder with one workspace lock by @gtrabanco in #342
- feat(pin-watch): watch development pins and partial pins, weekly by @gtrabanco in #343
- feat(318): class escalation, forward closure, evidence-row grammar and bounded verification by @gtrabanco in #339
- feat(pi): config-gated tool guards — owner-gated merges, history, CI and expensive tests by @gtrabanco in #344
Full Changelog: https://github.com/gtrabanco/agentic-workflow/commits/v4.10.0