Files
troupe-standup/docs/q13-fix-pack.md
T

32 KiB
Raw Blame History

The Q13 fix pack — every verified live-page fix, staged as one reviewable approval

Run by Merlin, 2026-10-10, from this host. Deliverable for queue item Q24. Nothing in this run applied a fix, rebuilt the ledger, published a page, touched a live page, edited another party's file, or executed anything in decisions/. The only writes were to this file and to the staged script.

Result: 25 clauses — 1 DECIDED (with a conflict that blocks publication) and 24 undecided-for-Alexander. Combined blast radius, measured by a real scratch build: 20 of 125 emitted files change if all 25 were applied. Every clause is one explicit old → new delta against /root/stackchain-legends-build/blocks.json, located by its entry's unique title and scoped to a single field's own JSON span, so a string shared by body and plain_summary.text cannot be double-edited.

1. The build chain, measured end to end before anything was staged

blocks.json is the build source; build_blocks.py emits the pages; the live site serves a copy of that output. All three legs were checked on this run, not assumed:

$ sha256sum /root/stackchain-legends-build/blocks.json
63c9cee6103a6824c90c71440fa983d2f5592e380f9c3fb40f7ad366ae41723d  blocks.json          (278,459 B)
$ sha256sum /root/stackchain-legends-build/build_blocks.py
97fedb5dd5e85d2b10071e8e4904b3a9b1573072149e722fbece93eaf0774672  build_blocks.py       (22,256 B)

$ python3 build_blocks.py          # run on a scratch COPY at /root/crucible/q24/build/
Built 123 pages from 121 entries (121 cleared, 0 research-only)

$ diff -rq /root/crucible/q24/build/site-ledger /root/stackchain-legends-build/site-ledger
(no output — 125 files each, byte-identical)

The build tree's own emitted output is therefore current with its source, which is what makes a blast-radius measurement on a scratch build meaningful. Then the live pages:

Every page fetched: HTTP 200 and byte-identical to the freshly emitted file. That is the 20 entries this pack touches plus 5 controls (event-2022-07-18-anthony-enters-at-16-names-the-hill-at-24, magazine-036/038/053/068) — 25 pages, cmp/sha256, 2026-10-10 ~18:5x UTC. The ledger index is unchanged at 200 / 34,488 B / sha256 4f764ef4dfb9c08b2654ff0783550d20ad1bb7a31cb0c32070974a5fe451557e — the same figure every earlier run today recorded. Full per-page list in /root/crucible/q24/LIVE-READS.txt.

So the chain is blocks.json → build_blocks.py → site-ledger/<slug>/index.html → the live page, verified byte-for-byte at all four legs. Documented.

2. Shared strings, quoted once

UNC_MAG — the uncertainty value carried by all 91 magazine entries, verbatim:

Archive summary of a published article, not the article itself. Quotes are short verbatim excerpts; read the original for full context.

Three entries have their own uncertainty text and are quoted in full in their rows. magazine-091's is UNC_MAG.

3. The clause table

Fixed column order, as the item specifies: entry | live page | panel | current string | proposed string | authority (artifact + clock) | decided / undecided | staged file. \| inside a cell is an escaped pipe.

entry live page panel current string proposed string authority (artifact + clock) decided / undecided staged file
A1 block-25 https://alexanderwhitestone.com/stackchain/block-25/ (200 / 3,582 B / sha256 b0bdc88b6fe2…) From the sources "https://www.stackchainmagazine.net" "https://www.stackchainmagazine.net/a-conversation-with-burnchainers/" recoveries/evidence-tier-audit.md §6.1 (2026-10-10 ~09:3xZ) + recoveries/excerpt-binding-audit.md finding 1 (2026-10-10T13:26:16Z) undecided-for-Alexander
A2 block-88 https://alexanderwhitestone.com/stackchain/block-88/ (200 / 3,315 B / sha256 de910b3d698c…) From the sources "https://www.stackchainmagazine.net" "https://www.stackchainmagazine.net/a-conversation-with-burnchainers/" recoveries/evidence-tier-audit.md §6.1 (2026-10-10 ~09:3xZ) + recoveries/excerpt-binding-audit.md finding 1 (2026-10-10T13:26:16Z) undecided-for-Alexander
A3 block-89 https://alexanderwhitestone.com/stackchain/block-89/ (200 / 3,181 B / sha256 3534dce9ea99…) From the sources "https://www.stackchainmagazine.net" "https://www.stackchainmagazine.net/a-conversation-with-burnchainers/" recoveries/evidence-tier-audit.md §6.1 (2026-10-10 ~09:3xZ) + recoveries/excerpt-binding-audit.md finding 1 (2026-10-10T13:26:16Z) undecided-for-Alexander
A4 block-90 https://alexanderwhitestone.com/stackchain/block-90/ (200 / 3,408 B / sha256 2575fa6e52e6…) From the sources "https://www.stackchainmagazine.net" "https://www.stackchainmagazine.net/a-conversation-with-burnchainers/" recoveries/evidence-tier-audit.md §6.1 (2026-10-10 ~09:3xZ) + recoveries/excerpt-binding-audit.md finding 1 (2026-10-10T13:26:16Z) undecided-for-Alexander
B1 block-25 https://alexanderwhitestone.com/stackchain/block-25/ (200 / 3,582 B / sha256 b0bdc88b6fe2…) Provenance quoted below quoted above WORK-QUEUE.md §Q21 verification addendum, control plane, 2026-10-10 (offsets quoted there) undecided-for-Alexander
B2 block-88 https://alexanderwhitestone.com/stackchain/block-88/ (200 / 3,315 B / sha256 de910b3d698c…) Provenance quoted below quoted above WORK-QUEUE.md §Q21 verification addendum, control plane, 2026-10-10 (offsets quoted there) undecided-for-Alexander
B3 block-89 https://alexanderwhitestone.com/stackchain/block-89/ (200 / 3,181 B / sha256 3534dce9ea99…) Provenance quoted below quoted above WORK-QUEUE.md §Q21 verification addendum, control plane, 2026-10-10 (offsets quoted there) undecided-for-Alexander
B4 block-90 https://alexanderwhitestone.com/stackchain/block-90/ (200 / 3,408 B / sha256 2575fa6e52e6…) Provenance quoted below quoted above WORK-QUEUE.md §Q21 verification addendum, control plane, 2026-10-10 (offsets quoted there) undecided-for-Alexander
C1 event-2023-05-00-siggy-reaches-nostr https://alexanderwhitestone.com/stackchain/event-2023-05-00-siggy-reaches-nostr/ (200 / 3,393 B / sha256 b7fb05fee1b7…) From the sources "https://github.com/plebiolira/stackchainsiggy_nostr" "https://github.com/flav1000/stackchainsiggy_nostr" recoveries/excerpt-binding-audit.md fetch note (301 observed) + recoveries/summary-fidelity-nonmagazine.md ev-017 row 1 + recoveries/ledger-audit-pass2.md row 19; 301 re-observed this run undecided-for-Alexander
D1 magazine-091 https://alexanderwhitestone.com/stackchain/magazine-091/ (200 / 4,559 B / sha256 8b00bbb09a13…) What happened + Uncertainty body: Comparing Strategy, Twenty One, Nakamoto, Metaplanet, Coinsilium and Smarter Web returns and drawdowns against Bitcoin, they find none consistently outperform,
uncertainty: Archive summary of a published article, not the article itself. Quotes are short verbatim excerpts; read the original for full context.
body: Comparing Twenty One, Nakamoto, Metaplanet, Coinsilium and Smarter Web against Bitcoin — with earlier pioneers such as Strategy set aside as not a fair comparison — they find none consistently outperform,
uncertainty: Archive summary of a published article, not the article itself. Quotes are short verbatim excerpts; read the original for full context. Correction 2026-09-26: this summary previously listed Strategy among the firms compared. The article sets Strategy aside (“not a fair comp for these newcomers”) and excludes it from the comparison; the listing was the archive’s error, not the article’s. Strategy has been removed from the compared set.
decisions/2026-09-26.md item 13, approved 2026-09-26T14:51:11.019Z; staged record /root/stackchain-legends-build/EDITS/2026-09-26-magazine-091-correction.md DECIDED (approved) — decided note conflicts with proposed_action; see §5
E1 event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon https://alexanderwhitestone.com/stackchain/event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon/ (200 / 4,397 B / sha256 3b3002d4d5fc…) Uncertainty Event status as recorded by the history research: sourced. The date basis is the reported event date, not necessarily a verified post timestamp. Event status as recorded by the history research: sourced. The date basis is the reported event date, not necessarily a verified post timestamp. + Note 2026-10-10: the named warrant “StackchainQuant” returns HTTP 404 at https://x.com/StackchainQuant (X: “User Profile Not Found”). The report it attributes is separately cited and live; the account itself is unreachable as of this date. recoveries/named-source-liveness-unlinked.md finding 1 (2026-10-10T17:49:31Z) + recoveries/named-source-liveness.md row 6 (2026-10-10T15:39:39Z) undecided-for-Alexander
E2 event-2022-08-28-the-fork-of-1492 https://alexanderwhitestone.com/stackchain/event-2022-08-28-the-fork-of-1492/ (200 / 4,380 B / sha256 a55da02af6a3…) Uncertainty Event status as recorded by the history research: event corroborated; tactics from participant retrospective. The date basis is the reported event date, not necessarily a verified post timestamp. Event status as recorded by the history research: event corroborated; tactics from participant retrospective. The date basis is the reported event date, not necessarily a verified post timestamp. + Note 2026-10-10: the named warrant “StackchainQuant” returns HTTP 404 at https://x.com/StackchainQuant (X: “User Profile Not Found”). The report it attributes is separately cited and live; the account itself is unreachable as of this date. recoveries/named-source-liveness-unlinked.md finding 1 (2026-10-10T17:49:31Z) + recoveries/named-source-liveness.md row 6 (2026-10-10T15:39:39Z) undecided-for-Alexander
E3 event-2022-10-05-the-community-documents-its-scale-and-charit https://alexanderwhitestone.com/stackchain/event-2022-10-05-the-community-documents-its-scale-and-charit/ (200 / 3,929 B / sha256 a1e2eb193c83…) Uncertainty Event status as recorded by the history research: sourced. The date basis is the reported event date, not necessarily a verified post timestamp. Event status as recorded by the history research: sourced. The date basis is the reported event date, not necessarily a verified post timestamp. + Note 2026-10-10: the named warrant “StackchainQuant” returns HTTP 404 at https://x.com/StackchainQuant (X: “User Profile Not Found”). The report it attributes is separately cited and live; the account itself is unreachable as of this date. recoveries/named-source-liveness-unlinked.md finding 1 (2026-10-10T17:49:31Z) + recoveries/named-source-liveness.md row 6 (2026-10-10T15:39:39Z) undecided-for-Alexander
F1 magazine-020 https://alexanderwhitestone.com/stackchain/magazine-020/ (200 / 4,123 B / sha256 88ae01d3aba8…) Uncertainty UNC_MAG (see §2) UNC_MAG (see §2) + Note 2026-10-10: the byline handle @_overflow__ returns HTTP 404 at https://x.com/_overflow__ (X: “User Profile Not Found”). The name is retained as printed and is not currently linkable. recoveries/named-source-liveness.md row 1 (2026-10-10T15:39:17Z) undecided-for-Alexander
F2 magazine-051 https://alexanderwhitestone.com/stackchain/magazine-051/ (200 / 4,529 B / sha256 2e3065c6c7a7…) Uncertainty UNC_MAG (see §2) UNC_MAG (see §2) + Note 2026-10-10: the byline handle @humblebitcoiner returns HTTP 404 at https://x.com/humblebitcoiner (X: “User Profile Not Found”). The name is retained as printed and is not currently linkable. recoveries/named-source-liveness.md row 2 (2026-10-10T15:39:33Z) undecided-for-Alexander
G1 magazine-035 https://alexanderwhitestone.com/stackchain/magazine-035/ (200 / 4,543 B / sha256 871638b8abb5…) Contributor contributor.display_name: "@BTC_Freeborn and @AnthonyDessauer"
contributor.handle: null
contributor.display_name: "BTC_Freeborn and Anthony Dessauer"
contributor.handle: "BTC_Freeborn"
recoveries/named-source-liveness.md row 3 (2026-10-10T15:39:21Z) undecided-for-Alexander
G2 magazine-056 https://alexanderwhitestone.com/stackchain/magazine-056/ (200 / 4,346 B / sha256 33b55f8f61fe…) Contributor contributor.display_name: "Red Tail Hawk (@RedTailHawk1923)"
contributor.handle: null
contributor.display_name: "Red Tail Hawk"
contributor.handle: "RedTailHawk1923"
recoveries/named-source-liveness.md row 4 (2026-10-10T15:39:33Z) undecided-for-Alexander
G3 magazine-039 https://alexanderwhitestone.com/stackchain/magazine-039/ (200 / 4,272 B / sha256 65e07c4e638a…) Contributor + Uncertainty contributor.handle: null
uncertainty: Archive summary of a published article, not the article itself. Quotes are short verbatim excerpts; read the original for full context.
contributor.handle: "captainsiddh"
uncertainty: Archive summary of a published article, not the article itself. Quotes are short verbatim excerpts; read the original for full context. Note 2026-10-10: the handle @captainsiddh resolves, but its own profile description reads “Now at @captainsidd” and https://x.com/captainsidd resolves; the byline above is one handle behind the account’s current home.
recoveries/named-source-liveness.md row 5 (2026-10-10T15:39:22Z) undecided-for-Alexander
H1 event-2022-07-18-the-5-invitation-becomes-a-chain https://alexanderwhitestone.com/stackchain/event-2022-07-18-the-5-invitation-becomes-a-chain/ (200 / 4,281 B / sha256 f208a26cd154…) What happened + In plain English body: AriZonanHODL posted a $5 bitcoin purchase
plain_summary.text: AriZonanHODL posted a $5 bitcoin purchase
body: @AriZonanHODL posted a $5 bitcoin purchase
plain_summary.text: @AriZonanHODL posted a $5 bitcoin purchase
recoveries/named-source-liveness-unlinked.md finding 2 (2026-10-10T17:49:31Z); https://x.com/AriZonanHODL 200 / 130,908 B undecided-for-Alexander
H2 event-2022-07-18-the-5-invitation-becomes-a-chain https://alexanderwhitestone.com/stackchain/event-2022-07-18-the-5-invitation-becomes-a-chain/ (200 / 4,281 B / sha256 f208a26cd154…) What happened and Satskeeper with $7 and @satskeeper_ with $7 WORK-QUEUE.md §Q24 addendum 2026-10-10 18:13Z (Satskeeper resolves as @satskeeper_, already linked on block-7) undecided-for-Alexander
H3 magazine-002 https://alexanderwhitestone.com/stackchain/magazine-002/ (200 / 4,433 B / sha256 13a31d232159…) What happened ArizonanHODL's $5 @AriZonanHODL's $5 WORK-QUEUE.md §Q23 verification correction (rule 3b yields 8 bare-and-unlinked mentions across 6 entries) — CONDITIONAL on step 5’s filter undecided-for-Alexander (conditional row)
H4 magazine-005 https://alexanderwhitestone.com/stackchain/magazine-005/ (200 / 4,287 B / sha256 5681dc960dfe…) What happened ArizonanHodl's July 18, 2022 tweet @AriZonanHODL's July 18, 2022 tweet WORK-QUEUE.md §Q23 verification correction (rule 3b) — CONDITIONAL on step 5’s filter undecided-for-Alexander (conditional row)
I1 magazine-026 https://alexanderwhitestone.com/stackchain/magazine-026/ (200 / 4,554 B / sha256 67f141e2b1c1…) Contributor null "a_koby" recoveries/evidence-tier-audit.md §6.3 (2026-10-10) — OUTSIDE the Q24 population rule, which names findings 1–2; included and flagged undecided-for-Alexander
I2 magazine-070 https://alexanderwhitestone.com/stackchain/magazine-070/ (200 / 4,599 B / sha256 6227e199522f…) Contributor contributor.display_name: "@MidyReyes"
contributor.handle: null
contributor.display_name: "MidyReyes"
contributor.handle: "MidyReyes"
WORK-QUEUE.md §Q23 verification correction (rule 3a admits MidyReyes on magazine-070) — OUTSIDE the Q24 population rule; included and flagged undecided-for-Alexander
J1 magazine-024 https://alexanderwhitestone.com/stackchain/magazine-024/ (200 / 4,150 B / sha256 076df5d248de…) Uncertainty UNC_MAG (see §2) UNC_MAG (see §2) + Note 2026-10-10: the tipping address bitcoinbekka@getalby.com resolves at its canonical LNURL-pay endpoint https://getalby.com/.well-known/lnurlp/bitcoinbekka (HTTP 200); the vanity web path https://getalby.com/bitcoinbekka returns 404. It is not linked here because the ledger build emits anchors only for contributor handles, body sources and excerpt URLs. recoveries/named-source-liveness-unlinked.md finding 3 (2026-10-10T17:49:31Z) undecided-for-Alexander

4. Counts

state count
DECIDED (approved, publication blocked by its own decided note) 1 — D1 magazine-091
undecided-for-Alexander 23
undecided-for-Alexander (conditional row — enters only if step 5's named as a source of record filter is not written into Q23's header) 2 — H3 magazine-002, H4 magazine-005
total clauses 25 (31 deltas)

By remedy shape: 6 uncertainty-append, 5 excerpt-url, 5 contributor-anchor, 4 direction-word, 4 prose-handle-form, 1 body-clause. (G3 carries an uncertainty note alongside its contributor.handle delta, which is why its panel reads Contributor + Uncertainty.)

5. Reconciliation against decisions/ — one conflict, and it blocks the one decided clause

decisions/2026-09-26.md item 13 (magazine-091) is approved, decided_at 2026-09-26T14:51:11.019Z, relayed by 2eb50b7. Its two halves disagree:

  • proposed_action: "Approve: publish the corrected wording to the live magazine-091 page."
  • decided note: "Do we even have authority to fix the publication? Add our note and escalate it to the author and mag publisher."

Per the item's own rule the decided note controls, so D1 is staged and not published: applying it would put corrected wording on a live third-party-summarised page while Alexander's note asks for a courtesy note and an escalation instead. This is the same conflict Q13's record already carries; it is surfaced here rather than resolved. This is the one clause in the pack that a decision could release immediately, and the decision that would release it is the one currently holding it.

decisions/2026-10-06-human-gates.md was read and bears on nothing in this pack (repository visibility, G2i skip). decisions/2026-10-07.md and 2026-10-07-cassian-write-grant.md are cassian's write grant and bear on nothing here. Nothing in decisions/ was executed.

The pre-existing staged clause was re-checked, not re-staged: the build tree's EDITS/apply_editorial_fix_091.py in check-only mode still passes against today's blocks.json (entries: 121, note carried by entries: [91], body now reads "Comparing Twenty One, …", CHECK ONLY — blocks.json not written). D1 in this pack is that same delta restated in the pack's own format, not a second staging.

6. The structural finding: the ledger build has no anchor mechanism for the prose panels

build_blocks.py emits an <a href> in exactly three places — contributor.handle (render_entry line 310), body_source_url (line 323) and excerpts[].url (line 333). body, plain_summary.text, body_provenance and uncertainty are emitted through esc() with no anchor support at all.

Consequence for this pack: of the clauses the four closed audits routed here as "anchor it", only the six contributor-anchor rows can be staged as a link. Every name printed inside body or plain_summary — StackchainQuant on three entries, AriZonanHODL on four, Satskeeper, the Lightning address — cannot be anchored by any blocks.json field. Those are staged in the only form the build supports today: a dated uncertainty append, or a wording change that makes the handle form explicit.

Two things follow, both for Alexander and neither for this run:

  1. A prose-anchor convention (a markup token render_entry expands into a link) would convert roughly ten of these clauses from a disclosure into a link. It is a build change, so it is outside this item's scope and outside a wizard's initiative.
  2. contributor has one handle slot. magazine-035's byline names two accounts (@BTC_Freeborn and @AnthonyDessauer); G1 anchors the first and leaves the second unanchored, and no blocks.json edit can do better without a schema change.

7. Rows deliberately NOT in the pack, with the reason

candidate source that raised it why it is not a row
magazine-036, magazine-038, magazine-053, magazine-068 — the bare word Saylor Q23's verification correction: rule 3b yields 8 bare-and-unlinked mentions across 6 entries, and names these four Over-match. The token fired only because https://x.com/saylor/status/1578479561750110208 is an excerpt URL on event-2022-10-07-gui-s-2079-and-saylor-s-2080. In the four pages the word is "Saylor Academy's free Bitcoin for Everyone course" (magazine-036) and "Michael Saylor and Nayib Bukele" / "Michael Saylor" (magazine-038, 053, 068) — a person and an organisation named in the narrative, not a citation of the X account. No dead source was missed; the detector cannot tell the two apart.
block-5 — the bare Wayback URL in Provenance prose Q22/Q23 both graded it resolve and both said no action It resolves (200, fetched with -L, 0 redirects) and the prose already discloses the capture date. Anchoring it would need the same missing prose mechanism. No defect.
the x.com/i/… "nine-segment" addition Q24's own step 5, as first drafted Withdrawn by the pipe in the 2026-10-10 18:13Z addendum: no <a href> on any page the index links points at x.com/i/…. Adds nothing.
event-2022-07-18-anthony-enters-at-16-names-the-hill-at-24 fetched as a control No clause. StackchainQuant is not named on it; its named-source state is Q12's event-2022-08-18 row.

8. Alternative remedy shapes, named but not staged

Each of these is a real, explicit delta on the same entry. They are recorded rather than staged so that Alexander's choice is between two concrete texts, not between a text and a description.

  • Strike instead of mark, E1–E3. Deleting the StackchainQuant clause from body removes a substantive claim the entry currently makes (the October account's report of several thousand dollars raised; 1492 as a notable fork; the ~400-participant / $1.5 million figures). The report survives through the separately cited Bitcoin Magazine anchor; the attribution does not. Marking keeps both and discloses the dead warrant.
  • Anchor instead of mark, F1 magazine-020 and F2 magazine-051. Set contributor.handle to _overflow__ / humblebitcoiner. Both handles return 404, so this gives the reader a link that opens X's "User Profile Not Found" page. Honest about the state, worse than the note.
  • Handle the move rather than only the anchor, G3 magazine-039. @captainsiddh resolves but its own description reads "Now at @captainsidd" and https://x.com/captainsidd resolves. Anchoring captainsidd instead of captainsiddh would point at the live account; G3 stages captainsiddh because that is the handle the entry prints, plus a note naming the move. Anchoring captainsidd silently changes what the byline says.

9. Staging record

Staged file: docs/q13-fix-pack/apply_fix_pack.py — 25,361 B, sha256 2d39df3cdfe466b33e45b19b8741f43b536d93e7ccde90f871e50e5cd6ffd1cd. One script, 25 clause ids, because 25 near-identical scripts would put 25 copies of the same scoping logic in front of a reviewer instead of one; the clause table is embedded in the file as JSON and --list prints it.

Committed unrun. Every clause was executed in check mode during this run — which verifies the locator, the field span, and that each old occurs exactly once inside it — and not one clause was applied to the build tree's blocks.json. Check output for all 25 clauses, exit codes included, is in /root/crucible/q24/CHECK-RUN.txt; the scratch applications used to measure blast radius ran against copies under /root/crucible/q24/blast/.

Before hash (all clauses): blocks.json sha256 63c9cee6103a6824c90c71440fa983d2f5592e380f9c3fb40f7ad366ae41723d, 278,459 B, read-only this run.

Revert command, per clause (printed by --apply; identical shape for all 25):

python3 docs/q13-fix-pack/apply_fix_pack.py --apply <id>     # forward
# revert: restore blocks.json from a pre-apply backup, or reverse the printed deltas:
#     <field>: <new> -> <old>

Guard against an unapproved apply: a clause marked undecided-for-Alexander refuses to apply unless both --force and --decision <artifact path> are passed, so the approval has to be named on the command line. D1 applies on its decision record alone — see §5 for why that is still blocked.

Blast radius, per clause: measured by applying the clause to a scratch copy, rebuilding, and diffing the emitted tree against the pristine one. 25 of 25 clauses change exactly 1 emitted file — the entry's own index.html. No clause touches blocks/index.html, sitemap.xml or ledger.css. Combined, all 25 clauses change 20 of 125 emitted files (block-25/88/89/90, event-2022-07-18-the-5-invitation- becomes-a-chain, event-2022-08-18…hodlon, event-2022-08-28-the-fork-of-1492, event-2022-10-05…charit, event-2023-05-00-siggy-reaches-nostr, magazine-002/005/020/024/026/035/ 039/051/056/070/091). Per-clause and combined tables: /root/crucible/q24/BLAST-RADIUS.txt, /root/crucible/q24/BLAST-ALL.txt.

Spot checks on the applied scratch pages: block-25 carries the a-conversation-with-burnchainers permalink and no longer carries the bare site root as an anchor, and reads "quoted above"; magazine-091 no longer contains "Comparing Strategy", contains "Comparing Twenty One", and carries the correction note; magazine-039 carries href="https://x.com/captainsiddh" and the move note; magazine-070 carries href="https://x.com/MidyReyes".

10. Method and limits

  • Every population was re-derived, none copied. Entry titles are unique across all 121 entries (checked), which is what makes the title locator safe. The bare site root appears as an excerpt URL exactly 4 times in the whole file — the four block-* rows — so the A group is a complete census of that defect, not a sample.
  • Field-scoped, not region-scoped. My first verifier searched each entry's whole JSON region and reported body old-strings occurring 2× on event-2022-07-18, because body and plain_summary.text share the sentence. Scoping to each field's own span is what makes H1's two deltas land in two places and nothing else. Logged as a defect of mine, found and fixed before staging.
  • Two defects in the generated script, logged first. Its first version (a) parsed arguments so that --decision's value was read as the clause id — every apply failed with the usage message; and (b) spliced region-relative offsets into the full file text, producing invalid JSON (json.decoder.JSONDecodeError). Both were caught by the blast-radius run, which is the only step that would have caught them, and both were fixed before any count was published.
  • The proposed new values were validated, not assumed. https://www.stackchainmagazine.net detags to 5,024 characters with Skinner 0 times and the quoted passage absent; https://www.stackchainmagazine.net/a-conversation-with-burnchainers/ (200 / 155,367 B / sha256 33af2c4d78c7642db9a935cd9852ac22fffb151b443db3f49b097bc3964d9d8f) carries Skinner 1 time and the passage verbatim. https://github.com/plebiolira/stackchainsiggy_nostr returns 301 with Location: https://github.com/flav1000/stackchainsiggy_nostr; the flav1000 URL returns 200 / 279,677 B. In /root/crucible/q24/TARGET-READS.txt.
  • Nothing was re-tested. No row re-opens a claim Q12/Q21/Q22/Q23 settled; each cites the artifact and clock that settled it. Where this run fetched a target it was to validate a proposed new value, which the item's own step 2 requires.
  • Dated readings. Every byte count and sha256 is what this host read at the printed clock. X pages carry a per-request CSP nonce, and the site root is byte-stable at 215,8xx B but has carried two digests today; the clock is the evidence, the hash pins this run.
  • Not covered: whether the proposed wording reads well in the archive's voice (that is an editorial call), whether any unverified entry outside these 25 carries the same defect class, and the 96 entries this pack does not touch.

11. Evidence files, all on this host

file what it holds
/root/crucible/q24/LIVE-READS.txt index + 25 entry pages: HTTP status, bytes, full sha256, and same-as-emitted
/root/crucible/q24/TARGET-READS.txt the four URLs the proposed values point at, with term counts and the verbatim test
/root/crucible/q24/CHECK-RUN.txt apply_fix_pack.py <id> in check mode, all 25 clauses, with exit codes
/root/crucible/q24/BLAST-RADIUS.txt per-clause emitted-file radius with before/after sha256 prefixes
/root/crucible/q24/BLAST-ALL.txt the combined 20-of-125 radius with before/after sha256
/root/crucible/q24/CONTROL-091.txt the pre-existing staged 091 script re-run in check mode
/root/crucible/q24/mkclauses.py the clause table and its field-span verifier (re-runnable)
/root/crucible/q24/gen_apply.py the generator for the staged script (re-runnable)

— Merlin, 2026-10-10