Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 28 additions & 2 deletions docs/research/2026-09-13-zip-post-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,36 @@ Future preview at `PUBLICATION_AS_OF=2026-09-28T00:00:00Z` built successfully.
Root inspected full-page screenshots at1440px Latte and390px Dracula: readable
native flow/table, no horizontal page overflow and no missing assets. Targeted
axe WCAG2/2.1/2.2AA found zero violations in both views, with the repository's
existing syntax-highlighted-code contrast exclusion. The visual is a specific
mechanism diagram after the introduction; no decorative doodle is necessary.
existing syntax-highlighted-code contrast exclusion. The mechanism diagram remains after the introduction. The author subsequently
requested a zine illustration; the visual follow-up below records that addition.

Design audits, Astro check and lint passed. The seven-stage coverage JSON binds
the final file hash. Production build and required PR checks must pass before
merge; today’s build must exclude the future post. No general archive-ready
verdict is implied for the older scanning article merely because it is linked.

## Zine illustration follow-up

Resolved skill: `.agents/skills/blog-visuals/SKILL.md` in this checkout. Gemini
3.1 Pro via agy generated the requested illustration using its `generate_image`
tool in an isolated temporary directory. Root inspected the actual output before
processing it with `scripts/zine-art/ink-mask.py --width 480`.

The open box contains a ball and a key; its inventory card depicts only the ball.
This is a metaphor for omitted entries, not an additional experimental result.
The caption, “The inventory forgot the key,” adds no technical or personal claim.
Root reviewed that caption for voice, attribution and claim scope; the existing
research, argument and artifact reviews remain applicable to unchanged content.

Asset: `astro-site/public/assets/doodles/zip-inventory.png`, 480×502 pixels,
56,996 bytes, pure-black luminance with alpha spanning 0–255 and no metadata.
The markup uses existing theme-mask classes, the measured aspect ratio, a
responsive width and `aria-hidden` because the prose and accessible flow already
carry its meaning. No stylesheet or publication-date change was needed.

Independent reviewer `music_pilot` inspected the actual mask, metaphor and markup
and found no blockers. Root inspected rendered screenshots at 1440px Latte and
390px Dracula: the image is visible, centered and recolored appropriately, with
no horizontal overflow. The PNG returned HTTP 200. Targeted axe WCAG 2/2.1/2.2 AA
reported zero violations in both views using the existing code-block contrast
exclusion. Future-preview build and all design audits passed again.
16 changes: 10 additions & 6 deletions docs/research/2026-09-13-zip-prepublish.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"post": "src/posts/2026-09-28-zip-index-stream-reader-disagreement.md",
"sha256": "2dd94a2ef667752063295a2b970115d755f600a701308b43438643bf70d2782c",
"sha256": "aef8ade14cf225425d9d49b9a63921908a69982d3a064d1e3dfe849fb08039e2",
"reviewed_at": "2026-09-13",
"stages": {
"blog-overlap": {
Expand All @@ -16,23 +16,26 @@
"verdict": "pass",
"reviewer": "root and music_pilot",
"evidence": [
"Primary APPNOTE6.3.10\u00a74.3.2,Java21,Python3.12,USENIX2025\u00a7\u00a72/4; recomputed6fixtures18runs17success1rejection and marker/sequence distinctions; source chronology precedesSep28. Full claim ledger2026-09-13-zip-post-review.md."
"Primary APPNOTE6.3.10\u00a74.3.2,Java21,Python3.12,USENIX2025\u00a7\u00a72/4; recomputed6fixtures18runs17success1rejection and marker/sequence distinctions; source chronology precedesSep28. Full claim ledger2026-09-13-zip-post-review.md.",
"Root reviewed added inventory metaphor and caption: no new experimental or personal claim, concise voice, no attribution issue; research and article prose unchanged."
]
},
"blog-llm-tells": {
"coverage": "manual",
"verdict": "pass",
"reviewer": "music_pilot and root",
"evidence": [
"Whole post reviewed against canonical voice; direct project introduction, scoped results, no forced humor/unsupported anecdote; no material prose findings. Nexus documentation expert also reviewed prose, its wrong Mermaid rule rejected."
"Whole post reviewed against canonical voice; direct project introduction, scoped results, no forced humor/unsupported anecdote; no material prose findings. Nexus documentation expert also reviewed prose, its wrong Mermaid rule rejected.",
"Root reviewed added inventory metaphor and caption: no new experimental or personal claim, concise voice, no attribution issue; research and article prose unchanged."
]
},
"blog-nda-check": {
"coverage": "manual",
"verdict": "pass",
"reviewer": "music_pilot and root",
"evidence": [
"Whole frontmatter/prose/diagram/commands reviewed: synthetic public lab only; no employer incidents, agencies, identifying private systems or invented homelab experience."
"Whole frontmatter/prose/diagram/commands reviewed: synthetic public lab only; no employer incidents, agencies, identifying private systems or invented homelab experience.",
"Root reviewed added inventory metaphor and caption: no new experimental or personal claim, concise voice, no attribution issue; research and article prose unchanged."
]
},
"blog-argument-shape": {
Expand All @@ -46,9 +49,10 @@
"blog-visuals": {
"coverage": "manual",
"verdict": "pass",
"reviewer": "root",
"reviewer": "root and music_pilot",
"evidence": [
"Native flow plus comparison table reviewed against claimledger. Full-page1440Latte/390Dracula screenshot inspection; HTTP200 main/post, no horizontal overflow; targetedaxeAA zero violations bothviews. Futurepreview build and design audits passed."
"Native flow plus comparison table reviewed against claimledger. Full-page1440Latte/390Dracula screenshot inspection; HTTP200 main/post, no horizontal overflow; targetedaxeAA zero violations bothviews. Futurepreview build and design audits passed.",
"Zine follow-up: Gemini via agy generated box/inventory metaphor; actual 480x502 PNG inspected, 56996 bytes, pure-black luminance, alpha 0-255, no metadata. Independent image/markup review passed. Root rechecked 1440px Latte and 390px Dracula rendered masks, asset HTTP200, no overflow and zero targeted axe AA violations; future build and design audits passed. See zine follow-up in 2026-09-13-zip-post-review.md."
]
},
"blog-artifact-check": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ The [ZIP lab](https://github.com/williamzujkowski/research-labs/tree/68874f0a840

The bytes never change. The readers disagree about which records belong in their list of files. If a content check and a later consumer build those lists differently, hashing the original upload does not resolve that disagreement. The lab isolates that boundary without running a scanner or extracting anything to disk.

<div class="zine-doodle" aria-hidden="true" style="--doodle: url('/assets/doodles/zip-inventory.png'); width: min(240px, 62%); aspect-ratio: 480/502; margin: 2rem auto 0.5rem;"></div>
<p class="hand-note" style="text-align: center; display: block;">The inventory forgot the key.</p>

<div class="flow" role="group" aria-label="Observed result for an archive with an unindexed local entry">
<div class="flow-node"><b>Identical ZIP bytes</b><i>One indexed entry; an extra local entry</i></div>
<div class="flow-branch" role="group" aria-label="Reader observations">
Expand Down
Loading