Repository navigation
docs: proposal — calibration-first onboarding and a results pull request the operator opens - #102
Conversation
…est the operator opens What changed: docs/proposals/calibration-first-onboarding.md, a draft proposal (not normative) in five items: no hand-declared qualification (the validator refuses a qualified-for entry with no evidence entry behind it; a new profile is qualified-for [] until the kit's runs qualify it); the kit under one tools path, host-independent in method, with a shared synthetic subject pack for cross-host comparability and a host pack for the host's own categories; the run protocol the kit enforces (preregistration, no operator chat relayed or the text recorded, judging by a review-qualified profile, one run per cell, clean readings); the results folder, the pull request body the kit prints and asks the operator to open, the CI check on derivable parts and a generated qualification table; the relation to the difficulty-tiers proposal. Why: the operator asked that every new model run the calibration first and that results be pushed upstream. Three runs exist and each closed a method gap (G-1, G-2, A-1) that a kit can carry; today the method lives in one host's scratchpad and a lead's memory. The alternative set aside - the kit opening the pull request itself - is excluded: the operator's push is their statement that the evidence may be shared. What you verified: the regression gate ran in the pre-commit hook (verified, this commit). Cited facts re-read this session: spec §4 Gate 2; the host README's qualification rules; the three evidence folders' layouts; runs 2 and 3 token totals and amendments. What you got wrong: nothing to report. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
Independent review — 2026-10-18 — Request ChangesReviewed revision: Provenance: posted through the owner's connected GitHub account at the owner's request; the review was produced by a separate agent session that authored none of this PR. GitHub therefore shows the owner as the comment author; this is a review comment, not an approval. Blocking
Non-blocking: the shared pack ships its accepted fix — add an isolation rule so the candidate cannot see the kit/pack/answer; the table is “not a ranking” but pass/partial/fail per run is a de facto ranking; the Context’s “copied per run” list is inaccurate ( Checks: Verdict: Request Changes. No approval, no acknowledgement, no implementation unit at this revision. After revision, request a delta review at the new full revision; this record does not carry forward. Full review record: |
…cking review findings and the notes
What changed: docs/proposals/calibration-first-onboarding.md. (1) Item 1.1 defines a typed production reference ('outcome: <task-id> <category> accepted <date> (<store path>)') the validator checks for form from the policy and against the outcome store when given --trace; free-text production evidence no longer supports a qualification on its own. (2) Item 4.3: the CI check requires the protocol's classification prongs and the adjudication record's lens-schema prongs to be equal, derives scores under the declared prongs, excludes a PASS that holds only because a prong is missing, uses the host's pin category mapping, and checks the judging profile and the relayed-chat statement; 'derivable' is named as necessary, not sufficient. (3) Item 4.4: the table carries the adjudication schema version, prongs and a caveat column; a fewer-prong PASS is shown as 'PASS (2-prong, would fail)' and excluded from the pass count; the table states what it does not support. (4) the uncalibrated-model cross-reference removed; this host has no such case and the cited unit is a mis-tiered calibrated profile. (5) the judging figures separated by run with reconciled numbers (run 2: 7,872,276 over 54 agents, post-hoc adjudication not included; run 3: 38-39%). Notes: an isolation rule for the shared pack and its size limit; the copied-per-run list corrected; Item 1.4 aligned with the tiers proposal's 2.2 (one adopting revision); the bootstrap grader's limitation line; the operator's push named as consent, not acceptance; the check name marked provisional.
Why: the independent review of c53cd77 (Request Changes).
What you verified: the run figures from #101's reconciled totals; the regression gate in the pre-commit hook (verified, this commit).
What you got wrong: the first revision cited a mis-tiered dispatch as an uncalibrated-model case and gave a run-3-only judging share for both runs; corrected here.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
|
Revision 2 pushed as 0e5666f (base ade3f1e). Disposition per blocking finding:
Non-blocking: an isolation rule for the shared pack (history-less base tree only; the pack, its fix and the grader material outside every candidate's permitted paths; the launch step refuses a shared path) and its size limit stated; the copied-per-run list corrected ( Requesting the delta review at 0e5666f. Generated by Claude Code |
…'s judging share What changed: one Context bullet: run 2's graders 1,713,036 tokens (21.8% of 7,872,276) and the observation that the preregistered adjudication step roughly doubled the judging share in run 3. Why: the edited review of c53cd77 gives the run-2 grader share; the proposal's cost bullet should carry both runs' figures. What you verified: run 2's grader total from its evidence folder's tokens table (1,713,036); the regression gate in the pre-commit hook (verified, this commit). What you got wrong: nothing to report. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
|
Follow-up on the edited finding 5: the Context bullet now carries run 2's grader share (1,713,036 tokens, 21.8% of 7,872,276) beside run 3's 38-39%, and notes that the preregistered adjudication step roughly doubled the judging share (96c6823). The delta review request stands at 96c6823. Generated by Claude Code |
Delta-review follow-up — 2026-10-18 — public recordThis continues the independent review posted on 2026-10-18 (comment on this issue, id Reviewed revision: Current public head under review: Blocking-finding disposition at the current head (verified from the commit tree, not from the review workspace):
Non-blocking: an isolation rule for the shared pack (history-less base tree only; the pack, its fix and the grader material outside every candidate's permitted paths; the launch step refuses a shared path) and its size limit stated; the copied-per-run list corrected ( Checks: Next delta review: at Where the full record lives: |
|
One correction to the follow-up's "current public head" line: GitHub reports this PR's head as Generated by Claude Code |
New finding — PR #102 head moved since the earlier commentsLive remote head for this PR is now One file changed, 5 insertions, 4 deletions:
The change adds run 2's grader share to the Context paragraph: graders were 1,713,036 tokens / 21.8% of 7,872,276 on run 2, and the preregistered adjudication step roughly doubled the judging share. The rest of the paragraph is the same reconciling text that points at Diff cited from the live head ( This is the only change across the three PRs since the earlier review follow-ups; PR #100 and PR #101 are unchanged at their heads ( Next delta review: at Background note: the earlier follow-up comment mistakenly said the head was |
…ibration-first evidence: typed production references resolved against the store beside the policy, every qualified-for entry backed by a PASS grade entry or an accepted reference at its tier, the lead-direct profile exempt) with the sr-policy-6 trace The host adopted the merged calibration-first onboarding proposal's Item 1 (docs/proposals/calibration-first-onboarding.md, PR #102): a policy turns the rule on with "evidence": "typed"; a typed production reference 'outcome: <task-id> <category>[@t<k>] accepted <date> (<path>)' is checked for form from the policy alone and resolved against the outcome store beside the policy file (the file must exist inside that directory, be the latest outcome record of its dispatch, be an accepted Outcome of that task owned by the referencing profile, recorded that day, decided in that category, at the decision's tier or, for a pre-tier decision, with the host's 'would be T<k> by the table' reading); a fixture under <root>/trace/policies/ resolves against <root>; every qualified-for entry needs a PASS grade entry or an accepted reference at its tier (PARTIAL and FAIL support nothing); the lead-direct profile is exempt (recorded as a policy finding and friction item 23, since the proposal has no exemption clause); rate's qualify proposal ends with the typed references the lead would paste. Revision 6 rewrites revision 5's production-derived entries into typed references where the store holds the outcome (cc-opus-high build-ui@T3 on five, review@T1 on three, fix@T2 on two; cc-fable-high review@T1 on one) and drops the rest for want of outcome rows (cc-opus-high build-core@T3, build-tests@T3, research-collect@T2; cc-fable-high fix@T2, now bare fix; cc-haiku-low docs-mechanical), so build-core, build-tests, research-collect and docs-mechanical above direct-max-tokens are blocked for delegation until a host-pack calibration cell qualifies a profile. The suite is 141 node --test cases. The trace gains trace/policies/host-policy-5.json (the fixture the revision-5 assertions are pinned to), the sr-policy-6 unit (two decisions, a dispatch, an accepted outcome: 965,306 harness tokens) and two usage readings. The copy carries no build briefs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh
Problem and resulting behavior
Gate 2 routes only to a declared, fresh qualification, but the adapter checks only the form of the evidence entries behind a
qualified-for; nothing stops a host from qualifying a new model by hand, and the production evidence it carries today is free text. The calibration method that produced the three runs underdocs/evidence/is reproducible in principle and not portable in practice: the workflow script, the graders' prompts, the observation builder, the ground truth and the finding text live in one host's session scratchpad and reach the evidence folder by hash. Each run also found a rule the next host would otherwise rediscover (G-1 grader ambiguity, G-2 lens schema missing the third prong, A-1 operator chat relayed into workers).This adds
docs/proposals/calibration-first-onboarding.md, a draft proposal (not normative; nothing inskills/changes), now at revision 2 after the independent review of 2026-10-18:qualified-forentry needs a typed evidence entry behind it, either a kit grade entry or a typed production reference (outcome: <task-id> <category> accepted <date> (<store>)) the validator resolves against the outcome store when given one; a new profile isqualified-for: []until the kit's runs and the host's rules qualify it; pre-existing hand-declared qualifications are rewritten into typed references in the adopting revision (one revision with the tiers proposal if both land) and re-qualified at expiry.forbiddenprong, history-less checkout, mechanical grading, the observations builder, the run template; a shared synthetic subject pack (comparable across hosts, small by construction, isolated from every candidate's paths) and a host pack.Resulting behavior if accepted: every new model or effort level is unroutable until it has run the calibration, and its results reach this repository through a pull request the operator chooses to open, checked against the rule the run was meant to apply.
Related issue
Related to #98 (calibration method), #100 (difficulty tiers), #101 (run 3 evidence). No issue number.
Validation
scores.jsontotals.tokens(run 3) and the run-2 evidence README (run 2).Remaining limits or risks
🤖 Generated with Claude Code
https://claude.ai/code/session_01VdJ51CTnHT4Zet6eScsBBh