golf-loop-round: the smallest loop that scores one round end to end #28

Merged
weksa merged 9 commits from weksa-lowering/golf-loop-round into main 2026-11-10 04:42:53 +00:00
Member

Cut cut-golf-loop-round.r1, report h1. ModelPort + AnswerFiles, PacketDraft, RunStores (offer-unbound-to-store), round record with Validation numbers only, weksa loop open|round. Soul pending; draft until it holds.

🤖 Generated with Claude Code

Cut cut-golf-loop-round.r1, report h1. ModelPort + AnswerFiles, PacketDraft, RunStores (offer-unbound-to-store), round record with Validation numbers only, weksa loop open|round. Soul pending; draft until it holds. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
TrainItems::from_corpus and EncoderOffer::for_round become pub(crate). RunStores
(run.rs) creates a run over three stores, records their canonical paths and
FNV-1a 64 digests plus the prompt and lowerer source digests in run.cc, and
reopens only from that record, refusing on drift. RunRecord and RoundRecord are
published CultCache types. tests/context.rs and the context.rs doctests move to
RunStores; the two mutated-clone gate cases become a unit test.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The encoder's instructions are written, Prompt::encode takes the run inventory
and revision, and Prompt::digest names a prompt for AnswerFiles: a prompt with
no answer file is written to <digest>.prompt and nothing else happens.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
encode.rs reads a model answer into a PacketDraft (the one JSON door for
models) and the encoder step sets everything the model does not write. round
asks every offer first and writes nothing while any prompt is unanswered, then
admits into the round's own packets.cc, lowers, scores in one call and keeps a
RoundRecord with Train rows and Validation only as means and refusal counts.
The Dao stores reproduce the base scores (Train 44.18, Validation 78.56).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Round reads its stores only from the run record; prompts without answers are
written to the round directory and the command exits 3. Map line 7b records
what landed and what the follow-ups still own.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Validation and Train means are over every item of the split with scored counts
beside them, so refusing a weak item cannot raise a mean. A round that fails
before its record is put (embedder down) removes its packets.cc, and a round
starts from none, so a rerun with revised answers is not refused as a changed
packet. RoundRecord::summary_line owns the printed line and is pinned with exact
values. The RoundRecord compile_fail doctest gives every field and fails on
E0451, with its twin literal in a lib unit test.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
weksa changed title from WIP: golf-loop-round: the smallest loop that scores one round end to end to golf-loop-round: the smallest loop that scores one round end to end 2026-11-10 04:42:53 +00:00
weksa merged commit 7b407fdd13 into main 2026-11-10 04:42:53 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Weksa!28
No description provided.