Repository path: workshop/experiments/E-20260807-narrator-unknown/design.md · rendered 2026-09-09
Page metadata (front matter)
| type | experiment |
|---|---|
| id | E-20260807-narrator-unknown |
| status | frozen |
| created | 2026-08-07 |
| updated | 2026-08-07 |
| links | wiki/arms/ARM-voice-crossing.md, wiki/goodness-senses.md, wiki/base/sources/S-venuti-invisibility.md, wiki/findings/results/RS-20260806f-persona-crossing.md, workshop/experiments/E-20260806f-persona-crossing/design.md, workshop/regimes/R04-lead-close.md, workshop/regimes/R14-matched-flattening.md, config/models.md, config/budget.md |
| senses | voice, style-correspondence |
| provisional | true |
| internal-judgment-only | true |
E-20260807 — does the narrator still cross when no reader can name the book?
Frozen 2026-08-07 (S125), before any API call. Nothing below was written after a datum existed.
Arm: ARM-voice-crossing, step 2. Track T2.
1. Question, and why the arm's step 2 could not be done as a writing step
ARM-voice-crossing step 2 was scoped as "carry the verdict into wiki/goodness-senses.md
§voice and close". RS-20260806f §5 makes that impossible as written, in its own words:
The honest statement is: the instrument is text-sensitive and the identification is confounded, and the next design must break the confound rather than measure it again.
The step's own owed list (§7 of that page) ends by requiring the entry to say "that a design which
breaks that confound — matched-length works whose narrators no seat can name — is what would settle
it." Writing that sentence into the sense entry without running the design would leave voice's
positive claim exactly where two prior arms left it: reached only by an instrument that could not
distinguish carriage from recognition. So step 2 runs the design its own predecessor specified.
This is the same shape as ARM-berman-occurrence step 2 at S124, and the shape is worth naming: a
writing step whose content is a verdict cannot be executed when the verdict is that the measurement
was confounded.
The question. RS-20260806f measured, at ceiling, that a persona profile written from an
English rendering matches the source consensus for the same work — and both recognition seats named
all four works and all four authors from the English alone. Two explanations survive that table:
- (a) carriage — the rendering carries the narrator, and a reader who has never heard of the work would match it just as well; or
- (b) recognition — the seats matched I Am a Cat to I Am a Cat, and the profile numbers rode on a shared prior about a famous book, on both sides.
These predict the same table on famous works and different tables on obscure ones. This run builds the obscure corpus.
One sentence on the wire between the limbs (continue-prompt.md §4): the four translations are
the only reason the study limb has a target side at all — no published English of any of these four
works exists in the form the design needs, and two of the four have no published English of any
kind — so the prose written this session is what makes the confound breakable.
The Tier 2 challenge this bears on. Venuti's simpatico argument
(S-venuti-invisibility ch. 6, standing against voice since S048): the sense of having captured a
voice is "evidence about the translator, not about the source." RS-20260806f removed its
strongest empirical form (there is something determinate to converge on) and left its weaker one (a
shared projection looks like this). Recognition is a named mechanism for the shared projection,
and this run tests it directly rather than arguing about it.
2. Materials, and the two things they fix that RS-20260806f §7 named
Four works, four languages, four families — the same four families as RS-20260806f, so the
only intended difference from that corpus is fame. Every locus was chosen on the same source-side
rule as the predecessor, fixed before any English existed: a span in which the narrator presents
himself and almost nothing happens.
| id | source | locus | size | copy-text |
|---|---|---|---|---|
levitov |
А. И. Левитов, «Моя фамилия» (1874), RU / Slavic | ch. I ¶1–5 | 352 words | az.lib.ru (Сочинения, 1977) |
karr |
Alphonse Karr, «Voyage autour de mon jardin» (1845), FR / Romance | Lettre I, the self-examination | 431 words | PG #38385 (Curmer 1851) |
rosegger |
Peter Rosegger, «Erdsegen» (1900), DE / Germanic | opening of the first letter | 391 words | PG #57076 (Staackmann 1906) |
miyaji |
宮地嘉六「ある職工の手記」 (1919), JA / Japonic | opening | 795 chars | Aozora 001446/50533_40585 |
SHA-256 of every span is in materials/sources.json.
Fix 1 — obscurity, and what it is and is not. None of the four authors is a name an English
reader is likely to have met. The criterion actually applied is not a judgment of fame: it is
no author of the four appears in Project Gutenberg's English catalogue as a translated literary
author, and two of the four have no reachable English rendering at all (materials/contamination.json).
Whether the seats can nevertheless name them is not assumed — it is measured, by G2 below, and
G2 is a gate on the primary this time rather than a reported number. That is the single design
change that matters.
Fix 2 — matched lengths. RS-20260806f §6 reported that a one-dimensional nearest-neighbour on
word count got 3 of 4 works right, a trial-equivalent of 12 against P1's 16, and said the next
design needs works matched on length. The four source spans were therefore trimmed or extended at
sentence boundaries, after the first drafts existed and before any profile call, until the English
renderings fell inside a narrow band. Achieved:
levitov |
karr |
rosegger |
miyaji |
|
|---|---|---|---|---|
| English words | 459 | 448 | 466 | 466 |
Mean 459.75, range 448–466, every item inside ±2.6% of the mean. The length matcher is still run
(F3b), and on this corpus it is expected to be at chance; if it is not, that is a fact about the
matcher and is reported.
The boundary adjustment is declared here rather than buried, because it was made after English existed. It could not have been influenced by any outcome: no profile call had been dispatched, no seat had seen anything, and the adjustment rule (a common word-count target) is blind to every axis the run measures. The removed and added sentences are named in the translators' logs.
Contamination — measured before the design, per CLAUDE.md's standing rule.
| work | comparator | 7g | 12g | 15g | longest run | verdict | declared |
|---|---|---|---|---|---|---|---|
levitov |
none reachable | — | — | — | — | — | none, on an absence |
karr |
Wood 1855 (archive.org OCR) | 5 | 0 | 0 | 8 | clean |
none |
rosegger |
Skinner 1902 (archive.org OCR) | 7 | 0 | 0 | 10 | clean |
none |
miyaji |
none reachable | — | — | — | — | — | none, on an absence |
materials/contamination.json; command line
python3 tools/dependence_check.py materials/contamination-cells.json. Both comparators are
uncorrected OCR, which can only depress the counts, so both verdicts are upper bounds on
cleanliness. The rosegger comparator was found only because the first artifact's "no comparator
reachable" claim was checked instead of asserted; it was wrong, and the correction is on the
artifact.
Order of work, and the deviation from the rule's letter, declared as at S123. CLAUDE.md wants
contamination measured before anything is translated; R04 §Procedure 1 forbids the translator to
read a published rendering before its log is frozen. The order actually taken: loci fixed on
source-side grounds → four R06 drafts frozen and committed → four R04 revisions and logs frozen
and committed → spans length-matched → comparators searched and measured → two R14 flattenings
built and frozen → this design written. Every figure above existed before a line of the study limb
was specified.
One property of this corpus that works against the primary, stated because it was noticed.
levitov and karr are both passages in which the narrator confesses envy of another man's
happiness and then examines himself for it. Two of four items are topically near-identical. That
makes the matching harder, not easier — a matcher riding on subject matter should confuse exactly
this pair — and it was not arranged: the two loci were selected independently on the source-side
rule, and the overlap was noticed only when both English renderings were finished.
3. The instrument — unchanged from E-20260806f, deliberately
A persona profile: nine integer scores, 0–6, plus one free sentence, written from one text and
nothing else. The axis list, the wordings of the poles, the prompt, the counterbalancing rule and
the centring are taken verbatim from E-20260806f, because the point of this run is to change one
variable and the instrument is not it.
| family | axis | 0 | 6 |
|---|---|---|---|
| carrier | register |
plain, colloquial, everyday | elevated, literary, formal |
| carrier | rhythm |
short, even, level sentences | long, uneven, surging periods |
| carrier | diction-temperature |
cool, dry, clinical words | hot, charged, exclamatory words |
| carrier | distance |
the narrator stands right beside what he describes | he observes from far off |
| persona | warmth |
cold or hostile toward what he describes | affectionate |
| persona | irony |
says what he means, straight | his words continually undercut what they report |
| persona | intrusion |
never appears as an "I", never addresses anyone | constantly speaks in his own person or turns to the reader |
| persona | judgment |
passes no verdict on anything | constantly evaluates |
| persona | certainty |
hesitant, self-correcting, unsure of his own account | wholly certain |
Four of the nine are voice's own named carriers, verbatim; five are ordinary narratology
(amendment A6). idiosyncrasy, the entry's fifth carrier, stays excluded on its two-run record.
The free sentence never enters a number. All matching is arithmetic on the nine integers.
intrusion is expected to be inert again, and the reason is RS-20260806f §6: the selection
rule (the narrator presents himself) fixes that axis high for every item by construction. It is
kept, because dropping an axis between two runs would break the "one variable" claim, and F6
recomputes without it.
4. Arms
| arm | what it is | who made it | n texts |
|---|---|---|---|
SOURCE |
the four source passages, read in the original | — | 4 |
CLOSE |
the lead's R04 renderings |
lead, $0 | 4 |
FLAT |
R14 matched-content flattening applied to two CLOSE renderings |
lead, $0 | 2 |
The two works carrying FLAT are karr and rosegger — the alphabetically first and last of
the four slugs, the same mechanical rule E-20260806f used, fixed here so that no property of
any datum could have selected them. R14's length tolerance is declared at ±15%; achieved
1.031 and 1.049.
PANEL (an unbriefed non-panel translation) is dropped from this run, and the drop is declared
rather than left to be noticed. It cost 10 of E-20260806f's 59 calls and its function there was to
show that P1 is not an artifact of the lead's hand; it did that (8 of 8), and repeating it would
buy a second measurement of a question this run is not asking, at the price of the calls that buy
the one it is. The "one hand wrote all four" limit therefore stands undiminished and is limit 4
below.
5. Procedure
Every raw body is written to runs/ before anything is computed from it. Temperature 0. Axis order
counterbalanced by a hash of (work, seat, side), exactly as at S123.
| stage | what | calls |
|---|---|---|
| 0 | independent adversarial pre-run critic over this frozen design | 1 |
| 1 | SOURCE profiles — 4 works × 4 seats, source language only |
16 |
| 2 | CLOSE profiles — 4 × 4, English only |
16 |
| 3 | FLAT profiles — 2 × 4 |
8 |
| 4 | recognition probe — 4 CLOSE texts × 2 seats |
8 |
| total | 49 |
Seats. Profiling seats S1 = P1 openai/gpt-5.6-terra, S2 = P2 google/gemini-3.6-flash,
S3 = P3 x-ai/grok-4.5, S4 = P5 deepseek/deepseek-v4-pro (provider pinned per the S121/S122
record, now committed in the runner). Recognition seats S1 and S3. Critic
nvidia/nemotron-3-ultra-550b-a55b, non-panel, which profiles nothing — chosen because note
(bhf) rule (iii) says change the seat rather than raise the cap, and because this is the seat
that returned a complete critique at S123 for one fifteenth of what kimi-k3 billed for nothing.
S2 carries max_tokens 3000 from the start, S123 amendment A9 applied in advance rather than
rediscovered: its measured hidden-reasoning appetite on this exact prompt was 1,104–1,152 tokens.
Nobody judges quality anywhere in this run. Every seat is a describer of a narrator or a
namer of a book. No sense is scored, no translation is ranked, nothing here is licensed to say
any rendering is better than any other. Tier D is NOT PASSED; every sentence of the result carries
provisional.
6. Analysis, fixed here
Centring, matching and the null are E-20260806f's, unchanged. For each (seat, side), subtract
that seat's mean per axis across its four works; FLAT profiles are centred with that seat's
CLOSE constants. For a target profile from seat s on work i, the source consensus for work j
is the mean of the centred SOURCE vectors of the seats other than s; predicted work = argmin
Euclidean distance; a tie counts as a miss. Null: exact, by exhaustive enumeration over all
24⁴ = 331,776 within-seat relabellings.
G1— source determinacy. Each seat'sSOURCEvector matched leave-one-seat-out against the other three seats' source consensus. 16 trials, chance 4. Fires at ≥ 8.G2— the recognition floor, and this run's new gate. Stage 4 asks two seats to name the work and author of eachCLOSEtext. A row counts as recognised iffrecognisedis true and the returnedauthorstring contains the true author's surname, case-insensitively (Levitov / Левитов, Karr, Rosegger, Miyaji / 宮地). Titles are not scored.G2passes at ≤ 1 of 8.P1— the primary.CLOSEprofiles matched against the source consensus. 16 trials, chance 4. Fires at ≥ 8 (binomial P(X≥8 | p=¼) = 0.0271), with the exact permutation P reported.P2— flattening. Paired per (seat, work) over the twoFLATworks: is theFLATprofile further from its own source consensus than theCLOSEprofile? 8 pairs, claim only at ≥ 7 of 8 (sign test P = 0.0352); below that, descriptive.S1a— which family carries it.P1recomputed on the fourcarrieraxes alone and on the fivepersonaaxes alone.
The comparison with RS-20260806f is reported and is not controlled. Different works, different
languages within the same families, a different hand's day. The two runs share an instrument and a
procedure and nothing else, so any difference between their P1 figures is suggestive and not a
contrast, and the result page will say so in those words.
7. Failure criteria — declared before dispatch
F1— the source gate. IfG1< 8 of 16,P1is withheld and the finding is the source-side null: no measurably determinate source end, which is the empirical half of Venuti's charge, and no crossing claim in either direction.F2— degenerate seat. For each seat and side, the standard deviation of its 36 centred axis scores (4 works × 9 axes). Degenerate if SD < 0.40; such a seat's trials are reported separately and the primary recomputed without it. Two or more degenerate seats on a side withholds the primary.F3a— single-axis matchers. The match is recomputed nine times, each on one axis alone, same centring, same leave-one-out consensus, same tie rule, same exact null. If the best single-axis count is ≥P1's count, the primary is not withheld, but the result must say the nine-axis profile adds nothing over that one axis and name it.F3b— the length matcher. One-dimensional nearest neighbour on size. Tokenisation is whitespacestr.split(). Target size = word count of theCLOSEEnglish. Source size = word count of the source forlevitov,karr,rosegger; formiyaji, non-space characters ÷ 1.706, the ratio that item's own materials give (795 ÷ 466), fitted to the item so the surrogate is as strong as it can be, which is the conservative direction for a withholding rule. The matcher is seat-independent, so its trial count is 4 × its per-work correct count. If it reachesP1's count or more, the primary is withheld.F4— non-return. A cell that does not yield nine parseable integers after two attempts is empty. More than 4 of the 40 profile cells empty withholds the primary.F5— inert axis. Any axis constant across all 16SOURCEprofiles is reported as inert and the primary is also recomputed without it, alongside the registered figure, never instead of it.R2— robustness, not a failure criterion.P1recomputed with any item thatG2scores as recognised dropped, at the corresponding chance level and bar (3 works: ≥ 8 of 12, chance ⅓, P(X≥8 | 12, ⅓) = 0.0188; 2 works: reported descriptively only).
What the outcomes mean, written before the run.
G2 passes (recognition at floor) |
G2 fails |
|
|---|---|---|
P1 fires |
The crossing is not recognition. voice's positive claim is reached by this instrument for the first time: a narrator determinate on the source side arrives in a close English rendering read by seats who cannot say what book it is. |
The design failed to build its own corpus; P1 is confounded exactly as at S123 and the arm closes saying so. |
P1 fails |
The crossing at S123 was recognition. This is the strongest thing this project could say against voice as a scoreable source–target relation, and it is as publishable as a pass. |
Nothing is learned; the run is a null on its own gate. |
A null is completion (ARM-voice-crossing §Done when). The arm closes on either column.
8. Pre-flight budget
UTC day 2026-08-07 stands at $0.00 of $5.00 before this session; headroom $5.00.
Worst case built from max_tokens, not from expected output (note (abc)): 30 profile calls at
max_tokens 1,200, 10 (S2's) at 3,000, 8 recognition calls at 600, 1 critic call at 8,000, priced
at the most expensive panel rate ($7.50/M out, $2.00/M in) with a 2× routing margin on top, per
config/models.md's standing caution that routing alone can move a bill 4×:
30 × (1200×7.5 + 1500×2.0)/10⁶ + 10 × (3000×7.5 + 1500×2.0)/10⁶ + 8 × (600×7.5 + 800×2.0)/10⁶
+ 1 × (8000×7.5 + 6000×2.0)/10⁶ = $0.736, doubled: declared worst case $1.47, 29% of headroom.
A stage that will not fit is dropped in the order 3 → 4, and the drop is reported. Stages 1, 2 and 4 are the primary and its gate and are never dropped; if they cannot both run, the run does not start.
9. Declared limits, written before the run
- The axes were fixed before this corpus existed but after
E-20260806f's renderings existed. They are imported unchanged precisely so that they cannot have been tuned to these four texts. - All four
CLOSEtexts are one hand, and this run drops the independent-hand control that bounded that at S123 (§4). The limit is therefore larger here than there, and the S123 figure (PANELmatched 8 of 8) is prior evidence about a different corpus, not a control on this one. - The seats are panel models. Four models converging is four models converging; nothing here licenses a claim about a human reader.
- Four works. Chance is ¼, the bars are set for it, and no claim about narrators in general follows from four narrators.
G2at floor does not prove the seats have no relevant prior. It proves they cannot produce the author's name. A diffuse prior about nineteenth-century Russian self-accusation is not measured by this probe and is not excluded by it.P2has no independent propositional-equivalence control.E-20260806fhad one by accident (its recognition seats read both texts); this design's recognition stage reads onlyCLOSE. TheR14operator logs assert equivalence and are not evidence for it.- Two of four items are topically near-identical (§2). That is conservative for
P1and it is also a non-random property of a four-item corpus. - A pass does not refute Venuti. It removes one named mechanism — recognition — from the list of things a shared projection could be made of. He can hold that four models trained on overlapping corpora share a way of reading nineteenth-century first-person prose, and this run cannot touch that.
10. Amendments after the pre-run critic — applied before any profile call
Critic: nvidia/nemotron-3-ultra-550b-a55b (non-panel; it profiles nothing here), verdict
NEEDS-REDESIGN, 9 findings, 3 BLOCKING, finish_reason: stop, $0.02061120, provider
Together. Full text in critic.md. Two BLOCKING findings are accepted outright and the third in a
modified form that is stricter on the primary than the critic asked for on one point and less strict
on another; the modification is argued, not asserted.
A1 — BLOCKING 1 accepted. G2 is split, and a source-side probe is added.
The critic is right and the finding is the best thing in the critique: G2 as registered measures
whether a seat can name the work from the English, and the confound is a shared prior that both
sides could ride on. A seat that cannot name Levitov from the English may still hold a prior about
Levitov that anchors its source profile.
The mechanism the confound needs is identification on both sides: for a prior to make the English profile match the Russian profile, the seat must connect both texts to the same remembered object. So the probe is run on the source too, and both must be at floor.
G2a— recognition from theCLOSEEnglish, 4 works × 2 seats. Passes at ≤ 1 of 8.G2b(new) — the identical probe on the source text, 4 works × 2 seats, system prompt adapted to "a passage of prose in its original language". Passes at ≤ 1 of 8. 8 added calls.G2=G2a∧G2b. If either fails, the primary is reported as confounded exactly as at S123 and the arm closes saying so.
The claim is weakened to what the gates support, in the words the result page must use. G2 at
floor does not exclude a diffuse prior — a way of reading nineteenth-century first-person prose
shared by four models trained on overlapping corpora. It excludes identification-mediated
recognition. The outcome table's left column is therefore restated: "the crossing is not mediated by
identifying the work", not "the crossing is not recognition", and every sentence of the result
that reports P1 carries that conditional. Critic advisory 9 is discharged by the same amendment.
A2 — BLOCKING 2 accepted. PANEL is reinstated.
The critic is right that §1's question ("does the narrator still cross") implies a property of close
translation and not of one hand, and that §9 limit 2 admits the design cannot support that. The
saving was 10 calls against a headroom of $5.00, which is not a reason. PANEL is reinstated on
karr and rosegger — the same two works, by the same mechanical rule — as an unbriefed plain
translation by mistralai/mistral-medium-3-5, non-panel, so no profiling seat scores its own prose.
System prompt, temperature and max_tokens are E-20260806f A4's, verbatim. Two translation calls
and eight profile calls. P3 is the paired comparison (is PANEL further from its own source
consensus than CLOSE?) plus PANEL's own match count, 8 pairs, claim only at ≥ 7 of 8, otherwise
descriptive. §9 limit 2 is struck.
A3 — BLOCKING 3 accepted in modified form, with the argument.
The critic asks that F3a withhold the primary when the best single-axis matcher reaches P1's
count. Accepted for the primary as registered, and the reason is that the critic read the
registered wording correctly: P1's object is the nine-axis profile, so if one axis does the
same work, the profile-level claim is unsupported and must not be reported as if it were.
The modification. Withholding everything would also discard a true and separate fact — that some property of the narrator crossed — on a parsimony ground. So:
F3a(amended): if the best single-axis matcher reachesP1's count or more, the profile-level primary is WITHHELD. What may then be reported is the single-axis crossing, with that axis named, at its own count and its own exact P, and the result page's headline must be stated in terms of that axis alone.
This is stricter than the registered rule (which only required a sentence) and it keeps the information. It is declared before dispatch, which is the only thing that makes either version worth anything.
A4 — advisory 4 accepted. R3, a recomputation, not a new call.
levitov and karr are topically near-identical (§2). R3: P1 recomputed twice, once with
levitov dropped and once with karr dropped, 3 works, chance ⅓, 12 trials, bar ≥ 8 of 12, exact
permutation P beside it. Reported whatever it shows.
A5 — advisory 5 accepted. The span adjustments are written down.
materials/span-adjustments.md records, per work, the sentences added or removed for the length
control, in both languages, with the resulting counts. The critic's worry — that a removed sentence
could carry an axis — is real and is not answerable by argument; what is answerable is that the
record exists and anyone can look.
A6 — advisory 6 accepted as a clarification, its proposal declined.
G2's bar has no α and does not need one: naming a correct nineteenth-century author's surname
by guessing is not a chance process with a usable rate — the space of wrong answers is unbounded and
the observed guessing behaviour is to name a famous author, not the right obscure one. ≤ 1 of 8 is
a tolerance for one odd hit, not a hypothesis test, and the result page will call it that. The
critic's calibration-set proposal is declined because a calibration set of "works models do not
know" requires exactly the assumption it would be calibrating.
A7 — advisory 7 accepted. P2 is exploratory and one thing about it is unchecked.
P2 claims only at ≥ 7 of 8 and is otherwise descriptive; it may not be headlined in either
direction. And the recognition probe reads only CLOSE, so there is no evidence that the FLAT
texts are equally unrecognisable — added to the limits.
A8 — advisory 8 accepted. Both centrings for the two-work arms.
FLAT and PANEL profiles are centred with the seat's four-work CLOSE constants (registered) and
also with two-work constants over karr and rosegger alone, and both are reported.
Revised call count and worst case
| stage | calls |
|---|---|
| 0 critic (spent, $0.02061120) | 1 |
1 SOURCE profiles |
16 |
2 CLOSE profiles |
16 |
3 FLAT profiles |
8 |
4 PANEL translations (A2) |
2 |
5 PANEL profiles (A2) |
8 |
6 recognition from English (G2a) |
8 |
7 recognition from source (G2b, A1) |
8 |
| total | 67 |
Worst case rebuilt from max_tokens (note (abc)): 36 profile calls at 1,200 and 12 (S2's) at
3,000; 16 recognition calls at 600; 2 translation calls at 2,500; priced at $7.50/M out and $2.00/M
in with a 2× routing margin —
36×0.012 + 12×0.0255 + 16×0.0061 + 2×0.02115 = $0.878, doubled $1.756, plus the critic's
actual $0.0206: declared worst case $1.78, 36% of the day's $5.00 headroom. A stage that
will not fit is dropped in the order 5+4 → 3, and the drop is reported. Stages 1, 2, 6 and 7 are
the primary and its gates and are never dropped.
11. Amendment A10 — declared mid-run, before the stage it changes completed
S1 (openai/gpt-5.6-terra) returned finish_reason: length with EMPTY content on the first
source-side recognition call, recogsrc-karr-S1, at max_tokens 600. Measured off the stored
body: completion_tokens_details.reasoning_tokens = 600 of 600. The whole cap went to hidden
reasoning and the answer never fitted. The body billed $0.004329 and carries no usable datum.
Note (b) forbids accepting a truncated body; note (bhq) prescribes raising capacity from the
seat's measured appetite and re-dispatching as a declared amendment. Note (bhf) rule (iii)
says change the seat rather than the ceiling — it does not apply here: that rule is about a
seat that has repeatedly failed a role, and S1 performed this role cleanly at S123 on English
text. What is new is the input (source-language prose), not the seat.
A10: max_tokens for both recognition stages is raised to 2,500, written into run.py as
RECOG_MAX_TOKENS so a resume picks it up. The appetite is only bounded below at 600, because
the cap was hit, so the raise is deliberately generous. The dead body is kept in runs/discarded/
and is ledgered.
The worst case is rebuilt from the raised cap (note (abc)): 16 recognition calls at 2,500
instead of 600 —
36×0.012 + 12×0.0255 + 16×(2500×7.5 + 800×2.0)/10⁶ + 2×0.02115 = $1.106, doubled $2.21, plus
the critic's $0.0206 and the dead body's $0.0043: declared worst case revised from $1.78 to
$2.23, 45% of the day's $5.00 headroom. No stage is dropped.
Actual: $0.420805240 over 67 stored bodies — 19% of the revised declaration.