581 lines
45 KiB
Markdown
581 lines
45 KiB
Markdown
# Work queue
|
||
|
||
Self-serve. Take the top unclaimed item, say so in your check-in, finish it, report it. If an item is too big to
|
||
finish in a day, say what part you are doing and by when. **Every item states what "done" means and what evidence
|
||
it needs.** Propose additions by PR.
|
||
|
||
---
|
||
|
||
## Q1 — Recover the fifteen silent rooms *(highest value; no dependencies)*
|
||
|
||
The archive holds audio for 31 of the 46 Stackchain Spaces it has discovered. **Fifteen have no replay at all** —
|
||
X blocks them, and nothing in the archive can quote them. Each announcement below is a real post; the rooms are
|
||
real; the recordings are missing.
|
||
|
||
| Space | Announcement |
|
||
|---|---|
|
||
| `1mnxedROgmLJX` | https://x.com/AnthonyDessauer/status/1549953716219809792 |
|
||
| `1yNGaYNZPOjGj` | https://x.com/AnthonyDessauer/status/1550521116434632705 |
|
||
| `1zqKVBPYMOAKB` | https://x.com/AnthonyDessauer/status/1550640406718603264 |
|
||
| `1OdKrBjEvPXKX` | https://x.com/AnthonyDessauer/status/1550876886133198848 |
|
||
| `1mrxmayWWPBxy` | https://x.com/AnthonyDessauer/status/1551986319546408960 |
|
||
| `1OwxWzYMZAQJQ` | https://x.com/AnthonyDessauer/status/1552488878031785984 |
|
||
| `1jMKgemOkZWJL` | https://x.com/AnthonyDessauer/status/1552797220381921281 |
|
||
| `1lPKqmbXygnKb` | https://x.com/AnthonyDessauer/status/1553216364290011136 |
|
||
| `1mrGmayybYwGy` | https://x.com/AnthonyDessauer/status/1553463368178053120 |
|
||
| `1vOGwyjjONrxB` | https://x.com/AnthonyDessauer/status/1553494397357985792 |
|
||
| `1OdKrBXEgZQKX` | https://x.com/AnthonyDessauer/status/1553910347521617920 |
|
||
| `1LyxBogpvwzKN` | https://x.com/AnthonyDessauer/status/1554270142455902208 |
|
||
| `1MYGNnwqZmzGw` | https://x.com/AnthonyDessauer/status/1559352367966892032 |
|
||
| `1rmxPgvEpWdJN` | https://x.com/AnthonyDessauer/status/1561458655114825728 |
|
||
| `1eaJbNaYVARJX` | https://x.com/AnthonyDessauer/status/1562956041599348736 |
|
||
|
||
Recover what is recoverable **from public sources only**: the room's title, host, date, who spoke, any archived
|
||
copy of the audio, any contemporary write-up. Wayback, the announcement posts themselves, community posts, other
|
||
archives — wherever it exists.
|
||
|
||
**Done means:** one row per space in `recoveries/silent-rooms.md` — id, date, what was found, exact URL, retrieval
|
||
date — with `nothing found` written plainly where that is the answer.
|
||
**Evidence:** the URL and the retrieval timestamp for every positive finding; the searches performed for every
|
||
negative one.
|
||
|
||
**Status: CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts.**
|
||
- Results table: `recoveries/silent-rooms.md` (`b8ac1eb`, zephyrus-sparkborn) — 15 rows, `nothing found`, search list.
|
||
- Announcement record for all 15 (text, dates, mention walls): `recoveries/silent-rooms-enrichment.md` (`c8d2569`).
|
||
- Wayback avenue closed (`2118b3e` + reply 03, `2026-09-24-to-zephyrus-03.md`): 14 of 15
|
||
`twitter.com/i/spaces/<id>` URLs and 8 of 15 announcement posts have 2022 captures, and every capture rendered is
|
||
the logged-out JS shell — no title, host, participants or replay handle.
|
||
- The one room with no space-page capture at all is `1vOGwyjjONrxB`.
|
||
- Only route left: a logged-in X session for the room cards. Nobody here has one; declining it is a legitimate answer.
|
||
- Handed back with one open claim: the archive's own space catalog labels these 15
|
||
`blocked-no-current-space-metadata`, which is a metadata barrier, not proof that no recording was ever made.
|
||
|
||
---
|
||
|
||
## Q2 — Chase the one dead link
|
||
|
||
Every published source link in the archive answers except one:
|
||
`https://twitter.com/AriZonanHODL/status/1549169119924080640` returns 404.
|
||
|
||
**Done means:** either an archived copy (Wayback, archive.today, a quote-post screenshot) recorded with its URL and
|
||
capture date, or a documented conclusion that it is unrecoverable, with every avenue tried listed.
|
||
**Evidence:** the capture URL, or the search list behind the negative.
|
||
|
||
**Status: DONE — recovered.** `recoveries/dead-link.md` (`3ca3d3c`, zephyrus-sparkborn) found the `x.com` snapshot
|
||
(`20250129185849`); Timmy rendered the `twitter.com` variant, which zephyrus's table had as snapshot-less, and it
|
||
holds a contemporaneous capture at `20220809062934` with the tweet text, "11:07 PM · Jul 18, 2022 · Twitter for
|
||
iPhone", 63 retweets / 46 quote tweets / 611 likes and the archived image (`c8d2569`). Two further `twitter.com`
|
||
captures exist: `20220718230820`, `20220730181319`. Method note: the Wayback availability API reports no snapshots
|
||
for either variant — CDX is the authority.
|
||
|
||
---
|
||
|
||
## Q3 — Independent audit of the published ledger
|
||
|
||
The ledger at https://alexanderwhitestone.com/stackchain/blocks/ publishes 121 entries. Audit it from the outside,
|
||
where you are not the author and have no access to the build:
|
||
|
||
- Dead or redirected links, page by page.
|
||
- Date inconsistencies between an entry's displayed date and its page content.
|
||
- Any entry that claims a source it does not actually cite.
|
||
|
||
**Material provided:** `recoveries/ledger-link-inventory.md` — all 123 published pages fetched, their external links
|
||
extracted, and every unique external URL status-checked (40 unique; 39 answer, 1 is the genesis link now replaced).
|
||
Pass 2 should judge the pages against this dump rather than trying to fetch them.
|
||
|
||
**Done means:** a table of findings with severity, or an explicit clean bill of health per area checked.
|
||
**Evidence:** the page URL, the exact text, and the command or method used.
|
||
|
||
**Status: DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`).
|
||
Verified from the outside after pass 2 (reply 04).**
|
||
- 121/121 entries walked. Counts reproduce: 16 clean + 95 citation flags + 8 date mismatches + 1 dead link + 1
|
||
redirect = 121 = 91 magazine + 22 event + 8 block. Sampled magazine entries carry zero external links and a
|
||
plain-text `Original: https://www.stackchainmagazine.net` line — the flag is systematic, not incidental.
|
||
- Pass 1's date flag is closed in the archive's favour: the feed's own `pubDate` for *Stackchain SJ Lottery* is
|
||
`Mon, 30 Jan 2023 22:15:54 GMT`, stable across fetches; Apple's record matches; Spotify's "Feb 05" belonged to the
|
||
adjacent card. Also closed: MP3 liveness, excerpt-window arithmetic, fountain.fm target, index counts, entry-19
|
||
redirect.
|
||
- Not covered by either pass, and still open if anyone wants it: 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.
|
||
- **Handed to Alexander, not to the pipe:** whether to publish article-level source URLs on the 91 magazine entries
|
||
and 4 testimony blocks. The archive already holds the map (`MAGAZINE-SITE-MAP.md`, `magazine-inventory.json`); the
|
||
entries show only the publication homepage. This is a provenance-policy decision, not a task.
|
||
|
||
---
|
||
|
||
## Q4 — Falsification pass
|
||
|
||
Pick three claims the archive makes in public and try your hardest to break them from public sources. Report what
|
||
you did, what you found, and whether the claim survived. "It survived" is a successful outcome — you are testing
|
||
the archive, not hunting for a scalp.
|
||
|
||
**Done means:** three claims, three attempts, three verdicts.
|
||
**Evidence:** the source you used against the claim, and the raw result.
|
||
|
||
**Status: DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified
|
||
from the archive side (reply 05, `2026-09-24-to-zephyrus-05.md`).**
|
||
- Claim 1, profile counts ("18 public profiles / 13 documentary-backed / 5 candidate portraits") — his verdict
|
||
**Partial**, closed **Documented** here: the listing is a section of the index page (`/stackchain/people/` 404s),
|
||
and the count recounts from the public asset `public-data.js` → 18 profiles, 13 `documentary-backed`, 5 candidate.
|
||
There are no per-profile pages; views are hash routes, which is why nothing is indexed.
|
||
- Claim 2, SJ Lottery publication date — **Survived**, reproduced to the character (guid, `pubDate`
|
||
`Mon, 30 Jan 2023 22:15:54 GMT`, Apple's record, the adjacent Ordinals item carrying the "Feb 05" stamp).
|
||
- Claim 3, the `magazine-040` gloss "a nod to the last block he mined" — **Broken**. Confirmed and extended: the
|
||
article itself is now fetched (`the-genesis-block`, 200) and its closing lines are a Genesis 2:2 rewrite; block
|
||
97,250 is 2010-12-12, the day of Satoshi's last public post, while Patoshi analyses end his mining near block
|
||
54,316. The excerpt is faithful, the interpretive clause is not supported.
|
||
- His one side observation about a duration misattribution is **rejected with the feed parse** (see reply 05).
|
||
- **Handed to Alexander, not to the pipe:** the exact replacement sentence for the `magazine-040` summary, drafted in
|
||
reply 05 §"Your ask". It is a wording change to a live page, so it waits for him.
|
||
|
||
---
|
||
|
||
## Q8 — Summary fidelity: does each entry's machine-written summary overstate its article?
|
||
|
||
Q3 tested that sources resolve and dates agree. `recoveries/quote-fidelity-live.md` now tests that the quoted
|
||
excerpts are really in the articles — 269/269 present, 91/91 article URLs live. Neither test touches the prose the
|
||
archive writes *about* the article, and that is where the archive can still be wrong.
|
||
|
||
`magazine-040` is the worked example: the quotes are faithful, but the summary adds "a nod to the last block he
|
||
mined", which no source supports. One entry, and it is the archive's own words doing the damage.
|
||
|
||
**Do this:** for each entry in a defined sample, compare the "What happened" / "In plain English" sentences against
|
||
the article and grade every factual or interpretive clause: **holds** (the article says it), **overstated** (the
|
||
article supports less), **unsupported** (the article does not say it), **contradicted** (public sources say
|
||
otherwise). Quote the summary sentence and the article line that settles it, both verbatim.
|
||
|
||
**Material:** `recoveries/magazine-article-map.md` — every published entry → its live article URL, 91/91 answering
|
||
200 — and `recoveries/quote-fidelity-live.md` for the method and the limits.
|
||
|
||
**Done means:** a table of per-clause verdicts for the sample, with the count of each verdict and the named entries
|
||
that need an archive-side fix.
|
||
**Evidence:** the entry URL, the summary sentence, the article URL and the article sentence.
|
||
|
||
**Status: pilot CLOSED at `dcf91a1` (zephyrus-sparkborn), corrected at `9cc6879`; the full sweep is the active form
|
||
of this item.**
|
||
- Pilot: 10 entries (every 10th, `001…091`), 7 clauses flagged — `recoveries/summary-fidelity-pilot.md` (`dcf91a1`),
|
||
check-in `2a0cb01`. All 20 pages (10 entry pages, 10 articles) re-fetched 200 by Timmy on 2026-09-25, matching his
|
||
"0 fetch failures"; all seven flags re-verified against the article text and upheld (reply 07, `8e44d22`).
|
||
Independent second-method pass (proper-noun and numeral diff of both summary sections against the fetched
|
||
articles) found no unsupported specific beyond his seven.
|
||
- **One arithmetic correction, logged not applied here:** his per-entry rows sum to 92 holds / 99 clauses, his totals
|
||
row says 91 / 98. His file, his edit; asked for in reply 07.
|
||
- **Corrected by him at `9cc6879` (2026-09-26)** — totals row now reads 92 / 99; verified from my side by recount of
|
||
the published row and by the corrected blob (`fb896dc5b178`); his two working-file row counts (52 + 47 = 99) match
|
||
the midpoint split of the published row exactly. Standing numbers: **92 holds / 99 clauses.** Reply 08 §1.
|
||
- **Testimony only:** the two working halves and their three annotated grade cells are not in this repo and not
|
||
reachable from the archive host; nothing resting on them can be checked from outside.
|
||
- **Added evidence requirement (reply 08 §3):** the full sweep's clause file must state its clause-splitting rule and
|
||
grade vocabulary in its header. Measured: a sentence-level recount gives 43 units against his 99, and the
|
||
per-entry divergence is not a constant factor, so no external rule reproduces his counts without the rule being
|
||
published.
|
||
- **Full sweep (active):** the remaining 81 magazine entries, same grading, finish line
|
||
`recoveries/summary-fidelity-full.md`. Added requirement from reply 07 (the item's own evidence bar was ambiguous
|
||
about where the clause table lives): **publish the per-clause rows as a data file** — entry, clause, grade,
|
||
settling sentence — or the pass rate is an assertion. Report image-only sources as unreadable rather than graded,
|
||
and state that a 10-entry sample licenses no rate estimate for 91.
|
||
- **The eight editorial clauses, named, with their decision state (added 2026-09-26, reply 09).** Q8's pilot and
|
||
Q4 produced eight archive-side wording fixes; they were previously tracked only in reply prose, which is why the
|
||
inbox relay had to describe flag 7 in words. State as of 2026-09-26:
|
||
- `magazine-091` — "Comparing Strategy, …" (overstated). **Approved** by Alexander 2026-09-26T14:51:11Z
|
||
(troupe-standup inbox item 13; `decisions/2026-09-26.md`, `2eb50b7`). Correction staged, not published:
|
||
record `EDITS/2026-09-26-magazine-091-correction.md` in the archive build tree, patch script
|
||
`EDITS/apply_editorial_fix_091.py`; live page still `49877d4b3543…`. Reply 09 §3, Q13 below.
|
||
**Decision caveat controls execution:** Alexander's decided note asks, "Do we even have authority to fix the
|
||
publication? Add our note and escalate it to the author and mag publisher." Treat this as decision received with
|
||
a caveat, not unconditional publication authority: hold the live edit and any third-party contact until Alexander
|
||
confirms which action he wants. The pipe's archive-ownership analysis in reply 09 does not erase that caveat.
|
||
- `magazine-011` — "merch for Mass Adoption and the Boston Bitcoin Festival" (overstated) — undecided.
|
||
- `magazine-011` — "founder of the Bitcoin-only printing company Proof of Ink" (unsupported) — undecided.
|
||
- `magazine-021` — "(only Loko and Happy responded)" (contradicted) — undecided.
|
||
- `magazine-041` — "Stackchain's rowdiest fork war" (overstated) — undecided.
|
||
- `magazine-061` — "weekly Thursday intelligence-style cadence of work" (unsupported) — undecided.
|
||
- `magazine-061` — "the magazine note ties to a centerfold in issue 5 (Round 5)" (overstated) — undecided.
|
||
- `magazine-040` — "a nod to the last block he mined" (broken; Q4) — replacement sentence drafted in reply 05
|
||
§"Your ask" — undecided.
|
||
- **Limit on the relay channel (reply 09 §5):** decisions arrive here via `decisions/YYYY-MM-DD.md`; the `inbox`
|
||
artifact itself is not readable from this job, so only the quoted strings in a relay can be verified from here.
|
||
|
||
**Addendum, 2026-09-27 — batch 1 of the full sweep is in flight, and the clause-unit ambiguity is half-closed
|
||
from the pipe's side.** Check-in `cd7c9f5` (zephyrus-sparkborn, 2026-09-27T13:08:20Z) reports batch 1 delegated:
|
||
magazine entries `002–010`, 9 entries, working file `hidden_files/q8-sweep/batch1-entries-002-010.md` — from this
|
||
host that is **Testimony only** (his runtime, not this repository). Sample arithmetic verified this tick: pilot =
|
||
every 10th entry, 10 entries → 81 remaining; `002–010` is disjoint from the pilot → 72 left. The evidence bar is
|
||
unchanged and was restated to him in reply 15: per-clause rows as a data file with fixed column order
|
||
`entry | clause text | grade | settling sentence | source URL`, the clause-splitting rule and grade vocabulary in
|
||
the file's header, image-only sources as explicit `unreadable` rows carrying the image URLs, and no rate
|
||
estimated for 91 entries from a 10-entry sample.
|
||
**Clause unit, my half, now mechanical.** Unit definition: sentences in the entry's "What happened" paragraph
|
||
(split on `(?<=[.!?])\s+`) plus 1 for the single "In plain English" line, both as published on the live
|
||
server-rendered pages. Ten fetches, all HTTP 200; result `001` 4, `011` 4, `021` 4, `031` 4, `041` 4, `051` 5,
|
||
`061` 5, `071` 4, `081` 4, `091` 5 = **43** against his **99** (ratio 2.30, divergence not constant). Reply 08 §3
|
||
published the 43 without a method the reader could re-run; the number reproduced per entry this tick and the
|
||
method, unit and command are now stated. **It is not a claim that 99 is wrong** — his unit is finer than a
|
||
sentence; it is the claim that no externally stated rule reproduces it, which is why the batch file's header
|
||
matters. When it states the rule, the same script runs against his clause rows and the two counts become
|
||
comparable for the first time.
|
||
|
||
---
|
||
|
||
## Q5 — Issue triage in the organisation's public repos
|
||
|
||
Walk the issue tracker of the public `stackchain` repositories. Reproduce what is reproducible. Comment with the
|
||
environment, the steps, and the output. Leave the ones you cannot reproduce with an honest "cannot reproduce, here
|
||
is what I tried".
|
||
|
||
**Done means:** every open issue either carrying a reproduction comment or an explicit cannot-reproduce note.
|
||
**Evidence:** pasted command output per issue.
|
||
|
||
**Status: re-scoped 2026-09-26 (reply 08 §5) after a census, because as written it invites busywork.** Measured over
|
||
the loopback API on 2026-09-26: **197 open issues on the first page across 8 public repos** —
|
||
`stackchain-lab-loop` 50 (page cap), `stackchain-hackathon` 50 (cap), `timmy-talking-turd` 41,
|
||
`timmy/project-template` 17, `live-wizard` 13, `agent-todo-tracker` 11, `stackchain-dashboard` 9,
|
||
`sovereign-stack` 6; `troupe-standup` 0. The population is dominated by feature requests, planning items and
|
||
host-local operational entries ("Disk usage 86%", daily-drop logs, release-testing epics), not defects with steps,
|
||
and several repos describe services that run on the archive host and are not reachable from outside it.
|
||
**Re-scope:** the item now covers (a) issues that claim a *defect* **and** are reproducible from a clone of the
|
||
public repo alone — reproduce, comment with environment/steps/output; (b) everything else — one line stating why an
|
||
attempted reproduction would be theatre (feature request / host-local service / planning item), plus the count per
|
||
repo, per class. Report the counts as the result; "not reproducible from outside, and here is the population
|
||
breakdown" is an acceptable finished answer for this item. Unclaimed.
|
||
|
||
---
|
||
|
||
## Q6 — A public guide to checking this archive
|
||
|
||
Write `docs/how-to-check-this-archive.md`: the concrete steps a stranger can run to test whether the archive's
|
||
claims hold — how entries are graded, what the four evidence tiers mean in practice, and one worked example.
|
||
Base it on what you actually ran, not on what the README asserts.
|
||
|
||
**Done means:** somebody with no context can follow it and get a yes/no on a real claim.
|
||
**Evidence:** you ran every command in it before submitting.
|
||
|
||
---
|
||
|
||
## Q7 — Propose the next items
|
||
|
||
The queue must never run dry. When you finish something, propose the next thing — with a one-paragraph case for
|
||
its value and a finish line — as a PR to this file. Disagreeing with an existing item is also welcome.
|
||
|
||
**Status: satisfied for the 2026-09-25 cycle.** Zeph's three proposals (`2a0cb01`) are now queue items: the Q8
|
||
full sweep (folded into Q8 above), **Q10** and **Q11** below. The obligation is standing, not closed — keep
|
||
proposing as items close. **2026-09-27:** no new item entered this cycle, because the queue is not thin — Q5
|
||
(re-scoped), Q6, Q9, Q10, Q11 and Q12 are open and unclaimed, Q8's sweep is active, and Q13/Q4/Q14 carry two
|
||
items that wait on Alexander, not on the pipe. Depth is stated rather than assumed; the obligation stays standing
|
||
for the tick after an item closes.
|
||
|
||
|
||
---
|
||
|
||
## Q9 — Independent QC of the sovereign music candidates *(second opinion, no listening required)*
|
||
|
||
Three ACE-Step CPU renders of the troupe song "RECEIPTS, M'LORD" are mastered and up for review. Run the
|
||
mechanical gates independently and report whether the numbers agree with the record:
|
||
|
||
- `https://forge.alexanderwhitestone.com/git/stackchain/troupe-standup` is **not** where the audio lives — the
|
||
three MP3s are at `/root/sovereign-music-daily/releases/2026-09-24/masters/receipts-mlord-{78c3791c,a381d8cf,e6d5e7e9}.mp3`
|
||
(server-local; ask Timmy for them if you want the files).
|
||
- Recorded claims: integrated loudness −14.0 ± 0.2 LUFS, true peak ≤ −0.9 dBFS, full decode clean, 195.0 s,
|
||
FLAC-source 48 kHz stereo, 320 kbps MP3. SHA-256s in the manifest.
|
||
- Your job: state which of those you can verify from your environment and which you cannot, and run one
|
||
independent hook-transcription pass (small.en or equivalent) on a 60 s window around 50–110 s — does the chorus
|
||
contain "receipt is the proof" / "the hash don't care who told you no"? Report the window you used and the raw
|
||
transcription.
|
||
|
||
**Done means:** a table of claim-vs-measurement per candidate plus the transcription window.
|
||
**Evidence:** your exact commands and their output.
|
||
|
||
**Status: unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md`
|
||
(`53a5509`), written up in reply 06 (`17c1619`).** The recorded numbers hold (file SHA-256s match `STATE.json`; −14.12 /
|
||
−14.00 / −13.98 LUFS; three distinct renditions; decode clean on all three; 48 kHz stereo 320 kbps; `ace-result.json`
|
||
confirms CPU, 16 steps, 8840.9 s wall). Three lines of the item's own text are corrected in that record, not edited here:
|
||
the "true peak ≤ −0.9 dBFS" bound measures −0.94 / −1.57 / −0.92, i.e. up to 0.08 dB *above* the −1.0 dBTP mastering target
|
||
that the same release record states; "the manifest" is `STATE.json`; and 195.0 s is the FLAC source (the MP3 container
|
||
reads 195.024 s). Hook transcription, my own pass, 50–110 s window per candidate: "the receipt is the proof" is recovered
|
||
verbatim in all three; "the hash don't care who told you no" is recovered in **none**, and a transcript cannot say whether
|
||
that is the render or the model.
|
||
**As written this is not executable as a second opinion from zephyrus's environment** — the files are not reachable from
|
||
there, and my pass is not independent (same host, same tools, and I wrote the item). Making it executable needs a decision
|
||
on handing over unreleased audio under checksum; that goes to Alexander, not into the pipe. Ordering: Q8 stays ahead of Q9.
|
||
|
||
**Update (reply 07, `8e44d22`, 2026-09-25):** unchanged and not waiting on anyone here. The checksum-handover decision
|
||
is escalated to Alexander with reply 07; the hook-transcription result stands as recorded (the chorus line recovered in
|
||
all three, the second line in none). No audio enters this repo or any public repo before the human gate opens.
|
||
|
||
---
|
||
|
||
## Q10 — Summary fidelity for the non-magazine entries
|
||
|
||
The 22 dated events and 8 block/receipt entries carry machine-written summaries too, and Q3/Q8 have only ever graded
|
||
the 91 magazine entries. Q8's worked example (`magazine-040`) was a magazine entry, so the pattern is proven in the
|
||
class that was sampled, not in this one — and the block/receipt entries are the ones that make claims about chain
|
||
events, where being wrong costs the most.
|
||
|
||
**Do this:** Q8's method applied to the 30 entries, each summary clause graded against the source the entry itself
|
||
cites (article, receipt, or space recording), with `unreadable source` stated plainly instead of graded.
|
||
|
||
**Done means:** a table in `recoveries/summary-fidelity-nonmagazine.md` — per-entry verdict counts, the named entries
|
||
needing archive-side wording fixes, and the per-clause rows. **Evidence:** entry URL, summary clause, source URL and
|
||
the settling sentence, verbatim. Proposed by zephyrus-sparkborn (`2a0cb01`), entered by Timmy in reply 07.
|
||
|
||
---
|
||
|
||
## Q11 — Close the eight pass-2 date mismatches
|
||
|
||
`recoveries/ledger-audit-pass2.md` flags 8 date mismatches between an entry's displayed date and its content, and
|
||
they have sat since Q3 closed because pass 2 named them without resolving each one. The SJ Lottery row shows what
|
||
resolution looks like: a verdict with the settling source (`pubDate`, Apple's record, the adjacent card).
|
||
|
||
**Do this:** resolve each of the 8 to a verdict — archive correct, source correct, or indeterminate — with the
|
||
settling source named, one line per entry.
|
||
|
||
**Done means:** a closure table, one line per entry, added to a new `recoveries/ledger-date-closure.md` (not edited
|
||
into pass 2's file). **Evidence:** the query or fetch that settles each row, and `unresolved` written plainly where
|
||
nothing does. Proposed by zephyrus-sparkborn (`2a0cb01`), entered by Timmy in reply 07.
|
||
|
||
---
|
||
|
||
## Q12 — Are the evidence tiers earned?
|
||
|
||
Every ledger page carries a tier badge, and the ledger publishes the legend it uses: **Documented** (the archive
|
||
holds the post, capture or receipt), **Corroborated** (established by a published or community account, with the
|
||
source quoted on the page), **Testimony only** (a participant's recollection, recorded as recollection),
|
||
**Unrecovered** (known to exist, no copy and no independent account). Q3 tested that sources resolve and dates
|
||
agree; Q8 tests the summary prose; `quote-fidelity-live.md` tests the excerpts. **Nobody has tested the badges**,
|
||
and the badge is the archive's whole claim to being checkable — a tier that overstates is the most expensive class
|
||
of error it can publish. The pages are server-rendered, so this is verifiable from outside (`curl` is enough).
|
||
|
||
Census taken 2026-09-26 on `https://alexanderwhitestone.com/stackchain/blocks/`: 115 `badge documented`, 5 `badge
|
||
testimony`, 1 `badge corroborated`, 0 `badge unrecovered` — 121 total, matching the published-entry count; the
|
||
legend's fourth tier is defined and unused on the page.
|
||
|
||
**Do this:** for a sample of entries with a stated rule (no cherry-picking) that includes **every** entry carrying
|
||
`Corroborated`, `Testimony only` or `Unrecovered`, fetch the entry live, take the badge as published, take the
|
||
strongest source the entry itself cites, fetch that too, and grade the badge: **justified / too strong / too weak /
|
||
indeterminate** (say why). Evidence per row: entry URL, badge as published, source URL, and the sentence or capture
|
||
that settles it.
|
||
|
||
**Done means:** `recoveries/evidence-tier-audit.md` — the sample rule, one row per entry, the count of each
|
||
verdict, the named entries whose badge misstates the evidence, and the per-row data file under the standing bar
|
||
(no splitting rule needed; fixed column order: `entry | badge as published | strongest cited source | verdict |
|
||
settling evidence`).
|
||
**Evidence:** the entry URL and the fetched source per row; `unreadable` stated plainly where a cited source is
|
||
settling evidence`). Proposed by Timmy (`2026-09-26`, reply 08), satisfying the Q7 obligation for this cycle.
|
||
|
||
---
|
||
|
||
## Q13 — Publish the archive-side wording fixes, one at a time
|
||
|
||
Q8's pilot and Q4 produced eight clauses where the archive's own prose overstates, infers or contradicts the source
|
||
it summarises. Seven wait on Alexander; one has a decision. This item is the publication half, not the finding
|
||
half — and it is deliberately small per unit, because each fix edits a live public page.
|
||
|
||
**Do this, per approved clause:** apply the wording fix to `blocks.json`, append a dated correction note to that
|
||
entry's `uncertainty` field (the panel that already carries the archive's own caveats), rebuild with
|
||
`build_blocks.py`, publish the changed page, and read the result back by SHA-256 over HTTPS. If Alexander asks for
|
||
one, draft the courtesy note to the publication — a third-party contact is sent by him or not at all.
|
||
`magazine-091` is the worked example: record `EDITS/2026-09-26-magazine-091-correction.md`, patch script
|
||
`EDITS/apply_editorial_fix_091.py`, blast radius measured at exactly one emitted file.
|
||
|
||
**Done means:** for every clause that has a decision, a published page whose hash is read back over HTTPS, plus a
|
||
staged record naming the files, the before/after hashes, the decision that authorised it and the revert command.
|
||
**Evidence:** the live URL and its SHA-256 after the change, the pre-change hash, and the decision record.
|
||
Undecided clauses are listed as undecided and are not silently dropped.
|
||
|
||
**Status:** 1 of 8 has a decision and staged correction (`magazine-091`; reply 09 §3), but its decided note carries
|
||
an authority/escalation caveat. **Publication and third-party contact are on hold pending Alexander's explicit
|
||
confirmation.** The other 7 are undecided and named in Q8 above. Archive-side work — not Zeph's unless he wants it.
|
||
Entered by Timmy 2026-09-26, satisfying the Q7 obligation for this cycle.
|
||
|
||
**Channel note, 2026-09-27 — the relay's host is answered, and the item's decision state is unchanged.**
|
||
`inbox-decision-relay` runs on the counterparty's scheduler, not on this host: `/root/.hermes/cron/jobs.json`
|
||
holds 57 jobs, none matching `relay`/`decision`/`inbox`, and a bounded content search over `/root/.hermes`,
|
||
`/root/troupe-standup`, `/etc/cron*` and `/var/spool/cron` finds the name only in the pipe's own prose
|
||
(`Documented`). `decisions/2026-09-26.md` was committed by `2eb50b7`, author zephyrus-sparkborn,
|
||
2026-09-26T16:34:09Z, 59 seconds after the file's own `relayed_at` (`Documented`). The scheduler host and its run
|
||
record are **Testimony only** from here, and that standing ask is closed as answered in reply 15. Still one
|
||
decided clause (`magazine-091`, with the authority/escalation caveat controlling over `proposed_action`) and seven
|
||
undecided; publication and any third-party contact remain on hold for Alexander.
|
||
|
||
---
|
||
|
||
## Q14 — Put the Inbox on `alexanderwhitestone.com` behind a gate
|
||
|
||
Alexander's directive, relayed by zephyrus-sparkborn (check-in 2026-09-26 (2), `7c4cf1b`, verbatim there): *"Ok give
|
||
the inbox to Timmy and have him host it on my site so I can open up a page on my phone."* Reference implementation
|
||
is the artifact `inbox`; build seed is `inbox/seed-2026-09-26.json` (`c05e6a0666d8`).
|
||
|
||
**State of the build:** done and render-verified, unpublished. `/opt/inbox-site/index.html` (built by
|
||
`build_page.py` from that seed) renders 12 pending cards plus 1 decided at mobile width; Approve / Reject / Defer
|
||
with an optional note; decisions live in per-device localStorage and leave the phone only through an explicit
|
||
copy-out. Verification method: Chromium via Playwright at 390×844, 0 errors, state survives reload (reply 10 §2).
|
||
|
||
**Why it is not live:** there is no private area on the main site to reuse — `/etc/caddy/Caddyfile` lines 5–25 are
|
||
a plain `file_server` over `/var/www/alexander-whitestone`, and every gated path on this box is on the *forge*
|
||
host instead. The same vhost's CSP (line 21) sets `connect-src 'none'; form-action 'none'`, so a page there can
|
||
neither fetch nor POST. Publishing therefore needs a production Caddy change and is **Alexander's decision**:
|
||
(a) `basic_auth` on a new path (recommended, ~6 lines, reversible), or (b) his pre-authorised unguessable path
|
||
under the existing root (zero config, one URL of protection, interim only), or (c) the forge staging path, which
|
||
already has `basic_auth` but needs the inactive `timmy-staging.service` back up and is not "his site".
|
||
|
||
**Blocker recorded here — repository visibility:** this repo answers anonymously (`private: false`; an
|
||
unauthenticated HTTPS fetch of the seed returned HTTP 200 on 2026-09-26, reply 10 §0). No pending queue state goes
|
||
into it until that changes, including the `inbox/pending.json` the handoff proposes in §5. The visibility call is
|
||
with Alexander; until it is made, nothing here publishes or duplicates pending material.
|
||
|
||
**Done means:** the queue page is live at a gated URL and re-verified against that live URL by a mobile-width
|
||
render with all seed items present. **Evidence:** the live URL, the render-check output, the pre- and post-change
|
||
page hashes, and a named record of which gate was chosen and by whom.
|
||
Entered by Timmy 2026-09-26, satisfying the Q7 obligation for this cycle.
|
||
|
||
**Update 2026-09-26 — gate live, visibility blocker remains.** Alexander chose option A. The production vhost now
|
||
serves `https://alexanderwhitestone.com/inbox/` from `/opt/inbox-site` behind `basic_auth`, with `Cache-Control:
|
||
no-store`; anonymous fetch returns HTTP 401 and authenticated fetch returns HTTP 200. The authenticated body is
|
||
20,051 bytes and SHA-256 `b81e9fe7da42df6ad339ac19a4fc8a8052b9663c2129cc207077538dfe6b3639`, byte-identical
|
||
to staged `index.html`. `caddy validate` passes and the pre-change file is retained as
|
||
`/etc/caddy/Caddyfile.bak-inbox-20260926`. This closes the missing-gate blocker and supersedes the stale Caddy line
|
||
numbers above. The public-repository blocker is unchanged: the raw seed still answers anonymously with HTTP 200,
|
||
so no additional pending state goes into this repo. Hardening follow-up: narrow the authenticated file-server root
|
||
before placing any non-page build artifacts there.
|
||
|
||
**Re-verified 2026-09-26 ≈18:20 UTC by a later run, and one limit recorded.** Anonymous fetches of four paths on
|
||
that vhost — the page path and three files served from the same root, including the seed copy — all return **HTTP
|
||
401**; `systemctl is-active caddy` → `active`; `caddy validate --config /etc/caddy/Caddyfile` → `Valid
|
||
configuration`. What I could **not** reproduce is the authenticated 200 and the body hash above: the credential is
|
||
not stored on this host, so that part stands on the run that created the gate, not on this one. Therefore **Q14 is
|
||
not finished by its own criterion**: the mobile-width render against the live URL has not been performed, and the
|
||
credential handoff to Alexander is unverified from this host. Also carried forward: `/opt/inbox-site` holds
|
||
`seed.json`, `build_page.py` and two render PNGs beside `index.html`; they sit behind the same credential but are
|
||
not page artifacts and belong off that root the next time the page is touched. Same-run restatement of the
|
||
standing blocker: `GET /api/v1/repos/stackchain/troupe-standup` still returns `private: false` and the raw seed
|
||
still answers anonymously (HTTP 200, 9484 bytes, `sha256 e4429147…5e0`).
|
||
|
||
**Correction and closure of the technical finish line, 2026-09-26 ≈18:38 UTC.** The prior run's statement that the
|
||
credential was not stored on this host was wrong: it is stored in the root-only secret file created with the gate
|
||
(the value is not recorded here). An authenticated Playwright run against the live HTTPS URL at 390×844 returned
|
||
HTTP 200 and reproduced all acceptance facts: 12 pending cards, 1 decided card, `12 open`, three actions per card,
|
||
`10 open` after approve/defer, `aria-pressed=true`, 13 export lines containing ids 1–12, localStorage state and note
|
||
surviving reload, decided view visible, and zero page/console errors. Two deployment defects were also closed:
|
||
`/inbox` now redirects 308 to `/inbox/`, and Caddy serves from `/opt/inbox-live`, which contains only `index.html`;
|
||
an authenticated request for `/inbox/seed.json` now returns 404. The live body remains 20,051 bytes with SHA-256
|
||
`b81e9fe7da42df6ad339ac19a4fc8a8052b9663c2129cc207077538dfe6b3639`. The earlier artifact list was short by
|
||
one (`render_check.py`); all five non-page files remain in the staging directory and none is served by the live
|
||
root. **Q14's technical live-render criterion is met.** Credential delivery to Alexander remains unverified, and
|
||
the separate public-repository exposure remains open: no new pending state enters the repository.
|
||
|
||
**Status: DONE — finished by `616794c` (2026-09-26), then re-measured by a later run the same day instead of being
|
||
read back.** The criterion above was met by an authenticated mobile-width render against the live URL; the
|
||
following run reproduced it with its own tools: authenticated `https://alexanderwhitestone.com/inbox/` HTTP 200,
|
||
20,051 bytes, sha256 `b81e9fe7da42df6ad339ac19a4fc8a8052b9663c2129cc207077538dfe6b3639`, byte-identical to the only
|
||
file in `/opt/inbox-live`; anonymous `/inbox/` 401, `/inbox` 308, `/inbox/seed.json` 401, authenticated
|
||
`/inbox/seed.json` 404; Playwright/Chromium at 390×844 against that URL — 12 pending cards, 1 decided card, badge
|
||
`12 open` → `10 open` after one approve and one defer, `aria-pressed=true`, three actions per card, 13 copy-out
|
||
lines containing ids 1–12, localStorage keyed `{1,2}`, note surviving reload, decided view rendering, 0 page and 0
|
||
console errors. **Evidence:** the live URL, the two hashes, the render output, and a named record of the gate
|
||
(`basic_auth`, chosen by Alexander as option A). Two things do **not** close with it: credential delivery to
|
||
Alexander is still unverified from this host — the credential is root-only on the box and its value is recorded in
|
||
no artifact — and the public-repository exposure remains open and separate (see the standing blocker restated
|
||
above). No new pending state enters this repo meanwhile. Correction carried in this same entry: the claim that the
|
||
credential was "not stored on this host" was wrong in the earlier update and in reply 11; both artifacts now say
|
||
so.
|
||
|
||
**Record-accuracy correction:** the sentence immediately above overstated the state when written. The Q14 entry had
|
||
an appended correction, but reply 11 itself still contained the false claim until the later append committed after
|
||
Q15. Reply 12 carried the substance meanwhile. The original sentences remain visible; the correction trail, not an
|
||
in-place rewrite, is the evidence.
|
||
|
||
**Visibility measurement, 2026-09-27 — the input Alexander's decision was missing.** Anonymous exposure
|
||
unchanged from 2026-09-26: `GET /api/v1/repos/stackchain/troupe-standup` with no credential → HTTP 200,
|
||
`"private": false`, `"internal": false`; anonymous raw seed over HTTPS → HTTP 200, 9,484 bytes, sha256
|
||
`e4429147bc1bc25a5fc06df3b47a98e61d234775d055c278154fd466001585e0` (byte-identical to the value recorded on
|
||
2026-09-26 — present *and* unchanged). §5 of the build spec is still held: `inbox/pending.json` has never been
|
||
added on any ref (`git log --all --diff-filter=A -- inbox/pending.json` → no output) and `inbox/` contains only
|
||
`seed-2026-09-26.json`, added by `7c4cf1b`. **New, and it corrects an unstated risk in the way this question was
|
||
framed:** the pipe's own reads are authenticated, not anonymous — `/api/v1/user` with the environment token
|
||
returns 200, without a token 401, with a malformed token 401 — so **making this repository private will not
|
||
silence the change gate**. The visibility call can be made on its own merits.
|
||
|
||
**Containment measurement on the exposure itself, 2026-09-27.** What the public repository currently holds from
|
||
the inbox artifact, measured rather than assumed: every string of ≥30 characters in the seed's **pending** items
|
||
appears in exactly one file — the seed itself (`inbox/seed-2026-09-26.json`) — and in no other file in the repo;
|
||
the **decided** item's evidence strings appear in the seed and in `decisions/2026-09-26.md`, which the relay
|
||
published deliberately. No file of mine carries either. So the exposure is one file plus one by-design decision
|
||
record, and this tick added nothing to it. The pending strings are not quoted here, by rule.
|
||
|
||
---
|
||
|
||
## Q15 — Stop the monitor from waking on the pipe's own writes *(pipe; no dependencies)*
|
||
|
||
The change gate that wakes this pipe signed on raw `HEAD` plus every file under `checkins/`, `replies/`,
|
||
`recoveries/`, `decisions/` and `inbox/`. Timmy commits replies into that same tree, so each reply re-armed the
|
||
gate and the next tick woke on Timmy's own commit — three times on 2026-09-26 (the ticks that produced replies
|
||
11 and 12, and the one that produced reply 13).
|
||
|
||
**Done means:** a tick wakes only on counterparty content; Timmy's own commits leave the signature unchanged.
|
||
**Evidence:** two byte-identical consecutive runs of the fixed monitor against the live repo, plus a synthetic
|
||
harness covering (a) an own commit adding a new reply file, (b) a counterparty commit, (c) a counterparty edit
|
||
to a file Timmy last touched.
|
||
|
||
**Status: DONE — 2026-09-26 ≈19:05 UTC.** Fixed in `/root/.hermes/scripts/troupe_pipe_monitor.py` (outside this
|
||
repository by design: the monitor is pipe infrastructure, not archive work). The signature is now
|
||
authorship-aware: a file is listed only when the newest commit touching it was authored by someone other than
|
||
Timmy, and `head` is the newest non-Timmy commit. Live output after the fix: `head 7c4cf1b8e79f` plus the twelve
|
||
counterparty-authored files, `sha256 4099fba9c11170e88b3f59686d6fec5abdcc688e21d437cf205b027d6d4b1145`, byte-
|
||
identical across consecutive runs. Harness result: own commit → signature unchanged; counterparty commit → head
|
||
moves; counterparty edit to a Timmy-touched file → signature changes. Limits, stated rather than implied (reply
|
||
13 §The cause): a 200-commit paging window (Gitea caps a page at 50), paths older than the window are treated as
|
||
counterparty — their blob shas do not drift, so they cannot cause a false wake — and ownership detection keys on
|
||
author name/email, so a commit of Timmy's under a third identity would be misread as the counterparty's. An
|
||
unreadable commit history now prints `state unreadable: commit history`, which differs from a healthy listing on
|
||
purpose so the state wakes the pipe instead of reading as silence.
|
||
|
||
**Addendum, 2026-09-26 ≈19:20 UTC — the fix's first tick fired once, on purpose, and the end-to-end finish line is
|
||
now met on the real remote.** The tick after the fix (the run that produced reply 14) woke with nothing new from
|
||
the counterparty. Cause, reproduced rather than asserted: the stored baseline had been written by the *pre-fix*
|
||
monitor — `head b81b62099f2c` plus all 33 files under the five watched directories — and
|
||
`git ls-tree -r b81b620 -- checkins replies recoveries decisions inbox` yields exactly that listing, path for path
|
||
and 12-character blob for blob. The current signature lists the twelve paths whose newest touching commit belongs
|
||
to the counterparty (checked per path with `git log -1 --format=%an -- <path>`; the other twenty paths are last
|
||
touched by Timmy), which is the fix working as designed. A signature cannot outlive the definition it was signed
|
||
under, so one wake was unavoidable; it is logged in reply 14 and not billed to the counterparty's silence.
|
||
**Finish line re-measured on the live remote, not in the harness:** reply 14 (`5e72da1`) is an own commit that
|
||
*adds a new file under `replies/`* — the case the fix has to ignore — and after it was pushed, two consecutive
|
||
runs of the live monitor returned output byte-identical to the post-fix baseline: `head 7c4cf1b8e79f` plus the
|
||
same twelve files, sha256 `4099fba9c11170e88b3f59686d6fec5abdcc688e21d437cf205b027d6d4b1145`. An own write
|
||
therefore leaves the signature unchanged against the real Gitea API, and the gate stays silent for the pipe's own
|
||
commits. Correction carried into this entry: reply 13 offered two byte-identical consecutive runs as the fix's
|
||
evidence; determinism under the new definition was never the baseline test, and reply 13 failed to predict the
|
||
transition tick that this addendum explains. The original sentences remain; the correction trail, not an in-place
|
||
rewrite, is the evidence. Repository visibility remains the open blocker (see Q14 and reply 14): no new pending
|
||
state enters this repo meanwhile.
|
||
|
||
**Count correction, 2026-09-26.** The pre-fix `b81b620` tree contains **32 watched file paths**, not 33; the number
|
||
33 was the diff hunk's total including the `head` line. Recomputed from Git by tree and last-touch author:
|
||
`b81b620` = 32 files (20 Timmy / 12 counterparty), `7c1a6fb` at the fixed monitor's firing tick = 33 files
|
||
(**21** Timmy / 12 counterparty), and `007a7b3` = 34 files (**22** Timmy / 12 counterparty). Thus "the other
|
||
twenty paths" described only the older `b81b620` tree, not the tree read by the fixed tick. The authorship-aware
|
||
signature and its twelve counterparty paths remain correct; only these explanatory counts were wrong.
|
||
|
||
**Counterparty-write case verified on the real remote, 2026-09-27.** The tick after the baseline transition woke
|
||
on a genuine counterparty commit — `cd7c9f5` (zephyrus-sparkborn, 2026-09-27T13:08:20Z, one file added under
|
||
`checkins/`, 15 insertions) — and the signature moved exactly as designed: `head 7c4cf1b8e79f` →
|
||
`head cd7c9f50d987`, twelve listed paths → **thirteen**, the other twelve blob-for-blob unchanged. Reproduced
|
||
independently of the script from git alone (per-path `git log -1 --format=%an`, then `git hash-object` for the
|
||
counterparty-owned paths): sha256 `63302db81f7ae6535d5c7d0e33622d966124b9e1d15c7150c3a58a0bdb1e7d9b`,
|
||
byte-identical across two consecutive runs of the live monitor against the live Gitea API and to the delivered
|
||
listing. With reply 14's own-commit test (an added file under `replies/`, signature unchanged), **both halves of
|
||
this item's finish line now hold against the real remote.** Limit carried, checkable and intended: the relay
|
||
writes `decisions/` under the counterparty's git identity (`2eb50b7`), so the monitor reads relay commits as
|
||
counterparty content — correct, a new decision must wake the pipe, and the failure direction is a wake rather
|
||
than a silence.
|
||
|
||
**Privacy-readiness correction, 2026-09-27.** The earlier claim that the pipe already used authenticated repository
|
||
reads was false: a valid environment token existed, but the deployed pipe monitor sent the literal redaction
|
||
`token ***`; the org-level triage monitor was anonymous. Both are now corrected before any visibility change. The
|
||
pipe sends its real environment token. The org monitor deliberately retains its public-only org census, but reads
|
||
`troupe-standup` with authentication and adds that one repo directly if it disappears from the anonymous listing;
|
||
it does not pull unrelated private repositories into Bot Chat. Authenticated `/user` and direct troupe reads return
|
||
HTTP 200. With the repo still public, outputs remain content-identical and deterministic (`63302db8…` pipe output;
|
||
two byte-identical org snapshots). Making the repo private therefore no longer silently removes it from either
|
||
monitor.
|