Files
troupe-standup/recoveries/excerpt-placement-audit.md

210 lines
14 KiB
Markdown
Raw Permalink 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 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