Skip to content

docs: post-mortem for v1.15.0 — the spine named in August recurred five times in eight days (C-343) - #509

Merged
Polichinel merged 1 commit into
developmentfrom
docs/post-mortem-v1150
Oct 20, 2026
Merged

Polichinel merged 1 commit into
developmentfrom
docs/post-mortem-v1150

Conversation

@Polichinel

Copy link
Copy Markdown
Contributor

reports/post_mortems/2026-10-20_release_v1150.md, following the convention of
2026-08-03_releases_v190_to_v1110.md.

Why this one is worth reading

The v1.11.0 post-mortem named the spine running through everything it reported:

"a written record that was true when written and stopped being true without anything failing."

It also opened by noting that nine releases had shipped without a post-mortem, and that the
convention had recorded itself failing before failing nine more times.

Both halves recurred. Three of the four releases since are unwritten and now never will be. And
the spine produced five fresh instances in eight days, all in C-343 — the fifth found inside
the register entry created to track the first
, including in its Trigger: field, the line an
operator is meant to act on.

The conclusion the document records is not "try harder". It is that nothing we run detects this.
Every instance in this window was found by a human asking an unprompted question, or by an author
re-reading their own work.

Scope

Release v1.15.0 — published and deployed 2026-10-20
Commits 8 in v1.14.0..main
PRs #500, #502, #503, #504, #506, #507
Issues opened #501 (open), #505 (auto-opened, auto-closed), #508 (open)

What it covers

  • The measurement that started it. The 2026-10-16 run took 5h50m; the zarr export alone was 5h07m — 88% of the pipeline, against ADR-041's recorded ~57 minutes. A 5× regression, four months old, that nothing reported. Found because a human pasted a log.
  • A release whose wheel contains no new code. git diff --name-only v1.14.0 origin/development -- src/ is empty. The release exists to carry a script and corrected guides to a tag-deployed server, and the document says so plainly rather than letting the version number imply otherwise.
  • The spine, round by round, including how each round fixed the previous round's blind spot — and docs: a count is a copy too — four places still said deploying is three steps (C-343) #507's finding that four prior rounds audited content and never cardinality.
  • An incident section for a mistake made in this window: reporting that the instrumentation would reach production "automatically" when the server runs a tag that did not contain it. C-343 displaced one layer up, committed three days after the same author wrote round four.

It records what went well, not only what failed

The gaps it names and does not fix

  1. Nothing compares durations across runs — check_health.py has 26 freshness references and zero duration references. Flagged, not built: one datapoint does not justify a trend watcher.
  2. Nothing compares what the server runs against what the repo expects, at any layer. Story 3: Run the deploy gates somewhere other than one laptop (C-341) #424's gate would not have caught this window's variant.
  3. Audit dimensions are chosen ad hoc, which is why five rounds were needed rather than one.
  4. docs/sources/shdi.md says "we do not redistribute GDL data" — the served store broadcasts four GDL values verbatim #508 — docs/sources/shdi.md says "we do not redistribute GDL data" while the served store broadcasts four GDL values verbatim. The same spine in a different domain.

Verification

Check Result
bash docs/validate_docs.sh PASSED
All 14 register-reading test files 41 passed

Documentation-only; no code, no tests, no behaviour. Every figure is cited to a file rather than
recalled, and the release count was corrected against git tag before committing — the first
draft said "thirteen consecutive releases" from reasoning rather than counting, which would have
been the document's own spine inside the document.

Refs #501, #508.

🤖 Generated with Claude Code

https://claude.ai/code/session_01EfeuULbPTqrx4qtNki5dy9

…ve times in eight days (C-343)

Covers the export phase instrumentation (#501/#502), four rounds of C-343
correction (#497-#500), the release/publish/deploy of v1.15.0, a fifth C-343
round found while writing this up (#507), and a licensing contradiction found
while onboarding an external consumer (#508).

The v1.11.0 post-mortem named the spine running through everything it
reported: "a written record that was true when written and stopped being true
without anything failing." Both it and its companion observation — that the
post-mortem convention keeps failing to be applied — recurred.

Three of the four releases since are unwritten and now never will be. The
spine produced five fresh instances in eight days, all in C-343, the fifth
found inside the register entry created to track the first, including in its
Trigger: field. A sixth variant was committed by the author of the fourth
correction three days later: merging the instrumentation is not deploying the
instrumentation.

The conclusion recorded is not "try harder". Every instance in this window was
found by a human asking an unprompted question or by an author re-reading
their own work. Five rounds have produced a procedure that is right and
nothing that notices when a copy of it goes wrong.

Also records what went well rather than only the failures: block 4 of the
deploy procedure executed successfully for the first time since it was
written, the #501 falsification criterion was committed before any production
figure existed, three guards were sabotaged and confirmed red, and the clean-
venv publish check caught a defect in itself rather than a false alarm on the
release.

Verification: validate_docs.sh PASSED; all 14 register-reading test files
41 passed. Every figure quoted is cited to a file rather than recalled; the
release count was corrected against `git tag` before committing.

Refs #501, #508.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfeuULbPTqrx4qtNki5dy9
@Polichinel
Polichinel merged commit 5f69983 into development Oct 20, 2026
6 checks passed
@Polichinel
Polichinel deleted the docs/post-mortem-v1150 branch October 20, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant