Repository path: workshop/experiments/E-20260726b-forced-or-borrowed/design.md · rendered 2026-09-09
Page metadata (front matter)
| type | experiment |
|---|---|
| id | E-20260726b-forced-or-borrowed |
| status | frozen |
| created | 2026-07-26 |
| updated | 2026-07-26 |
| senses | accuracy, style-correspondence |
| internal-judgment-only | true |
| provisional | true |
| links | workshop/experiments/E-20260726-ovid-period-form/design.md, wiki/findings/results/RS-20260726-ovid-period-form.md, tools/dependence_check.py, tools/ngram_overlap.py, workshop/regimes/R04-lead-close.md, workshop/translations/metamorphoses/R04-v1/translation.md |
Frozen design — forced or borrowed? A third, independent translator at the shared-run loci
Frozen 2026-07-26 (S030). Nothing in §§1–9 was written after seeing a single recall number, and nothing in §§1–9 was written after seeing any English rendering of any passage this design will have the lead translate. §10 holds dated amendments; §11 is written after the run.
The wire, in one sentence. The study limb has just found that three of this project's own baseline pairs share long verbatim runs — which is evidence of dependence between published translators only if such runs are not simply what independent translation produces where the source forces one English; the translation limb tests exactly that, by having the lead translate, from the Latin alone, ten passages each centred on a run that Riley 1851 and Brookes More 1922 share word for word, and asking whether the lead — a translator who demonstrably did not copy either — lands on that wording more than on the wording immediately around it.
1. Why this runs
S029 (RS-20260726-ovid-period-form) established that on Ovid's Metamorphoses, three of six published pairs share ≥12-word verbatim runs (52 / 30 / 22) and three share none, and that the three sharing pairs are exactly the three highest-overlap pairs. It recorded as note (ss): before using two published translations as an independence baseline, count the shared 12-grams and 15-grams.
NEXT.md action 1 — top action — was to run that check back over every baseline this project has already built. It has been run this session (tools/dependence_check.py; results in wiki/findings/results/RS-20260726b-baseline-dependence.md) and three of the project's baselines are flagged, including both of its largest reference distributions.
That makes one question load-bearing that was previously a side remark. A shared 12-word run admits two readings:
- BORROWED — one translator had the other's text open, so the wording is one translator's, reproduced.
- FORCED — the source at that point admits essentially one English rendering, so two independent translators arrive at it separately.
S029 has one piece of evidence against FORCED: a three-way test found only 1–4% of each pair's long runs present in a third published text. That test is weak in one specific way — it asks whether a verbatim run recurs, which is a strict criterion that a merely-constrained locus would fail, and its third texts are themselves entangled (Kline shares 22 runs with Riley).
What is missing is a third translator who is independent by construction, at the same loci. The lead is that translator: it translates from the source alone, it is measured, and on this exact material S029 measured it sharing no 12-gram with any of the four published texts while three published pairs shared 22–52. This design puts it at the shared-run loci and asks whether the Latin there pushes an independent translator toward the shared wording.
2. The question
Q. At the loci where Riley (1851) and Brookes More (1922) share a verbatim run of ≥12 tokens, does an independent translator of the same Latin reproduce that wording more than it reproduces the wording immediately surrounding it in the same translation?
FORCED predicts yes, and by a wide margin: that is what "the Latin leaves one plausible English" means. BORROWED predicts no: the run is ordinary wording that happens to have been copied, so an independent translator should land on it about as often as on its neighbours.
3. Why the control is within the window
The obvious design — shared-run loci versus matched control loci elsewhere — has two defects this one avoids. (i) Matching across loci requires matching on the very property at issue (how constrained the passage is). (ii) It doubles the translation needed for the same number of comparisons.
Here every window contributes its own control set: the shared run is compared against ~40 same-length spans of Riley's own prose in the same window, so translator, register, book, immediate context and passage difficulty are held constant by construction, and the only difference between the run and its controls is that More reproduced the run and did not reproduce the controls.
4. Materials
| label | translator | year | form | rights | source |
|---|---|---|---|---|---|
lat |
— (source) | c. AD 8 | hexameter | public domain | Perseus phi0959.phi006.perseus-lat2.xml |
riley |
Henry T. Riley | 1851 | prose | public domain | Project Gutenberg #21765 (bks 1–7), #26073 (bks 8–15) |
more |
Brookes More | 1922 | blank verse | public domain | Perseus phi0959.phi006.perseus-eng3.xml |
lead |
the lead agent | 2026 | prose | project artifact | workshop/translations/metamorphoses/R04-v2/translation.md (does not exist at freeze) |
Both published texts are public domain, so runs may be quoted in full in the result page and the journal. Kline and Johnston are not used in this design.
Why Riley~More and not the other two dependent pairs. It is the strongest relationship S029 found (52 shared 12-grams; 31 → 507 shared 5-grams from Book 1 to Book 15); both texts are PD; and Riley's edition carries the alignment apparatus §5.1 depends on. riley~kline and kline~johnston are out of scope here.
4.1 The alignment apparatus, and its limits
Riley's Gutenberg text carries running marginal references to the Latin line numbers of the passage on each page — <span class="linenum">, e.g. I. 6-26. These are the reason this design is possible at all: they map positions in Riley's English prose to Latin lines without any cross-language guessing.
Two facts about them, both established by structural probe before this design was written, printing counts and line numbers only and no English text:
- Books 1–7 (PG #21765) carry two independent series,
mckayandbell, 265 and 242 markers, from two different editions' pagination. Their segments are ~16–26 Latin lines and their boundaries differ, so intersecting them would give ~10-line resolution. - Books 8–15 (PG #26073) carry one series, 231 markers, median segment width 29 Latin lines.
- The shared runs are almost entirely in books 8–15. Maximal shared runs of ≥12 tokens: 1 in books 1–7, 21 in books 8–15 (bk10: 1, bk11: 2, bk12: 1, bk13: 5, bk14: 5, bk15: 7). This is the same escalation S029 measured in 5-grams, and it means the fine two-series grid is unavailable where the evidence is.
So the design must interpolate within a ~29-line marker segment. §5.1 states how, and §5.3 states how the statistic is made insensitive to interpolation error.
5. Procedure
5.1 Locus selection (select.py, written after this freeze)
- Extract
rileybooks 8–15 exactly asE-20260726-ovid-period-form/extract.pydoes (A13/A17 rules:div.footnoteand the other apparatus classes stripped; footnote<p>s identified by their note anchor;span.pagenumandspan.greekdeleted; the PG licence cut at the*** END OF THE PROJECT GUTENBERGmarker; books split on the<a name="bookN">anchors) — except thatspan.linenumis replaced by a positional sentinel instead of being deleted. Extractmorebooks 8–15 withtei_books(xml, "book"), case-insensitive on the subtype (A17). Extractlatwith the same function, retaining<l n="k">line numbers. - Segment Riley's token stream at the sentinels. Segment k runs from marker k to marker k+1 and is assigned the Latin range
[a_k, b_k]printed on marker k. - Segment sanity gate. Keep a segment only if
b_k > a_k,14 ≤ b_k - a_k ≤ 45, and its Riley token count divided by(b_k - a_k)lies in[8, 20]. (Riley runs ~1.9× the Latin token count and Latin averages ~7 words a line, so ~13 Riley tokens per Latin line is expected; the band rejects segments whose printed range does not describe the text that follows, of which the probe found at least one — a marker labelled475-478followed by 285 Riley tokens.) - Find maximal shared runs. With both texts tokenised per §5.4, find every maximal run of ≥12 consecutive Riley tokens that occurs contiguously somewhere in More's same book. Maximal means: extend while the next 12-gram also occurs in More. A run must lie wholly inside one surviving segment.
- Place it. For a run occupying Riley token positions
[s, e)inside segment k whose token span is[t0, t1), its interpolated Latin midpoint is
L = a_k + ((s + e)/2 - t0) / (t1 - t0) × (b_k - a_k), rounded to the nearest integer.
- Window. The translated window is Latin lines
[L - 7, L + 6]— 14 lines — clipped to[a_k, b_k]and, if clipping shortens it, extended at the other end to restore 14 lines where the segment allows. - Measurement region. The measurement region
M_iis the Riley token span whose interpolated Latin lies in[L - 4, L + 3]— 8 lines, the central 8 of the translated 14 — under the same linear map. The 3-line collar on each side is the tolerance for interpolation error: it is what makes the region robust rather than the window. - Eligibility. A run is eligible if steps 3–7 succeed, its window does not overlap an already-selected window, its book contributes at most 2 loci, and it is not the run already quoted in
NEXT.md(excluded by exact string match ondrought are wet with standing pools, which the lead has read). - Selection. Order eligible runs by (book ascending, Riley start position ascending) and take the first that satisfies step 8 per book in round-robin over books 10–15, repeating until 10 loci are selected or candidates are exhausted. Deterministic; no randomness anywhere in this design.
- Emit
runs/windows.md— the Latin only, per window, with book and line numbers — andruns/key.json, holding the target runs, measurement regions and control spans. Both are committed before the translation is written, so the key demonstrably predates it. The lead does not openkey.json, or any file containing Riley's or More's English, until the translation and its log are committed.
5.2 Translation (regime R04, T-metamorphoses-R04-v2)
The lead translates all 10 windows from runs/windows.md — the Latin alone — in session, at no API cost, per workshop/regimes/R04-lead-close.md. Two parameters are fixed here, before any Latin has been read:
- Prose, close. Declared in advance and for a stated instrument reason: the target strings are Riley's prose, and a verse rendering would depress recall in both arms for form reasons alone, costing sensitivity. This is a paired within-window comparison, so form cannot bias the contrast — but it can flatten it.
- No published rendering of these passages is read before the freeze, in any language (R04 §Procedure 1). Latin dictionaries, grammars and commentary on the Latin are permitted; a facing-page translation is not.
The translator's log is written at translation time and frozen with it.
5.3 The statistic (frozen verbatim)
Let S_i be the target run at locus i (Riley tokens), M_i the measurement region (Riley tokens), L_i the lead's rendering of window i (tokens).
Content tokens. content(X) = the set of distinct tokens of X not in the frozen stoplist of §5.4.
Recall. For a token string X and rendering L:
recall(X, L) = |content(X) ∩ set(L)| / |content(X)|
undefined if |content(X)| < 4.
Control spans. C_i = every span of exactly |S_i| consecutive tokens of M_i starting at offsets 0, 3, 6, …, such that the span (a) does not overlap S_i's token positions, (b) shares no 8-gram with More's text of that book, and (c) has |content| ≥ 4.
Percentile rank (the lead statistic):
r_i = ( #{C ∈ C_i : recall(C, L_i) < recall(S_i, L_i)} + 0.5 × #{C ∈ C_i : recall(C, L_i) = recall(S_i, L_i)} ) / |C_i|
Mid-rank tie handling is stated here and is not a matter of implementation choice. r_i ∈ [0, 1]; higher means the lead reproduced the shared run's wording more than it reproduced typical neighbouring wording of the same length by the same translator. r_i is undefined, and locus i is dropped, if |C_i| < 15 or recall(S_i, ·) is undefined.
Secondary statistics, computed the same way with recall replaced by:
tri(X, L)= fraction ofX's distinct 3-grams (all tokens, not only content) present inL;recall_nonames(X, L)=recallwith the name tokens of the cell removed fromcontent(X), name tokens resolved bytools/ngram_overlap.py::name_tokensover[riley book, more book, lead window]— amendment A2's requirement, since S029's headline deflated by ~10× under it.
Verbatim landing. v_i = length in tokens of the longest contiguous run of S_i present in L_i.
5.4 Tokenisation and stoplist (frozen verbatim)
Tokenisation is tools/dependence_check.py::tokenise: tools/ngram_overlap.py::tokenise (NFC; ’‘→'; “”→"; —–→ space; lowercase; [^a-z0-9']→ space; split; drop bare ') followed by deletion of standalone all-digit tokens (A13).
Stoplist, frozen verbatim, 100 items:
a about above after again against all also am an and any are as at be because been
before being below between both but by can could did do does doing down during each
few for from further had has have having he her here hers him his how i if in into is
it its itself me more most my no nor not now of off on once only or other our out over
own same she should so some such than that the their them then there these they this
those through to too under until up very was we were what when where which while who
whom why will with would you your
A token is a content token if and only if it is not in this list.
5.5 Predictions, registered
Every threshold below is stated as an ordering or a magnitude, not only as a sign — NEXT.md note (tt), from the session that passed a sign test whose ordering was violated by a factor of four. n is the number of loci surviving §5.1 and F3; thresholds are written for n = 10 and scale by the rule in F1.
- P1 — instrument resolution (gate). (a) In ≥9 of 10 windows the control recalls
{recall(C, L_i) : C ∈ C_i}have interquartile range > 0. (b) In ≥9 of 10 windows the median control recall against the lead's rendering of the same window strictly exceeds the median control recall of that same control set against the lead's rendering of each of at least 7 of the other 9 windows. If P1 fails, no verdict is reported on P2–P5. This is note (uu) applied in advance: a statistic that cannot tell a matched rendering from a mismatched one is measuring arithmetic, not translation. - P2 — FORCED, sign.
r_i > 0.5in ≥9 of 10 loci. (Exactly 0.5 counts as a failure for this prediction.) - P3 — FORCED, central magnitude.
median(r_i) ≥ 0.75. - P4 — FORCED, absolute magnitude.
mean_i recall(S_i, L_i) − mean_i median(recall(C, L_i)) ≥ 0.15. - P5 — FORCED, verbatim landing.
v_i ≥ 4in ≥3 of 10 loci. - P6 — BORROWED, the complementary registered outcome.
median(r_i) ∈ [0.35, 0.65]and P2–P5 all fail.
P2–P5 and P6 are not exhaustive; an outcome satisfying neither is reported as such and read in §5.6's terms without being assigned to either hypothesis.
The case each prediction should fail (note (p)). P2–P5 should fail if the shared runs are ordinary wording. P1 should fail if the loci are so short, or the renderings so divergent, that recall carries no information — and it is registered because the obvious failure mode of a rank statistic in this project has been saturation (note (uu)): if every control recall were identical, every r_i would be exactly 0.5 by the mid-rank rule and P2 would fail for a reason that has nothing to do with translation. P1(a) is the specific guard against that.
5.6 Reading rules, registered
- P1 fails → the experiment reports a method null. Nothing is claimed about FORCED or BORROWED.
- P1 passes, P2–P5 pass → evidence that the shared runs sit where the Latin constrains an independent translator. This weakens the dependence reading of S029's headline and, by extension, weakens note (ss) as a general rule.
- P1 passes, P6 holds → evidence that the shared runs are ordinary wording that one translator reproduced from the other. This does not prove borrowing, and the result page must say so in those words: it shows the runs are not at loci that constrain this independent translator more than adjacent wording does. One translator is one translator.
- Mixed → report per-locus values and no aggregate verdict. Per note (qq) and (tt), per-locus
r_iis reported in every case, pass or fail.
5.7 Verification
An independent verify.py, written from §§5.1–5.5 and not importing select.py or analyse.py, recomputes: the extraction token counts; the shared-run set; every L, M_i, S_i, C_i; every recall, r_i, v_i; and every prediction verdict. Discrepancies are reported in verification.md whether or not they change a verdict. This exists because in S029 the one defect that survived five ratio-and-count assertions was caught only by a second implementation (A13's digit deletion, absent from tokenise()).
Additional assertions, which must fail loudly (note (vv)):
- exactly 8 Riley books extracted from PG #26073, none empty;
- exactly 15 More books extracted, none empty (the
subtype="BOOK"trap); - every selected locus's
S_ioccurs, verbatim, in both Riley's and More's text of its book; |C_i| ≥ 15for every retained locus;- the number of Latin lines emitted per window is exactly 14 unless the segment is shorter, in which case the shortfall is printed.
6. Pre-flight cost
One call: the independent pre-run critic pass on this design (P1, openai/gpt-5.6-terra). Estimate, built from per-call maxima per note (m): in ~7,000 / out ≤ 4,000 → central $0.077, worst case $0.078 at list. Today's ledger stands at $0.151250 of $5.00; the worst case fits. Everything else — the translation, the extraction, the selection, the analysis and the verification — is lead work at $0.00.
7. What this design cannot establish
- Direction. Nothing here says who copied whom. Publication dates say More came second; the words say nothing.
- That the flagged baselines are dependent. This runs on Latin→English.
RS-20260726b-baseline-dependenceflags Russian→English and German→English pairs. The mechanism, if found, is general only as far as the argument for its generality goes, and that argument is not measurement. - That a shared run is never forced. Ten loci in one pair of one poem.
- Contamination-freedom of the instrument. The lead's contamination on Ovid is declared high on provenance. If the lead remembers Riley or More, recall is inflated — and inflated toward FORCED, i.e. against the reading this design's authors expect. That direction is stated here so it cannot be claimed later as a convenience.
- Anything about quality. No sense of
wiki/goodness-senses.mdis being scored.senses:recordsaccuracyandstyle-correspondencebecause those are the senses a claim about "the Latin admits one rendering" would touch if it were made — none is being asserted here, and every judgment on this page isinternal-judgment-only.
8. Artifacts
design.md(this file, frozen),critic.md(the critic pass and the amendments it forced)select.py,analyse.py,verify.pyruns/windows.md(Latin only),runs/key.json,runs/results.json,runs/verification.jsonworkshop/translations/metamorphoses/R04-v2/translation.md(the translation limb, with its frozen log)wiki/findings/results/RS-20260726b-forced-or-borrowed.md
9. Freeze
Frozen 2026-07-26 before select.py existed, before any locus was chosen, and before any English rendering of any candidate passage had been read by the lead. The structural probes described in §4.1 were run before the freeze and printed counts, Latin line numbers and token counts only; their output is reproduced in §4.1 in full.
10. Amendments
(dated; each records what forced it. All of A1–A22 were applied 2026-07-26, before select.py existed and before any locus, target run, control span or recall number existed. The critic pass that forced them is critic.md; the raw response is runs/critic-P1.json.)
A1 (2026-07-26, critic TASK A/B, the (rr)-class finding — this design's own false sentence). §3 said "the only difference between the run and its controls is that More reproduced the run and did not reproduce the controls." That is false, and it is struck. Controls are additionally conditioned on not sharing an 8-gram with More, which is a selection on lexical similarity to a second translator — the very property the experiment is about. Its direction matters and is now stated: spans that the Latin genuinely forces are the spans More is most likely to have hit too, so the 8-gram filter preferentially removes forced controls, and therefore biases the comparison toward FORCED, i.e. against the reading this design's author expects. Consequently:
- The primary control set is now unfiltered.
C_i^all= every span of|S_i|consecutive tokens ofM_iat offsets0, 3, 6, …fromM_i's first token, not overlappingS_i's token positions, with|content| ≥ 4. This is "typical neighbouring wording of the same length by the same translator", which is what §2 needs. - The 8-gram-filtered set of §5.3 is retained as
C_i^nomoreand reported as a sensitivity check, not as the primary. - A third set,
C_i^matched= the members ofC_i^allwhose distinct-content-token count equals|content(S_i)|exactly, is reported as a second sensitivity check, addressing the critic's point that equal token length is not equal content length. If|C_i^matched| < 10it is reported as unavailable, not as a null.
Every r_i is reported three times, once per control set. r_i over C_i^all is the registered primary and is what P2–P4 and P6 are evaluated on.
A2 (2026-07-26, critic TASK A). recall measures overlap of distinct content-word vocabulary, ignoring order, multiplicity and syntax. §2's question is about wording. So tri is promoted from an unused "secondary statistic" to a co-reported statistic with its own registered prediction, because it is the more direct measure of phrasing:
- P7 — FORCED, phrasing.
median(r_i^tri) ≥ 0.75, wherer_i^triis the percentile rank oftri(S_i, L_i)among{tri(C, L_i) : C ∈ C_i^all}by the same mid-rank rule. - P7 is not scored, and is reported as uninformative, if more than 80% of all target and control
trivalues across all loci are exactly 0. This is note (uu) applied to the phrasing statistic: it is the one here that can floor. tri(X, L)is undefined, and that span dropped from thetrianalysis only, ifXhas fewer than 1 distinct 3-gram (i.e.|tokens(X)| < 3).
A3 (2026-07-26, critic TASK A). recall_nonames is defined: name tokens are resolved by tools/ngram_overlap.py::name_tokens([riley_book_text, more_book_text]) — the lead's rendering is excluded from the name-resolution corpus, so the stop-set cannot move because the lead used or omitted a name. Removal applies to content(X) only.
A4 (2026-07-26, critic TASK A). v_i = 0 when no token of S_i occurs in L_i at all. v_i is the length of the longest contiguous token run of S_i occurring contiguously in L_i.
A5 (2026-07-26, critic TASK A/E). The missing failure criteria, which §5.5–5.7 referred to and which did not exist. This is a real defect: two predictions cited a scaling rule "F1" that was never written.
- F1 — fewer than 10 loci. If
n < 10after §5.1 and F3, the "≥9 of 10" thresholds of P1(a), P1(b), P2 and the "≥3 of 10" of P5 become≥ ceil(0.9n),≥ ceil(0.9n),≥ ceil(0.9n)and≥ ceil(0.3n)respectively. P3, P4, P6 and P7 are unchanged (they are medians and means). Ifn < 6the experiment reports a materials null and no prediction is scored. - F2 — P1 fails. No verdict on P2–P7. Per-locus values still reported.
- F3 — alignment audit, two-part, and it is mandatory. (a) Machine:
align_i= the fraction ofS_i's name tokens (per A3) whose first four characters match, case-insensitively, the first four characters of some token in the window's Latin. Reported per locus; undefined whereS_ihas no name token. (b) Lead, post-freeze: after the translation is committed, the lead reads eachS_ibeside its own rendering of that window and records yes/no whether the window's Latin contains the materialS_irenders. A locus recording no is dropped, and the drop is reported. If more than 3 loci are dropped by F3(b), the interpolation method of §5.1 steps 5–7 is judged inadequate and the experiment reports a method null. F3(b) is a lead judgment and is thereforeinternal-judgment-only; it is a judgment about which Latin a passage renders, not about quality, and it is recorded per locus with its reasoning so it can be checked. - F4 — a window's rendering is missing, empty, or shorter than 20 tokens. Locus dropped, reported.
- F5 — contamination. If
L_ishares a ≥12-gram with Riley's or More's text of that book, the locus is retained and flagged prominently. That is data about the lead, not a defect in the instrument.
A6 (2026-07-26, critic TASK A). P1(b) is redefined, and its claim narrowed. It required "the other 9 windows", which is undefined once loci are dropped, and it was described as distinguishing matched from mismatched translation, which it does not do. New wording: P1(b) — in ≥ ceil(0.9n) of the n retained loci, median{recall(C, L_i) : C ∈ C_i^all} strictly exceeds median_{j≠i} ( median{recall(C, L_j) : C ∈ C_i^all} ). What it licenses, and all it licenses: recall responds to which passage was translated. It does not show that recall distinguishes a good rendering from a bad one, and no such claim is made.
A7 (2026-07-26, critic TASK A). P1(a)'s quantile convention: interquartile range is computed as Q3 − Q1 with Q1, Q3 the 25th and 75th percentiles by linear interpolation between order statistics (statistics.quantiles(data, n=4, method='inclusive')).
A8 (2026-07-26, critic TASK A, note (o)). Reachability of the P3 threshold. With |C_i^all| ≥ 15 enforced, r_i has granularity ≤ 1/15 = 0.067, so median(r_i) ≥ 0.75 is reachable. The gate |C_i^all| ≥ 15 is what makes it reachable and is retained for that reason as well as for stability.
A9 (2026-07-26, critic TASK A/F). P6 is no longer defined as "P2–P5 all fail", which made it hostage to four heterogeneous thresholds. P6 — BORROWED: median(r_i) ∈ [0.35, 0.65] and P4's absolute margin < 0.05 in absolute value. P2, P3, P5, P7 are reported alongside but do not enter P6.
A10 (2026-07-26, critic TASK D — a selection bug, not an ambiguity). "extend while the next 12-gram also occurs in More" can concatenate 12-grams occurring at different positions in More, producing a "run" that occurs nowhere in More contiguously. Corrected: after extension, the extended run must be verified to occur contiguously in More's book; if it does not, it is shortened from the right, one token at a time, until it does. An assertion in both select.py and verify.py fails loudly if any retained S_i does not occur contiguously in both Riley's and More's book text.
A11 (2026-07-26, critic TASK D). Tokeniser version freeze. tools/ngram_overlap.py SHA-256 8720f09016ff0cb224cb4f37aa2f8bc454512c26cf49014226881ba1298ad014; tools/dependence_check.py SHA-256 4af970fc9d62b5cb037db6bf7d39f18100f63e97077c8b6c14a257631152a4b1. Both hashes are re-checked by verify.py and a mismatch fails loudly.
A12 (2026-07-26, critic TASK D). L_i extraction from translation.md is specified: the body of the section whose heading matches exactly ## Window <i> — Metamorphoses <book>.<lo>–<hi>, from the line after the heading to the next line beginning ## or a line equal to ---, excluding any line beginning with > and excluding everything from the ## Translator's log heading onward. Nothing else in the file enters the token stream. verify.py re-derives L_i from the same rule and asserts the ten section headings are present and unique.
A13 (2026-07-26, critic TASK D/E). Marker sentinel semantics: the sentinel replaces the <span class="linenum"> in place, and the segment it opens is the token run from that sentinel to the next sentinel. The marker's printed text is consumed by the sentinel and never enters the token stream. Adjacent sentinels with no tokens between them yield an empty segment, which fails the §5.1 step 3 ratio gate and is dropped.
A14 (2026-07-26, critic TASK D/E). Latin ranges are inclusive: marker a-b denotes lines a…b, of count b − a + 1. §5.1 step 5's interpolation uses width (b_k − a_k) — retained deliberately as the distance between line positions, not the count. The translated window is the inclusive range [L − 7, L + 6], i.e. 14 lines; clipping to [a_k, b_k] is inclusive at both ends; if clipping shortens the window it is extended at the opposite end where the segment allows, and if it cannot be, the shortfall is printed (§5.7).
A15 (2026-07-26, critic TASK E). Rounding: round half up (math.floor(x + 0.5)), not Python's banker's rounding.
A16 (2026-07-26, critic TASK E). Control offsets are relative to M_i's first token. A span that would extend past M_i's last token is not generated. S_i is required to lie wholly inside M_i; a locus where it does not is dropped and reported (this can happen when S_i is long relative to the 8-line measurement region).
A17 (2026-07-26, critic TASK E). Searchable streams: the Riley and More token streams are the extracted book bodies only — headings, FABLE divisions, synopses, footnotes, the PG licence and the Perseus <note> elements are already removed by the §5.1 step 1 rules, and no paratext is searched.
A18 (2026-07-26, critic TASK E). "In session" is specified for R04 here: one drafting pass and one self-revision against the Latin, no other rendering consulted, Latin dictionaries and Latin-side commentary permitted, and the lead may see its own earlier window renderings because they are in the same file. No published translation of Metamorphoses in any language is opened before the translation and its log are committed.
A19 (2026-07-26, critic TASK F). §2's entailment claims are softened, because they are not entailments. FORCED does not strictly entail a high r_i — two independent competent translators can differ in syntax, diction and explicitness even where the sense is fixed — and BORROWED does not strictly entail r_i ≈ 0.5, since borrowing can happen at genuinely constrained loci. What the design actually rests on is weaker and is stated as such: if the shared-run loci were systematically ones the Latin constrains, an independent translator should reproduce their wording measurably more than adjacent wording; the absence of that elevation is evidence against the FORCED reading, and is not proof of borrowing.
A20 (2026-07-26, critic TASK B). Reported covariates, per locus, so the confounds the critic named are visible rather than assumed away: |S_i|, |content(S_i)|, the function-word fraction of S_i, the name-token count of S_i, and the mean of each of those over C_i^all. If the target differs from its controls by more than one interquartile range on any covariate at a majority of loci, that is reported in the result page's headline, not buried.
A21 (2026-07-26, critic TASK F). §7 gains four items: (i) the design cannot separate Latin constraint from Riley-specific lexical conventionality — a nineteenth-century collocation the lead also reaches for is not the Latin forcing anything; (ii) it cannot establish that the lead is independent "by construction" — not reading a translation is not the same as not having read one; (iii) contamination specifically with the shared wording would manufacture the FORCED pattern rather than merely biasing a neutral test, which is a stronger statement than §7 made; (iv) deterministic earliest-by-book selection with a two-per-book cap and one excluded string is not a random sample of the pair's shared runs, so nothing is claimed about the class as a whole.
A23 (2026-07-26, selection-time, note (kk) — bracket, do not choose). The control-span stride of 3 tokens (§5.3) is a free parameter with no principled justification. A first run of select.py showed it yields 7–24 control spans per locus, so three of nine loci would fall below the |C_i| ≥ 15 gate on the stride alone. The stride is therefore bracketed, not chosen: every r_i is computed at stride 1 and stride 3, and both are reported. Stride 1 is the registered primary, because it samples every position of the measurement region rather than a third of them, and because the gate of A8 is a statement about how finely r_i can resolve. Applied before any Latin was translated and before any recall number existed; the only quantities seen when it was applied were control counts.
A24 (2026-07-26, selection-time). The |C_i^all| ≥ 15 gate of §5.3 is evaluated on the stride-1 set.
A25 (2026-07-26, selection-time). The per-book cap of §5.1 step 8 is raised from 2 to 3. The cap exists so that one book cannot dominate the sample; with only 15 eligible runs spread over six books, a cap of 2 leaves the design short of its own target of ten loci. Applied at the same moment as A23 and on the same evidence — locus counts, no recall numbers.
A22 (2026-07-26, critic TASK C). The alignment tolerance claim is downgraded. §5.1 step 7 said the 3-line collar "is the tolerance for interpolation error"; it protects only if the midpoint error is at most three lines, which is not checked by the collar itself. F3 (A5) is what checks it. The collar is retained as a mitigation, described as such, and the asymmetry the critic identified — mislocation moves the target and its controls together, but the window is centred on the target, so a large error can leave the target's Latin untranslated while some controls' Latin is still inside — is recorded as a known residual that F3(b) exists to catch.
11. Run record
Run 2026-07-26 (S030). Full reading: wiki/findings/results/RS-20260726b-forced-or-borrowed.md.
- Selection. 231 Riley marker segments in books 8–15, 42 failed the §5.1 step 3 gate, 16 maximal ≥12-token shared runs inside surviving segments, 1 excluded by the
NEXT.md-quoted-string rule, 15 candidates, 10 loci selected across books 10, 11, 12, 13 (×3), 14 (×2), 15 (×2). 140 Latin lines. - F3(a)/(b), alignment. 10 of 10 pass. Every target run demonstrably renders Latin inside its own 14-line window; the Latin line is named per locus in the result page. The interpolation of §5.1 steps 5–7, inside marker segments of median width 29, placed every locus correctly. No locus dropped. F1, F4 and F5 did not fire;
n = 10, so the thresholds stand as written for ten. - P1(a) PASS 10/10. P1(b) PASS 10/10. The instrument has resolution: control recalls vary in every window, and every window's own rendering beats the median of the other nine. Note (uu)'s saturation did not recur.
- P2 FAIL (6 of 10 above 0.5; needed 9). P3 FAIL (median
r= 0.576; needed ≥ 0.75). P4 FAIL (margin +0.091; needed ≥ 0.15). P5 FAIL (2 of 10 withv ≥ 4; needed 3). P7 FAIL and not floored (zero fraction 0.40; median tri-rank 0.291, i.e. on phrasing the shared runs are reproduced less than their neighbours). P6 FAIL on its second clause only (medianris inside [0.35, 0.65]; |margin| 0.091 is not < 0.05). - Outcome under §5.6: MIXED. Every FORCED prediction fails; the BORROWED box is missed by one clause. No aggregate verdict is assigned, per the registered reading rule, and the per-locus values are reported in full.
- A20 fires and must be in the headline, as A20 requires: the target differs from its controls by more than one control IQR on name-token count at 6 of 10 loci, on function-word fraction at 4, and on content-token count at 3. The +0.091 vocabulary margin is not safe from that.
- F5, contamination: zero. No window's lead rendering shares a 12-gram with Riley's or More's text of that book. Longest verbatim landing on a target run: 8 tokens, once, and it is
and on the sea and on the earth. - Verification: 218 checks, 0 failures (
verification.md). - Cost: $0.0656205 (critic) + $0.0096395 (a lost call, ledgered as waste). The translation, extraction, selection, analysis, diagnostics and verification cost $0.00.