Repository navigation
workhorse-workflows: v2.0.0
·
0 commits
to 589dfc38841eac36a651e01b330da180c9b7df42
since this release
2.0.0 (2026-09-11)
⚠ BREAKING CHANGES
- workflows: the
qa_stack_manifestparam is gone; a run in flight holding it fails to reload.
Features
- ostler: derive owning keys from the registry (1f402e1)
- ostler: doctor checks for the judgment gap (b965a1b)
- ostler: let a config: bullet own a declared configuration file (d87ad6f)
- ostler: map diffs across source repositories (dea798f)
- ostler: resolve stories by external key (51da445)
- ostler: template-outside-repeat doctor check (f6bff33)
- ostler: trim rows, import-graph walk, repo declaration (7a99e80)
- ostler: unspecified bullet class with grounded citation (7b1a64f)
- workflows: adjudicate a blocked finding before the operator gate (9d198e6)
- workflows: answer audit packets from the verdict memo first (06f21c2)
- workflows: author approved roadmaps (3f22692)
- workflows: bound the audit reviewer's provider retries (df74b25)
- workflows: budget the behavior audit in turns and passes (84ca19f)
- workflows: build OKF docs from story source diffs (f236b42)
- workflows: carry book limitations into the audit packets (229cb94)
- workflows: carry the minted story id in commit trailers (4e18027)
- workflows: coder docs lane scopes worklist builder to story paths (8365629)
- workflows: commit completed OKF books (074e531)
- workflows: derive the implementer's standards from the layer (f5284ea)
- workflows: flatten author into resumable stages (dfc77c9)
- workflows: gate the okf-builder commit on a semantic audit (ca89211)
- workflows: give the research loop program-level judgement (0d17f92)
- workflows: hold the docs prompts to the written OKF model (9c19533)
- workflows: make the builder's verdict see drift, not just coverage (b04ba58)
- workflows: map coder stories across source repositories (e18ce1d)
- workflows: move the research measurement out of the agent turn (1c17318)
- workflows: okf-builder authors the judgment layer (30446b0)
- workflows: okf-builder drops the entry fork; rescan is the seeder (1357482)
- workflows: park a stalled book on the operator gate, not a waiver (4ed8c25)
- workflows: queue undocumented source files as behavior repairs (0e5b729)
- workflows: read the QA stack from the book, not a manifest path (992079f)
- workflows: record what a converged book was written against (24dc214)
- workflows: refuel okf-builder's budget as each item closes (9e86087)
- workflows: route difficult okf repairs to high power (127182d)
- workflows: scaffold the machine envelope into program.yml (eac1227)
- workflows: scope okf-builder backfills to the squashed diff (ab66208)
- workflows: seed the code fixes the book cannot make (5dace48)
- workflows: separate story scope from qa invariants (9063307)
- workflows: settle stale repair rows during the drain (89ac0bc)
- workflows: state audit links once on the claim (c094de8)
- workflows: suffix coder commits with story ids (1ca3823)
- workflows: teach audit reviewer to use mixed candidate status (f0bcd8a)
- workflows: teach okf-builder the one-per repeat grammar (19a63c4)
- workflows: worklist builder composes four joins into one answer (96896a9)
- workhorse: arm the wake file before a watcher parks on it (ae808c2)
- workhorse: let an Await say a machine owes it the answer (b3e33ec)
Bug Fixes
- ostler: teach the relation-subject slug shape at every surface (a2d3511)
- workflows: accept farrier's repo-prefixed ostler-okf install (f9977b9)
- workflows: address a group finding as the group it is about (64887dc)
- workflows: approve author splits before stories (00f1eba)
- workflows: audit emits per-packet labels (fc174fd)
- workflows: audit recovers from a null-ctx resume (6b0933f)
- workflows: audit survives a sustained models.dev outage (60a664e)
- workflows: author current fix-story sections (aaae440)
- workflows: clear the two type findings in the dossier node (31c01b1)
- workflows: close repair rows whose finding stopped firing (065dc33)
- workflows: collect a result where the command could write it (8756cd8)
- workflows: derive adjudication prompt contract (46eb700)
- workflows: drain drifted okf books via registry-rendered prompts (5bdcba9)
- workflows: emit review findings in the shape the router reads (1845e58)
- workflows: escalate blocked review turns instead of logging them (b9e4017)
- workflows: escalate the qa lane's blocked report turns (246d3c5)
- workflows: fail the dev path gate on a missing plan file (a3b1147)
- workflows: follow the no-root-screen code and reach's default start (50550f4)
- workflows: gate the dev story path before the first turn (b6ed09f)
- workflows: gate the fix lane's story before its first turn (30eeb0c)
- workflows: gate the reviewer's empty result instead of dying on it (1f91ff4)
- workflows: group OKF scopes by source repository (b94bb1a)
- workflows: hold a reduced audit reply to its parent packet (b0689fe)
- workflows: keep author audits within story scope (077bda5)
- workflows: keep mockup inspection ephemeral (72c871f)
- workflows: keep workflow-written files out of the repo root (ae7659f)
- workflows: leave pytest trees out of the source inventory (5de5a24)
- workflows: let an artifact-only book run qa without a stack (dd0b0db)
- workflows: make the okf-builder fixup loop terminate (284caba)
- workflows: name the regrouped ostler-okf skill in the okf prompts (2e98339)
- workflows: open the implement prompt with the repo's plan (a0c62de)
- workflows: park on an unusable adjudication instead of dying (5c04c15)
- workflows: park unreadable CI instead of spending repair laps (688b7ec)
- workflows: pass operator gate answers into resumed fix reasons (5d88713)
- workflows: repair a short audit reply, don't re-ask the packet (eda33ff)
- workflows: requeue stale OKF source context (8128a74)
- workflows: rescan round surfaces as label (86b5ed5)
- workflows: reserve audit delivery for author (a54db38)
- workflows: reset the docs chains and never fake a documented turn (867ec1d)
- workflows: retire a re-grounded citation on the verdict turns emit (bbbd583)
- workflows: scaffold every story on entry, don't branch on its age (aaf66c3)
- workflows: scope audit packets to the service being audited (6f52d3f)
- workflows: scope author epic worklists (925cbbf)
- workflows: scope author validation to roadmap (b38f6cb)
- workflows: scope the audit's book read to the service (a261d5d)
- workflows: scope the implement prompt to one plan and block cleanly (35a8d3d)
- workflows: send a blocked re-grounding row to the gate, not the cap (b6ce44a)
- workflows: skip promised server commands in check_promises (f33f4a8)
- workflows: stop double-prefixing the ci fix branch name (85667c8)
- workflows: stop the re-scan gate naming a cause it cannot see (3402d53)
- workflows: take every document location from ostler, not a param (9d25cf8)
- workflows: take the settle watermark after the rows are closed (4c348d0)
- workflows: warn repair prompts about unread nested verify bullets (a657b14)
- workflows: worklist builder reads inventory at worklist path (9b99387)
- workhorse: keep a handoff's START in its flow, colour END apart (eb00514)
- workhorse: treat a session id as an opaque string (7a0c66b)
Performance Improvements
- parallelize Python test suites (ee2f9f2)
- workflows: audit preparation runs once per drive (5aec0cf)
- workflows: avoid repeated author graph scans (0f04146)
- workflows: batch implement writes and gate runs per layer (e7b6cc1)
- workflows: demote mechanical QA turns to low power (1acb33a)
- workflows: inline the plan into the implement turn (7dea11e)
- workflows: open implement on a fresh chain with standards inlined (aab0450)
- workflows: review the diff directly instead of the PR recipe (971123d)
- workflows: route okf turns by difficulty (86c23fd)
- workflows: skip preserved surface mockups (4866e14)
- workflows: write author seeds in one edit (3c593f8)
Code Refactoring
- base-library: split the root policy into reusable ones (1f7b976)
- ostler: own the durable QA stack, hard-cut workhorse.stack (6191e5d)
- rename the top power tiers to max and ultra (66a017d)
- workflows: answer the findings basedpyright reports (9c1b56f)
- workflows: collapse the fix lane into a one-turn session (62a16d6)
- workflows: collapse the plan into four sections (5071200)
- workflows: consolidate the shared coder flow helpers (22e235d)
- workflows: cut every coder prompt to its consuming mechanics (ec2c4bd)
- workflows: cut the qa prompts to their mechanics (68832fc)
- workflows: delete the dream flow (c60f7b1)
- workflows: delete the plan-review ghost from three sites (b13dfa4)
- workflows: drop the coder lanes' session_id parameter (8db22d9)
- workflows: drop the commit blocks from the coder prompts (b0b6eca)
- workflows: drop the runbook hunt from apply-review (71c75ea)
- workflows: end the author run on a commit, not a PR (21afb6d)
- workflows: enforce read-only planning with a clean-tree gate (c4bb223)
- workflows: extract dev flow helpers into nodes (d5631c4)
- workflows: flatten the two-key qa context repair turn (2c0b914)
- workflows: fold the reuse hunt into the code review pass (163e830)
- workflows: fold the three identical Docs handoffs into one (61045f5)
- workflows: give each author flow its own prompts (b54535e)
- workflows: give each coder flow its own prompts (44578fc)
- workflows: give each okf_builder flow its own prompts (232d552)
- workflows: give the builder one prepare and one drain (576a679)
- workflows: load standards from the installed skills (e7c5633)
- workflows: make refine-plan two repairs, not one re-plan (ab461c3)
- workflows: move the coder main graph into main/ (473e6c6)
- workflows: parse technical code pointers, don't regex them (f49baed)
- workflows: put the story id in the footer only (2dbd920)
- workflows: read the queue epic back instead of threading it (46a10ef)
- workflows: read the standing QA plan off disk, not the loop (bcbc9e2)
- workflows: render coder output contracts from the schemas (381ec51)
- workflows: render the review scope the flow already resolved (ae3d913)
- workflows: replace main's nested drain with a fix handoff (88bcb99)
- workflows: restate the schema rule for literal statuses (4520c9e)
- workflows: reuse Ostler story provenance (813cd62)
- workflows: say why each okf-builder transition is taken (35182f8)
- workflows: share one operator resolver prompt across the lanes (e586d4b)
- workflows: shrink the qa loop via output readback (c57b988)
- workflows: split review findings on confidence in python (595e0de)
- workflows: split the fix-drain repair lap into its own prompt (e08bc39)
- workflows: stop re-reading standards the session already holds (a67e60d)
- workflows: trim the dev prompts to their own lane (68b1c4e)
- workflows: type audit unresolved items as UnresolvedItem rows (2fd86dd)
- workflows: type dev agent statuses as required literals (1ac23d8)
- workflows: type docs statuses and bundle the docs loop (971abf0)
- workflows: type fix_ci statuses and drop its dead summary (0d7159a)
- workflows: type genesis classifications, reuse the kit (e1f61d7)
- workflows: type main statuses and drop its dead promise fields (30b3a9a)
- workflows: type qa statuses as literals (fa5748a)
- workflows: type review statuses and bundle its loop state (8997019)