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

253 lines
38 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Excerpt fidelity class and placement — the 30 non-magazine entries (Q41)
> **Screen.** Every row carries the anchor URL with its HTTP status, byte size, sha256 and fetch
> clock, or the word `unverified`. All readings are from this host, 2026-10-12 13:46-13:5xZ.
> Nothing secret is printed. Scratch tree `/root/crucible/q41/`.
## Rules (stated before any test)
- **Population / sample rule:** every published non-magazine entry — **30 of 30**
(8 `block-*` + 22 `event-*`), no sampling. **50 excerpts** (42 `From the sources`,
8 `The block`). The 91 magazine entries were Q20's population and are outside this item.
- **Enumeration:** `https://alexanderwhitestone.com/stackchain/blocks/`
(HTTP 200 / 34488 B / sha256 `4f764ef4dfb9c08b2654ff0783550d20ad1bb7a31cb0c32070974a5fe451557e`, read 2026-10-12T13:46:28Z) by the href matcher
`/stackchain/<slug>/` filtered to `^(block|event|magazine)-`; the magazine class is dropped here.
- **Excerpt unit:** the quoted material inside the entry page's `<blockquote>`, with the
`<cite>` citation display text removed — the same unit Q20 and Q21 used. The citation URL
printed inside the blockquote is the citation, not quoted material.
- **Detag / normalisation ladder (printed so the numbers are re-runnable; the `<br>` clause is
explicit, as Q41's finish line requires):**
- `S0 raw` — strip `<script> <style> <svg> <noscript>`; **`<br>` AND block closers**
(`</p> </div> </li> </ul> </ol> </h1-6> </tr> </td> </th> </blockquote> </section>`
`</article> </cite> </figcaption>`) **to a space**; inline tags including `</a>` to nothing;
strip remaining tags; HTML-unescape repeatedly until stable; collapse whitespace.
- `S1 typographic` — S0 + NFKC; curly quotes to straight; em dash to ` - `, en dash to `-`;
ellipsis to `...`; rejoin an ordinal suffix split by markup (`4 th` -> `4th`); collapse
whitespace. **All placement numbers are measured in S1 space unless the row names S3.**
- `S3 url-tokenised` — **S1** with every `http(s)://` run replaced by the token ` URL ` in both
strings, the run stopping at whitespace or a quote character (whichever comes first).
Applied at S1 (after quote normalisation) on both sides.
- **Class vocabulary (in match order):**
- `literal` — the excerpt is an exact S0 substring of the target's S0 body.
- `normalised-literal` — not an S0 substring, but an S1 (or S3) substring; the row names what
was normalised and the space.
- `elided` — the excerpt's own marked `...` elisions are honoured and every segment resolves
in order.
- `paraphrase` — not a substring under any stated normalisation; the row names the differing
tokens.
- `unreadable` — the blockquote prints no anchor, or the target did not answer 200. Stated
plainly, never graded.
- **Placement:** `offset` = characters from the top of the detagged body to the start of the
excerpt (first occurrence in document order); `fraction` = offset / body length, 4 dp. The
space (S1 or S3) is named per row.
## Counts
| class | rows |
|---|---|
| literal | 30 |
| normalised-literal | 5 |
| elided | 7 |
| paraphrase | 4 |
| unreadable | 4 |
| **total** | **50** |
- 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 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
Fixed column order: `entry | seq | excerpt text (first 60 chars) | class | normalisation |
source class | space | offset | fraction | occurrences | anchor | Q21 binding verdict | settling evidence`.
| entry | seq | excerpt (first 60) | class | normalisation | source class | space | offset | fraction | occ | anchor | Q21 verdict | settling evidence |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| block-25 | 1 | I remember wanting block 25. I tried to post it. I got forke | unreadable | n/a | no anchor | | | | | (none) | unanchored | no anchor printed inside the blockquote |
| 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 | 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 |
| block-89 | 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-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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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.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): **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.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.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.
2. **Every fidelity grade reconciles with Q21's binding verdict.** The join is exact: the
42 `bound` rows are `literal` (30) / `normalised-literal` (5) / `elided` (7); the 4
`mis-bound` rows are exactly the 4 `paraphrase` rows; the 4 `unanchored` rows are exactly the
4 `unreadable` rows. The two audits agree row for row (50 = 42 + 4 + 4).
3. **The four `paraphrase` rows are one known defect, carried by Q21 and Q4, not a new one.**
On `block-25`, `block-88`, `block-89` and `block-90` the Provenance panel cites the
publication's bare home page (`https://www.stackchainmagazine.net`) for a corroborating
quote the home page does not contain. Q21 graded all four `mis-bound`; this run measures
the same. No re-grade, no new archive-side wording fix follows from this item.
4. **The 4 `unreadable` rows are the `The block` testimony quotes with no anchor printed.**
They are a binding gap (Q21 `unanchored`), not a fidelity gap: there is no target to measure.
## Limits (stated, not buried)
- 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 (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
(X posts, SIP files, repo pages, the podcast page, archived pages) `unreadable` on a
source-type rule alone. Q21 graded every one of them `bound` with the text found in the
detagged body, so the bodies are measurable: the rows were re-graded under the same ladder
with the source class named in the row. `unreadable` is reserved for the two cases Q41's
finish line names (no anchor, or a non-200 target).
- **Defect 2 (mine, caught by the join):** the S2/S3 URL-tokenisation first swallowed the word
after a bare URL (`https?://\S+`), then stopped the run at a quote character and still failed
when a URL was followed by a closing quote, then failed again because tokenisation ran at S0
before quote normalisation. The final rule (run stops at whitespace or a quote, applied at
S1 on both strings) is the one that resolves the t.co row and matches Q21's class. The
`event-2022-08-21-...-1414` seq 1 row is the witness: it reads `paraphrase` under the broken
rules and `normalised-literal` (URL-tokenised) under the fixed one.
- **Defect 3 (mine):** an earlier probe quoted the 1414 row's S3 match against the S1 body and
the offset against the S3 body; both are now measured in the space the match is in, and the
space is printed per row.
- Scripts: `fetch.py`, `classify.py`, `place.py`, `regrade.py`, `s3e.py`, `reconcile.py`,
`aggregate.py` in `/root/crucible/q41/`; logs under `out/`. Re-runnable end to end.