210 lines
14 KiB
Markdown
210 lines
14 KiB
Markdown
# Excerpt fidelity and placement for the 91 magazine entries (Q20)
|
||
|
||
> **Screen.** Every figure below carries a path, a URL with its HTTP status, byte size, sha256 and fetch
|
||
> clock, or the word `unverified`. All readings are from this host, 2026-10-12T04:41–04:43Z. Nothing
|
||
> secret is printed. Deliverable data file: `recoveries/excerpt-placement-rows.md`. Scratch tree
|
||
> `/root/crucible/q20/`. Nothing deployed, published, or re-run; `decisions/` and `inbox/` untouched.
|
||
|
||
**Verdict: the magazine class is clean on both halves.** 269/269 excerpts are literal quotations of
|
||
the article they are printed against (0 paraphrase, 0 unreadable, 0 needing normalisation), and
|
||
placement is measured for all 269 — a near-uniform distribution across the body with no entry
|
||
quoting only its closing 20%. Three caveats are named below: the detagged body includes site chrome,
|
||
45 excerpts are short enough that placement is weak evidence, and 3 excerpts occur more than once.
|
||
|
||
## What the item asked, and where the answer lands
|
||
|
||
Q3 left this residue open: *"paraphrase fidelity of the 91 magazine entries (which article did each
|
||
quote come from), and the absolute placement of the excerpt inside the original recording."* Q8 then
|
||
graded the archive's own summary prose for all 91 entries, and `recoveries/quote-fidelity-live.md`
|
||
established that 269/269 excerpts are **present** in their cited articles with 91/91 article URLs
|
||
live. Q20 asks the two questions neither test asked: is an excerpt a **literal quotation** or a
|
||
**paraphrase**, and **where** inside its source does it sit.
|
||
|
||
- Half 1 (literal vs paraphrase): **literal, 269/269**, with no normalisation needed at all.
|
||
- Half 2 (placement): **measured for 269/269**, as an offset and a fraction of body length.
|
||
|
||
Note on the item's own wording: it says "placement inside the original recording". No magazine
|
||
excerpt is bound to a recording — all 91 anchors are article URLs (see the census), so placement is
|
||
measured against the detagged article body, which is the only source the class cites.
|
||
|
||
## Sample rule, stated in advance
|
||
|
||
**Every published magazine entry — 91 of 91, no sampling.** 269 excerpts: 87 entries carry 3
|
||
excerpts, 4 carry 2 (`magazine-080`, `magazine-082`, `magazine-083`, `magazine-084`). The 8
|
||
`block-*` and 22 `event-*` entries are outside this item.
|
||
|
||
**Excerpt unit:** the quoted material inside the entry page's `<blockquote>`, with the `<cite>`
|
||
citation display text removed. All 269 magazine blockquotes carry a `<cite>` whose text is the
|
||
anchor URL. That URL is the citation, not quoted material — including it makes every row a mismatch
|
||
(see my defect 1 below). This is the same unit Q21 used.
|
||
|
||
**Detag / normalisation ladder** (printed in full in the rows file's header so the numbers are
|
||
re-runnable): `S0 raw` — strip `<script> <style> <svg> <noscript>`; `<br>` and block closers to a
|
||
space; remaining tags to nothing; 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. `S2
|
||
url-tokenised` — S1 with every `http(s)://...` run replaced by the token ` URL ` in both strings.
|
||
**All placement numbers are measured in S1 space, on both sides.**
|
||
|
||
**Class vocabulary, in match order:** `literal` (exact S0 substring) → `normalised-literal` (S1 or
|
||
S2 substring, normalisation named) → `elided` (marked `...` honoured, segments in order) →
|
||
`paraphrase` (no stated normalisation resolves it; differing tokens quoted) → `unreadable` (image,
|
||
recording or X-post source, or a target that did not answer 200; stated plainly, never graded).
|
||
|
||
## Census
|
||
|
||
| measure | value |
|
||
|---|---|
|
||
| ledger index | `https://alexanderwhitestone.com/stackchain/blocks/` — 200 / 34,488 B / sha256 `4f764ef4dfb9c08b2654ff0783550d20ad1bb7a31cb0c32070974a5fe451557e` / 2026-10-12T04:41:37Z |
|
||
| entry slugs on the index | 121 = 8 `block-` + 22 `event-` + 91 `magazine-` |
|
||
| entry pages fetched | 121 / 121 HTTP 200, first attempt, 04:41:37–04:41:48Z; magazine pages 3,680–5,146 B (census in `recoveries/excerpt-placement-rows.md`) |
|
||
| magazine blockquotes | 269; **269 carry a `<cite>`**; 0 anchorless; 0 whose text still contains its anchor URL |
|
||
| distinct anchors (magazine) | 91, **all `www.stackchainmagazine.net`**, all HTTP 200, 04:41:48–04:43:06Z, 123,566–184,748 B |
|
||
| article bodies (S1) | 1,099–30,128 characters |
|
||
| excerpts per entry | 3 for 87 entries, 2 for 4 |
|
||
| `unreadable` rows | **0** — no magazine excerpt cites an image, a recording or an X post |
|
||
|
||
Fetch note: one pass, no retry needed; every one of the 121 entry pages and all 116 distinct anchors
|
||
in the tree (the magazine 91 plus the 25 the non-magazine entries cite) answered HTTP 200 on the
|
||
first attempt. Entry pages, article pages and byte counts are **dated readings, not identifiers** —
|
||
each carries its own clock.
|
||
|
||
## Class counts
|
||
|
||
| class | rows |
|
||
|---|---|
|
||
| `literal` | **269** |
|
||
| `normalised-literal` | 0 |
|
||
| `elided` | 0 |
|
||
| `paraphrase` | 0 |
|
||
| `unreadable` | 0 |
|
||
|
||
No row needed quote-style, dash, whitespace or URL normalisation: the excerpt text as the entry page
|
||
prints it is already an exact substring of the detagged article body at S0. The residues Q8 named in
|
||
this class — the `072` Dustin cell's added ellipsis and `015`'s unmarked elision — are **summary-prose**
|
||
defects, not excerpt defects, and this run does not reproduce them in the excerpts.
|
||
|
||
## Placement
|
||
|
||
| measure | value |
|
||
|---|---|
|
||
| rows with a placement number | 269 / 269 |
|
||
| offset range (S1 space) | 0 – 20,641 characters |
|
||
| fraction range | 0.0000 – 0.9472 |
|
||
| mean fraction | 0.4735 |
|
||
| fraction buckets | 0.00–0.20: 53 · 0.20–0.40: 65 · 0.40–0.60: 51 · 0.60–0.80: 61 · 0.80–1.00: 39 |
|
||
| entries quoting only the first 20% | 2 — `magazine-043`, `magazine-050` |
|
||
| entries quoting only the last 20% | 0 |
|
||
| widest per-entry spread | `magazine-057` 0.8923, then `magazine-072` 0.8675, `magazine-038` 0.8630 |
|
||
| narrowest per-entry spread | `magazine-027` 0.0094, then `magazine-050` 0.0489, `magazine-043` 0.0574 |
|
||
| highest mean fraction | `magazine-019` 0.7905, then `magazine-044` 0.7377, `magazine-070` 0.7353 |
|
||
| lowest mean fraction | `magazine-050` 0.0394, then `magazine-043` 0.1501, `magazine-061` 0.1560 |
|
||
|
||
The distribution is close to uniform, which is the answer to the load-bearing half of the item: the
|
||
archive does not systematically quote its sources' openings or closings. No entry quotes only its
|
||
closing 20%, so the shape that broke `magazine-040`'s gloss in Q4 — an interpretive clause resting on
|
||
a closing line — is not a property of the excerpt placement either.
|
||
|
||
## Findings
|
||
|
||
**1. Zero paraphrases in the magazine class; the excerpt is the archive's strongest surface.** For
|
||
all 91 entries the quoted material is a literal quotation of the cited article, needing no
|
||
normalisation. Combined with Q21's binding census (311/319 excerpts bound to the anchor printed
|
||
inside their own blockquote) and `quote-fidelity-live.md` (269/269 present, 91/91 URLs live), the
|
||
excerpt pipeline survives three independent tests on two different days.
|
||
|
||
**2. Placement, measured rather than asserted.** Every excerpt now carries an offset and a fraction,
|
||
so "where it sits" is a number a reader can re-derive. The distribution is near-uniform; no entry
|
||
quotes only the tail; two entries (`magazine-043`, `magazine-050`) quote only the opening.
|
||
|
||
**3. Every magazine blockquote prints its own anchor URL as the citation text.** 269/269 blockquotes
|
||
carry `<cite><a href="…">https://www.stackchainmagazine.net/…</a></cite>`, so the URL appears twice
|
||
per excerpt on the rendered page: once as the link, once as the visible text. That is a presentation
|
||
choice, not a defect — but it means any external matcher must strip the `<cite>` before comparing, or
|
||
it will report 269 false paraphrases. Recorded so the next auditor does not repeat my first pass.
|
||
|
||
**4. Two excerpts are article titles, not passages.** `magazine-080` seq 1 (*"SEED CIPHER #888888
|
||
Stackchain Magazine EP. 6 cover art"*) and `magazine-082` seq 1 (*"Roll Your own 24 Word Bitcoin Seed
|
||
Phrase Offline"*) each occur 4 times in their article, at offset 0 — they are the article's own
|
||
headline. Their `fraction` of 0.0000 is a document position, not a placement inside the prose. Named
|
||
so the number is not read as "the archive quotes the opening of the piece".
|
||
|
||
**5. One excerpt is a refrain.** `magazine-040` seq 2 (*"And there was evening, and there was
|
||
morning— Tick Tock Next Block."*) occurs **6 times** in `the-genesis-block`; the placement number is
|
||
its first occurrence. The item's placement rule is first-occurrence-in-document-order, stated in
|
||
advance; for this row that is the earliest of six, and the other five are at higher offsets.
|
||
|
||
**6. Independent second method, 269/269.** Stripping both strings to lowercase letters and digits
|
||
only — immune to quote style, dash style, whitespace and markup — the excerpt's image is a substring
|
||
of the article's image **and** a prefix of the image of the body slice that starts at the reported
|
||
offset, for all 269 graded rows. This tests the offset arithmetic rather than re-running the same
|
||
matcher.
|
||
|
||
**7. Cross-check against Q21's published record.** `recoveries/excerpt-binding-audit.md` carries 269
|
||
magazine rows, **all `bound`, all with settling evidence "verbatim at"** (2026-10-10). Two days, two
|
||
independent fetch passes, the same verdict on the same population.
|
||
|
||
## Limits
|
||
|
||
- **The detagged body includes site chrome.** `fraction` is offset over the whole detagged document —
|
||
navigation, header, footer and related-link blocks included — so it is a document-position measure,
|
||
not a position within the article's prose. A prose-only variant would need the article container
|
||
isolated, which the item's own wording ("characters from the top of the detagged body") does not ask
|
||
for.
|
||
- **Placement is first-occurrence.** 3 rows have more than one occurrence (findings 4 and 5); the
|
||
offset is the earliest.
|
||
- **45 excerpts are under 40 characters** (shortest 9, `magazine-008` seq 2 *"eat tacos"*). For these
|
||
the placement number is weak evidence of representativeness, though the match itself is exact and
|
||
confirmed by the second method.
|
||
- **Byte counts and hashes are dated readings** taken 2026-10-12T04:41–04:43Z. X-free, archive-host
|
||
pages re-render; nothing here rests on a byte figure.
|
||
- **Scope:** the 25 non-magazine anchors (X posts, Wayback captures, SIP files, a podcast episode)
|
||
are fetched in this tree but not graded — Q20's population is the 91 magazine entries. Those are
|
||
the rows where `unreadable` would actually fire, and they belong to Q10/Q21's classes.
|
||
|
||
## My own defects, logged first
|
||
|
||
1. **The excerpt unit included the `<cite>` URL, and every row read `paraphrase`.** My first parse
|
||
took the whole `<blockquote>` text, citation display text included, so all 269 magazine excerpts
|
||
carried a trailing `https://www.stackchainmagazine.net/…` that the article body does not contain.
|
||
Caught by reading the page HTML for `magazine-091` rather than trusting the tally; fixed by
|
||
stripping `<cite>` content, which is the unit Q21 used. Finding 3 is the permanent record of the
|
||
trap.
|
||
2. **Offsets were taken in S0 space and divided by an S1 body length.** An em dash becomes ` - ` under
|
||
S1, so every article carrying one before an excerpt shifted all later S0 offsets, and every
|
||
fraction was wrong. **72 of 269 offsets moved** when the measurement was re-run in one space. The
|
||
class verdicts were unaffected (all 269 resolved at S0, and S0 ⊆ S1 in the sense used here), but
|
||
the placement half — the load-bearing half — was incorrect until corrected. All numbers in this
|
||
record are post-correction.
|
||
3. **My first second-method test was itself wrong.** It required the index of the excerpt's last four
|
||
tokens minus the index of its first four to equal `len(first four) + 1`, so the "gap" it printed
|
||
was the excerpt's own middle and 12 of 15 sampled rows failed. Comparator defect, not a data
|
||
finding; replaced by the character-class method in finding 6.
|
||
|
||
## Landing evidence
|
||
|
||
Appended after commit and read back over the anonymous raw path
|
||
(`https://forge.alexanderwhitestone.com/git/stackchain/troupe-standup/raw/branch/main/<path>`), no
|
||
credential — each HTTP 200 and `cmp` byte-identical to disk.
|
||
|
||
| file | status / bytes | sha256 |
|
||
|---|---|---|
|
||
| `recoveries/excerpt-placement-audit.md` | 200 / (this file — see the self-reference note below) | — |
|
||
| `recoveries/excerpt-placement-rows.md` | 200 / 74,561 | `880223f35f9b660e54df9fe21f3de372468fc610fb7d19cf7b820d82935c7123` |
|
||
| `WORK-QUEUE.md` | 200 / 551,128 | `895620dd5b40a50ee6dbe4ebfbb534fe4eaad714a3b83c2fb9a92b300ba0f3fb` |
|
||
| `checkins/2026-10-12-merlin.md` | 200 / (see the check-in's own landing table) | — |
|
||
|
||
All four read at commit `9a1de9a`, and again after each later append — **200 and `cmp` byte-identical
|
||
to disk every time**. **Self-reference note, and why this file's own row is blank:** a file cannot
|
||
cite its own final digest, because writing the citation changes the digest. This record was amended
|
||
three times while its landing table was being filled in — `9dced5eb…` / 12,914 B → `e72062a3…` /
|
||
13,062 B → `2e5241c9…` / 13,738 B — each revision read back **200 and byte-identical**. Rather than
|
||
chase the regress a fourth time, this row defers to the check-in's landing table, which records the
|
||
revisions and their bytes, and this note records the chain. The two artifacts that do not move — the
|
||
rows file and the queue — carry their digests above and reproduce byte-identically.
|
||
The first readback attempt was taken **before** `git push` and returned 404 for the two new files and
|
||
the pre-push queue revision (548,438 B) — logged because a readback that runs before the push
|
||
measures nothing; every figure above is a post-push read.
|
||
|
||
— Merlin
|