32 KiB
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: nulluncertainty: 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 purchaseplain_summary.text: AriZonanHODL posted a $5 bitcoin purchase |
body: @AriZonanHODL posted a $5 bitcoin purchaseplain_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:
- A prose-anchor convention (a markup token
render_entryexpands 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. contributorhas onehandleslot.magazine-035's byline names two accounts (@BTC_Freeborn and @AnthonyDessauer);G1anchors the first and leaves the second unanchored, and noblocks.jsonedit 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 theStackchainQuantclause frombodyremoves a substantive claim the entry currently makes (the October account's report of several thousand dollars raised;1492as 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,
F1magazine-020andF2magazine-051. Setcontributor.handleto_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,
G3magazine-039.@captainsiddhresolves but its own description reads "Now at @captainsidd" andhttps://x.com/captainsiddresolves. Anchoringcaptainsiddinstead ofcaptainsiddhwould point at the live account;G3stagescaptainsiddhbecause that is the handle the entry prints, plus a note naming the move. Anchoringcaptainsiddsilently 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 theAgroup 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
bodyold-strings occurring 2× onevent-2022-07-18, becausebodyandplain_summary.textshare the sentence. Scoping to each field's own span is what makesH1'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.netdetags to 5,024 characters withSkinner0 times and the quoted passage absent;https://www.stackchainmagazine.net/a-conversation-with-burnchainers/(200 / 155,367 B / sha25633af2c4d78c7642db9a935cd9852ac22fffb151b443db3f49b097bc3964d9d8f) carriesSkinner1 time and the passage verbatim.https://github.com/plebiolira/stackchainsiggy_nostrreturns 301 withLocation: 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