diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 621e3bb..660bd94 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -5625,13 +5625,55 @@ join closed. Scratch tree `/root/crucible/q41/`; scripts and logs under `out/`. (721,733 at 11:59Z), service `activating / auto-restart`, and syslog growing 37,769 B over a 20 s sample ≈ 1,888 B/s ≈ 163 MB/day. **My own 500–600 MB/day figure stands corrected at 143.4 MB/day** (commit `eec89dc`); the fresh sample is the same order on a noisy window. -- **Visibility (Q14) and decisions, re-checked:** API `private: false` / `internal: false`, anonymous repo page +- **Visibility (Q14) and decisions, re-checked:** API `private: false`, `internal: false`, anonymous repo page 200, `inbox/seed-2026-09-26.json` raw 200 (`c05e6a0666d8…`, unchanged), 404 control 404. `decisions/2026-09-26.md` (`eb34b4b4d781…`) and `decisions/2026-10-07.md` (`f126eba75613…`) unchanged, so no new decided note needs reconciling against its `proposed_action`; item 13's decided note still controls over its proposed action (escalate to author and publisher, do not edit the live page). The public-with-pending-material mismatch stays a §4 gate for Alexander. Nothing from `inbox/` is quoted here or in reply 55. +**Erratum run, 2026-10-12T16:06Z (Merlin) — the deliverable is amended and every figure re-verified. The item +stays DONE; nothing is re-opened.** The file is now **38,817 B / sha256 +`815222254935f2f7cc449e3fd3e619f32c915d79571df64643c3746cca3edf29`**; the erratum block sits at the foot, +the corrections trail is visible above it, and no fetch was re-run (placement only). The pipe returned one +correction (reply 24, `e7f2e3f`) and three precision items (reply 24; refined by reply 25, `6cb72d4`, which +corrected the correction's own count from 42-of-42 to 30-of-42 — the `literal` class): +- **E1 applied.** `s3e.py:81` returned `b0.find(ex)` — an S0 offset under the `S1` label, so `fraction` was a + mixed-space ratio. Measured on the delivered `out/rows.json`: the 30 `literal` rows printed the S0 offset + **30/30** and the S1 offset **24/30**. Per the reply's instruction (`o1 = b1.find(s1(ex))`, keep the label), + all 42 measured rows are now measured in the space their row names: **6 rows move at 4 dp** + (`…-op-backstack…` s1 603→605 / 0.3888→0.3901; `…-skinner-s-405-420…` s2 1016→1018 / 0.452→0.4528; + `…-block-1414…` s3 958→960 / 0.4327→0.4336; `…-fork-resolution-offer…` s1 1027→1029 / 0.4792→0.4802; + `…-gui-s-2079…` s1 1034→1036 / 0.49→0.491 and s2 1040→1042 / 0.5448→0.5458) and the class mean moves + **0.229448 → 0.229590 (0.2294 → 0.2296)**. The magazine contrast (0.4735) is untouched; the fifths split is + unchanged at 21 / 10 / 9 / 1 / 1 with its bucketing rule (`min(int(f*5),4)`) now printed beside the row. +- **E2 (mine, found while applying E1, logged first).** `s3e.py:105` counted the **raw** excerpt against the + **S1** body, so `literal` rows whose S1 normalisation changes the string counted 0 and the `elided` rows + counted a whole `...`-joined excerpt that never occurs whole. **16 occurrence counts were under-counts**; + the multi-occurrence aggregate moves **8 → 9** (the new row is `…-op-backstack…` seq 1, occ 3). No fraction + depends on the count. +- **E3 (label, per the pipe's own C45).** "Source class of the 46 anchored rows: … no anchor 4 …" summed to 50 + under a 46-row label; re-labelled — the five anchored classes sum to 46, the 4 no-anchor rows are the + remainder. No arithmetic moved. +- **E4 (logged, per the ask).** The **25 → 35** anchor revision, previously unlogged: Q20's fetch note prints + "the magazine 91 plus the 25 the non-magazine entries cite" (= 116, Q21's census figure) while this file prints + 35. Recomputed from `out/rows.json` and Q20's rows file: Q41 35, magazine 91, intersection **10**, unique to + Q41 **25**, union **116**. The 25 was the unique count; the 35 is the total. The files reconcile to the digit; + there was never a gap. +- **Unchanged and re-verified from the patched file:** 50 data rows / 0 malformed; class counts 30 / 5 / 7 / 4 / 4 + summing to 50; measured 42 over 26 entries; Q21 join 42 `bound` / 4 `mis-bound` / 4 `unanchored`; min 0.0, + max 0.8048; widest spreads 0.4628 / 0.4198 / 0.3268 / 0.2982; highest entry means 0.8048 / 0.6327 / 0.5532 / + 0.4802; lowest 0.0 / 0.0 / 0.0263 / 0.0296 — all recomputed by `verify_erratum.py` from the markdown itself, + and 50/50 rows agree cell-for-cell with the S1-measured set (`out/erratum-s1.json`). +- **Graded:** E1–E5 **Documented** by direct re-measurement from this host; scripts + `fix_s1_offsets.py`, `apply_erratum.py`, `erratum_census.py`, `erratum_anchors.py`, `verify_erratum.py`, + `verify_prose.py` and logs `out/erratum-s1.out`, `out/erratum-report.json`, `out/apply-erratum.out`, + `out/erratum-census.out`, `out/erratum-anchors.out`, `out/verify-erratum.out`, `out/verify-prose.out` in + `/root/crucible/q41/`. Nothing was deployed; `decisions/` and `inbox/` untouched. +- **Q7, measured:** Q42 (the non-magazine second pass) stays open and offered to zephyrus; Q37 is the pipe's; + Q9/Q13/Q19 and the Helm §4 adoption `cp` stay gated on Alexander. No new item opened — the unclaimed + executable set is not empty. + **Q20/Zephyrus: the lane was egress-blocked, not silent — and my own roster was false. 2026-10-12 13:24Z (control plane).** - **The lane was never silent.** Zephyrus pushed three commits by `zephyrus-sparkborn@noreply.127.0.0.1` — `9dd6ae1` diff --git a/checkins/2026-10-12-merlin.md b/checkins/2026-10-12-merlin.md index 5b73236..f6bb621 100644 --- a/checkins/2026-10-12-merlin.md +++ b/checkins/2026-10-12-merlin.md @@ -817,3 +817,114 @@ content per Q36's v1.3 rule. — Merlin + +--- + +## Run 8 — Q41 erratum: the literal rows' offsets were measured in the wrong space + +### Did + +Took the one item owed to me by Run 7: the pipe's verification of Q41 (reply 24, `e7f2e3f`, +and reply 25, `6cb72d4`, which corrected the correction's own count from 42-of-42 to +30-of-42) returned one defect and three precision items against +`recoveries/excerpt-placement-nonmagazine.md`. All four are applied and every figure +re-verified from the patched file. The item stays DONE; nothing is re-opened. + +- **E1 — the returned correction, applied.** `s3e.py:81` returned `b0.find(ex)` — an + **S0-space offset** — paired with the S1 body, the `S1` label and + `round(off / len(b1), 4)`, so the printed `fraction` was a mixed-space ratio (S0 offset + over S1 body length). Measured on the delivered `out/rows.json` before the fix: the 30 + `literal` rows printed the S0 offset in **30 of 30** cases and the S1 offset in **24 of + 30**. Fixed per the reply's instruction (`o1 = b1.find(s1(ex))`, keep the `S1` label, do + not relabel `S0`); all 42 measured rows now measure in the space their row names. + **6 rows move at 4 dp** — `event-2022-07-19-op-backstack-experimentation-almost-immediat` + seq 1 (603→605, 0.3888→0.3901), `event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi` + seq 2 (1016→1018, 0.452→0.4528), `event-2022-08-21-block-1414-becomes-the-first-million-target` + seq 3 (958→960, 0.4327→0.4336), `event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14` + seq 1 (1027→1029, 0.4792→0.4802), `event-2022-10-07-gui-s-2079-and-saylor-s-2080` seq 1 + (1034→1036, 0.49→0.491) and seq 2 (1040→1042, 0.5448→0.5458) — and the class mean moves + **0.229448 → 0.229590 (0.2294 → 0.2296)**. The magazine contrast (0.4735) is untouched; + the fifths split is unchanged at 21 / 10 / 9 / 1 / 1. +- **E2 — mine, found while applying E1, logged first.** `s3e.py:105` counted the **raw** + excerpt against the **S1** body: a `literal` row whose S1 normalisation changes the + string (curly quotes, NFKC) counted 0 occurrences, and the `elided` rows counted their + whole `...`-joined excerpt, which never occurs whole. **16 occurrence counts were + under-counts** (all 0 → 1/2/3/4); the multi-occurrence aggregate moves **8 → 9** (the new + row is `…-op-backstack…` seq 1, occ 3). No fraction depends on the count. +- **E3 — the anchor-census label, fixed per the pipe's own C45.** "Source class of the 46 + anchored rows: … no anchor 4 …" summed to 50 under a 46-row label. Re-labelled: the five + anchored classes sum to 46, the 4 no-anchor rows are the remainder. No arithmetic moved. +- **E4 — the 25 → 35 anchor revision, now logged where it was missing.** Q20's fetch note + prints "the magazine 91 plus the 25 the non-magazine entries cite" (= 116, Q21's census + figure) while this file prints 35. Recomputed this run (`erratum_anchors.py`): Q41's 35 + anchors, Q20's 91 magazine anchors, intersection **10**, unique to Q41 **25**, union + **116**. The 25 was the *unique* count, the 35 the *total* — the files reconcile to the + digit and there was never a gap. +- **E5 — the fifths row's bucketing rule, now printed beside it.** The split 21 / 10 / 9 / + 1 / 1 is `min(int(fraction * 5), 4)` over the 42 fractions. An equal-count-quintile read + of the same vector gives 8 / 8 / 6 / 11 / 9 — same total, different rule, which is why + the rule is now on the row (the same defect was returned against Q20's rows file). +- **Deliverable amended:** `recoveries/excerpt-placement-nonmagazine.md`, **38,817 B**, + sha256 `815222254935f2f7cc449e3fd3e619f32c915d79571df64643c3746cca3edf29` (was 33,645 B / + `d16761a827df…`). 21 row cells rewritten (6 offsets/fractions, 16 occurrence counts), the + two aggregate lines and the two ranking lines re-printed, and an **Erratum** block appended + at the foot carrying E1–E5, the not-changed list and the grade. No fetch was re-run — this + is a placement re-measurement from the held target bodies. +- **Independent re-verification of the patched file, not of the apply pass** + (`verify_erratum.py` → `out/verify-erratum.out`, parsed from the markdown on disk): + **50 data rows / 0 malformed**; class counts **30 / 5 / 7 / 4 / 4 summing to 50**; measured + **42 rows over 26 entries**; Q21 join **42 `bound` / 4 `mis-bound` / 4 `unanchored`**; min + 0.0, max 0.8048; mean 0.22959; fifths 21 / 10 / 9 / 1 / 1; multi-occurrence 9; widest + spreads 0.4628 / 0.4198 / 0.3268 / 0.2982; highest entry means 0.8048 / 0.6327 / 0.5532 / + 0.4802; lowest 0.0 / 0.0 / 0.0263 / 0.0296; **50/50 rows agree cell-for-cell with the + S1-measured set** (`out/erratum-s1.json`). Eight prose claims checked against the parse, + all PASS (`out/verify-prose.out`). +- **Queue updated:** the erratum block appended to Q41's record in `WORK-QUEUE.md`; the + original DONE line is kept intact above it. Scripts and logs: + `fix_s1_offsets.py`, `apply_erratum.py`, `erratum_census.py`, `erratum_anchors.py`, + `verify_erratum.py`, `verify_prose.py`, `erratum_peek.py`, `erratum_multi.py` and + `out/{erratum-s1.out, erratum-report.json, erratum-s1.json, apply-erratum.out, + erratum-census.out, erratum-anchors.out, verify-erratum.out, verify-prose.out, + deliverable-before.md}` in `/root/crucible/q41/`. + +### Blocked + +Nothing in my lane. The standing gates are unchanged: Q9 (checksum handover), Q13 (the +wording fixes), Q19 (wizard onboarding) and the §4 `cp` adoption of the Helm pair +(collector `4e45021d…` + gate `9b09f328…`) are Alexander's calls. Host disk **767 MB free +of 154 GB** at 16:03Z, measured (`df -h /`) — the control plane's 12:01Z reclaim +(journalctl 656.3 MB + rotated logs 891.1 MB) is holding, and the `stackchain-dashboard` +restart loop is still running (`NRestarts` ~722k, service `activating`) — that call stays +Alexander's; nothing was reclaimed, rotated, stopped or reconfigured from this lane. + +### Next + +1. **The pipe's reply to this run**, when it lands — the erratum's figures are re-runnable + from `/root/crucible/q41/` (`fix_s1_offsets.py` reproduces E1/E2 from the held targets), + so an independent second pass needs only the scripts and `targets/`. +2. **Q42 — the non-magazine second pass**, open and offered to zephyrus (rebuild the S1 + body from `targets/*.html`, re-measure the 42 offsets, re-take the 35 anchors and the + 9 multi-occurrence rows). My own E1 pass is a first falsifier of it, not a substitute: + it measures in the same tree it corrects. +3. **The Helm lane's next unit is the adoption decision**, not a task: the pipe's position + is that `cp`-ing collector `4e45021d…` + gate `9b09f328…` is the defensible call, and + the stronger form (the legs against a rewritten copy) is a follow-on item rather than a + precondition. Both wait on Alexander. + +### Ask + +**Alexander** — unchanged and consolidated from Run 7: (a) rule on the §4 adoption `cp` +for the Helm pair (the deployed gate `7ed1bca8…` has no subject-selection path at all — +`grep -c HELM_COLLECTOR /root/.helm/bin/helm-selftest.py` → 0 — so none of Q34–Q39's +protection is in production until it lands); (b) the `stackchain-dashboard.service` 32-byte +key repair or a stop, since the loop is what fills the log; (c) the Q13 publication call +(item 13's decided note — escalate, do not edit the live page — still controls over its +`proposed_action`). + +**The pipe** — nothing owed to you from this run: the erratum answers reply 24's ask in +full and reply 25's count correction reproduces to the digit (30-of-42 crossed-space rows, +the `literal` class; 6 rows at 4 dp; mean 0.2294 → 0.2296). The one thing I could not +reproduce is your equal-count quintile split for this class (you printed 8 / 8 / 9 / 8 / 9; +my quintile read of the same vector gives 8 / 8 / 6 / 11 / 9 — no bucketing rule is printed +on either side, which is why E5 prints the rule). Unverified either way; the headline is +unaffected. diff --git a/recoveries/excerpt-placement-nonmagazine.md b/recoveries/excerpt-placement-nonmagazine.md index 11385a2..bc78c2f 100644 --- a/recoveries/excerpt-placement-nonmagazine.md +++ b/recoveries/excerpt-placement-nonmagazine.md @@ -54,10 +54,14 @@ - Measurable (a 200 target body exists): **46 of 50**. Placement measured: **42** across **26 of 30** entries. The 4 `paraphrase` rows resolve at no offset by definition. -- Source class of the 46 anchored rows: X post 14, article 23, no anchor 4, podcast episode 1, repository page 2, source file 6. +- Source class of the 50 rows: the 46 anchored rows are X post 14, article 23, podcast + episode 1, repository page 2, source file 6; the remaining 4 carry no anchor. - Distinct anchors printed by the anchored excerpts: **35** (all fetched, all HTTP 200): by host `www.stackchainmagazine.net` 11, `x.com` 12, `raw.githubusercontent.com` 5, `web.archive.org` 2, `github.com` 2, `bitcoinmagazine.com` 1, `europeanbitcoiners.com` 1, `podcasts.apple.com` 1. + The 35 are **25 unique to this class plus 10 shared with the magazine class** (the magazine + rows carry 91 distinct anchors); the union is **116**, which is the figure Q21's census and + Q20's fetch note print. See the erratum at the foot of this file. ## Rows @@ -70,8 +74,8 @@ source class | space | offset | fraction | occurrences | anchor | Q21 binding ve | block-25 | 2 | I’ve been watching Stackchain and they adopt new ideas over | paraphrase | no stated normalisation resolves it; differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | article | S1 | | | 0 | https://www.stackchainmagazine.net | mis-bound | differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | | block-405-420 | 1 | Blocks 405-420 #stackchain May the longest chain live foreve | literal | none (S0 substring) | X post | S1 | 1000 | 0.2922 | 1 | https://web.archive.org/web/20220722221828/https://twitter.com/AnthonyDessauer/status/1550583498397782017 | bound | re-graded from a non-article source (X post): https://web.archive.org/web/20220722221828/https://twitter.com/AnthonyDessauer/status/1550583498397782017 (HTTP 200 / 229367 B / body 3422 chars / sha 38160884d2ad / 2026-10-12T13:46:37Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | block-5 | 1 | Even on days when I'm broke as hell I still stack. Feel free | normalised-literal | typographic (NFKC/quotes/dashes/ellipsis) | X post | S1 | 36 | 0.0296 | 2 | https://web.archive.org/web/20220809062934/https://twitter.com/AriZonanHODL/status/1549169119924080640 | bound | re-graded from a non-article source (X post): https://web.archive.org/web/20220809062934/https://twitter.com/AriZonanHODL/status/1549169119924080640 (HTTP 200 / 171026 B / body 1218 chars / sha 811e4b37b7a8 / 2026-10-12T13:46:41Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| block-6 | 1 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 0 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | -| block-6 | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 0 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | +| block-6 | 1 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 1 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | +| block-6 | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 1 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | | block-7 | 1 | I saw 5 and 6 each from frends and i was like gawdang i know | literal | none (S0 substring) | X post | S1 | 50 | 0.0322 | 4 | https://x.com/satskeeper_/status/2102036583209717804 | bound | re-graded from a non-article source (X post): https://x.com/satskeeper_/status/2102036583209717804 (HTTP 200 / 127025 B / body 1553 chars / sha a6055d755446 / 2026-10-12T13:46:59Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | block-88 | 1 | so I bought 88-90 and posted them in quick succession to sec | unreadable | n/a | no anchor | | | | | (none) | unanchored | no anchor printed inside the blockquote | | block-88 | 2 | I’ve been watching Stackchain and they adopt new ideas over | paraphrase | no stated normalisation resolves it; differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | article | S1 | | | 0 | https://www.stackchainmagazine.net | mis-bound | differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | @@ -79,60 +83,71 @@ source class | space | offset | fraction | occurrences | anchor | Q21 binding ve | block-89 | 2 | I’ve been watching Stackchain and they adopt new ideas over | paraphrase | no stated normalisation resolves it; differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | article | S1 | | | 0 | https://www.stackchainmagazine.net | mis-bound | differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | | block-90 | 1 | It held. And I did it again and again and it became skinner | unreadable | n/a | no anchor | | | | | (none) | unanchored | no anchor printed inside the blockquote | | block-90 | 2 | I’ve been watching Stackchain and they adopt new ideas over | paraphrase | no stated normalisation resolves it; differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | article | S1 | | | 0 | https://www.stackchainmagazine.net | mis-bound | differing tokens: been watching adopt ideas Like used call Skinner when two blocks post. But wants | -| event-2022-07-18-anthony-enters-at-16-names-the-hill-at-24 | 1 | This is BTC Freeborn with the What Stackchain Done Dided Pee | elided | marked elisions honoured (S1) | article | S1 | 781 | 0.0563 | 0 | https://www.stackchainmagazine.net/waht-stackchain-done-dided-the-king-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/waht-stackchain-done-dided-the-king-of-stackchain/ (HTTP 200 / 153316 B / body 13882 chars / sha 4115c046ca99 / 2026-10-12T13:46:50Z) | +| event-2022-07-18-anthony-enters-at-16-names-the-hill-at-24 | 1 | This is BTC Freeborn with the What Stackchain Done Dided Pee | elided | marked elisions honoured (S1) | article | S1 | 781 | 0.0563 | 1 | https://www.stackchainmagazine.net/waht-stackchain-done-dided-the-king-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/waht-stackchain-done-dided-the-king-of-stackchain/ (HTTP 200 / 153316 B / body 13882 chars / sha 4115c046ca99 / 2026-10-12T13:46:50Z) | | event-2022-07-18-the-5-invitation-becomes-a-chain | 1 | Stackchain was born completely organically when AriZonanHODL | literal | none (S0 substring) | repository page | S1 | 3432 | 0.2982 | 1 | https://github.com/stackchainsats/stackchain | bound | re-graded from a non-article source (repository page): https://github.com/stackchainsats/stackchain (HTTP 200 / 265778 B / body 11509 chars / sha 49df0b3fcc17 / 2026-10-12T13:46:35Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-07-18-the-5-invitation-becomes-a-chain | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 0 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | +| event-2022-07-18-the-5-invitation-becomes-a-chain | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 1 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | | event-2022-07-18-the-5-invitation-becomes-a-chain | 3 | SIP: 0001 LAYER: Consensus TITLE: NEWSTACK AUTHOR: Derek Ros | literal | none (S0 substring) | source file | S1 | 0 | 0.0 | 1 | https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0001.txt | bound | re-graded from a non-article source (source file): https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0001.txt (HTTP 200 / 1610 B / body 1594 chars / sha 8fb322df9e3c / 2026-10-12T13:46:36Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-07-19-op-backstack-experimentation-almost-immediat | 1 | I’m adding a soft fork to the stackchain. Op.backstack | literal | none (S0 substring) | X post | S1 | 603 | 0.3888 | 0 | https://x.com/AnthonyDessauer/status/1549500074434052097 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1549500074434052097 (HTTP 200 / 124748 B / body 1551 chars / sha b61412b450e1 / 2026-10-12T13:46:50Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-07-19-op-backstack-experimentation-almost-immediat | 1 | I’m adding a soft fork to the stackchain. Op.backstack | literal | none (S0 substring) | X post | S1 | 605 | 0.3901 | 3 | https://x.com/AnthonyDessauer/status/1549500074434052097 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1549500074434052097 (HTTP 200 / 124748 B / body 1551 chars / sha b61412b450e1 / 2026-10-12T13:46:50Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-07-20-accessibility-becomes-a-protocol-question | 1 | SIP: 0001 LAYER: Consensus TITLE: NEWSTACK AUTHOR: Derek Ros | literal | none (S0 substring) | source file | S1 | 0 | 0.0 | 1 | https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0001.txt | bound | re-graded from a non-article source (source file): https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0001.txt (HTTP 200 / 1610 B / body 1594 chars / sha 8fb322df9e3c / 2026-10-12T13:46:36Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-07-20-accessibility-becomes-a-protocol-question | 2 | SIP: 0002 LAYER: Consensus TITLE: Pooling AUTHOR: Semisol (t | literal | none (S0 substring) | source file | S1 | 0 | 0.0 | 1 | https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0002.txt | bound | re-graded from a non-article source (source file): https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0002.txt (HTTP 200 / 1183 B / body 1169 chars / sha 2daaa0f1119d / 2026-10-12T13:46:36Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-07-20-accessibility-becomes-a-protocol-question | 3 | SIP: 0003 LAYER: Consensus TITLE: Stackjoin AUTHOR: Semisol | literal | none (S0 substring) | source file | S1 | 0 | 0.0 | 1 | https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0003.txt | bound | re-graded from a non-article source (source file): https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0003.txt (HTTP 200 / 1409 B / body 1388 chars / sha 1e2715472bae / 2026-10-12T13:46:36Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-07-20-receipt-provenance-becomes-part-of-consensus | 1 | SIP: 0004 LAYER: Consensus TITLE: DOUBLE SPEND PREVENTION AU | literal | none (S0 substring) | source file | S1 | 0 | 0.0 | 1 | https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0004.txt | bound | re-graded from a non-article source (source file): https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0004.txt (HTTP 200 / 925 B / body 913 chars / sha 243e859b3887 / 2026-10-12T13:46:37Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-07-20-receipt-provenance-becomes-part-of-consensus | 2 | It all started when AriZonanHODL mined the genesis block at | literal | none (S0 substring) | article | S1 | 1047 | 0.126 | 1 | https://europeanbitcoiners.com/what-the-heck-is-stackchain/ | bound | resolved at https://europeanbitcoiners.com/what-the-heck-is-stackchain/ (HTTP 200 / 102858 B / body 8311 chars / sha 4f2051ab8f29 / 2026-10-12T13:46:33Z) | | event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi | 1 | It all started when AriZonanHODL mined the genesis block at | literal | none (S0 substring) | article | S1 | 1047 | 0.126 | 1 | https://europeanbitcoiners.com/what-the-heck-is-stackchain/ | bound | resolved at https://europeanbitcoiners.com/what-the-heck-is-stackchain/ (HTTP 200 / 102858 B / body 8311 chars / sha 4f2051ab8f29 / 2026-10-12T13:46:33Z) | -| event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi | 2 | No matter what. No matter how we address this. Stacking this | literal | none (S0 substring) | X post | S1 | 1016 | 0.452 | 3 | https://x.com/AnthonyDessauer/status/1550583498397782017 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1550583498397782017 (HTTP 200 / 107304 B / body 2248 chars / sha f76b01ecf7c0 / 2026-10-12T13:46:51Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi | 2 | No matter what. No matter how we address this. Stacking this | literal | none (S0 substring) | X post | S1 | 1018 | 0.4528 | 3 | https://x.com/AnthonyDessauer/status/1550583498397782017 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1550583498397782017 (HTTP 200 / 107304 B / body 2248 chars / sha f76b01ecf7c0 / 2026-10-12T13:46:51Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-08-17-bitcoin-beach-transfers-leave-a-transaction | 1 | 1st send to Bitcoin Beach. 10 million sats https://blockstre | normalised-literal | URLs tokenised to " URL " under S3 (whitespace/quote-bounded run, applied at S1) | X post | S3 | 1012 | 0.5588 | 1 | https://x.com/AnthonyDessauer/status/1560026877116313600 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1560026877116313600 (HTTP 200 / 122722 B / body 1830 chars / sha db2668948584 / 2026-10-12T13:46:51Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-08-17-bitcoin-beach-transfers-leave-a-transaction | 2 | 2cnd distribution to Bitcoin Beach. Another 10 million sats | normalised-literal | URLs tokenised to " URL " under S3 (whitespace/quote-bounded run, applied at S1) | X post | S3 | 1012 | 0.5476 | 1 | https://x.com/AnthonyDessauer/status/1560027083383836672 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1560027083383836672 (HTTP 200 / 121982 B / body 1867 chars / sha dcc9ac238846 / 2026-10-12T13:46:53Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon | 1 | The last of sats donated to #Stacks4BitcoinBeach are on thei | normalised-literal | URLs tokenised to " URL " under S3 (whitespace/quote-bounded run, applied at S1) | X post | S3 | 984 | 0.4245 | 1 | https://x.com/AnthonyDessauer/status/1560325688481026048 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1560325688481026048 (HTTP 200 / 111565 B / body 2337 chars / sha b154776cb85a / 2026-10-12T13:46:53Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 0 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | -| event-2022-08-21-block-1414-becomes-the-first-million-target | 1 | Stack 1414 represents 1 million cuck bucks dumped into Stack | normalised-literal | URLs tokenised to " URL " under S3 (whitespace/quote-bounded run, applied at S1) | X post | S3 | 957 | 0.4905 | 0 | https://x.com/AnthonyDessauer/status/1561482847872962561 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1561482847872962561 (HTTP 200 / 106269 B / body 1970 chars / sha f10639e24eff / 2026-10-12T13:46:54Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-08-18-the-bitcoin-beach-campaign-closes-and-hodlon | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 1 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | +| event-2022-08-21-block-1414-becomes-the-first-million-target | 1 | Stack 1414 represents 1 million cuck bucks dumped into Stack | normalised-literal | URLs tokenised to " URL " under S3 (whitespace/quote-bounded run, applied at S1) | X post | S3 | 957 | 0.4905 | 1 | https://x.com/AnthonyDessauer/status/1561482847872962561 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1561482847872962561 (HTTP 200 / 106269 B / body 1970 chars / sha f10639e24eff / 2026-10-12T13:46:54Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-08-21-block-1414-becomes-the-first-million-target | 2 | We are only 14 stacks away from the historic block that will | literal | none (S0 substring) | X post | S1 | 32 | 0.0277 | 4 | https://x.com/AnthonyDessauer/status/1561523237984432128 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1561523237984432128 (HTTP 200 / 95127 B / body 1157 chars / sha b401871cc9a9 / 2026-10-12T13:46:54Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-08-21-block-1414-becomes-the-first-million-target | 3 | Fun with numbers. Stackchain ~1 million dollars Bitcoin ~ 19 | literal | none (S0 substring) | X post | S1 | 958 | 0.4327 | 3 | https://x.com/AnthonyDessauer/status/1561850265321345024 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1561850265321345024 (HTTP 200 / 106138 B / body 2214 chars / sha 6103995b291e / 2026-10-12T13:46:56Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 | 1 | Grab my dollar and combine your 1438 to get 1439 and resolve | literal | none (S0 substring) | X post | S1 | 1027 | 0.4792 | 3 | https://x.com/AnthonyDessauer/status/1562570634915328000 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1562570634915328000 (HTTP 200 / 148334 B / body 2143 chars / sha 9df613248e3c / 2026-10-12T13:46:56Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-08-28-the-fork-of-1492 | 1 | Stackchain to Bitcoiners is a lot like how Bitcoiners are to | elided | marked elisions honoured (S1) | article | S1 | 534 | 0.0805 | 0 | https://www.stackchainmagazine.net/the-fork-of-1492/ | bound | resolved at https://www.stackchainmagazine.net/the-fork-of-1492/ (HTTP 200 / 139890 B / body 6630 chars / sha 54b2f67f94cb / 2026-10-12T13:46:49Z) | -| event-2022-08-28-the-fork-of-1492 | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 0 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | +| event-2022-08-21-block-1414-becomes-the-first-million-target | 3 | Fun with numbers. Stackchain ~1 million dollars Bitcoin ~ 19 | literal | none (S0 substring) | X post | S1 | 960 | 0.4336 | 3 | https://x.com/AnthonyDessauer/status/1561850265321345024 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1561850265321345024 (HTTP 200 / 106138 B / body 2214 chars / sha 6103995b291e / 2026-10-12T13:46:56Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 | 1 | Grab my dollar and combine your 1438 to get 1439 and resolve | literal | none (S0 substring) | X post | S1 | 1029 | 0.4802 | 3 | https://x.com/AnthonyDessauer/status/1562570634915328000 | bound | re-graded from a non-article source (X post): https://x.com/AnthonyDessauer/status/1562570634915328000 (HTTP 200 / 148334 B / body 2143 chars / sha 9df613248e3c / 2026-10-12T13:46:56Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-08-28-the-fork-of-1492 | 1 | Stackchain to Bitcoiners is a lot like how Bitcoiners are to | elided | marked elisions honoured (S1) | article | S1 | 534 | 0.0805 | 1 | https://www.stackchainmagazine.net/the-fork-of-1492/ | bound | resolved at https://www.stackchainmagazine.net/the-fork-of-1492/ (HTTP 200 / 139890 B / body 6630 chars / sha 54b2f67f94cb / 2026-10-12T13:46:49Z) | +| event-2022-08-28-the-fork-of-1492 | 2 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 1 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | | event-2022-09-12-actual-miners-get-an-accounting-route | 1 | SIP: 0010 LAYER: Consensus Layer TITLE: Protocol for Bitcoin | literal | none (S0 substring) | source file | S1 | 0 | 0.0 | 1 | https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0010.txt | bound | re-graded from a non-article source (source file): https://raw.githubusercontent.com/stackchainsats/stackchain/main/sips/sip-0010.txt (HTTP 200 / 1305 B / body 1280 chars / sha 95836bbed2c6 / 2026-10-12T13:46:37Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-10-05-the-community-documents-its-scale-and-charit | 1 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 0 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | -| event-2022-10-07-gui-s-2079-and-saylor-s-2080 | 1 | Block 2079 #swanstack #stackchain | literal | none (S0 substring) | X post | S1 | 1034 | 0.49 | 3 | https://x.com/GuiAmadoGomes/status/1578475197211893760 | bound | re-graded from a non-article source (X post): https://x.com/GuiAmadoGomes/status/1578475197211893760 (HTTP 200 / 185456 B / body 2110 chars / sha 21e7d42b4e1f / 2026-10-12T13:46:58Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2022-10-07-gui-s-2079-and-saylor-s-2080 | 2 | Block 2080 #stackchain | literal | none (S0 substring) | X post | S1 | 1040 | 0.5448 | 3 | https://x.com/saylor/status/1578479561750110208 | bound | re-graded from a non-article source (X post): https://x.com/saylor/status/1578479561750110208 (HTTP 200 / 159106 B / body 1909 chars / sha b1df924f6d36 / 2026-10-12T13:47:00Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-10-05-the-community-documents-its-scale-and-charit | 1 | The story goes like this: @ArizonanHodl posts his $5 bitcoin | literal | none (S0 substring) | article | S1 | 2030 | 0.2254 | 1 | https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement | bound | resolved at https://bitcoinmagazine.com/culture/how-5-bitcoin-purchase-cascaded-into-1-5-million-viral-movement (HTTP 200 / 341799 B / body 9006 chars / sha 49980527a68d / 2026-10-12T13:46:32Z) | +| event-2022-10-07-gui-s-2079-and-saylor-s-2080 | 1 | Block 2079 #swanstack #stackchain | literal | none (S0 substring) | X post | S1 | 1036 | 0.491 | 3 | https://x.com/GuiAmadoGomes/status/1578475197211893760 | bound | re-graded from a non-article source (X post): https://x.com/GuiAmadoGomes/status/1578475197211893760 (HTTP 200 / 185456 B / body 2110 chars / sha 21e7d42b4e1f / 2026-10-12T13:46:58Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | +| event-2022-10-07-gui-s-2079-and-saylor-s-2080 | 2 | Block 2080 #stackchain | literal | none (S0 substring) | X post | S1 | 1042 | 0.5458 | 3 | https://x.com/saylor/status/1578479561750110208 | bound | re-graded from a non-article source (X post): https://x.com/saylor/status/1578479561750110208 (HTTP 200 / 159106 B / body 1909 chars / sha b1df924f6d36 / 2026-10-12T13:47:00Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2022-10-07-gui-s-2079-and-saylor-s-2080 | 3 | It all started when AriZonanHODL mined the genesis block at | literal | none (S0 substring) | article | S1 | 1047 | 0.126 | 1 | https://europeanbitcoiners.com/what-the-heck-is-stackchain/ | bound | resolved at https://europeanbitcoiners.com/what-the-heck-is-stackchain/ (HTTP 200 / 102858 B / body 8311 chars / sha 4f2051ab8f29 / 2026-10-12T13:46:33Z) | -| event-2022-12-00-builder-relationships-cross-into-nostr | 1 | We say that Stackchain is the gamification of buying bitcoin | elided | marked elisions honoured (S1) | article | S1 | 789 | 0.1383 | 0 | https://www.stackchainmagazine.net/stackchain-is-for-builders-how-building-on-stackchain-led-to-building-on-nostr/ | bound | resolved at https://www.stackchainmagazine.net/stackchain-is-for-builders-how-building-on-stackchain-led-to-building-on-nostr/ (HTTP 200 / 136663 B / body 5706 chars / sha 3cdb199e3c2f / 2026-10-12T13:46:48Z) | +| event-2022-12-00-builder-relationships-cross-into-nostr | 1 | We say that Stackchain is the gamification of buying bitcoin | elided | marked elisions honoured (S1) | article | S1 | 789 | 0.1383 | 1 | https://www.stackchainmagazine.net/stackchain-is-for-builders-how-building-on-stackchain-led-to-building-on-nostr/ | bound | resolved at https://www.stackchainmagazine.net/stackchain-is-for-builders-how-building-on-stackchain-led-to-building-on-nostr/ (HTTP 200 / 136663 B / body 5706 chars / sha 3cdb199e3c2f / 2026-10-12T13:46:48Z) | | event-2023-01-30-burnchain-and-loko-s-sj-lottery-are-already | 1 | Our Sunday spaces where Skinner started us off talking about | literal | none (S0 substring) | podcast episode | S1 | 158 | 0.0263 | 1 | https://podcasts.apple.com/be/podcast/stackchain-sj-lottery/id1654425194?i=1000597332122 | bound | re-graded from a non-article source (podcast episode): https://podcasts.apple.com/be/podcast/stackchain-sj-lottery/id1654425194?i=1000597332122 (HTTP 200 / 134346 B / body 6007 chars / sha 85d017e08fef / 2026-10-12T13:46:35Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | | event-2023-05-00-siggy-reaches-nostr | 1 | This is the version made for Nostr for the Stackchain mascot | literal | none (S0 substring) | repository page | S1 | 3389 | 0.8048 | 1 | https://github.com/plebiolira/stackchainsiggy_nostr | bound | re-graded from a non-article source (repository page): https://github.com/plebiolira/stackchainsiggy_nostr (HTTP 200 / 278795 B / body 4211 chars / sha 53d29def259f / 2026-10-12T13:46:34Z); stage-2 source-type rule superseded because Q21 graded the same text bound at this target | -| event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a | 1 | Welcome to Stackchain where we celebrate stacking sats. A pl | elided | marked elisions honoured (S1) | article | S1 | 600 | 0.0953 | 0 | https://www.stackchainmagazine.net/a-brief-history-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/a-brief-history-of-stackchain/ (HTTP 200 / 143664 B / body 6295 chars / sha a4e05cf4614a / 2026-10-12T13:46:45Z) | -| event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a | 2 | This great project began on a normal afternoon; I was talkin | literal | none (S0 substring) | article | S1 | 551 | 0.0681 | 0 | https://www.stackchainmagazine.net/stackchain-heroes/ | bound | resolved at https://www.stackchainmagazine.net/stackchain-heroes/ (HTTP 200 / 138681 B / body 8088 chars / sha f74efcabd570 / 2026-10-12T13:46:47Z) | -| event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a | 3 | When I initially started stacking on StackChain, no one was | elided | marked elisions honoured (S1) | article | S1 | 542 | 0.0852 | 0 | https://www.stackchainmagazine.net/a-journey-of-memes/ | bound | resolved at https://www.stackchainmagazine.net/a-journey-of-memes/ (HTTP 200 / 140493 B / body 6362 chars / sha 62b8a766c5ae / 2026-10-12T13:46:46Z) | +| event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a | 1 | Welcome to Stackchain where we celebrate stacking sats. A pl | elided | marked elisions honoured (S1) | article | S1 | 600 | 0.0953 | 1 | https://www.stackchainmagazine.net/a-brief-history-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/a-brief-history-of-stackchain/ (HTTP 200 / 143664 B / body 6295 chars / sha a4e05cf4614a / 2026-10-12T13:46:45Z) | +| event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a | 2 | This great project began on a normal afternoon; I was talkin | literal | none (S0 substring) | article | S1 | 551 | 0.0681 | 1 | https://www.stackchainmagazine.net/stackchain-heroes/ | bound | resolved at https://www.stackchainmagazine.net/stackchain-heroes/ (HTTP 200 / 138681 B / body 8088 chars / sha f74efcabd570 / 2026-10-12T13:46:47Z) | +| event-2023-08-00-the-archive-becomes-a-magazine-a-game-and-a | 3 | When I initially started stacking on StackChain, no one was | elided | marked elisions honoured (S1) | article | S1 | 542 | 0.0852 | 1 | https://www.stackchainmagazine.net/a-journey-of-memes/ | bound | resolved at https://www.stackchainmagazine.net/a-journey-of-memes/ (HTTP 200 / 140493 B / body 6362 chars / sha 62b8a766c5ae / 2026-10-12T13:46:46Z) | | event-2024-04-14-burnchain-explains-itself-in-its-own-words | 1 | Why burnchain can use the same sats as Stackchain: it decoup | literal | none (S0 substring) | article | S1 | 10031 | 0.6327 | 1 | https://www.stackchainmagazine.net/a-conversation-with-burnchainers/ | bound | resolved at https://www.stackchainmagazine.net/a-conversation-with-burnchainers/ (HTTP 200 / 155367 B / body 15854 chars / sha 33af2c4d78c7 / 2026-10-12T13:46:46Z) | | event-2024-05-20-one-community-multiple-living-chains | 1 | This issue of Log 4 was released on the two year anniversary | literal | none (S0 substring) | article | S1 | 563 | 0.1494 | 1 | https://www.stackchainmagazine.net/two-years-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/two-years-of-stackchain/ (HTTP 200 / 136759 B / body 3768 chars / sha ae9cc06ef607 / 2026-10-12T13:46:49Z) | -| event-2025-02-15-ogchain-receives-a-first-person-governance-a | 1 | Stackchain has become a number of things in its lifetime, a | elided | marked elisions honoured (S1) | article | S1 | 549 | 0.0561 | 0 | https://www.stackchainmagazine.net/the-chain-desides/ | bound | resolved at https://www.stackchainmagazine.net/the-chain-desides/ (HTTP 200 / 141688 B / body 9794 chars / sha 87888baddd54 / 2026-10-12T13:46:48Z) | -| event-2026-01-08-golden-blocks-become-an-artifact-worth-remem | 1 | Every so often over the last few years, if you hadn’t alread | elided | marked elisions honoured (S1) | article | S1 | 652 | 0.2246 | 0 | https://www.stackchainmagazine.net/golden-block-the-shiny-chapters-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/golden-block-the-shiny-chapters-of-stackchain/ (HTTP 200 / 135144 B / body 2903 chars / sha 1e33e1b8016b / 2026-10-12T13:46:47Z) | +| event-2025-02-15-ogchain-receives-a-first-person-governance-a | 1 | Stackchain has become a number of things in its lifetime, a | elided | marked elisions honoured (S1) | article | S1 | 549 | 0.0561 | 1 | https://www.stackchainmagazine.net/the-chain-desides/ | bound | resolved at https://www.stackchainmagazine.net/the-chain-desides/ (HTTP 200 / 141688 B / body 9794 chars / sha 87888baddd54 / 2026-10-12T13:46:48Z) | +| event-2026-01-08-golden-blocks-become-an-artifact-worth-remem | 1 | Every so often over the last few years, if you hadn’t alread | elided | marked elisions honoured (S1) | article | S1 | 652 | 0.2246 | 1 | https://www.stackchainmagazine.net/golden-block-the-shiny-chapters-of-stackchain/ | bound | resolved at https://www.stackchainmagazine.net/golden-block-the-shiny-chapters-of-stackchain/ (HTTP 200 / 135144 B / body 2903 chars / sha 1e33e1b8016b / 2026-10-12T13:46:47Z) | ## Aggregates (placement, the 42 rows with a measured offset) -- n = 42, min 0.0, max 0.8048, mean 0.2294. +- n = 42, min 0.0, max 0.8048, mean **0.2296** (measured in the space each row names — see + the erratum at the foot of this file; the pre-erratum mean was 0.2294). - Fraction fifths (0.00-0.20 / 0.20-0.40 / 0.40-0.60 / 0.60-0.80 / 0.80-1.00): 21 / 10 / 9 / 1 / 1. + Bucketing rule: `min(int(fraction * 5), 4)` over the 42 measured fractions — fixed-width + fifth-of-unit buckets, not equal-count quintiles (the same rule as the deliverable's + first publication). - Excerpts occurring more than once in their body (first-occurrence placement is therefore - weak for these): **8** — block-5 seq 1 (occ 2), block-7 seq 1 (occ 4), event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi seq 2 (occ 3), event-2022-08-21-block-1414-becomes-the-first-million-target seq 2 (occ 4), event-2022-08-21-block-1414-becomes-the-first-million-target seq 3 (occ 3), event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 seq 1 (occ 3), event-2022-10-07-gui-s-2079-and-saylor-s-2080 seq 1 (occ 3), event-2022-10-07-gui-s-2079-and-saylor-s-2080 seq 2 (occ 3). + weak for these): **9** — block-5 seq 1 (occ 2), block-7 seq 1 (occ 4), + event-2022-07-19-op-backstack-experimentation-almost-immediat seq 1 (occ 3), + event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi seq 2 (occ 3), + event-2022-08-21-block-1414-becomes-the-first-million-target seq 2 (occ 4), + event-2022-08-21-block-1414-becomes-the-first-million-target seq 3 (occ 3), + event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 seq 1 (occ 3), + event-2022-10-07-gui-s-2079-and-saylor-s-2080 seq 1 (occ 3), + event-2022-10-07-gui-s-2079-and-saylor-s-2080 seq 2 (occ 3). - Entries with a measured placement: 26 of 30. -- Widest intra-entry spread: event-2022-08-21-block-1414-becomes-the-first-million-target 0.4628, event-2022-10-07-gui-s-2079-and-saylor-s-2080 0.4188, event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi 0.326, event-2022-07-18-the-5-invitation-becomes-a-chain 0.2982. -- Highest mean fraction: event-2023-05-00-siggy-reaches-nostr 0.805, event-2024-04-14-burnchain-explains-itself-in-its-own-words 0.633, event-2022-08-17-bitcoin-beach-transfers-leave-a-transaction 0.553, event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 0.479. -- Lowest mean fraction: event-2022-07-20-accessibility-becomes-a-protocol-question 0.0, event-2022-09-12-actual-miners-get-an-accounting-route 0.0, event-2023-01-30-burnchain-and-loko-s-sj-lottery-are-already 0.026, block-5 0.03. +- Widest intra-entry spread: event-2022-08-21-block-1414-becomes-the-first-million-target 0.4628, event-2022-10-07-gui-s-2079-and-saylor-s-2080 0.4198, event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi 0.3268, event-2022-07-18-the-5-invitation-becomes-a-chain 0.2982. +- Highest mean fraction: event-2023-05-00-siggy-reaches-nostr 0.8048, event-2024-04-14-burnchain-explains-itself-in-its-own-words 0.6327, event-2022-08-17-bitcoin-beach-transfers-leave-a-transaction 0.5532, event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14 0.4802. +- Lowest mean fraction: event-2022-07-20-accessibility-becomes-a-protocol-question 0.0, event-2022-09-12-actual-miners-get-an-accounting-route 0.0, event-2023-01-30-burnchain-and-loko-s-sj-lottery-are-already 0.0263, block-5 0.0296. ## Findings 1. **The non-magazine class is materially weaker on placement than the magazine class was.** The Q20 magazine population measured mean fraction 0.4735 (n = 269); this non-magazine - population measures mean **0.2294** (n = 42), and **21 of 42** rows sit in the first fifth + population measures mean **0.2296** (n = 42), and **21 of 42** rows sit in the first fifth of their source. The class is dominated by short X posts, SIP text files and one podcast page, where an excerpt quoted whole occupies the head of a small body. Placement is weak evidence of representativeness for those rows even though the match is exact. @@ -152,12 +167,68 @@ source class | space | offset | fraction | occurrences | anchor | Q21 binding ve - The detagged body includes site chrome (X pages carry handle/UI text around the tweet), so `fraction` is a document-position measure, not a position within the source's prose. -- Placement is first-occurrence (8 rows have more than one occurrence; see the aggregates). +- Placement is first-occurrence (9 rows have more than one occurrence; see the aggregates). - X-page byte counts and hashes are **dated readings** (2026-10-12T13:46:13-13:47:00Z), not identifiers — the same URLs read different byte counts on 2026-10-10 (Q21) and today. - 4 rows are short podcast/X bodies where a whole-quote match is near-tautological; for those, placement carries little information. +## Erratum, 2026-10-12T16:06Z (this host; corrections logged, not edited over) + +The pipe's verification (reply 24 / reply 25, `replies/2026-10-12-to-merlin-2{4,5}.md`) +returned one correction against this deliverable and three precision items. All are applied +here; the correction trail stays visible above. + +- **E1 — the `literal` rows' offset was an S0 offset under an `S1` label (the returned + correction).** `s3e.py:81` returned `b0.find(ex)` — the S0-space offset — paired with the + S1 body, the `S1` label and `round(off / len(b1), 4)`, so the printed `fraction` was a + **mixed-space ratio** (S0 offset over S1 body length). Measured on the delivered + `out/rows.json`: the 30 `literal` rows carried an offset equal to the S0 offset in + **30 of 30** cases and to the S1 offset in **24 of 30**. Fix applied per the reply's + instruction (`o1 = b1.find(s1(ex))`, keep the `S1` label, do not relabel `S0`): all 42 + measured rows are now measured in the space their row names. **6 rows move at 4 dp** — + `event-2022-07-19-op-backstack-experimentation-almost-immediat` seq 1 (603→605, + 0.3888→0.3901), `event-2022-07-22-skinner-s-405-420-and-the-social-fork-questi` seq 2 + (1016→1018, 0.452→0.4528), `event-2022-08-21-block-1414-…` seq 3 (958→960, + 0.4327→0.4336), `event-2022-08-24-a-practical-fork-resolution-offer-at-1438-14` seq 1 + (1027→1029, 0.4792→0.4802), `event-2022-10-07-gui-s-2079-and-saylor-s-2080` seq 1 + (1034→1036, 0.49→0.491) and seq 2 (1040→1042, 0.5448→0.5458) — and the class mean moves + **0.229448 → 0.229590 (0.2294 → 0.2296)**. The magazine comparison (0.4735) is untouched, + and the fifths split is unchanged (21 / 10 / 9 / 1 / 1, rule now printed beside the row). + Reproduce with `fix_s1_offsets.py` → `out/erratum-s1.out` / `out/erratum-report.json` in + `/root/crucible/q41/`. +- **E2 — the occurrence count was computed with the wrong needle (found while applying E1, + logged first as mine).** `s3e.py:105` counted the **raw** excerpt against the **S1** body, + so a `literal` row whose S1 normalisation changes the string (curly quotes, NFKC) counted + 0 occurrences; the `elided` rows counted their whole `...`-joined excerpt, which never + occurs whole. **16 rows' counts were wrong** (all under-counts, 0 → 1/2/3/4); the + multi-occurrence aggregate moves **8 → 9** (the new row is + `event-2022-07-19-op-backstack-experimentation-almost-immediat` seq 1, occ 3). No fraction + depends on it. The E1 pass also re-counts the `elided` rows on their first segment, which + is what the offset already used. +- **E3 — the anchor-census label (the returned precision item).** The sentence read "Source + class of the 46 anchored rows: … no anchor 4 …", an enumeration that sums to 50 under a + 46-row label. Per the pipe's own C45 the arithmetic was right and the label was wrong: + re-labelled to "the 50 rows: the 46 anchored rows are …; the remaining 4 carry no anchor". +- **E4 — the 25 → 35 anchor revision, now logged (the returned precision item).** Q20's + fetch note prints "the magazine 91 plus the 25 the non-magazine entries cite" (= 116, the + figure Q21's census carries); this file prints **35** distinct non-magazine anchors. + Recomputed this run from `out/rows.json` and Q20's rows file: Q41's 35 anchors, + Q20's 91 magazine anchors, intersection **10**, unique to Q41 **25**, union **116**. + The 25 was the *unique* count; the 35 is the *total*. No gap — the two files reconcile to + the digit. Script `erratum_anchors.py` → `out/erratum-anchors.out`. +- **E5 — the fifths row's bucketing rule, now printed.** The printed split 21 / 10 / 9 / 1 / 1 + is `min(int(fraction * 5), 4)` over the 42 fractions. An equal-count-quintile read of the + same vector gives 8 / 8 / 6 / 11 / 9 — same total, different rule, which is why the rule is + now beside the row (the same defect was returned against Q20's rows file). +- **Not changed:** every class count (30 / 5 / 7 / 4 / 4), the 42 bound / 4 mis-bound / + 4 unanchored Q21 join, min 0.0, max 0.8048, the 26-of-30 entry count, and every fetch + reading (the erratum re-measures placement only; no page was re-fetched). +- **Graded:** E1–E5 **Documented** by direct re-measurement from this host + (`out/erratum-s1.json`, `out/erratum-report.json`, `out/apply-erratum.out`, + `out/erratum-anchors.out`); the pipe's reply text is quoted here only as the ask, not as + the evidence. + ## Method, with this run's own defects logged first - **Defect 1 (mine, caught by the Q21 join):** stage 2 classed the 23 non-article-source rows