Repository navigation
Narrow maintenance release closing the concrete correctness, contract, regression, documentation, and host-state defects proven by a read-only architectural audit of the runtime.
No product-acceptance architecture changed. The audit's adjudication was that the framework was already sufficient and that the observed failures were attributable to a weak semantic model that did not exercise machinery already provisioned for it — not to a missing authority or evidence path. No product-type or target-user schema, required-surface manifest, visual-review machinery, screenshot manifest, PROGRAM_FINAL harness, client subsystem, new PROGRAM state, mandatory container behavior in the core, or added browser/computer-use/network/MCP authority.
Closed in this release
- Acceptance-criterion
verificationis functional packet authority. Every packet generation accepted the field and the shipped example populated it, but the single canonical projection feeding both the builder and reviewer work order rebuilt each criterion as{id, text}only — the field was silently discarded before either role could see it. The exact authored value now reaches SINGLE, PROGRAM checkpoint, and PROGRAM_FINAL scopes. Absence stays absent; blank is omitted; nothing is derived; it remains proof guidance, never an authoritative PASS. - Semantic acceptance/non-goal coverage is regression-proven. The
semantic_coverage_incompletebranch — the guard preventing approval for under-reporting coverage — occurred exactly once in source and nowhere in the test suite. New coverage drives the real finalizer across missing, duplicate, and unexpected ACs, a missing non-goal, complete coverage still approving, checkpoint scope rejecting future-checkpoint ACs, and both cases at PROGRAM_FINAL. Coverage only; no verdict semantics changed. - Cross-role worktree isolation is structural. It was true only incidentally, because a repository under
$HOMEis already covered by the broad deny; a repository outside$HOMEleft the sibling worktree unlisted. The path-policy owner now denies the sibling explicitly. The rule can only remove potential authority. - One SPEC doctrine. The portable host-neutral mirror had lost the local-service/container inference rule, the rendered-artifact and generated-document rules, the prohibition on automatically adding a browser capability and on encoding product-type rules into deterministic Python, the fail-honestly-before-launch rule, and the whole-lifetime sizing rule.
skills/spec/SKILL.mdis the declared canonical owner; conformance now asserts the shared normative fragments in both copies, targeting doctrine rather than bytes. - Reviewer/builder network-authority guidance corrected. Both role contracts asserted
allowedDomains: []unconditionally; the real effective set is the union of the packet's frozennetwork_read_allowlistwith resolved capability domains understrictAllowlist: true. The prose is now pinned to the source so it cannot drift again. The strongerresearch.publicrule is retained: binding it adds no Bash network authority. - Bounded E2E validation pattern documented, including the process-group leak detector, refused detachment primitives, the uv-mediated network profile that drops local bind/inbound, and the shared packet-level timeout ceiling. No schema was expanded and no lifecycle protection relaxed.
- Claude hook commands quote
${CLAUDE_PLUGIN_ROOT}. They previously used the placeholder unquoted, so a plugin path containing a space word-split and every Of-Loop hook silently failed open. A newer Claude CLI lint surfaced this; the CIclaude-adapterlane could not pass until it was fixed.
Verification
- Canonical suite: 156/156 PASS (
OF_LOOP_TOTAL=156,OF_LOOP_PASSED=156,OF_LOOP_FAILED=0) - Release gate: PASS; install parity PASS; payload manifest 382/382; plugin validate PASS
- Exact-master CI: run 37166130589, 10/10 lanes green at
162d3afb14ec3f6c203d2c053fa0b234bae6736d
Historical releases, including v1.1.1 and v1.1.0, are unchanged.