Insights Goal D1: post-merge baseline, calendar-guard expression coverage, opus-5 as a selectable generator (2026-09-08)

Branch `insights/goal-d1` from `origin/main` 094cf05e (the merge of PR 98). Every measurement uses the goal-3 method: the frozen fixture, the sealed holdout v11-r2 or the Goal C real-usage sample, the goal-3 scorer, the clock anchor 2026-09-06 12:00 UTC in the Europe/London calendar, two workers, and an application snapshot frozen from Git blobs. Denominators: holdout 100 supported first turns, 250 attempts, 50 conversations; real usage 86 supported first turns, 101 attempts, 5 conversations. The noise floor is the Goal B control arm's spread over three repeats of one code snapshot; a difference smaller than it is not a finding.

Headline

1. Step 0: post-merge baseline (main 094cf05e, glm control, temperature 0, seed 42, two workers)

Holdout v11-r2

runFirst-turn execution errorsCorrect first turnsPrecision (correct / answered)Silent wrongCorrect completedRefusalsComparison unverifiedFull conversationsprovider-class errors
original e479e81 (goal 3)60/10014/10053.7% (36/67)31/25036/2504/25018/2501/500
Goal A run 254/10016/10053.6% (37/69)32/25037/25017/25012/2504/500
Goal A run 358/10014/10046.5% (33/71)38/25033/25016/25010/2501/500
Goal B control r1 (glm, ff3e669e)56/10016/10054.9% (39/71)32/25039/25014/25014/2502/500
Goal B control r2 (glm, ff3e669e)57/10015/10045.9% (34/74)40/25034/25011/25010/2502/500
Goal B control r3 (glm, ff3e669e)54/10014/10051.6% (33/64)31/25033/25017/25015/2503/500
D1 step 0: main 094cf05e, glm59/10014/10044.4% (28/63)35/25028/25013/25013/2502/501
D1 step 1: guard head bb7e3938, glm (r1, zai 429s)64/10015/10059.6% (34/57)23/25034/25013/25013/2502/5016
D1 step 1: guard head, glm (r2)57/10017/10057.1% (40/70)30/25040/25016/25013/2503/500
D1 step 2: opus-5 r1 (9fa89bcb)39/10025/10050.9% (59/116)57/25059/25011/25012/2505/500
D1 step 2: opus-5 r240/10025/10050.0% (55/110)55/25055/25012/25012/2505/500
D1 step 2: opus-5 r340/10026/10051.8% (59/114)55/25059/25012/25011/2504/500
noise floor (control spread)3.02.09.0%9.06.06.05.01.0

Stable-case view against the Goal B control repeats (a case is lost only if it was correct in all three control repeats and wrong or error in the candidate):

runstable-correct in controllostcorrect to wrongcorrect to errorgained correctretained original correctoriginal correct to wrongoriginal correct to error
D1 step 0: main 094cf05e, glm17000122/3673
D1 step 1: guard head bb7e3938, glm (r1, zai 429s)17110026/3644
D1 step 1: guard head, glm (r2)17000429/3643
D1 step 2: opus-5 r1 (9fa89bcb)170001132/3612
D1 step 2: opus-5 r217000831/3621
D1 step 2: opus-5 r3170001033/3602
opus-5 (all repeats)170007

Calendar-guard refusals on the holdout, with their reason strings:

Real-usage sample (Goal C corpus, 101 attempts)

runFirst-turn execution errorsCorrect first turnsPrecision (correct / answered)Silent wrongCorrect completedRefusalsComparison unverifiedFull conversationscalendar refusals (first turns)provider-class errorsinfrastructure failures
Goal C original r116/864/8612.9% (4/31)27/1014/1012/10148/1010/50/8600
Goal C original r214/865/8614.7% (5/34)29/1015/1012/10148/1010/50/8600
Goal C landed r19/862/8611.1% (3/27)24/1013/10118/10145/1010/513/8600
Goal C landed r210/864/8614.7% (5/34)29/1015/10119/10134/1010/515/8600
Goal C claude-opus-5-cli r1 (bench adapter)3/860/860.0% (0/31)31/1010/10121/10145/1010/517/8600
D1 step 0: main 094cf05e, glm11/862/8610.5% (2/19)17/1012/10127/10140/1010/523/8600
D1 step 1: guard head, glm (r1, 409 cascade)17/864/8613.8% (4/29)25/1014/1013/10140/1010/50/86013
D1 step 1: guard head, glm (r2, zai 429s)21/862/869.4% (3/32)29/1013/1015/10137/1010/52/86150
D1 step 1: guard head, glm (r3)12/862/868.6% (3/35)32/1013/1015/10146/1010/52/8600
D1 step 2: opus-5 (r1, 409 cascade)9/860/860.0% (0/33)33/1010/1012/10148/1010/50/86012
D1 step 2: opus-5 (r2)8/860/860.0% (0/35)35/1010/1013/10153/1010/51/8610

2. Step 1: calendar-guard expression coverage

The forms found in the refused generated SQL (Goal C landed r1/r2 lost their SQL text: Goal C retained prompt hashes only; the opus r1 CLI transcripts and the D1 step-0 text trace retain it), what the extended guard now proves, and what stays refused:

expression form found in the refused SQL (node named by the pre-extension guard)opus r1 statements (now proved)step-0 statements (now proved)verdict
MIN/MAX of a physical timestamp (with or without FILTER, with or without an inner AT TIME ZONE chain)48 (47)23 (22)proved: the aggregate keeps the column's physical kind; an inner chain hoists out (monotone map); localized at the use site
derived timestamp or date column (CTE/derived-table aggregate, LATERAL alias, unqualified name over a join, or a hallucinated column)0 (0)17 (13)proved for real lineage (CTE and derived-table projections, LATERAL alias lists, an unqualified name carried by exactly one source); a hallucinated column or a misspelled table stays refused and is named
accepted by the pre-extension guard1 (1)3 (3)the case was refused on another statement or on the final validation
CURRENT_DATE::timestamp or (CURRENT_DATE - INTERVAL)::timestamp date spine4 (4)0 (0)proved: a calendar date cast to a naive timestamp is midnight on the same wall clock, not an instant
date spine converted through AT TIME ZONE as a window bound0 (0)4 (0)stays refused, named: PostgreSQL resolves the spine as timestamptz in the session zone, so the bound is an hour off in BST on real rows; the reason points at the bare spine
date reinterpreted as an instant (CURRENT_DATE AT TIME ZONE z)1 (0)2 (0)stays refused, named: session-dependent instant
date spine + integer days, then interval arithmetic1 (1)0 (0)proved: date +/- integer stays a date; interval arithmetic keeps the kind
interval arithmetic on a derived date column1 (1)0 (0)proved: the column resolves through the CTE projection to a date spine
COALESCE/GREATEST/LEAST/NULLIF/CASE over same-typed timestamps; scalar subquery timestamps; generate_series FROM sources00proved by the lineage tracer and pinned by real-PostgreSQL tests; no instance in the refused corpus
naive/aware mixing in a branch; ::timestamptz of a wall clock; clock_timestamp(), LOCALTIMESTAMP; an interval added after a conversion00stay refused by name; pinned by tests

Transitions of the calendar-refused cases of the step-0 run after the guard change:

Calendar refusals on supported first turns of the real-usage sample: D1 step 0: main 094cf05e, glm: 23/86; D1 step 1: guard head, glm (r1, 409 cascade): 0/86; D1 step 1: guard head, glm (r2, zai 429s): 2/86; D1 step 1: guard head, glm (r3): 2/86; D1 step 2: opus-5 (r1, 409 cascade): 0/86; D1 step 2: opus-5 (r2): 1/86.

3. Step 2: claude-opus-5 as the configured generator

metricopus-5 mean [min to max] over repeatsD1 step 0 (main, glm)D1 step 1 (guard head, glm)control noise floorpaired difference vs Goal B control [95% CI]
First-turn execution errors39.7 [39.0 to 40.0]59573.0-16.0 [-24.0 to -8.3]
Correct first turns25.3 [25.0 to 26.0]14172.010.3 [4.3 to 17.0]
Precision (correct / answered)50.9% [50.0% to 51.8%]44.4%57.1%9.0%0.2% [-12.9% to 13.3%]
Silent wrong55.7 [55.0 to 57.0]35309.021.3 [4.7 to 37.7]
Correct completed57.7 [55.0 to 59.0]28406.0not a paired metric
Refusals11.7 [11.0 to 12.0]13166.0not a paired metric
Comparison unverified11.7 [11.0 to 12.0]13135.0not a paired metric
Full conversations4.7 [4.0 to 5.0]231.02.3 [0.0 to 5.3]

Per-call generator statistics (CLI wall time includes the child's start-up and Claude Code's own request pipeline; runs overlapped on the host, so wall time is advisory):

runcallsfailedp50 msp95 msinput tokensoutput tokensthinking tokensserved modelstools disabled every calldeadline killsbudget errors
main-glm-holdout-r147327521.713633.036393741348740{'glm-5.2': 471}None00
guard-glm-holdout-r1476387605.713969.134257301223040{'glm-5.2': 438}None00
guard-glm-holdout-r248406819.712374.936602711415390{'glm-5.2': 484}None00
opus-holdout-r150005425.37193.963710531701470{'claude-opus-5': 500}True00
opus-holdout-r249105440.27322.263338671668920{'claude-opus-5': 491}True00
opus-holdout-r349605464.27585.063830961718660{'claude-opus-5': 496}True00
main-glm-real-r117707571.813274.32023998637340{'glm-5.2': 177}None00
guard-glm-real-r113208494.613727.91509792476590{'glm-5.2': 132}None00
guard-glm-real-r2163408342.615100.91433445456350{'glm-5.2': 123}None00
guard-glm-real-r314407805.414350.81688856510380{'glm-5.2': 144}None00
opus-real-r112807370.513481.02466513814720{'claude-opus-5': 128}True00
opus-real-r214627497.513452.92796061939490{'claude-opus-5': 144}True00

4. Step 3: fresh sealed slice

Revision fresh-v1, split fresh_slice: 122 distinct question texts (113 standalone cases and 3 three-turn conversations, 122 attempts) across 31 Goal C families; 7 expected answers are empty on the fixture; 0 duplicate texts against 1496 prior texts. Seal manifest SHA-256 d54a61d06882a38a9be0b2f4321688758cab15e585357329b75cee3bdce68067. Sealed at 2026-09-08T14:30:56.271778+00:00 in the evaluator-only directory; not run.

Families: F01, F02, F03, F04, F10, F11, F12, F13, F14, F16, F17, F19, F20, F22, F23, F24, F25, F26, F27, F31, F33, F34, F38, P01, P02, P03, P04, P05, X01, X02, X03.

5. Method

6. Unverified

7. Evidence