phax 0.32.0
Changes since 0.31.0: v0.31.0...v0.32.0.
Highlights
- Structured output — The provider may shape the answer; only phax's decoder accepts it.
Upgrading
- Records and schema readers:
hand-decision-answeris two formats.spec-hand-decision-answerandplan-hand-decision-answerare each the old variant with a$schemaconst.hand-decision-answerstays readable at 0.25.0, and phax no longer reads or asks for it. - Schema readers:
plan-documentno longer pairssourceSpecandcompletesSpecin its schema. phax checks the pair. - Schema readers: every answer's
$schemais a const of its 0.32.0 stamp. That covers spec and plan sidecars, the two hand-decision formats,first-reading,interactive-handoff,code-reviewandphax-plan-extraction. An older@lbdremy/phax-schemascannot read them, and the package reads a const format only at its own stamps. - Schema readers:
phax-planis restamped 0.32.0, its decoding unchanged. An older@lbdremy/phax-schemascannot read a 0.32.0 run plan. - Schema readers: the
code-reviewanswer and file are one shape,$schemain place ofversion. - Schema readers: new
phax-plan-extractionformat, the answer of the plan extraction. - Headless authoring answers carry
$schemain place ofversion: 1. - Records and schema readers:
compliance-review.jsonis stamped 0.32.0.$schemais a const, and two ledgers are required:unplannedChanges(phaseId,path,note) andunmetPromises(phaseId,promise,note), each possibly empty. A 0.32.0 file without either is refused. - Records and schema readers: older compliance reviews read without ledgers. A 0.17.0 or pre-schema review still reads, never with empty ledgers;
@lbdremy/phax-schemasgives themUnknownledgers. - Records readers:
compliance-review.mdis rendered by phax from the answer, with fixed sections (summary, one per phase, unplanned changes, unmet promises, attention points, pointers). phax review-complianceno longer printsVerdict: unknown. A review refused twice fails with exit 1 and writes no file and no records entry; the corrective resume's transcript iscompliance-review-retry.session.jsonl.- The compliance session is read-only and writes nothing under
.phax-context/. - Run
phax artifact migrate-documentsonce. It restamps every live spec and plan sidecar below its current shape, their bodies unchanged. Until thenapprove,reopenanddeciderefuse, naming the command.
See Structured answers and providers for what each provider now checks.
What's new
Structured output
The provider may shape the answer; only phax's decoder accepts it.
-
A compliance review whose answer is wrong gets one more chance in the same session, and when it still fails phax says why instead of showing an unknown verdict.
phax review-complianceNow:
Before
-
The compliance review now lists the files changed beyond the plan and the promised tests that are missing, alongside its verdict.
compliance-review.jsonNow:
Before
-
The compliance review's Markdown is written by phax from the review itself, so it always matches the verdict and keeps the same sections from run to run.
compliance-review.mdNow:
Before
-
A headless code review whose answer is refused is asked once more in the same session instead of failing straight away.
phax review-code --headlessNow:
Before
-
Headless authoring, decide and review sessions on Claude Code and Codex no longer stop on a wrongly shaped answer: the provider fixes the shape while it writes.
phax artifact new spec --headless (on Claude Code or Codex)Now:
Before
-
The published plan schema now follows the strict rules Claude Code and Codex enforce:
sourceSpecandcompletesSpecstay required and nullable, and phax checks that they go together instead of the schema.phax artifact schema planNow:
Before