Skip to content

Build replay-verified solver supervision corpus (VSS3-01, SLM-69)#343

Merged
Tyler-R-Kendrick merged 1 commit into
mainfrom
claude/slm-69-solver-supervision-corpus
Jul 18, 2026
Merged

Build replay-verified solver supervision corpus (VSS3-01, SLM-69)#343
Tyler-R-Kendrick merged 1 commit into
mainfrom
claude/slm-69-solver-supervision-corpus

Conversation

@Tyler-R-Kendrick

@Tyler-R-Kendrick Tyler-R-Kendrick commented Jul 18, 2026

Copy link
Copy Markdown
Owner

VSS3-01 (SLM-69): replay-verified solver supervision corpus

Adds a torch-free harness that turns main's canonical solver replay event-stream into a supervised support-set corpus for VSS3 residual guidance. Replay verification is enabled by default — only replay-valid states and full-mode-verified certificates produce hard labels.

What's here (5 files, +1496/−3)

  • src/slm_training/harnesses/distill/solver_supervision.pySolverSupervisionBuilder replays each trace (replay_violations) before emitting any row, then partitions each live hole domain into supported / unsupported / unknown with per-value certificate_ids_by_value / witness_digests_by_value. UNSUPPORTED comes only from a certificate-backed certified_deduction; SUPPORTED only from a verifier-accepted witness; all supported alternatives are retained (the chosen value is not privileged). Cost-to-go is censored with explicit reasons on truncated / budget-stopped / nonterminal suffixes; a local nogood is a hard-negative feature, never a global relabel. Cross-split state-leak guard; only ids/kinds/digests are stored (no raw source text); deterministic hashing.
  • scripts/build_solver_supervision.py — CLI producing manifest.json, rows/support_set.*.jsonl, and validation_report.json; --describe dry-run writes nothing.
  • tests/test_harnesses/distill/test_solver_supervision.py — 14 tests covering the honesty invariants.
  • src/slm_training/harnesses/distill/__init__.py — defer the torch-backed sft import via PEP 562 __getattr__ (mirrors models/__init__.py) so the torch-free module imports without torch; public API unchanged.
  • docs/design/iter-vss3-01-solver-supervision-20260718.md — dated build note.

This PR was reduced to exactly the in-scope VSS3-01 change and rebased directly on main — the earlier branch's out-of-scope re-implementations of dsl/solver/, model code, dashboard assets, README/MODEL_CARD, and CI config were dropped (they conflict with or duplicate work already on main).

Honesty

No model or head is trained; nothing is published. Consuming this corpus to train a cost/energy head is the next issue (VSS3-02 / SLM-70). No ship gate is touched or weakened; fixture rows would establish wiring only and make no model-quality claim.

Verification (against current main)

  • pytest tests/test_harnesses/distill/test_solver_supervision.py14 passed
  • solver no-regression (test_solver_state / test_solver_closure / test_capsule_solver) → 62 passed
  • ruff check → clean; python -m scripts.repo_policy → ok; git diff --check → clean
  • Pre-existing/unrelated: test_solver_trace.py fails at collection (torch not installed) identically on untouched main.

🤖 Generated with Claude Code

@vercel

vercel Bot commented Jul 18, 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 18, 2026 6:15am

Request Review

@coderabbitai

coderabbitai Bot commented Jul 18, 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: 46 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: b8327e12-8ad5-445f-985d-324a332e92d1

📥 Commits

Reviewing files that changed from the base of the PR and between ef483a7 and ad67509.

📒 Files selected for processing (5)
  • docs/design/iter-vss3-01-solver-supervision-20260718.md
  • scripts/build_solver_supervision.py
  • src/slm_training/harnesses/distill/__init__.py
  • src/slm_training/harnesses/distill/solver_supervision.py
  • tests/test_harnesses/distill/test_solver_supervision.py
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/slm-69-solver-supervision-corpus

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.

Base automatically changed from claude/slm-64-solver-trace-replay to main July 18, 2026 05:12
Add a torch-free harness that turns main's canonical solver replay
event-stream into a supervised support-set corpus for VSS3 residual
guidance, with replay verification enabled by default.

- solver_supervision.py: reads serialized solver events (solver_state /
  support_result / certified_deduction / decision / backtrack / nogood /
  solver_terminal), replay-verifies via replay_violations, and partitions
  values into supported / unsupported / unknown with per-value
  certificate + witness provenance; censors cost-to-go with explicit
  reasons; guards against cross-split state leaks, relabeled nogoods, and
  raw-text leakage; deterministic hashing.
- build_solver_supervision.py: CLI producing manifest.json,
  rows/support_set.*.jsonl, and validation_report.json from a trace root.
- test_solver_supervision.py: 14 tests covering the honesty invariants.
- distill/__init__.py: defer the torch-backed sft import via PEP 562
  __getattr__ (mirrors models/__init__.py) so the torch-free supervision
  module imports without torch; public API unchanged.

Verification: 14 new tests pass; 62 solver no-regression tests pass;
ruff, py_compile, repo_policy, and git diff --check all clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017NWyjZwGMUPHXZhtqQVzUJ
@Tyler-R-Kendrick
Tyler-R-Kendrick force-pushed the claude/slm-69-solver-supervision-corpus branch from 48e1401 to ad67509 Compare July 18, 2026 06:15
@Tyler-R-Kendrick Tyler-R-Kendrick changed the title Build replay-verified solver supervision corpus (SLM-69) Build replay-verified solver supervision corpus (VSS3-01, SLM-69) Jul 18, 2026
@Tyler-R-Kendrick
Tyler-R-Kendrick merged commit f856a36 into main Jul 18, 2026
4 checks passed
@Tyler-R-Kendrick
Tyler-R-Kendrick deleted the claude/slm-69-solver-supervision-corpus branch July 18, 2026 06:24
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.

2 participants