v0.13.0 - Architecture deepening (C1-C6)
v0.13.0 - Architecture deepening (C1-C6)
Released 2026-08-09.
Refactor-only minor: no new commands (inventory stays 6), no layout change —
six architecture deepenings that make the bundled runtimes, gates, and
imports single-homed. Behavior changes are narrow, sanctioned corrections
(see below); everything else is movement, not semantics.
Contract v1 lands atomically (C2, ADR-0018)
- Capture contract rules move into one package-internal module
mcp/evidence/capture_contract.py: write-sideparse_capture_contract,
read-sidevalidate_capture_snapshot, and the contract-fields JSON Schema
fragment the provider composes (const/enum/required share one source, so
schema and parser cannot drift). - G6 now validates bound manifest request snapshots through the same read
authority instead of hand-written partial checks. Sanctioned correction:
malformed viewport shape or missing freeze fail closed (was lax).
New rule IDsG6.capture_viewport_shape/G6.capture_freeze; existing
G6.capture_schema/G6.capture_viewportkeep wording.
Preview integrity deepens (C1, ADR-0008/0013)
- One read-only
mcp/preview/integrity.pyowns prototype digest, feedback
floor, current round, and confirm validity; G5 and run status consume the
same snapshot. run status aligns with G5 on Preview occurrence.
Stage registry (C4, ADR-0021)
scripts/stages.pyis the single home for named stage specs (SKILL.md step
mirror), regular resume actions, and the shared artifact names
(evidence/,manifest.jsonl,point-back.md,decision-report.md,
spec.md); run status and G6 share them, so the table and the names cannot
disagree.
Closed-loop gate split (C3, ADR-0023)
validate_run.py(1262 → 272 lines) is a thin orchestrator over focused
gate modules:g1_spec,g2_g4_pointback,g5_preview,
g6_evidence,g6_warnings, with shared ledger/manifest parsing in
g6_records. Rule IDs, messages, ordering, and exit codes remain unchanged.
Real import seam (C5, ADR-0022)
- Cross-runtime
sys.pathadapters (31) collapse to one package-root
bootstrap + absolutedesign_playbook.*imports;mcp/andscripts/
become importable packages. The duplicated rootscripts/run_status.py
dev copy is removed (one copy remains, in the package).
Preview versions collapse (C6, ADR-0024)
versions.pyno longer reaches through transaction's private seam: the
shared primitives (atomic write, directory lock, entry load, log render)
are transaction's public API, and the lock policy is one source
(DIRECTORY_LOCK_*) — no second lock namespace to desync.
Release-boundary notes
- Per ADR-0018, capture contract v1 ships as one merge/release boundary;
old unversioned run-local evidence requires recapture (no dual-read path). mainstays the stable channel (ADR-0015); this tag is the first surface
carrying the deepening branch.