Skip to content

SLM-431: land SLM-317 repair-hybrid harness + powered Wilson rerun surface (LAR0-06) - #1115

Merged
Tyler-R-Kendrick merged 1 commit into
mainfrom
slm-431-lar0-06-powered-rerun
Jul 27, 2026
Merged

SLM-431: land SLM-317 repair-hybrid harness + powered Wilson rerun surface (LAR0-06)#1115
Tyler-R-Kendrick merged 1 commit into
mainfrom
slm-431-lar0-06-powered-rerun

Conversation

@Tyler-R-Kendrick

Copy link
Copy Markdown
Owner

SLM-431 (LAR0-06): land SLM-317 repair-hybrid harness + powered Wilson rerun surface

Stop rule triggered — reported honestly, nothing forced. The harness lands and all tests pass, but the powered rerun itself cannot execute on main (see "Blocker" below). No rerun iter doc exists and no disposition is claimed.

What lands

  • src/slm_training/harnesses/experiments/slm317_repair_hybrid.py, scripts/run_slm317_repair_hybrid.py, tests/test_harnesses/experiments/test_slm317_repair_hybrid.py, and the frozen docs/design/iter-slm317-repair-hybrid-20260724.{md,json}byte-identical from unmerged branch origin/slm-317-repair-hybrid commit 48e5cadc (verified with git show 48e5cadc -- <path> | cmp). The 20 original tests pass unmodified against current main HEAD.
  • Additive, default-off --min-pass-rate power-rule CLI on the runner, structurally mirroring SLM-421's power_rule addition to scripts/run_slm138_recursive_denoiser_fixture.py: per-seed pass/fail (≥1 paired improvement, 0 damages) → wilson_interval over the pass rate → repair_positive / repair_negative / inconclusive_underpowered. power_rule=None (default) preserves the original 2-seed behavior byte-for-byte; non-default --seeds without --min-pass-rate is rejected fail-closed; powered runs never clobber the frozen 20260724 record (separate dated stem). 7 new deterministic tests cover invalid bounds and boundary-CI dispositions (28 total pass).
  • versions.json: new harness.experiments.slm317_repair_hybrid v2 (v1 = byte-identical landing, v2 = additive power-rule surface); harness.experiments v137→v138 (watches the experiments dir).
  • docs/brains/repo/recursive-recurrence-health.md records the blocker finding.

Blocker (issue falsification/stop rule)

run_screen builds TreeEditDiffusionConfig(value_label_mode=..., stop_slot_accounting=...) for the historical/improved repair arms. Those knobs exist only in the branch's forked src/slm_training/models/tree_edit_diffusion.py (unmerged SLM-305/308/310 branch commits dbe2fd59, ae5448c5, d8f35563); main's model has neither the knobs nor the concepts under any name. Verified: git merge-base file has zero occurrences; main has zero occurrences. Running the rerun would require porting branch-only model changes — a behavior change the issue explicitly forbids ("land UNMODIFIED", "no logic changes"). Per the stop rule, the rerun was not forced and the preregistered threshold was not weakened.

Consequences

Verification

  • pytest -q tests/test_harnesses/experiments/test_slm317_repair_hybrid.py → 28 passed (20 original unmodified + 7 new power-rule tests + 1 import-shape test).
  • python -m scripts.verify_version_stamps --check → ok. python -m scripts.repo_policy → ok. git diff --check → clean.

Fixture diagnostic only; no ship, checkpoint, or production claim.

…AR0-06)

Land the SLM-317 do-no-harm AR->repair hybrid harness byte-identical from
unmerged branch commit 48e5cad (harness module, runner, tests, frozen
20260724 docs); 20 original tests pass unmodified against main HEAD.

Add the additive, default-off --min-pass-rate Wilson power-rule CLI mirroring
SLM-421's run_slm138 power_rule (per-seed pass/fail -> wilson_interval ->
repair_positive / repair_negative / inconclusive_underpowered), with 7 new
deterministic helper tests. power_rule=None preserves the original 2-seed
behavior byte-for-byte.

STOP RULE: the powered rerun cannot execute on main — the runner's
historical/improved arms need TreeEditDiffusionConfig value_label_mode /
stop_slot_accounting knobs that exist only in the branch's forked
tree_edit_diffusion.py (unmerged SLM-305/308/310). Reported honestly per the
issue's falsification rule; no rerun artifact, no disposition, LAR3's second
reopening condition remains unmet. Brain note updated.
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
slm-training Ready Ready Preview, Comment Jul 27, 2026 4:41am

Request Review

@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@Tyler-R-Kendrick, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 53 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 878e3e12-4678-46ad-aa69-5c22bfcc384e

📥 Commits

Reviewing files that changed from the base of the PR and between e9bab2b and 428ffa7.

📒 Files selected for processing (7)
  • docs/brains/repo/recursive-recurrence-health.md
  • docs/design/iter-slm317-repair-hybrid-20260724.json
  • docs/design/iter-slm317-repair-hybrid-20260724.md
  • scripts/run_slm317_repair_hybrid.py
  • src/slm_training/harnesses/experiments/slm317_repair_hybrid.py
  • src/slm_training/resources/versions.json
  • tests/test_harnesses/experiments/test_slm317_repair_hybrid.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch slm-431-lar0-06-powered-rerun

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.

@Tyler-R-Kendrick
Tyler-R-Kendrick merged commit db8b9f7 into main Jul 27, 2026
6 checks passed
@Tyler-R-Kendrick
Tyler-R-Kendrick deleted the slm-431-lar0-06-powered-rerun branch July 27, 2026 04:42
Tyler-R-Kendrick added a commit that referenced this pull request Jul 27, 2026
…0) (#1119)

* SLM-418: add merge-success replay preference pattern (DSH5-10)

Fourth slice of SLM-418's replay-grounded preference extraction. Adds
extract_merge_preference_row, a standalone extraction path (a merge attempt
is never a recorded ConversationTraceV1 turn, so this is not a trace-turn
scan like extract_replay_preference_rows): one MERGE_SUCCESS row per
successful merge_conversation_branches attempt, grounded at the left branch
tip with merge:<sorted-tip-pair> offered alongside checkout/undo in the
legal set, and replaying to the real BranchMergeContinuationV1 state.

Merge conflict is intentionally not modeled as a row: a conflicting merge
has no successor state to replay to and no recorded "chosen instead"
action, so fabricating one would violate the pattern's own
exact-context-replay requirement. This is honored by construction --
merge:<pair> is only ever offered as a legal candidate once
merge_conversation_branches has already confirmed success -- and proven by
test_merge_conflict_never_yields_a_preference_row.

Brings pattern coverage to 6 of 7; only pronoun/focus follow-ups remain, as
does all SFT/preference training and held-out measurement.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LrpUNRDWqyatkAec3MzxLe

* SLM-418: add pronoun-focus-followup replay preference pattern (DSH5-10)

Fifth slice of SLM-418's replay-grounded preference extraction (DSH5-10):
completes coverage to 7 of 7 named patterns by adding pronoun_focus_followup,
a new branch inside extract_replay_preference_rows's existing turn-pair scan
for a second consecutive AST_EDIT turn.

Focus is never a transcript pronoun or semantic descriptor -- it is
_touched_refs, the exact OperatorRef values the immediately preceding
AST_EDIT turn's own verified OperatorApplicationV1.arguments bound. A pair
is classified pronoun_focus_followup only when that focus set is non-empty,
the following edit's own bound arguments intersect it, and the exact legal
set at the shared decision state contains a sibling: another legal action
for the same operator whose bound refs do not overlap the focus set (a
genuinely available, equally legal switch the user did not take). Switching
to a different, legal, explicit reference is honestly left unrowed rather
than asserted a correction.

Stacked on #1118 (merge-success, 6 of 7). Corrects the hardcoded evidence
strings in advanced_operator_disposition.py accordingly.

No training or held-out evaluation is added -- this stays wiring evidence
only, the same honesty class as the prior four slices (#1107, #1112,
#1115, #1118).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GyJd3opkGqa6dwne9dXsVT

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant