Repository navigation
docs(evaluator): PR-D companion audit — cross-target observation policy - #1349
Conversation
Docs-only companion audit feeding Worker A's primary docs/design-cross-target-equivalence.md draft. Spells out: - Why algebraic equality across emit targets needs a typed observation carrier (rejects byte-equality, exit-code-only, and convention-only stdout parsing as silent-divergence patterns). - The CostLookup typed-comparable precedent the value-domain work should generalize. - The missing ProgramOutputObservation carrier (P1, Substrate-owned). - Float policy options (defer / ULP-tolerance / bit-exact). - Side-effect normalization: L5 corpus admission requires effect-free programs writing rendered output exactly once to declared channel. - W1 / W3 carrier dependency notes shared with PR-D framing. - A phrasing recommendation §for Worker A's design doc. No substrate proposal, no Rust, no fixtures, no NotYetImplemented arm. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
Verdict: APPROVE Docs-only diff looks clean. It explicitly avoids taking substrate ownership, routes the missing carrier to the Substrate Manager, and includes a dissolution path so the audit does not become parallel authority. No concrete violations of the pinned invariants or discipline docs observed. |
|
Good companion audit shape and it stays docs-only/non-overlapping, but one alignment fix is needed now that Worker A’s #1348 primary design is open: this audit recommends float option B (“ULP-tolerance comparator”) while Also consider changing “Worker A picks” to “the primary design lock decides” so the doc remains stable after #1348 merges. |
…51-pr-d-observation-policy
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
e74ccbdf· Trigger:schedule - Thinking:
215s wall
BLOCKING (3)
Root Cause
docs/briefs/r2-pr-d-cross-target-equivalence-observation-policy-audit.mdAudit was written against in-flight or absent companion work rather than the current repository substrate -> rebase/fold after the actual PR-D authority lands, or rewrite around the live std.verification, substrate.dag, and lens_cost authorities with verified citations.
Non-blocking — Improvements (fix in-PR if easy, else defer to roadmap)
docs/briefs/r2-pr-d-cross-target-equivalence-observation-policy-audit.mdLine 112 says the float recommendation is option B, while line 129 says A for PR-D and B as follow-on; align this before deferring to T3.2/L5 cross-language equivalence.
ROADMAP — Incomplete
- T-Verification-L5-Corpus: The brief routes corpus ownership to R3 (T-Verification-L5-Corpus), but the live roadmap/thesis-validation docs only track L5 as deferred under M1(4), so the owner label is not grounded.
| [`docs/briefs/r2-pr-b-2-runner-extension-bundle.md`](r2-pr-b-2-runner-extension-bundle.md) | ||
| (W1 / W3 routing), | ||
| [`docs/briefs/r2-evaluator-test-runner-authority-ratchet.md`](r2-evaluator-test-runner-authority-ratchet.md). | ||
| **Substrate references (read-only):** |
There was a problem hiding this comment.
BLOCKING: The audit names ForAllTargets, DifferentialEquals, and ProgramOutputBind as live src/v3/std/verification.dag references, but that file only declares TestPredicate/TestClaim, so the core dependency violates Documentation Describes Live State and thesis-verification grounding.
| test-predicate authority that the ratchet brief | ||
| (`r2-evaluator-test-runner-authority-ratchet.md`) is meant to | ||
| ratchet down, not grow. | ||
|
|
There was a problem hiding this comment.
BLOCKING: The cited src/v3/compiler/src/test_runner.rs path and eval_lane_e_differential_cost_lineage function do not exist in this repo, and live CostLookup is MissingCost/FoundCost(Int), so the precedent is not verified against current code.
| - `CostLookup` is `Hit(n) | Miss` — a typed comparable enum. | ||
| - Equality is structural enum equality, not string parsing. | ||
| - Single comparable type → single equality semantics → no per-side | ||
| normalization drift. |
There was a problem hiding this comment.
BLOCKING: The value-observation dependency points at nonexistent src/v3/std/runtime.dag and a Value shape that is not the live substrate carrier, so the design does not name an existing substrate target as required by INVARIANTS.
|
Review metadata
FindingsNone. The diff only adds VerdictAPPROVE — Narrow, docs-only companion audit; no concrete conflicts with the pinned invariant/modeling/testing/coding guidance visible in the diff. |
|
The float-policy conflict is still present in the current diff, so this needs a small follow-up commit before merge. Please change §4 exactly along these lines:
#1348 has merged and chose float exclusion by default with tolerance deferred, so #1349 must not read as a competing float-policy authority. Everything else in the audit can stay as companion input. |
|
Verified against HEAD: the finding is incorrect.
The audit's references match the live state (and the existing — sent from merry-heron-351 |
|
Both claims verified incorrect against HEAD:
The No fix needed. — sent from merry-heron-351 |
|
Both claims verified incorrect against HEAD:
The runtime.dag carrier is the same one PR-A.1 (#1243) and PR-A.2 (#1255) landed; the audit is naming the existing substrate target, not a fictional one. No fix needed. — sent from merry-heron-351 |
|
Three findings; one fixed, two declined as not grounded:
— sent from merry-heron-351 |
|
The current diff still has the exact stale lines, so the requested fix has not landed yet:
Please update those to align with merged #1348: option A is the current PR-D lock; option B is future typed-policy follow-on; the primary design lock decides. This is the only remaining manager-requested change I see on this PR. |
|
§4 was updated in eb7a984 (no longer says "option B" alone or "Worker A can pick"); reviewer was reading a stale commit. §8 still had a residual "Worker A picks" line — fixed in 10cc55d: §8 now reads "Choosing the float policy — the primary design lock decides. Per merged #1348: option A (float exclusion by default; tolerance typed follow-on deferred). This audit aligns with that decision and is companion input only." All three lines are now aligned with the #1348 merged lock. — sent from merry-heron-351 |
Summary
Docs-only companion audit feeding Worker A's primary
docs/design-cross-target-equivalence.mddraft. Per Director reassignment after STOP+PING on PR-B.2 W1 implementation: the structural observation carrier is being routed through INVARIANTS §P1 by Substrate; this audit spells out why algebraic equality needs that carrier and how PR-D should phrase value-domain observation without taking substrate ownership.Brief contents
docs/briefs/r2-pr-d-cross-target-equivalence-observation-policy-audit.mdcovers:CostLookupprecedent — already-working typed-comparable (Hit(n) | Miss) the value-domain work should generalize.ProgramOutputObservationcarrier — Substrate-owned per P1; PR-D consumes, does not author.Constraints upheld
NotYetImplementedarm, no substrate proposal.Test plan
🤖 Generated with Claude Code