Repository navigation
Releases
adw 3.5.12
The 3.5.12 engine: the two defects the unattended runs of November 2026 found, then the items the 3.5.11 release sitting queued.
Install or move to this release:
claude plugin marketplace add ryanmat/adw@v3.5.12
claude plugin install adw@adw --scope user- The red proof attributes a bare Python module to the step when a changed
.pyfile carries its name: a module the step adds under a root the tree arranges throughconftest.py'ssys.pathno longer reads as a foreign module, so the check is red where it should be rather thanCHECK APPARATUS; the eval harness gains thescripts-rootscenario for it. - A committed step always reaches wrap-up: when the budget cannot carry the review, the coordinator runs
wrap-up --review-skipped <budget|turns|context>, the title, the body and theRUN STOPPEDline all carry the marker, a re-run after a failed push keeps it, and the flag is refused on a run that committed no step. - A turn-limit stop is resumed once, with one message asking for the report, and a second turn-limit note on the same step reverts it and hands back a decision.
- A re-review approves with Minors open: the fix-round verdict has three forms,
verdict --open-minor <label>records what was left, and Minor findings never block. - One fix round for the chunk, at the chunk's last commit, committed as
commit N --fix "<summary>", which writesfix(chunk L): <summary>orfix(step-N): <summary>and refuses a step with no priorfeat(step-N)commit on the plan's branch. migrateprints how the tree gets clean:next: remove <plan>.bak then python3 $AUTO boundary-commit --title "migrate into the grammar", the backup first becauseboundary-commitrefuses an untracked path.- The verdict filter reads only direct bullets as findings: a margin prose line under a severity header ends that section's plain bullets, so a reviewer's evidence sub-bullets are no longer dropped as findings without a
file:line; a bullet that itself starts withfile:linestill counts. - The plan grammar ignores fenced code blocks in every header scan, and an append to Decisions or Findings lands above a fenced
##line so an approved plan's hash holds. - The eval harness clears the fixture clone's
.remember/beforegit cleanand retries the clean once. - The curated engine keeps two blank lines before a top-level
deforclassthat follows a stripped definition, soruff format --checkpasses on the public tree. README.md: the logo asset and the install line name this release, the drift-check example names the newest earlier tag's commit (v3.5.11 is 4a182d2), and the runbook's description appears once.
Curated from the maintainer's development repository after the engine merge 580c016 at f0112f5; every release gate passed (banned-token scan, gitleaks, the 2772-test suite, ruff, plugin validate), and the ten-scenario unattended eval passed 10 of 10 on the engine head.
adw 3.5.11
The 3.5.11 engine: the items the 3.5.10 release left open, two of them filed here as #7 and #8.
Install or move to this release:
claude plugin marketplace add ryanmat/adw@v3.5.11
claude plugin install adw@adw --scope userset N doneexempts a comment-only fix round of aMutation: requiredstep from the mutation-killed claim when the check record carriesred_reason: comment-only fix round, andcommit Nrecordsmutation: n/afor that round; the refusal on a required step names the step's mutation controls and their re-run on a fix round (#7).validatenames a near-miss trailing header in the section's place (missing section: '## Decisions' (found '## Decisions open' at line N; rename it)), andmigraterenames the first near miss of each absent section with a.bakbeside the plan, refusing one that stands beside the section's own header (#8).set N <state>on a step with a build record keeps it in every state but done:; record: <note>after a wrapped state's own note, or(record: <note>)alone on in-progress and pending; a note that itself holdsrecord:is refused.check Nendscheck-N.logwith a stamp line naming HEAD, the base, the Test exit, the counts and the time.commands/next.md: the mutation-check item says to delete__pycache__after a same-size mutant, the boundary paragraph says the.orig.mdcopy is written when the verdict filter dropped a finding, and the stop and on-red sentences say the record is kept.- The changelog pin in the maintainer's tests anchors at the first heading, and the step-reference grammar states its closing-word rule in its comment.
Curated from the maintainer's development repository after the engine merge b4b84f6 at 13d6c1c; every release gate passed (banned-token scan, gitleaks, the 2718-test suite, ruff, plugin validate), and the nine-scenario unattended eval passed 8 of 9 on the engine head, the one failure the recorded capability case.
adw 3.5.10
The 3.5.10 engine: the hardening items the 3.5.9 release left open, and a README that leads with the intent.
Install or move to this release:
claude plugin marketplace add ryanmat/adw@v3.5.10
claude plugin install adw@adw --scope userThe hardening items the 3.5.9 release left in its plan's Findings:
renumberreads a plural list as comma entries closed by oneandortoentry, so a count after the list (Steps 7 to 9, 12 tests red) is no longer a step number; it rewrites references in the plan's preamble too, counted under apreamblekey.boundary-commitskips a plan kept out of git by design with an exit-0 line instead of refusing with a false reason, and reads a corrupt run marker as the error it is.next-guardkeeps its denials from Python 3.9 and its body runs there; the three import-bound hooks and the four scripts still stand down below 3.12 with one line.set N doneon a step already done appends a fix round after the step's record (; fix round: <note>; <clause>) instead of replacing it; a corrected note against the same record replaces that round's note, and the plan's own note passed back changes nothing.- The eval graders share one Decisions condition, and the projection's
--texttest reads a token per query shape from the answer itself. - Removed: the unread leftovers of
evals/lib/record.pyin the public cut (the shebang,SUPPORTED_AGGREGATE_SCHEMA,DEFAULT_LEDGER, the plugin-eval divider,CORRECTION_SCHEMA).
Documentation: the README leads with the intent (the four phases intent, spec, plan, run; the intent file and its commit first in Usage), and the changelog marks removals under a Removed: bullet, one item per surface, starting with the 3.5.9 entry.
Curated from the maintainer's development repository after the engine merge da4a370 at bbd4a7a; every release gate passed (banned-token scan, gitleaks, the 2673-test suite, ruff, plugin validate), and the nine-scenario unattended eval passed 9 of 9 on the engine head.
adw 3.5.9
The 3.5.9 engine: the install sweep's fixes and the carries from unattended use.
Install or move to this release:
claude plugin marketplace add ryanmat/adw@v3.5.9
claude plugin install adw@adw --scope userEngine fixes from the install sweep:
mergerequires arefs/notes/preflightnote on the head only underADW_PREFLIGHT_NOTE=required; unset, the gate reads no notes.startchecks the owner allow-list before it reaches GitHub; the unused open-pull-request probe is gone.boundary-commitcommits the plan alone at a chunk boundary and refuses anything else staged.- Every hook and script prints one line and stands down below Python 3.12 instead of raising.
- The classifier probe and the projection's two ledger sources are gone; the public tree is cut with the plugin-eval functions stripped by name.
- Wrap-up writes the
Intent:trailer from the plan header.
Carried from unattended use under a scheduler:
- A run that commits no step hands back: no push, no pull request,
RUN STOPPED <reason> NO PR: no step committed, the plan brought home and the local run branch kept for the morning read. - One
[run <id>]tag per entry; the appender puts a bullet on its own line after an unterminated last line. validatewarns when an open step namespyproject,conftest,pre-commit-configortoxwithout the file's basename;preflightprints each warning once asPREFLIGHT WARN.next_plan.py renumber <plan> --from <n> --by <k>relabels the PENDING steps and everyStep <n>orSteps <n>, <n> and <n>reference, extends theLegacy step mapline, and refuses a non-positive shift, a start above every step and a step in range that is not PENDING.- The ninth eval scenario,
decision-stop-empty, grades the hand-back live.
New documentation: docs/intent.md, the intent artifact and its Intent: header line and trailer.
The full entry is in CHANGELOG.md.
adw 3.5.8
First public release, curated from the maintainer's development repository at commit ab2b2d1.
The engine as it runs in production: the three commands, the run and spec-mining agents, the guard, Stop, ruling-log and ruling-recall hooks, the plan grammar and auto-run scripts, the delivery projection, the Markdown skill, the suite, and the next-auto eval harness.
Changes against the development tree, made for a public audience:
- The owner allow-list and the never-run set are read from
ADW_OWNERSandADW_NEVER_AUTO, with no default owner. Preflight, start and merge refuse untilADW_OWNERSis set. - The done-check reviewer a verdict record names is
ADW_DONE_REVIEWER, defaultdone-check. - The ruling hooks are opt-in:
ruling-log.pyrecords a dialog only in a project that already has.next-auto/rulings/. - The plan grammar's trailing section is
## Decisions; theEval-codesvalue for the 0 pass, 1 fail, 2 and 3 apparatus convention isapparatus. - The eval harness names its fixture repository through
ADW_EVAL_FIXTURE_REPO. - Test fixtures are synthetic: the structure of real plans, records and pull requests with their free text regenerated.
- The source is ASCII throughout.
Install, pinned to this tag:
claude plugin marketplace add ryanmat/adw@v3.5.8
claude plugin install adw@adw --scope user