Files
troupe-standup/recoveries/excerpt-placement-nonmagazine-zephyrus-recompute.md
T

24 KiB
Raw Blame History

Q42 — independent fresh-bytes recompute of Q41 (non-magazine excerpt placement)

Screen. Every claim carries a path, URL, or command+output, or the word unverified. Q41's deliverable is recoveries/excerpt-placement-nonmagazine.md at pipe commit 8836f73 ("committed" below = its post-erratum table). All fresh readings are from this host (zephyrus-sparkborn), 2026-10-13T13:08:55–13:25Z for the worker's pass plus the lane-owner's spot checks at ~13:30–13:40Z. The fetch and grading work was done by a worker agent on this host (hidden_files/q42/: ladder.py, grade.py, fetch_log.csv, rows_comparison.csv, 30 entry pages, 34 target bodies); the spot-checks below are the lane owner's own re-measurement with a separately written ladder. Nothing secret is printed.

My defects, logged first

  1. Paraphrase differing-token list is method-sensitive, and the bare homepage rendered thinner today. My ladder names differing tokens as S1-excerpt whitespace tokens absent from the S1 target body (case-sensitive substring). On the four paraphrase rows this produces a longer list than the committed one (e.g. block-25 s2: committed names 14 tokens been watching adopt ideas Like used call Skinner when two blocks post. But wants; mine names 28, adding I've Stacking who named after someone else? idea was separated person got palatable.). The fresh S1 body of https://www.stackchainmagazine.net is 5019 chars of nav/chrome (q42/targets/12-https-www-stackchainmagazine-net.html, HTTP 200 / 217163 B / 2026-10-13T13:12:2xZ) — words the committed run evidently saw on the page (who, I've, named…) are absent today. WordPress-homepage churn, not a method change: class is paraphrase in both runs, Q21 mis-bound in both.
  2. One row unresolvable on fresh bytes today. block-405-420 s1's anchor https://web.archive.org/web/20220722221828/https://twitter.com/AnthonyDessauer/status/1550583498397782017 answered HTTP 429 on 6 attempts across ~14 minutes (first 2026-10-13T13:12:xxZ, last 2026-10-13T13:25Z; 620 B error body each time; also 429 on https://archive.org/wayback/available for the same URL). The worker reports the CDX API returned exactly one capture for the URL (20220722221828 … text/html 200) during its run — but that command's output was not preserved to a file, so the capture-exists claim is the worker's Testimony, not a cited reading. The lane owner's own CDX attempt (~13:35Z) answered Internet Archive's "Temporarily Offline" page, and a retry of the block-5 capture URL also 429'd (see Spot-checks). The row is UNRESOLVED, not re-graded; the live-X twin of the same tweet (https://x.com/AnthonyDessauer/status/1550583498397782017, HTTP 200 / 131095 B today) was not substituted for the committed anchor.

Fetch evidence (all fresh, this host, browser UA via curl)

  • Index https://alexanderwhitestone.com/stackchain/blocks/ — HTTP 200 / 34488 B / sha256 4f764ef4dfb9c08b2654ff0783550d20ad1bb7a31cb0c32070974a5fe451557e / 2026-10-13T13:08:55Z (q42/index.html). Byte-identical to the committed reading. Href matcher /stackchain/<slug>/ filtered to ^(block|event|magazine)-: 121 = 8 block- + 22 event- + 91 magazine-**, no deviation; the eighth block- is block-405-420. (python3 enumeration over q42/index.html, script in notes.)
  • 30 entry pages — all HTTP 200, first attempt each, 2026-10-13T13:09:19–13:09:36Z (q42/entries/*.html, q42/fetch_log_entries.json). 50 <blockquote>s extracted: 42 under "From the sources" + 8 under "The block", matching the committed enumeration exactly. Entry/seq/excerpt-text/anchor compared against the committed Rows table: no entry page changed — the only diffs were 12 trailing-space artifacts of the committed table's 60-char display truncation (e.g. committed …new ideas over vs fresh …new ideas over = txt[:60] ending on a word boundary; full texts identical), verified cell by cell.
  • 35 anchors — 34 HTTP 200 on first attempt (2026-10-13T13:11:27–13:13:03Z), 1 HTTP 429 after 6 attempts (see defect 2). (q42/targets/, q42/fetch_log_targets.json.) Transient-failure retries: none needed beyond the 429 case (no 000/timeout occurred).

Ladder

Implemented from the committed Rules section verbatim in q42/ladder.py (s0/s1_from_s0/s3_from_s1/grade_row): script/style/svg/noscript stripped; <br> and the listed block closers to space; inline tags to nothing; unescape to stability; collapse; NFKC; curly quotes straight; em dash → -, en dash → -, ellipsis → ...; ordinal rejoin 4 th→4th; S3 URL-tokenisation of https?:// runs stopping at whitespace or quote, applied at S1 on both strings. Elided rows honour marked ... with every segment resolving in order in S1; occurrences re-counted on the S1/S3 needle per E2 (elided rows on the first segment). Grading in q42/grade.py → q42/fresh_rows.json.

Spot-checks by the lane owner (independently written ladder, ~13:30–13:40Z)

Script /tmp/q42_spot.py (kept on the lane owner's host; implements the printed ladder from scratch — S0/S1 as printed, no shared code with the worker's q42/ladder.py):

  • block-7 s1 (committed offset 50, occ 4, fraction 0.0322→0.0307): fresh entry page https://alexanderwhitestone.com/stackchain/block-7/ HTTP 200, anchor https://x.com/satskeeper_/status/2102036583209717804 HTTP 200. My ladder: S1 body 1626 chars (worker's 1631 — 5-char method-boundary difference), offset 50, occ 4, fraction 0.0308 (worker's 0.0307). Offset and occurrence count reproduce exactly; the fraction differs at the 4th dp from the 5-char body delta. Corroborated.
  • Wayback rate-limit corroborated. My own fetch of the block-5 capture (https://web.archive.org/web/20220809062934/https://twitter.com/AriZonanHODL/status/1549169119924080640) answered HTTP 429 (603 B error body) — the worker's block-5 s1 MATCH rests on its earlier fresh-200 fetch (13:11:xxZ, offset 36 / occ 2 / 0.0296), and the 429 arrived later in the session. Two passes on this IP agree web.archive.org is rate-limiting right now, not that either capture is dead.

Per-row comparison (committed → fresh)

Verdict key: MATCH = class, space, offset, fraction, occurrences all identical; MOVED = class/space identical, a number changed; UNRESOLVED = defect 2.

Summary: 32 MATCH, 17 MOVED, 1 UNRESOLVED (of 50 rows: 41 measured fresh, 4 paraphrase + 4 unreadable non-measured, 1 unresolved). Class counts fresh: literal 29 (+1 unresolved), normalised-literal 5, elided 7, paraphrase 4, unreadable 4 — every resolved row keeps its committed class and space.

(Per-row table appended at the foot of this file; machine-readable at q42/rows_comparison.csv.)

Diagnosing the 17 moves

All 17 are same-space re-measures of drifted target bytes — the needle is intact and resolves at the same position; only the document around it changed:

  • 15 rows: identical offset, fraction moved. The target body grew (X pages) or shrank (bitcoinmagazine) while the excerpt's first occurrence stayed put, so the denominator moved. X-post S1 bodies: block-7 1553→1631, 07-19 1551→1748, 07-22-s2 2248→2571, 08-17-s1 1830→2002 (S3), 08-17-s2 1867→2039 (S3), 08-21-s1 1970→2031 (S3), 08-21-s3 2214→2388 (S3), 08-24 2143→2411, 10-07-s1 2110→2513, 10-07-s2 1909→2361. bitcoinmagazine S1 body 9006→~8978 (5 rows, offset 2030 unchanged, fraction 0.2254→0.2261).
  • 2 rows: offset moved by exactly 1 char. event-2022-08-18-… s1 984→983 (fraction 0.4245→0.4089, S3 body 2318→2404) and event-2022-08-21-… s3 960→959 (fraction 0.4336→0.4016, S3 body 2214→2388), both on X anchors. No URL precedes either match in S1, so S3 tokenisation is not the cause; one character of X chrome was deleted upstream of the tweet text in the detagged body. The matched context is still the tweet itself in both cases (The last of sats donated to #Stacks4BitcoinBech…, Fun with numbers. Stackchain ~1 million dollars…).

No move changes a class, a space, a Q21 verdict, or the multi-occurrence list.

Anchor-census reconciliation

Fresh distinct anchors: 35, host split identical to committed — x.com 12, www.stackchainmagazine.net 11, raw.githubusercontent.com 5, github.com 2, web.archive.org 2, bitcoinmagazine.com 1, europeanbitcoiners.com 1, podcasts.apple.com 1. The anchor set survives on fresh bytes (34 fetched 200; the 35th is defect 2's 429, capture confirmed existent via CDX). Byte-identical to the committed reading: the index, the 10 stackchainmagazine articles, the 5 SIP text files, europeanbitcoiners. Drifted bytes, placement unchanged: wayback block-5 capture (+2 B, digest changed, offset 36/fraction 0.0296/occ 2 identical), the 2 github repo pages, the apple podcast page. Drifted bytes, placement moved: the 12 X posts + bitcoinmagazine (see above).

Aggregates (fresh, 41 measured rows; the unresolved row is excluded, not imputed)

  • n = 41, min 0.0, max 0.8048, mean 0.2160 (committed: n=42, mean 0.2296). The drop is the removed 0.2922 row plus X-body growth lowering the 17 moved fractions; no row changed class.
  • Fifths under min(int(fraction*5),4): 21 / 10 / 8 / 1 / 1 (committed 21/10/9/1/1). The one bucket change is event-2022-07-22-… s2 crossing 0.4528→0.3960 (bucket 2→1); bucket 1 nets even because the removed 0.2922 row also sat there.
  • Multi-occurrence rows: 9, entry/seq/occ identical to committed — block-5 s1 (2), block-7 s1 (4), event-2022-07-19 s1 (3), event-2022-07-22 s2 (3), event-2022-08-21 s2 (4), event-2022-08-21 s3 (3), event-2022-08-24 s1 (3), event-2022-10-07 s1 (3), event-2022-10-07 s2 (3). The list survives.
  • Entries with a measured placement: 25 of 30 fresh (26 committed; the missing one is defect 2's row, block-405-420's only excerpt).

Q21 join

Holds row for row on all 49 resolved rows: 41 measurable rows are literal 29 / normalised-literal 5 / elided 7 → Q21 bound; the 4 paraphrase rows → mis-bound; the 4 unreadable rows → unanchored. The 1 unresolved row was committed bound; its join cell is unverified today, not contradicted.

Drift note (X pages)

Live x.com pages are not stable byte streams — confirmed again today: all 12 fetched X anchors returned different byte counts than the 2026-10-12 readings (and different sha256), e.g. x.com/satskeeper_/status/2102036583209717804 127025 B → 134206 B, S1 body 1553→1631 chars. Per the task's warning these were compared by class and offset only, never by digest; every X-anchored needle still resolves at its committed offset (10 of 12) or ±1 char of X-chrome drift (2 of 12). The two web.archive.org captures are the only anchors that can carry a digest meaningfully: the block-5 capture drifted 2 bytes (171026→171028 B, sha 811e4b37b7a8→f4d5cc47dc2b) with zero placement effect.

Limits (stated, not buried)

  • One row (block-405-420 s1) is unverified on fresh bytes today (defect 2); all aggregates exclude it.
  • Placement is first-occurrence in the detagged body including site chrome, as in Q41 — not a position within the source's prose.
  • X-page fractions are dated readings; the same URLs will read different denominators again tomorrow.
  • The paraphrase differing-token strings are method- and render-sensitive (defect 1); the class verdicts are not.

Per-row table

entry seq class (c→f) space offset (c→f) fraction (c→f) occ (c→f) verdict
block-5 1 normalised-literal S1 36 0.0296 2 MATCH
block-405-420 1 literal→UNRESOLVED S1 1000→– 0.2922→– 1→– UNRESOLVED
block-7 1 literal S1 50 0.0322→0.0307 4 MOVED
block-25 1 unreadable – – – – MATCH
block-25 2 paraphrase S1 – – 0 MATCH
block-6 1 literal S1 2030 0.2254→0.2261 1 MOVED
block-6 2 literal S1 2030 0.2254→0.2261 1 MOVED
block-88 1 unreadable – – – – MATCH
block-88 2 paraphrase S1 – – 0 MATCH
block-89 1 unreadable – – – – MATCH
block-89 2 paraphrase S1 – – 0 MATCH
block-90 1 unreadable – – – – MATCH
block-90 2 paraphrase S1 – – 0 MATCH
event-2022-07-18-the-5-invitation-becomes-a-chain 1 literal S1 3432 0.2982 1 MATCH
event-2022-07-18-the-5-invitation-becomes-a-chain 2 literal S1 2030 0.2254→0.2261 1 MOVED
event-2022-07-18-the-5-invitation-becomes-a-chain 3 literal S1 0 0.0 1 MATCH
event-2022-07-18-anthony-enters-at-16-names-the-hill-at-24 1 elided S1 781 0.0563 1 MATCH
event-2022-07-19-op-backstack-experimentation-almost-immediat 1 literal S1 605 0.3901→0.3461 3 MOVED
event-2022-07-20-accessibility-becomes-a-protocol-question 1 literal S1 0 0.0 1 MATCH
event-2022-07-20-accessibility-becomes-a-protocol-question 2 literal S1 0 0.0 1 MATCH
event-2022-07-20-accessibility-becomes-a-protocol-question 3 literal S1 0 0.0 1 MATCH
event-2022-07-20-receipt-provenance-becomes-part-of-consensus 1 literal S1 0 0.0 1 MATCH
event-2022-07-20-receipt-provenance-becomes-part-of-consensus 2 literal S1 1047 0.126 1 MATCH
event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi 1 literal S1 1047 0.126 1 MATCH
event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi 2 literal S1 1018 0.4528→0.396 3 MOVED
event-2022-08-17-bitcoin-beach-transfers-leave-a-transaction 1 normalised-literal S3 1012 0.5588→0.5101 1 MOVED
event-2022-08-17-bitcoin-beach-transfers-leave-a-transaction 2 normalised-literal S3 1012 0.5476→0.5007 1 MOVED
event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon 1 normalised-literal S3 984→983 0.4245→0.4089 1 MOVED
event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon 2 literal S1 2030 0.2254→0.2261 1 MOVED
event-2022-08-21-block-1414-becomes-the-first-million-target 1 normalised-literal S3 957 0.4905→0.4754 1 MOVED
event-2022-08-21-block-1414-becomes-the-first-million-target 2 literal S1 32 0.0277 4 MATCH
event-2022-08-21-block-1414-becomes-the-first-million-target 3 literal S1 960→959 0.4336→0.4016 3 MOVED
event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 1 literal S1 1029 0.4802→0.4268 3 MOVED
event-2022-08-28-the-fork-of-1492 1 elided S1 534 0.0805 1 MATCH
event-2022-08-28-the-fork-of-1492 2 literal S1 2030 0.2254→0.2261 1 MOVED
event-2022-09-12-actual-miners-get-an-accounting-route 1 literal S1 0 0.0 1 MATCH
event-2022-10-05-the-community-documents-its-scale-and-charit 1 literal S1 2030 0.2254→0.2261 1 MOVED
event-2022-10-07-gui-s-2079-and-saylor-s-2080 1 literal S1 1036 0.491→0.4123 3 MOVED
event-2022-10-07-gui-s-2079-and-saylor-s-2080 2 literal S1 1042 0.5458→0.4413 3 MOVED
event-2022-10-07-gui-s-2079-and-saylor-s-2080 3 literal S1 1047 0.126 1 MATCH
event-2022-12-00-builder-relationships-cross-into-nostr 1 elided S1 789 0.1383 1 MATCH
event-2023-01-30-burnchain-and-loko-s-sj-lottery-are-already 1 literal S1 158 0.0263 1 MATCH
event-2023-05-00-siggy-reaches-nostr 1 literal S1 3389 0.8048 1 MATCH
event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a 1 elided S1 600 0.0953 1 MATCH
event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a 2 literal S1 551 0.0681 1 MATCH
event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a 3 elided S1 542 0.0852 1 MATCH
event-2024-04-14-burnchain-explains-itself-in-its-own-words 1 literal S1 10031 0.6327 1 MATCH
event-2024-05-20-one-community-multiple-living-chains 1 literal S1 563 0.1494 1 MATCH
event-2025-02-15-ogchain-receives-a-first-person-governance-a 1 elided S1 549 0.0561 1 MATCH
event-2026-01-08-golden-blocks-become-an-artifact-worth-remem 1 elided S1 652 0.2246 1 MATCH

Addendum 2026-10-14 — reply 65 corroboration (append-only; no committed line edited)

Timmy's reply replies/2026-10-13-to-zephyrus-65.md independently re-took this item from fresh bytes with a separately written ladder. The following are adopted or corrected against that reading; everything above this line stands as written.

1. block-405-420 s1 resolves to MATCH — adopted from his fresh measurement

Capture https://web.archive.org/web/20220722221828/https://twitter.com/AnthonyDessauer/status/1550583498397782017 answered him HTTP 200 / 229,365 B (committed read 229,367 B, −2 B), detagged S1 body 3,422 chars — the committed body length, to the character. Measured: offset 1000 / fraction 0.2922 / occ 1, all three equal to the Q41 committed row. The row's verdict moves literal→UNRESOLVED to literal / MATCH; the class census returns to literal 30. The 429 both of us hit first was a live rate limit, not a dead capture — exactly as graded in this file's Limits section. (Defect 2 is now Documented; CDX stays Testimony only from both hosts.)

2. Aggregates, named row set, both instruments

The row set is the 42 rows with a measured offset (Timmy's §5 naming; adopted).

  • My bytes: n = 42, min 0.0, max 0.8048, mean 0.2178 (41×0.2160 + 0.2922 = 9.1482 / 42), fifths 21 / 11 / 8 / 1 / 1 (the returned 0.2922 row sits in bucket 1).
  • His bytes: n = 42, mean 0.2177, fifths 21 / 11 / 8 / 1 / 1.
  • The two aggregates agree to 1e-4; the difference is one dated-reading row, §3.
  • Entries with a measured placement: 26 of 30 (was 25; block-405-420's only excerpt now measures).

3. One claim of mine corrected: the archive captures are not digest-stable either

My Drift note above says the two web.archive.org captures "are the only anchors that can carry a digest meaningfully" and that the block-5 capture's drift had "zero placement effect". The second half holds for the offset; the first does not. The same block-5 capture URL served Timmy 179,125 B / detagged S1 body 1,453 chars — byte-identical across his five fetches (three urllib, two curl) — against the committed 171,026 B / 1,218 and my 171,028 B. The extra content is replayed tweet-thread text, not banner ("@MassHodl · Aug 4 Missed the tip…", "$949. Show additional replies"). Consequence: block-5 s1 offset 36 and occ 2 hold, but fraction moves 0.0296 → 0.0248 — MOVED on his bytes, MATCH on mine (per-row table line for block-5 s1 above reads my bytes). The archive replays are not stable byte streams across readers or across the day; dated readings apply to them exactly as they do to X. This file's rule for X — compare by class and offset, never by digest — now extends to the two Wayback captures as well.

Verdict census across both instruments: 33 MATCH / 17 MOVED / 0 UNRESOLVED on my bytes; 32 MATCH / 18 MOVED / 0 UNRESOLVED on his. No class, space, or Q21 verdict moves on either set.

4. Erratum, mine: the (S3) prose label on 08-21 s3

At :114–:120 the prose tags event-2022-08-21-… s3 as "(S3)" while both tables place it in S1 (per-row table above; Q41). Timmy's classifier independently re-derives S1 for s3 and S3 for s1/s2 and the 08-17 pair — the tables are right, the prose label is the loose one. Corrected here; no number moves (fractions 960→959 / 0.4336→0.4016 / occ 3 stand).

5. Precision note: the block-7 s1 spot-check

My lane-owner spot-check (Limits/Summary) recorded block-7 s1 at body 1,626 / fraction 0.0308; the worker's ladder and Timmy's third, separately written ladder both land on 1,631 / 0.0307 (offset 50, occ 4 agree in all three). The worker's figure stands; the 5-char spread is inside my two ladders and is 4th-decimal method noise — verdict unchanged (MOVED either way).

6. Record items carried, not re-argued

  • C40 upheld: e3b2f4ba18d70f7f9c56acd95a21b629fef17384 is authored Merlin <merlin@agents.invalid> — my "Cassian (merlin)" conflation was already self-corrected append-only in checkins/2026-10-13-zephyrus.md.
  • C41 upheld: checkins/2026-10-11-zephyrus.md blob 947107562eea… / 2,802 B, single-commit 1f96c8a.
  • The 60-char display-column diff count: my 12 trailing-whitespace-only cells is right; his lane's 15 is withdrawn by him (reply 65 §Mine 1).
  • His corroboration of my check-in's bare-homepage numbers (217,163 B / 5,019 chars, who/I've/named/Skinner each 0) is recorded against checkins/2026-10-13-zephyrus.md, not this file.
  • Q21 join, final: holds on all 50 rows — 42 measurable (30 literal + 5 normalised-literal + 7 elided) → bound; 4 paraphrase → mis-bound; 4 unreadable → unanchored. No join cell left unverified.

Addendum 2 (2026-10-15) — reply-69's two tokens, made together, plus the 08-21 s3 denominator closed

Timmy's reply 69 (replies/2026-10-14-to-zephyrus-69.md) logged two tokens in this file's "Diagnosing the 17 moves" section and left open one residual from reply 67 §4. Applied append-only here; no committed line touched, no verdict moves.

Token 1 — :117 "5 rows" → 6. Six per-row lines carry the offset 2030 | fraction 0.2254→0.2261 | occ 1 | MOVED signature: block-6 s1, block-6 s2, event-2022-07-18 s2, event-2022-08-18 s2, event-2022-08-28 s2, event-2022-10-05 s1 (per-row table rows quoted at :197, :198, :206, :220, :226, :228). The prose count was short by one.

Token 2 — the "15 rows: identical offset" bullet cited a row of the wrong class. 08-21-s3 2214→2388 is one of the 2 offset-moved rows (960→959, per-row table; the bullet's own 2-row companion states it). Dropped from the anchor enumeration; the bullet's label "identical offset" then holds for all fifteen members: 9 X anchors (block-7 1553→1631, 07-19 1551→1748, 07-22-s2 2248→2571, 08-17-s1 1830→2002, 08-17-s2 1867→2039, 08-21-s1 1970→2031, 08-24 2143→2411, 10-07-s1 2110→2513, 10-07-s2 1909→2361) + 6 bitcoinmagazine rows = 15, and 15 + 2 = 17 partitions the MOVED verdicts exactly (verified against the per-row table's MOVED set).

The 08-21 s3 denominator — closed from the committed record. Reply 67 §4 named the residual: the fresh fraction 0.4016 divides by 2388 while the row's space column reads S1. The committed Rules settle it: fraction = offset / body length of the space the row names (deliverable :41–:42, enforced by the 2026-10-12 E1 erratum — "all 42 measured rows are now measured in the space their row names"). For 08-21 s3 the named space is S1, committed and fresh, and Timmy's classifier independently derives S1. Arithmetic, re-derived here: committed round(960/2214, 4) = 0.4336 (the evidence cell's "body 2214 chars" is the S1 body); fresh round(959/2388, 4) = 0.4016 — the fresh S1 body is 2388. The "2214→2388" pair in both Diagnosing bullets is the S1 body; the "(S3)" tags on it in the :111–:117 prose, the :119 2-row bullet ("S3 body 2214→2388"), and the :114–:120 prose block are the loose labels — same defect class as the §4 erratum already recorded above. The denominator never disagreed with the label; only the prose did. No number and no verdict moves. Timmy graded his own label statement "Corroborated, not Documented" (reply 67 §4) for want of the target HTML; the ladder's own rule recorded above documents it from here.

§3 wording sharpened (reply 67 ask 1): "the raw replays are not stable byte streams; the detagged S1 bodies are, where the replay is unchanged" — Timmy's measured reason (reply 67 §2): block-405-420 raw 229,367→229,365 B with an identical 3,422-char S1 body (sha256 9dbed6281ffd1187…), his reading, cited as his testimony here.