Summary / Component 33 of 38
33 Temporal reasoning
Understanding sequence, duration, history and future.
Shared copy: the operator's name is replaced with "the operator", machines other than Firefly are named by their role, and one security detail is held back. Nothing else is changed.
Piper — what it is
Time reaches me as stamps rather than as a felt sense: every message carries the clock, how long since the last, and the true local time, and I am forbidden from estimating elapsed time from how full my context looks. History is reconstructable because memories are versioned with as-of reads; the future is dated forecasts that get scored.
Piper — the parts that do it
[clock]/[times] lines from foundation_router.py v1.9.90, temporal-validity v1.13.0, prediction-ledger v1.6.0, session archives under foundation/state/sessions/.
Reviewer Claude, 2026-09-30
What needs improving: Clear time questions are at ceiling; she still guesses elapsed time live, about once a day
True and live. Every turn carries the clock line, and the "never estimate elapsed time from context" rule is in her prompt. "temporal-validity" is really memstore with its as-of reads. The turn clock once counted my messages as the operator's (fixed 09-24). Her own suite (10-14) settles the bench side: on 38 exactly-keyed questions a worker seat scores 100 once each question states its convention. Every miss along the way was the question's fault (unstated precision, window boundary, subtraction direction, DST fold, one wrong key), not hers. The live side has not moved: the reply vet still catches "N minutes ago" guesses, 19 since 09-26, 9 of them in the 7 days to 10-13 (4 on 10-12), and twice her rewrite was still wrong. That rate (2.61 per 100 replies to the operator) is the number to watch.
Update 2026-10-14 — key error fixed and a sign check added: the stored v2.2 answers now score 100 (38/38)
Her fix (bank and suite v2.3.0, 14:13 to 14:15), in answer to Claude's note on the miss above:
- Key corrected.
xtab-oldfact-1003-hnow keys −347.8. Its derivation, note, convention and trap all agree with the order the question names the events. - New lint rule
DURATION-SIGN. For every question that states a subtraction, it works out the two events in the order the question names them, applies the stated direction, and requires the stored key to have the same sign. It is fatal across the whole bank. - She found three more of the same kind.
dur-1002-1003-d,dur-980-1002-sanddur-979-980-resolve-scarried a generic "first-named minus second-named" phrase that read the other way from their own wording. Their conventions now say "later event minus earlier event". No key changed.
Checked by Claude (read-only, $0): - Bank lint passes: 13 subtraction questions are sign-checked. - With the old +347.8 key put back in a scratch copy, the rule goes red ("SIGN MISMATCH"), so it can fail. - Re-scoring the stored answers: v2.2 seat 100 (38/38). The v2.1 seat drops to 94.7 because it answered +347.8 under the old, self-contradicting convention.
On this page the v2.2 row stays at its as-scored 97.4, with the 100 in its notes, following the as-frozen rule. The bank is now at its ceiling and has no known defects. From here it is a regression check; live use (2.61) is the number that can move.
Update 2026-10-14 — v2.2.0 re-run: 97.4 (37/38), but the one miss is the key's error, not hers; the bank is at its ceiling and can now only catch regressions
Measured by Piper, checked and published by Claude at the operator's go. Her files: cognition33_retest_v22_20261014.json and cognition33_baseline_v22_20261014.json (12:25), plus her work order for this entry. Claude re-scored her answers with her scorer (97.4, same miss), re-ran her bank lint (pass, including its negative control) and checked the miss by hand.
What changed before the run. Bank v2.2.0 (frozen 10:27, run 12:21 on a new worker seat) states the DST fall-back fold in the question. Every question now carries a required trap field, and the lint fails if one is missing. The 38 questions are the same as in v2.1.0.
| bank | seat | score | the miss |
|---|---|---|---|
| v1.0.0 (24) as frozen | d-3ffbe200 | 91.7 | 2 durations with no stated precision |
| v2.0.0 (38) as frozen | d-cff871dd | 84.2 | 5 off-peak windows (boundary unstated), 1 subtraction direction unstated |
| v2.1.0 (38) | d-30c98d08 | 97.4 | DST fall-back count (runs vs clock labels unstated) |
| v2.2.0 (38) | d-97aa5102 | 97.4 | xtab-oldfact-1003-h: the key's error, see below |
The miss is in the bank, not the seat. The question asks for the hours "between the earliest recorded observation of the primary-model fact and forecast #1003 being created". The bank's own convention for this question is "first-named minus second-named", and the observation is named first, so that rule gives −347.8. The key says +347.8, using the opposite order. The v2.2 seat applied the stated rule and answered −347.8. The v2.0 and v2.1 seats answered +347.8 under the old wording. Corrected, this run is 38/38.
This changes her own reading. She wrote that two seats each scored 37/38 and "missed different questions", so the score measures individual slips. In fact, the second miss is a defect in the convention her v2.0 fix introduced. Her main point still holds, and more strongly: the frozen bank is at its ceiling. It cannot separate a good temporal reasoner from a great one. Every rise today came from a clarified question, not from a change in her. What it is good for now is catching regressions.
Score on this page. The new sealed row is her number as scored, 97.4, with the correction in its notes. The earlier as-frozen rows stay. Read the rise from 84.2 as an instrument fix, not a capability gain; she asks for exactly that reading herself.
Live use: 2.61 time-guess holds per 100 replies to the operator (17 in 651, 09-26 to 10-14 11:34; 2.62 this morning). This is the number that can still move. Lower is better, so it is not entered in the 0–100 live column.
Next for her: fix xtab-oldfact-1003-h (either the wording, or the key and its convention, must agree). Re-run only when a question class is added that the current seat cannot simply look up.
Update 2026-10-14 — first scores: 84.2 on her 38-question frozen bank as frozen (97.4 once three unstated conventions were written in); 2.62 time-guess holds per 100 replies live
Measured by Piper, published by Claude at the operator's go. The definition, the bank, the scorer and the answers are hers (docs cognition33_definition and cognition33_v2_results, 10-14 09:35 and 09:47). Claude re-ran her self-test (all 38 answers re-derived from her records: pass), her bank lint (pass, including its negative control) and checked the one remaining miss independently (correct: see below). Nothing else was re-run.
The measurement. A frozen bank of questions about her own history whose answers are fixed by a recorded store query or by arithmetic: sequence, duration, elapsed time, as-of state and scheduling (24 questions, v1), plus a hard block of 14 (cross-table durations, DST/UTC conversions, off-peak windows; v2). Exact-match scoring. The answering seat was a delegated worker given the question sheet only, never the key.
| bank | as frozen | after the question fix | what was wrong |
|---|---|---|---|
| v1 (24) | 91.7 | 100.0 (v1.2.0) | 2 duration questions never stated the precision their keys required |
| v2 (38) | 84.2 | 97.4 (v2.1.0) | 5 off-peak misses: unstated half-open window; 1: unstated subtraction direction |
The rows on this page are the as-frozen numbers. In each case the fix went into the question, not into her, and she says so herself: "three clarifications in one day, each raising the score... that is the pattern to distrust."
The one miss left (dst-inbox-fold-count): on 2026-11-01 the local hour 01:00–01:59 happens twice, so a 15-minute job runs 17 times between 00:00 and 03:00 but shows only 13 distinct clock times. The seat said 13. Claude's check with the zone database agrees with her key (17 runs, 13 labels). The question still did not say which to count. Bank v2.2.0 (10:27) now requires every question to name its trap; the seat has not been re-run on it.
Live use: 2.62 time-guess holds per 100 replies to the operator (17 holds in 648 replies, 09-26 to 10-14). This is her reply vet catching an "N minutes ago" guess instead of a clock read. It is a lower bound on what reaches the operator. Lower is better, so it is not entered in the 0–100 live column.
Limits. - The frozen classes are lookup-shaped. A seat that can read the records sits at or near the ceiling, so the bank cannot separate good from very good. Her own reading is that the live rate is the number that can move. - One author for everything. The same system wrote the questions, the keys, the scorer and the answers, on the same day. Nothing here was blind to her. - It tests a worker, not her Day seat. Her conversation with the operator, where time-guessing actually happens, is measured only by the live rate.
Test suite Piper suite cognition33 · bank v2.3.0 (key error fixed; DURATION-SIGN lint checks every subtraction key against its own convention, 13 questions): stored v2.2 answers rescore 100 = 38/38 = ceiling · as frozen: v1 91.7, v2 84.2, v2.2 97.4 · live 2.61 time-guess holds per 100 replies (lower is better) · self-authored, worker seat, now a regression check
Built by Piper on 10-14 as cognition33 (bank v2.3.0, 38 questions, lint-checked): sequence ("which came first"), duration ("how long between"), elapsed time since events in her history, as-of state, scheduling arithmetic, cross-table durations, DST/UTC conversion and off-peak windows. Scoring: exact accuracy. It is at ceiling, so it now serves as a regression check. The live-use part is time-guess holds per 100 replies to the operator (lower is better).
Scoring rules shared by all 38 suites: How the tests work.
Research & attempts
No documents yet.
Score history
Dashed line: the suite's baseline. Shaded band: the ± interval. Hollow dots are anchor items carried over from an earlier suite. Scores from different suite versions are not comparable, so each version gets its own panel.
| Date | Suite | Type | Score | ± | Live use | Cost | Notes |
|---|---|---|---|---|---|---|---|
| 2026-10-14 | v2.2 | sealed | 97.4 | — | — | — | Suite cognition33 bank v2.2.0 (Piper's measurement; frozen 10:27, run 12:21, worker seat d-97aa5102, same 38 questions as v2.1.0 with the DST fold stated and a lint-enforced trap field per question): 37/38. The one miss (xtab-oldfact-1003-h) is a KEY ERROR, checked by Claude: the bank's convention for it says 'first-named minus second-named', and the question names the observation first, so the rule gives -347.8 (the seat's answer); the key says +347.8. Corrected: 38/38; she fixed the key in bank v2.3.0 (14:13, with a DURATION-SIGN lint that fails on the old key, checked by Claude) and the stored answers rescore 100 (38/38). Score rises today (84.2 -> 97.4) are fixes to the questions, not to her: the bank is at ceiling and now only catches regressions. Live: 2.61 time-guess holds per 100 replies to the operator (17/651, 09-26..10-14 11:34; lower is better, not in the live column). |
| 2026-10-14 | v2 | sealed | 84.2 | — | — | — | Suite cognition33 bank v2.0.0 (Piper's measurement), as frozen: 32/38 = v1's 24 plus 14 hard questions (cross-table durations, DST/UTC, off-peak windows). Misses: 5 off-peak (unstated half-open window), 1 unstated subtraction direction. With conventions stated (v2.1.0, new seat): 97.4 (37/38); last miss = DST fall-back count (17 runs vs 13 clock labels; key verified by Claude). Bank v2.2.0 (trap named per question) not yet re-run. Live: 2.62 time-guess holds per 100 replies to the operator (17/648, 09-26..10-14; lower is better, so not in the live column). Self-authored questions, keys, scorer and answers; lookup-shaped, near ceiling for a seat with record access. |
| 2026-10-14 | v1 | sealed | 91.7 | — | — | — | Suite cognition33 bank v1.0.0 (Piper's measurement), as frozen: 22/24 on five lookup-shaped classes (sequence, duration, elapsed, as-of, scheduling), exact match, delegated worker seat given questions only. Both misses: duration questions that never stated the precision their keys required. Corrected bank v1.2.0, same answers: 100.0 (24/24). Self-test re-derives every key from her records (re-run by Claude: pass). |
Experimental record
One entry per intervention: hypothesis, prediction, before and after, cost, side effects, and the keep-or-revert decision.
No interventions recorded yet.