Skip to content

feat(research): add CALF/LegNav comparator diagnostic - #7357

Draft
ll7 wants to merge 14 commits into
mainfrom
research/issue-7318-calf
Draft

feat(research): add CALF/LegNav comparator diagnostic#7357
ll7 wants to merge 14 commits into
mainfrom
research/issue-7318-calf

Conversation

@ll7

@ll7 ll7 commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

Implements #7318 as a bounded CALF/LegNav-inspired Robot SF comparator diagnostic. It runs the
same local PPO candidate, scenario, and seed under ideal and perception-limited observation
contracts, records paired local trace metrics, and preserves explicit blocked, unavailable, and
qualified-proxy fields.

The comparator does not execute the external CALF policy, LegNav simulator, calibrated leg sensor,
TurtleBot 4 deployment, or source training recipe. Its output is diagnostic-only and is not
benchmark, safety, transfer, or paper-facing evidence.

Research / Evidence Boundary

  • Target question: whether the existing Robot SF step trace can separate ideal from bounded
    perception-limited observations for one local policy smoke.
  • Comparator: same candidate, effective algorithm, scenario, and seed across paired observation
    contracts; no external policy parity or scientific comparator is asserted.
  • Evidence tier: executable diagnostic plumbing and provenance only; one paired episode cannot
    estimate uncertainty or support a research conclusion.
  • Metric guard: each action contributes one conservative minimum across its pre-step and post-step
    distance fields; every action must expose at least one distance field, and incomplete distance
    coverage is unavailable rather than silently reduced to a partial denominator.
  • Outcome guard: a false terminal done_info.success cannot be overridden by a true row-level
    is_success; contradictory outcomes are unavailable.
  • Stop rule: malformed or incomplete traces, non-finite config values, actor-capacity overflow,
    missing traces, runner errors, schema mismatch, missing or contradictory fallback/degraded
    verdicts, or unknown source fields remain blocked or unavailable.

Exact Refresh

  • Current PR base: eeb42cfdacf540078dd640a5797b8049743a1026.
  • Exact pushed head: 78a10050c15738820d467d78d020e4f4c02af9e6.
  • Branch: research/issue-7318-calf.
  • The branch was rebased from the stale PR base onto current origin/main; the
    tests/conftest.py fast-lane conflict was resolved while retaining all current registrations
    and the CALF comparator test registration.

Repair

  • Distance metrics now require complete per-action distance coverage and report both distance
    metrics as unavailable when any executed row lacks both distance fields.
  • Terminal and row-level success fields now fail closed on a false terminal outcome paired with a
    true row success flag instead of combining them with an unconditional or.
  • Added regressions for both contracts and documented their claim boundary.

Domain-Aware Approval

  • Required for this PR: yes — the changed surface is research/benchmark-adjacent.
  • Domains reviewed: comparator metric validity, trace/provenance contracts, fallback/degraded
    execution handling, current-base integration, and CALF/LegNav claim boundaries.
  • Status: pending — no distinct trusted domain approval is recorded for the repaired exact head; the
    PR remains held as draft, state:blocked, and domain-review-required.
  • Approver/review source or waiver: independent Luna exact-head implementation review is recorded,
    but it is not claimed as trusted domain approval or a waiver.
  • Validity checklist:
    • Target claim/hypothesis: only local separation of ideal and perception-limited trace contracts;
      no CALF/LegNav performance or transfer hypothesis is tested.
    • Comparator or split/evidence validity: paired same-candidate/same-algorithm/same-scenario/
      same-seed traces with per-action distance completeness and explicit metric availability.
    • Fallback/degraded exclusions: missing, malformed, contradictory, or active fallback/degraded
      verdicts, incomplete traces, and unavailable native prerequisites remain blocked/unavailable.
    • Claim boundary: diagnostic-only local plumbing; no benchmark, safety, ranking, sensor-realism,
      transfer, or paper-facing claim.
    • Implementation integrity vs experimental validity: contract implementation is tested;
      external-policy parity, multi-seed uncertainty, and experimental validity remain unproved.

Validation / Proof

  • Test-first proof: the two new regressions failed before the repair because partial distances were
    reported available and contradictory success was accepted.
  • Comparator, diagnostic, and namespace suites after repair: 60 passed.
  • Fast-lane routing audit: passed, findings=0.
  • Changed-file coverage: robot_sf/benchmark/calf_legnav_comparator.py 92.9% (247/266 executable
    lines), above the 80% minimum. The remaining uncovered paths are diagnostic/error branches; no
    coverage threshold was weakened.
  • Ruff check, Ruff format check, and git diff --check: passed.
  • Native end-to-end execution remains unavailable in the review environment because the required
    training/runtime artifacts and dependencies (stable_baselines3/torch) are not hydrated. No
    policy episode, CALF parity result, uncertainty estimate, or benchmark result was produced.
  • The one-seed canonical fixture remains a diagnostic-only handoff and must fail closed when its
    native prerequisites are absent; fallback/degraded execution is not success evidence.

Follow-Up Issues

  • research: reproduce CALF/LegNav-style RL local-navigation evaluation #7318 remains the parent research issue and owns external CALF/LegNav source-policy, sensor,
    embodiment, real-manifest, multi-seed, multi-scenario, and uncertainty decisions.
  • Install the repository training extras on a suitable execution host before rerunning the
    canonical smoke; fallback mode must remain excluded from success evidence.
  • Independent domain approval is required before any stronger research or evidence admission.

Gate

This branch is rebased and the bounded diagnostic contracts are repaired, but the PR remains a
draft and blocked. Hosted checks, local contract tests, and local readiness are not research
admission. No merge-ready label or merge is requested while native artifact availability,
independent domain approval, and the parent research decision remain unresolved.

Exact head: 78a1005
gate-verdict: blocked @ 78a1005
merge-ready: no @ 78a1005
compute: none

PR Metadata

  • PR base: eeb42cfdacf540078dd640a5797b8049743a1026.
  • Head: 78a10050c15738820d467d78d020e4f4c02af9e6.
  • Worktree: /home/luttkule/git/robot_sf_ll7.worktrees/fix-pr-7357-cycle14.

@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f206dea0-fa07-41cd-b93a-e1c7625673a8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the review-bot-auto Managed label that routes code-bearing PRs to CodeRabbit. label Aug 17, 2026
@github-actions

Copy link
Copy Markdown

🔍 PR Contract Check Summary

Overall Status: 🟢 PASSED

Check Status Description
1. Closes-discipline ✅ PASSED Demand Refs #N for epic issues
2. Closure declaration ✅ PASSED Require Closes/Refs for title issues
3. State-refresh-only ✅ PASSED Reject docs/context state updates
4. Evidence hygiene ✅ PASSED Checks markers and provenance fields
5. Evidence writer usage ✅ PASSED Require the shared marked writer path
6. Successor discipline ✅ PASSED Require successor statement on multi-PR issues
7. Worker-lane label ⚪ None Label PRs from cheap worker lane
8. Placeholder docstring ratchet ✅ PASSED Reject NEW TODO/empty docstrings in added diff lines

ℹ️ Info

  • No worker-lane provenance detected.

This check is mechanized. Please resolve any blockers to pass CI.

@ll7

ll7 commented Aug 17, 2026

Copy link
Copy Markdown
Owner Author

Maintainer Decision Required

What is complete:

  • Branch is fresh against current main (462032df2abc3e086655935288c806b9df8bda2b) at exact head 28e52141dca6c907ff4bd74ebb1b1f178709b8ce.
  • Unit tests (37 passed), documentation evidence integrity, and smoke diagnostic pass cleanly.

What is missing for merge:

  • Domain-Aware Review:
    1. This PR introduces the paired observation-contract comparator for CALF/LegNav (research: reproduce CALF/LegNav-style RL local-navigation evaluation #7318).
    2. Per repository guidelines, domain-aware approval is required to approve the paired observation-contract validity and diagnostic claim boundaries.
  • Action Required by Maintainer:
    1. Review the paired observation-contract comparator and claim boundaries in docs/calf_legnav_comparator.md.
    2. If approved, submit domain approval with domain-decision: approved @ 28e52141dca6c907ff4bd74ebb1b1f178709b8ce.
    3. Remove decision-required and apply merge-ready when ready.

@ll7 ll7 added the decision-required Author input needed; not yet prepared as a decision packet label Aug 17, 2026
@ll7

ll7 commented Aug 17, 2026

Copy link
Copy Markdown
Owner Author

Exact-Head Review Verdict

  • PR: feat(research): add CALF/LegNav comparator diagnostic (7357)
  • Target Head SHA: 28e52141dca6c907ff4bd74ebb1b1f178709b8ce
  • Target Base SHA: 462032df2abc3e086655935288c806b9df8bda2b

Findings Disposition

Validation Executed (exact head)

  • uv run pytest tests/benchmark/test_calf_legnav_comparator.py tests/validation/test_run_policy_search_step_diagnostics.py -q — 21 passed
  • uv run ruff check robot_sf/benchmark/calf_legnav_comparator.py scripts/benchmark/run_calf_legnav_comparator_issue_7318.py scripts/validation/run_policy_search_step_diagnostics.py — passed
  • uv run ruff format --check on changed files — passed
  • git diff --check — passed
  • uv run python scripts/benchmark/run_calf_legnav_comparator_issue_7318.py --config configs/benchmarks/issue_7318_calf_legnav_comparator_smoke.yaml --dry-run — valid plan emitted

base-policy: ordinary-cas @ 28e5214
pr-metadata: reconciled @ f2c6143bf84e9a429710d4cf1ece58d2a3a297d96c9b1f30cbf4dfbd36e8b7c9
gate-verdict: accepted @ 28e5214

@ll7 ll7 added merge-ready Verified by the PR gate and ready to merge and removed merge-ready Verified by the PR gate and ready to merge labels Aug 17, 2026
@ll7

ll7 commented Aug 17, 2026

Copy link
Copy Markdown
Owner Author

Exact-head self-review — PR #7357

  • Reviewed exact head: 68396b632248849c9a7e9503113b40c3d6844feb
  • Reviewed base: 02b2e16b2690b3aa422b4835e4bf8effddbc8a7c
  • Intended scope: CALF/LegNav diagnostic comparator, paired observation-contract smoke, fixed-shape overflow guard, schemas/docs/tests, and the required benchmark namespace-inventory classification.
  • Refreshed diff: 12 files against the current base; the only merge conflict was the docs/README.md link insertion, resolved by retaining both diagnostic entries.

Local proof

  • 37 focused comparator/diagnostic/lazy-import tests passed.
  • 4 namespace-inventory tests passed after explicitly classifying calf_legnav_comparator.py as cross_cutting_schema_evidence_readiness_artifact_metric_utility_surface with no_compatibility_action.
  • Ruff check/format, git diff --check, and changed-file docs/evidence integrity passed.
  • Canonical paired smoke emitted a schema-valid available report for both perfect_perception and sensor_limited, with no reported fallback/degraded execution. This remains a one-seed diagnostic smoke, not benchmark or transfer evidence.
  • Advisory full readiness passed core and optional lanes, docs/ratchets, broad-exception checks, and freshness at the exact head. Changed comparator coverage was 93.1%, warning-only above the 80% minimum and below the 100% advisory goal.

Gate disposition

  • Hosted CI for the exact head is fresh but pending: 9 queued checks, 1 intentional merge-queue-gate skip, and CodeRabbit success; no hosted failure is currently present.
  • Domain-aware approval is required for this evidence-sensitive research direction and remains explicitly pending in the reconciled PR body. Final readiness and merge admission are blocked until an authorized domain approver records approved or waived.
  • No compute, training, campaign, benchmark-result, transfer, safety, evidence-admission, or publication claim was made.

gate-verdict: blocked @ 68396b632248849c9a7e9503113b40c3d6844feb
merge-ready: no
pr-metadata: reconciled @ fb650914ec0d76f859ffce175309a75015518ae65dc958a398652638565a08a2

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head CALF comparator review — PR #7357

  • Reviewed head: c680b6811b6b8d1b8f750ec9c1892c7d433d9901.
  • Reviewed base: 462032df2abc3e086655935288c806b9df8bda2b (origin/main).
  • Rebased/merged cleanly onto current main.
  • Local validation: 4 tests passed in tests/dev/test_issue_7331_benchmark_namespace_inventory.py. Ruff check and format passed. git diff --check passed.
  • Domain-aware approval: pending maintainer decision.
  • Reconciled PR metadata: pr-metadata: reconciled @ afe9c4c61d65be7f42e06ce3f607e8ad0dc1dba4bb78716ce6830073e68b9fc4.

gate-verdict: accepted @ c680b6811b6b8d1b8f750ec9c1892c7d433d9901
merge-ready: no (domain-aware approval pending)

@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

Domain-aware review — paired observation-contract validity

Reviewed head: c680b6811b6b8d1b8f750ec9c1892c7d433d9901. Labels left unchanged deliberately; see
"Why this is parked" below.

Not author-reserved

The diff adds a comparator module, two schemas, a runner, a frozen smoke config, a docs page, and
tests. It changes no claim ledger, no docs/context/catalog.yaml, no docs/context/evidence/**
entry, no preregistration, no release/tag, no repository setting, and no orchestrator authority.
docs/calf_legnav_comparator.md:1-7 and comparison_interpretation.not_claims in
robot_sf/benchmark/calf_legnav_comparator.py record the boundary rather than admitting evidence.
The output is disposable and is not promoted to a benchmark row.

Pairing verified empirically, not from the body

Live paired smoke on the committed config, both rows executed, no fallback/degraded execution:

slot observed evidence_class noise_profile condition status
perfect_perception ideal_state none available
sensor_limited perception_limited bounded_gaussian available

Same candidate ppo_issue791_best_v1, scenario issue_2756_occluded_emergence, seed 111,
horizon 12, one config digest. Only the observation contract differs — the body's claim holds for
the committed config.

One fail-open found (tracked: #7454)

build_calf_legnav_comparator_report files perfect_trace under CONDITION_IDEAL and
sensor_trace under CONDITION_SENSOR without ever comparing the trace's own derived
observation_contract.condition to the slot it was filed under. _observation_contract returns
status: "available" for either evidence class, the paired identity guard omits horizon, and
calf_legnav_comparator_config.v1.json permits noise keys in either condition. A config edit that
makes both rows perception-limited therefore still yields a top-level available report. The
invariant the PR asserts is not enforced.

A validated fix exists on branch review/pr-7357-observation-binding-20260818 (commit 5949b7024,
cherry-picked onto this exact head): it binds each slot to the observed evidence class, fails the
condition closed on a mismatch, adds horizon to the identity check, and adds three tests. No schema
change is required. pytest tests/benchmark/test_calf_legnav_comparator.py tests/dev/test_issue_7331_benchmark_namespace_inventory.py — 12 passed; ruff clean; the committed
smoke still reports available with both slots condition_binding: matched.

Why this is parked

The branch received a base refresh from the autonomous factory a few minutes before this review, and
no exact-head verdict has been posted for the new head yet. Pushing the hardening into
research/issue-7318-calf would have immediately staled that in-flight cycle, so the commit was
parked on the side branch above instead of raced in.

Recommendation

Merge review/pr-7357-observation-binding-20260818 into research/issue-7318-calf, then promote:
the domain question ("is the paired observation contract valid?") is answered yes for the committed
config, and the only substantive gap is the enforcement fix that is already written and validated.
Landing the PR first and closing #7454 as a follow-up is also acceptable — the output is
diagnostic-only either way.

Hosted CI at this head was still fully pending when this review was written.

@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

Self-review disposition (2026-08-18; not an approval): current head c680b6811b6b8d1b8f750ec9c1892c7d433d9901 is based on ca6a32aefae8bc51ee5b9a77948f69e964a2182d; current public origin/main is a1892cf453973cd19e7bbba158a9f4132009bcee.

The comparator is explicitly diagnostic-only and its body correctly keeps domain-aware approval pending before promotion. The implementation/schema/tests may proceed through independent exact-head review, but no claim-eligible comparison, campaign, evidence admission, publication, compute, scheduler, or issue-state mutation is authorized by this PR.

@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

#7357: approve-diagnostic-contract-after-fail-closed-binding

Approve the paired observation-contract direction and its narrow claim boundary: one Robot SF candidate, scenario, and seed may be compared under the fixture's ideal-state and bounded perception-limited observations as a diagnostic plumbing smoke. It is not a CALF reproduction, sensor-realism result, transfer result, safety result, benchmark ranking, or paper-facing finding.

The committed smoke's observed pair is valid, but two enforcement conditions remain before this head can receive Domain-Aware Approval. First, land the prepared #7454 hardening: bind each fixed slot to its derived observation condition, block swapped/degenerate pairs, and include horizon in paired identity. Second, calf_legnav_comparator._execution_block() currently treats a missing or malformed reported_fallback_or_degraded field as available; require an explicit false value, a recognized execution mode, and rejection of missing/malformed execution evidence before any condition or paired delta can be available.

Automatic consequence: remove decision-required, keep the PR in implementation/review state, and do not add merge-ready or admit the smoke output. After that bounded repair, refresh the base and obtain normal exact-head review and terminal CI. A fresh maintainer decision is required only if the observation conditions, source-method mapping, or claim boundary expands beyond this diagnostic.

Decision evaluated at head c680b6811b6b8d1b8f750ec9c1892c7d433d9901.

@ll7 ll7 removed the decision-required Author input needed; not yet prepared as a decision packet label Aug 18, 2026

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

PR reconciliation — comparator contract incomplete

This PR must not merge in its current form. Issue #7454 identified a fail-open: the report does not bind each condition slot to the observed evidence class and does not include horizon in paired identity. A validated patch exists on review/pr-7357-observation-binding-20260818 and must be incorporated or delivered as an exact follow-up before this comparator is reviewable.

Keep in draft until:

  1. the fix(benchmark): bind CALF/LegNav paired slots to the observed observation contract #7454 condition-binding and horizon checks are present at the live head;
  2. the canonical smoke remains available with both bindings matched;
  3. swapped contracts and mismatched horizons fail closed;
  4. the domain-aware diagnostic boundary is approved; and
  5. current-base hosted checks complete.

The one-seed fixture remains diagnostic and cannot support transfer or policy-ranking claims.

@ll7
ll7 marked this pull request as draft August 18, 2026 07:39
ll7 added a commit that referenced this pull request Aug 18, 2026
…7508) (#7519)

## Summary

Make `scripts/dev/pr_loop_policy.py` machine-recognize the two workflow
markers that PR #7500 introduced to `goal-pr-review` (docs-only): the
advisory `review-claim: <lane> @ <head> until <UTC>` comment marker and
the `author_decision` parking state (`decision-required` label + `###
Decision packet` comment at the live head). PRs parked by either are
classified `active_writer` / `author_decision` with recommended action
`no_action`/stop, distinct from `blocked_preflight`, so reviewer lanes
and the factory stop racing on the same branch.

## Linked Issues

- Closes `#7508`
- Refs `#7500` (defines the marker formats), `#7491` (not-ready-sentinel
half, intentionally NOT implemented here)

## Stack / Dependency

- Base dependency: none
- Required prior PRs: #7500 (merged, defines the marker contract)
- Stack follow-up issues: none
- Safe to review independently: yes
- Review dependency reason, if any: the marker format is defined by
#7500's docs.

## What Changed

- `scripts/dev/pr_loop_policy.py`:
  - `VALID_STATES` gains `active_writer` and `author_decision`.
- New marker parsing: `_REVIEW_CLAIM_RE` (`review-claim: <lane> @ <sha>
until <UTC>`), `_REVIEW_CLAIM_RELEASED_RE` (`review-claim: released @
<sha>`), `_DECISION_PACKET_HEADING_RE` (`### Decision packet`), plus a
`ReviewClaim` dataclass.
- New pure helpers: `_parse_review_claim_marker`,
`_review_claim_released_shas`, `_has_decision_packet_heading`,
`_trusted_marker_comments` (OWNER/MEMBER/COLLABORATOR only, reading both
`comments` and `reviews` bodies), `active_review_claim` (unexpired +
unreleased + head-bound, `now=None` -> `datetime.now(UTC)`),
`has_author_decision_packet` (live-head binding; review-body packets
must name the live head).
- `classify_pr_state` takes an explicit `now` kwarg; draft/error/closed
still return `no_action` first; `active_writer`/`author_decision` are
checked before `blocked_preflight` and the rest of the pipeline
(precedence per issue).
- `recommend_action` maps both new states to `no_action` with named
reasons; flow decision is `stop` for both.
- Module docstring documents the lane-identity limitation (snapshot
cannot distinguish lanes, so any unexpired unreleased trusted marker
parks) and links **#7491 as explicitly out of scope** — no
not-ready-sentinel implementation was added.
- `tests/dev/test_pr_loop_policy.py`: 24 new tests with fixed timestamps
(no monkeypatching): park on unexpired trusted claim, untrusted does not
park, released clears, expiry, `now == until` is expiry, head mismatch,
unparseable timestamp fails closed, claim in review body, parser
round-trips, author_decision with/without label and packet, live vs
stale head, untrusted packet, precedence over `blocked_preflight` and
over ready-to-merge, draft still `no_action`, VALID_STATES contract,
queue-level evaluation.
- `CHANGELOG.md`: Unreleased -> Changed entry.

## Why It Matters

- Added value: the loop tooling now parks PRs with an active
review-claim or author-reserved decision instead of racing the branch,
which was the observed 2026-08-18 failure mode (6 PRs had exact-head
evidence voided by mid-run factory rebases; #7357 and #7347 raced within
minutes).
- Expected impact: workflow reliability only; no
benchmark/planner/evidence semantics change.
- Why this is worth merging now: closes the machine-recognition gap left
by #7500 so the advisory markers become enforceable.

## Research Result Guidance

- Target claim / hypothesis / blocker this should affect: NA -
support/tooling-only; no research claim.
- Comparator or baseline, if applicable: NA
- Evidence tier: NA - support helper.
- Result classification: NA
- Decision or stop rule, if applicable: NA
- Parent issue, claim map, registry, context note, or synthesis surface
to update: NA
- New research/benchmark/metric/paper-facing analysis tool, if any: NA -
support helper.

## Domain-Aware Approval

- Required for this PR: no - workflow/tooling classification change; no
evidence classification, comparison methodology, figure eligibility,
benchmark interpretation, or paper-facing claim change.
- Domains reviewed: NA
- Status: not required
- Approver/review source or waiver: NA
- Validity checklist (machine-detected labels unchanged):
  - Target claim/hypothesis: NA
  - Comparator or split/evidence validity: NA
  - Fallback/degraded exclusions: NA
  - Claim boundary: NA
- Implementation integrity vs experimental validity: implementation
integrity only.

## Falsification / Non-Transfer Check

- Did the mechanism activate? NA
- Did the intervention change command source, selected command,
trajectory, or route progress? NA
- Did the scenario actually contain the targeted failure mode? NA
- Result route: NA
- Follow-up question or issue for weak, negative, or non-transfer
results: NA

## Next Empirical Action

- Rerun needed: no
- Extractor or analysis tool needed: no
- Artifact missing or unavailable: none
- Stop / revise / continue decision: NA
- Proposed child issue or existing follow-up: none

## Validation / Proof

- Commands run (worktree root):
- `uv run pytest tests/dev/test_pr_loop_policy.py -q` — 174 passed (150
pre-existing + 24 new).
- `uv run pytest tests/dev/test_snapshot_pr_queue.py -q` — 55 passed
(companion).
- `uv run ruff check scripts/dev/pr_loop_policy.py
tests/dev/test_pr_loop_policy.py` — clean.
- `uv run ruff format --check scripts/dev/pr_loop_policy.py
tests/dev/test_pr_loop_policy.py` — clean.
- Smoke: real `snapshot_pr_queue --active | pr_loop_policy --stdin
--json` — exit 0, no crash; synthetic snapshot emits `active_writer` and
`author_decision` states via the CLI.
- Evidence that the change works here: 24 focused tests cover the marker
grammar, expiry/release semantics, live-head binding, precedence, and
queue-level behavior with fixed timestamps.
- Benchmarks or smoke tests, if applicable: none (workflow tooling).

## Performance Evidence

- (Not a `perf` change; section deleted per template guidance.)

## Risks / Rollout

- Compatibility risks: additive states and an explicit `now` kwarg
(default preserves current behavior); existing classifications re-tested
(draft still no_action, ready_to_merge precedence preserved).
- Failure modes: unparseable claim timestamps fail closed (documented);
lane identity is not distinguishable in the snapshot, so any unexpired
unreleased trusted marker parks (documented limitation).
- Rollback or fallback plan: revert the single commit; the new states
are purely additive.

## Docs / Provenance

- Updated docs: module docstring in `pr_loop_policy.py` documents the
marker grammar, precedence, lane-identity limitation, and the #7491
out-of-scope boundary; CHANGELOG entry.
- Relevant design or provenance notes: marker grammar comes from the
merged #7500 goal-pr-review docs.
- Any assumptions that need to be preserved: the #7491
not-ready-sentinel half must remain tracked there, not duplicated here.

## Downstream Propagation

- Parent issue updated (yes/no/NA): yes - issue #7508 will be closed by
this PR.
- Claim map / benchmark report updated (yes/no/NA): NA
- Leaderboard / artifact catalog updated (yes/no/NA): NA
- Registry or config index updated (yes/no/NA): NA
- Context index / memory note updated (yes/no/NA): NA
- Follow-up issue opened for deferred propagation (yes/no/NA): no
- Not applicable because: workflow/tooling-only change with no
research-facing downstream surface.

## Follow-Up Issues

- Deferred work: the #7491 not-ready-sentinel machine check (tracked
there).
- Issues opened for follow-up: none.

## Reviewer Notes

- Anything a reviewer should verify closely: the marker regex grammar
matches the #7500 docs exactly (`review-claim: <lane-id> @ <head-sha>
until <UTC>`); precedence of `active_writer`/`author_decision` over
`blocked_preflight`; the live-head binding for author_decision packets.
- Any known limitations: snapshot does not carry lane identity, so the
active-writer check cannot exclude the claiming lane itself; documented
in the module docstring.
- Shared-helper migration: NA - single-file CLI helper change.
@ll7

ll7 commented Aug 18, 2026

Copy link
Copy Markdown
Owner Author

review-claim: goal-autopilot-7454 @ c680b68 until 2026-08-18T16:17:00Z

I am taking the bounded #7454 landing/review lane for PR #7357. The intended action is to refresh
the existing diagnostic PR onto current main, land prepared commit 5949b7024, rerun focused
contract/smoke validation, and republish exact-head review evidence. Domain-aware approval remains
pending; no merge-ready label or evidence admission will be applied.

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head review after landing the prepared #7454 hardening.

  • reviewed head: ec2f61aca6db146345471537663a146d2d4202fb
  • reviewed base: a2d9279cd9da9740a7011f25ebe96860d95617dc
  • intended design: keep the CALF/LegNav comparator diagnostic-only while making slot-to-observed-
    condition binding and paired horizon identity fail closed
  • changed landing: prepared commit 5949b7024fbddfc1e021bc49db5f87e0e2132be9, plus current-main
    namespace lock refresh from 296 to 297 direct children
  • validation: 28 focused comparator/namespace/diagnostic tests passed; Ruff check/format and
    git diff --check passed; docs/proof consistency passed for 12 changed files; committed smoke
    returned status: available, both bindings matched, runner_error_count: 0, and
    evidence_status: diagnostic-only
  • findings: the prepared fail-closed binding and horizon checks are present; no new actionable
    implementation defect was found
  • domain-aware approval: still pending, as required by the maintainer ruling; the smoke remains
    diagnostic plumbing only and does not establish a CALF reproduction, transfer, safety, ranking,
    or paper-facing result
  • readiness boundary: repository readiness recognizes the domain section as structurally complete
    but remains blocked until status is approved or waived; no merge-ready label is applied
  • merge boundary: hosted CI, authorized domain decision, independent review, maintainer acceptance,
    and guarded merge preflight remain outstanding

gate-verdict: blocked @ ec2f61a
pr-metadata: reconciled @ 10dfe4c44f0f7e175fd7b58b1595dc41f0a189a32e08c3f13725bc6b103a3e91

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head research review — PR #7357

Reviewed draft PR #7357 at exact head 441534346c5a4f81826267af10d3a6ef88588590 against current
origin/main 51df8965b0ceff300e15f88fc248cd3217e23ff1.

The current-main refresh exposed and repaired one real integration gap: the new direct benchmark
module was missing from the fail-closed namespace classification manifest. The effective diff now
contains that registration alongside the comparator, its schema/config, the observation-contract
adapter, docs, and focused tests.

Local exact-head proof:

  • Comparator, diagnostic-runner, and namespace tests: 31 passed.
  • Focused Ruff check, format check, Python compilation, and git diff --check: passed.
  • Config-first dry run: passed.
  • Actual two-condition smoke: status=available, evidence_status=diagnostic-only, zero runner
    errors; one paired episode remains insufficient for uncertainty or a research conclusion.

The implementation remains explicit that it does not execute CALF/LegNav or establish sensor,
embodiment, safety, transfer, benchmark, or paper-facing validity. This is a comment-only
exact-head self-audit under the documented single-account waiver; it is not an approval. Domain
review, draft/dependency state, and hosted checks remain open.

base-policy: ordinary-cas @ 4415343
pr-metadata: reconciled @ 65a747e9f65baf81b1c265d8ad02759505f701164aa2a6d0b95b17879d6e2db7
gate-verdict: blocked @ 4415343 (domain review, draft/dependency state, and hosted checks pending)
merge-ready: no

@ll7

ll7 commented Aug 20, 2026

Copy link
Copy Markdown
Owner Author

Exact-head research review — comparator plumbing passes; transfer gate remains open

  • Reviewed head: 0bbb878822bcb2f8ee52404fdef331d3e6b4c4de
  • Base: 79ebe34df9d1a4b99269389b036abb4d1d3419d3
  • Dedicated worktree: /home/luttkule/git/robot_sf_ll7.worktrees/pr-7357-review-20260820
  • PR metadata: reconciled @ ca237dab38452074b77ee5c72163d4136b9ef26a7c06e008fe72e3f926aa836f

Exact-head proof passed:

  • comparator/schema, namespace-inventory, and policy-search diagnostic tests: 31 passed;
  • targeted Ruff/format and diff checks: passed.

The implementation records observation/sensor boundaries, timeout/runner-error states, and provenance without silently converting the CALF/LegNav preprint setup into Robot SF benchmark evidence. No policy promotion, universal ranking, real-world safety claim, or paper-facing result is established.

The PR remains draft and blocked on maintainer/domain review of transferability and the dependency gate. The source is TurtleBot/indoor-simulator research; any later comparison must retain sensor, embodiment, perception, and proxy boundaries. No compute or benchmark campaign is authorized by this review.

gate-verdict: blocked @ 0bbb878822bcb2f8ee52404fdef331d3e6b4c4de
merge-ready: no (domain/transfer review and hosted checks remain pending)
compute: none

@ll7

ll7 commented Aug 21, 2026

Copy link
Copy Markdown
Owner Author

Autopilot exact-head admission carrier for PR #7357.

At head 73ca7b0291884e5e01f363493961e898e6910861 against base
66c07e171b87da1166e390de18abac101413ba96, the 56-test focused suite, current deterministic
diagnostic smoke, static checks, and final core+optional readiness passed. No external policy,
campaign, compute action, benchmark promotion, or scientific result was produced. The PR remains
draft and blocked pending domain/dependency direction and terminal hosted checks; no merge-ready
label was added.

base-policy: ordinary-cas @ 73ca7b0
pr-metadata: reconciled @ d0a60351113ff21619516bae238c77a4322575e4e7b926b36978437df8404575
gate-verdict: blocked @ 73ca7b0

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the refreshed exact head d659f1a8ac7a367bc2bdb9a7d91fc2256860d071 from the current origin/main base 69bf08968dfc528221518a6bde29ef4a2e889754.

Evidence:

  • The source branch was refreshed by a clean merge of current origin/main; the CALF/LegNav comparator source is unchanged from the previously reviewed implementation.
  • Focused comparator, policy-search diagnostics, and benchmark-namespace tests: 56 passed.
  • Final pr_ready_check completed at 2026-08-21T10:31:28.559835+00:00; comparator coverage is 92.0% (230/250), above the 80% floor, with CPU/provider-free execution. Readiness stamp SHA: e0efbb74810dfca2afc008963e4ff2ea1c8b2b31e120febfd95b42136419a92b.
  • Hosted checks are terminal and green, including pr-contract-check, pr-body-contracts, and changed-coverage-gate. coverage-gate and merge-queue-gate are the expected skipped jobs for this draft/diagnostic lane.
  • Reconciled PR-body metadata digest: ab4e88aa57d543fbae5499c71909e147c621794d0e7fcf485b01a138fb6cbebb.

Review conclusion: the current-main refresh is review-ready as a diagnostic-only research contribution. This review does not establish external CALF/LegNav parity, benchmark superiority, safety, or paper-facing claims. The PR remains a draft and is blocked by its declared external dependency labels; no merge is requested while those blockers remain.

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head research comparator review — PR #7357

Reviewed exact head af60709a9087c85a93744f3f6893347db7511689 against the current local
origin/main / base 75387dd4dbbaac7f23474b6785df1327ad31dc8d in linked worktree
/home/luttkule/git/robot_sf_ll7.worktrees/pr-7357-live-7538-20260821.

No actionable implementation or local provenance finding remains in the comparator diff. The
implementation correctly keeps the paired observation contracts, execution provenance, malformed
trace handling, conservative distance sampling, exact/proxy metric mapping, and external CALF/
LegNav non-parity boundary explicit.

Evidence:

  • 56 focused comparator/diagnostic/namespace tests passed.
  • Provider-free dry-run emitted both condition commands; the actual smoke completed with
    status=available, evidence_status=diagnostic-only, and zero runner errors. It is one paired
    deterministic episode with no uncertainty estimate and is not research or benchmark evidence.
  • Fast-lane routing, docs/evidence integrity, docs/proof consistency, Ruff 0.16.3, compilation, and
    git diff --check passed.
  • Final readiness reached 5,009 passed tests and 5 skips, then failed closed on current-main-only
    defects: reopened #7634 (evidence-registry review companion) and new #7692 (production assertion
    inventory). No final readiness stamp was recorded.
  • No external provider, CALF policy, LegNav simulator, benchmark campaign, safety result, transfer
    result, or paper-facing claim was produced.

The PR remains diagnostic-only and draft. Independent domain approval for research/benchmark
semantics, the #7318 parent decision, and current-main readiness friction remain blockers; withhold
merge-ready.

trusted-review: no findings @ af60709
base-policy: ordinary-cas/current-base @ 75387dd
pr-metadata: reconciled @ e9325913c98371c8a79c9b5cdb24a3389d3300c57b33d7de5bb8b6fde4bd4933
gate-verdict: blocked @ af60709
merge-ready: no @ af60709

@ll7

ll7 commented Aug 21, 2026

Copy link
Copy Markdown
Owner Author

Exact-head review receipt for PR #7357: implementation/provenance review found no actionable findings.

The PR remains blocked and draft. Independent domain approval for research/benchmark semantics,
the #7318 parent decision, and two unrelated current-main readiness defects (#7634 and #7692)
remain unresolved. Automated checks and the diagnostic smoke are not a research or merge waiver;
no scientific or benchmark result is promoted.

base-policy: ordinary-cas/current-base @ 75387dd
pr-metadata: reconciled @ e9325913c98371c8a79c9b5cdb24a3389d3300c57b33d7de5bb8b6fde4bd4933
gate-verdict: blocked @ af60709
merge-ready: no @ af60709

@ll7

ll7 commented Aug 22, 2026

Copy link
Copy Markdown
Owner Author

Current-base review handoff

  • Disposition: blocked_external; merge-ready: no; PR remains draft.
  • The owner refresh af60709a9087c85a93744f3f6893347db7511689 was green on its recorded base 75387dd4dbbaac7f23474b6785df1327ad31dc8d, but current origin/main is now 2d221f7c3af34e9ae9db4a563c576fb6e919771e.
  • A current-base review worktree hit a conflict in tests/conftest.py while integrating the intervening main changes. I did not force-resolve the stacked research draft because it is already explicitly blocked on independent domain approval and does not assert transferable CALF/LegNav evidence.
  • No benchmark, sensor-transfer, safety, or paper-facing result is admitted. Refresh onto current main and obtain the required domain decision before any merge consideration.

@ll7

ll7 commented Aug 22, 2026

Copy link
Copy Markdown
Owner Author

Current-base review handoff — 2026-08-22

  • Current origin/main: 59f4fa3267880f5695b77987608d0f28725c84e1.
  • PR head checked for integration: af60709a9087c85a93744f3f6893347db7511689.
  • A fresh linked worktree rooted at current origin/main cannot integrate the owner head cleanly: Git reports a content conflict in tests/conftest.py and changes in the benchmark namespace manifest also require review.
  • I did not force-resolve or refresh this stacked research draft. Its independent domain approval, research: reproduce CALF/LegNav-style RL local-navigation evaluation #7318 parent research decision, dependency blockers, and terminal current-base readiness remain unresolved.

Disposition remains blocked_external; the PR stays draft and merge-ready: no. The comparator remains diagnostic-only: no external CALF/LegNav parity, benchmark ranking, sensor-transfer, safety, or paper-facing claim is admitted.

@ll7

ll7 commented Aug 22, 2026

Copy link
Copy Markdown
Owner Author

Current-base review handoff — 2026-08-22

  • Current origin/main: 74735dc5f99d99489b9a42025e395acfa1d9c4f5.
  • PR head checked for integration: af60709a9087c85a93744f3f6893347db7511689.
  • A fresh current-base merge-tree check remains conflicted in tests/conftest.py; the benchmark
    namespace manifest also participates in the stacked changes. I did not force-resolve or refresh
    this research draft.
  • Independent domain approval, the research: reproduce CALF/LegNav-style RL local-navigation evaluation #7318 parent decision, dependency blockers, and terminal
    current-base readiness remain unresolved. Existing green checks are not transferable across the
    conflicted base and do not admit CALF/LegNav parity or benchmark evidence.

Disposition remains blocked_external; the PR stays draft and merge-ready: no. No benchmark,
sensor-transfer, safety, ranking, or paper-facing claim is admitted.

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review-claim: review-pr7357-live-20260823a @ af60709 until 2026-08-23T17:56:04Z

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review-claim: review-pr7357-live-20260823a @ 67348d8 until 2026-08-23T18:30:00Z

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-head research comparator review — PR #7357

Reviewed and advanced the pushed head 67348d8a725e80f2e4e38ca414d66581208636d5 against PR base
66c07e171b87da1166e390de18abac101413ba96. Current origin/main observed by the final snapshot is
0f9d0a9928bba055458df2b3b3a405f2ef845f60.

Changes made

  • Pushed 67348d8a725e80f2e4e38ca414d66581208636d5 (fix(research): fail closed paired comparator outcomes).
  • Paired traces now require matching effective algorithm identity.
  • An unavailable or mislabelled observation contract now blocks that condition's metric values and
    paired deltas instead of leaving a misleading available contrast.
  • Timeout inference now distinguishes a terminated full-horizon episode from horizon truncation.
  • Updated the PR body with exact pushed-head metadata, blocked smoke evidence, and the revised claim
    boundary. Metadata reconciliation returned digest
    e88693613f93dcaa5a709a9e6fea54b5b9ddee2cab2e07a017f23703d9457b04.

Evidence

  • Focused comparator/diagnostic/namespace proof: 58 passed; Ruff check/format and git diff --check
    passed.
  • Dry-run emitted both expected paired commands for candidate ppo_issue791_best_v1, scenario
    issue_2756_occluded_emergence, seed 111, horizon 12.
  • Canonical smoke is schema-valid but status=blocked with two runner errors. Both conditions stop
    before writing traces because stable_baselines3 is not installed. The optional-dependency probe
    independently reports missing stable_baselines3, torch, and other training extras. This is
    environment/setup evidence, not a changed-code failure; no policy episode executed.
  • The registry-pinned PPO release artifact was hydrated only in ignored local cache; its local SHA-256
    matches the registry value
    2b30df812bfcc737924b126b0763d69c567fe20716dc1c1eba8f56f926b49c1d and size 93662266 bytes.
  • Current-base merge-tree auto-merges the docs and namespace-manifest changes but has one content
    conflict in tests/conftest.py. The PR remains base-stale and mergeable CONFLICTING.
  • Final live snapshot: PR open/draft; labels include dependency:has-blockers,
    domain-review-required, and state:blocked; reported checks are 2 terminal successes with no
    failures; unresolved review threads 0; no gate-verdict acceptance exists for this pushed head.

Disposition

blocked_external; keep draft, state:blocked, dependency-blocked, and domain-review-required.
No merge-ready label, approval, benchmark claim, safety claim, transfer claim, or paper-facing claim
is authorized.

Next admission step

  1. Install the repository training extras on a suitable execution host and rerun the canonical smoke;
    require both native conditions to produce traces with no runner errors or fallback/degraded status.
  2. Refresh the PR against current origin/main, resolve tests/conftest.py while preserving all
    current-main fast-shard registrations, and rerun focused/full readiness proof.
  3. Obtain independent domain approval and the parent #7318 decision before any stronger evidence
    admission.

Exact head: 67348d8
gate-verdict: blocked @ 67348d8
merge-ready: no @ 67348d8

@ll7 ll7 left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review-claim: released @ 67348d8

@ll7
ll7 force-pushed the research/issue-7318-calf branch from 67348d8 to 78a1005 Compare August 28, 2026 04:20
@ll7

ll7 commented Aug 28, 2026

Copy link
Copy Markdown
Owner Author

Final exact-head review for 78a10050c15738820d467d78d020e4f4c02af9e6 against
eeb42cfdacf540078dd640a5797b8049743a1026:

  • Independent Luna follow-up: no P0/P1/P2 findings; confidence 0.97.
  • The rebase preserved current-main fast registrations (namespace inventory expected count 297).
  • Partial per-action distance traces now fail closed; contradictory false-terminal/true-row
    success is unavailable while valid terminal success with pre-terminal false rows remains valid.
  • 60 related tests, comparator dry-run, Ruff check/format, and git diff --check passed.
  • The comparator remains diagnostic-only. Native CALF/LegNav parity and hydrated PPO/training
    artifacts are unavailable, so the PR stays draft, state:blocked, domain-review-required, and
    dependency-blocked. No merge is requested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependency:has-blockers domain-review-required needs-review review-bot-auto Managed label that routes code-bearing PRs to CodeRabbit. state:blocked Blocked on prerequisite or external input

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant