feat: catalog-to-proof pipeline + loop-engine domain generalization (Phase A, U9–U10) - #8
Merged
Merged
Conversation
…der, token parse, secret-scan expansion (U3)
…before/after rendering (U4)
… proof steps (U6/U8)
…/Gemini/Ollama) — claude-free, quota-free refine
…ate; docs for quota-free refine
Owner
Author
Update: refine is no longer gated on the `claude -p` quotaAdded a provider-agnostic, claude-free refiner so a real before/after proof can run today on a free backend (no waiting for the 2026-07-01 quota window).
Decision record: |
…dea notes Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Widen the loop contracts for domain generalization with zero controller changes (KTD1): new `Domain` plugin protocol binds Factory|adopt-baseline + Judge per target; `iterations` gains a nullable `score` column threaded through the store and controller. Every domain projects onto both score (primary) and a non-null grade letter, so controller/LoopOutcome/schema are untouched. Software loop unregressed (full suite green). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… Phase A U10 Budget.target_score lets a domain converge on a continuous score after the unbypassable safety gate, skipping the letter ladder; is_improvement decides on the score delta inside a letter band; is_plateaued(on_score=) ranks the persisted score column (gated, so the software letter path is byte-identical, R2). Variance probe documented as the multi-seed band source for stochastic referees. Full suite green (190 passed, 2 gated-skip). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two phases of work land together on this branch:
Catalog-to-proof pipeline (plan-003, U1–U8) — turns real clianything.cc /
printingpress.dev CLIs into verified before/after loop proofs by adopting them
as refine-only baselines, proving the loop's own value (not the generators it
wraps). Includes the SHA-pinned, credential-pruned catalog adopter; the
refine-only loop entrypoint; the
ProofPackbuilder + store-backed compounder;the
demo proofCLI; arxiv/hackernews/wikipedia proof targets; and aprovider-agnostic fallback-chain LLM refiner (NIM/Groq/Gemini/Ollama) for
quota-free refine.
Loop-engine domain generalization, Phase A (plan-004, U9–U10) — widens the
loop core so a target can be any domain, not just code, with no new states
or branches in
loop/controller.py:Domainplugin protocol (binds Factory|adopt-baseline + Judgeper target); persisted nullable
iterations.scorecolumn threaded through thestore + controller. Every domain projects onto both
score(primary) and anon-null
gradeletter, so the controller /LoopOutcome/ NOT-NULL schemaare untouched (KTD1).
Budget.target_scorescore-based convergence with a per-domainvariance band: safety stays first and unbypassable; a score target skips the
letter ladder;
is_improvementdecides on the score delta inside a letterband;
is_plateaued(on_score=)ranks the persisted score (gated, so thesoftware letter path is byte-identical, R2).
Invariants preserved
unbypassable (score path is reached only past the
BLOCKED_SAFETYgate).Testing
pytest -q→ 190 passed, 2 skipped (the 2 skips are the gated sim/quotae2e). Regression-critical
test_router.py/test_convergence.py/test_loop_controller.py/test_memory_store.pystay green.🤖 Generated with Claude Code