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
9 changes: 9 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 2026-08-12 — lance-graph #927 (MERGED) — board hygiene for #926 + the living-vs-ledger correction rule

### Current Contract Inventory — no new types (board entries + one report correction)

- **Fisher-z ring-mean ratio is 4.7×, not 5×** (18.07 / 3.84). Caught by verifying the new board entry's own figures against the committed JSONs before landing it: **9 of 10 exact, this was the tenth** — a 6 % overstatement in the favourable direction.
- **⚠ LIVING DOCUMENTS vs APPEND-ONLY LEDGERS take OPPOSITE correction discipline.** A **living document** (report, code, JSON, PR description) is landed on directly → **fix every copy**. An **append-only ledger** is read newest-first and its value is the audit trail → **freeze the merged entry, correct in a NEW one**. I edited a merged `EPIPHANIES` entry in place and unmarked while citing the *grep-for-its-twins* rule; reverted same-PR. **A correct rule generalized past its domain** — third instance of that shape in this repo (#921's doctrine-vs-domain, this arc's Fisher-z rank/tail-vs-level).
- **One-command append-only audit:** `git diff origin/main..HEAD -- .claude/board/` — **zero removed lines proves a pure prepend**, since a prepend cannot delete. Measured +13/−0, +10/−0, +0/−0 across the three board files.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

base=origin/main

for file in .claude/board/LATEST_STATE.md .claude/board/PR_ARC_INVENTORY.md; do
  old="$(mktemp)"
  new="$(mktemp)"
  trap 'rm -f "$old" "$new"' EXIT

  git show "$base:$file" >"$old"
  git show "HEAD:$file" >"$new"

  python - "$old" "$new" "$file" <<'PY'
from pathlib import Path
import sys

old = Path(sys.argv[1]).read_bytes()
new = Path(sys.argv[2]).read_bytes()

if not new.endswith(old):
    raise SystemExit(f"{sys.argv[3]} is not a pure prepend")

print(f"{sys.argv[3]}: pure prepend")
PY

  trap - EXIT
  rm -f "$old" "$new"
done

Repository: AdaWorldAPI/lance-graph

Length of output: 253


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

base=origin/main

git diff --numstat "$base..HEAD" -- '.claude/board/*.md'
git diff --name-only "$base..HEAD" -- '.claude/board/*.md'

python3 - "$base" <<'PY'
import subprocess
import sys

base = sys.argv[1]
files = subprocess.check_output(
    ["git", "diff", "--name-only", f"{base}..HEAD", "--", ".claude/board/*.md"],
    text=True,
).splitlines()

for file in files:
    old = subprocess.check_output(["git", "show", f"{base}:{file}"])
    new = subprocess.check_output(["git", "show", f"HEAD:{file}"])
    print(f"{file}: suffix_preserved={new.endswith(old)}")
PY

Repository: AdaWorldAPI/lance-graph

Length of output: 408


Replace the unsupported prepend proof.

Both files preserve the original content as a suffix, but +N/-0 alone does not prove a prepend. Use a suffix-preservation or exact hunk-position check in both entries.

📍 Affects 2 files
  • .claude/board/LATEST_STATE.md#L7-L7 (this comment)
  • .claude/board/PR_ARC_INVENTORY.md#L10-L10
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/board/LATEST_STATE.md at line 7, Replace the unsupported “+N/−0
proves a pure prepend” claim in both .claude/board/LATEST_STATE.md:7-7 and
.claude/board/PR_ARC_INVENTORY.md:10-10 with a suffix-preservation or exact
hunk-position check that verifies the original content remains unchanged as a
suffix; update both entries consistently.

- **Note on assurance:** #927 was a draft through four review cycles, so **no automated reviewer read these entries** — CodeRabbit skips drafts and the explicit trigger hit the rate limit. The figures rest on self-verification against the committed JSONs.

## 2026-08-12 — lance-graph #926 (MERGED) — the storm spine, the 12-byte L4 carrier, and the propagation failure mode

### Current Contract Inventory — no new types (probes + report + board; zero Rust, zero product code)
Expand Down
15 changes: 15 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
## 2026-08-12 — lance-graph #927 (MERGED) — #926's board hygiene, one rounding caught by self-verification, and the rule I broke while citing it

- **Added.** `PR_ARC_INVENTORY` + `LATEST_STATE` entries for the merged #926. One correction to `COMET_TAIL_REPORT.md` §6.1. **This entry exists because #927 was MIXED, not hygiene-only** — it landed hygiene *and* a correction, and the rule's termination clause exempts only the pure case. #927's own PR description called itself "hygiene-only"; that was written before the correction landed and was wrong by the time it merged.
Comment on lines +1 to +3

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Create a new #928 record for the correction to merged #927.

Both files use #927 as the identity of the new entry, although the PR objective identifies this change as PR #928 recording merged PR #927. This can create a duplicate or ambiguous immutable ledger record.

  • .claude/board/PR_ARC_INVENTORY.md#L1-L3: rename the new entry to #928 and state that it records the correction history for merged #927.
  • .claude/board/LATEST_STATE.md#L1-L3: use the same #928 entry identity and retain #927 as the corrected subject.

Based on learnings: each PR gets its own immutable entry, and corrections append as a new PR entry.

📍 Affects 2 files
  • .claude/board/PR_ARC_INVENTORY.md#L1-L3 (this comment)
  • .claude/board/LATEST_STATE.md#L1-L3
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/board/PR_ARC_INVENTORY.md around lines 1 - 3, Rename the new entry
in .claude/board/PR_ARC_INVENTORY.md lines 1-3 to `#928` and explicitly state that
it records the correction history for merged `#927`. Update the corresponding
entry in .claude/board/LATEST_STATE.md lines 1-3 to use `#928` as the entry
identity while retaining `#927` as the corrected subject; preserve the immutable
one-entry-per-PR convention.

Source: Learnings

- **The rounding `[G]`.** Before landing a permanent append-only record, every figure in the new entries was verified against the committed JSONs. **Nine of ten matched exactly** — 0.9434/0.9090 spine, 0.07 Pa carve-D RMSE delta, +1.59 Pa carve-D bias, +92.76 Pa carve-A bias, 0.9129 carve-A R², 0.684 CT-F14, 8.3× storm-tail, 138.4× L4x penalty. **The tenth did not: "5× worse" where 18.07 / 3.84 = 4.71×** — a 6 % overstatement in the FAVOURABLE direction, one commit from being frozen. Fixed in the report and in both new board entries.
- **⊘ Locked — LIVING DOCUMENTS and APPEND-ONLY LEDGERS take OPPOSITE correction discipline, and I applied the wrong one.** #926's headline lesson was *"when correcting a claim, grep for its twins"*. Carrying that into `EPIPHANIES.md` I edited a **merged** entry's number in place, **unmarked** — history rewriting, precisely what an append-only ledger exists to prevent. Reverted in the same PR.
- **A living document** (report, code, JSON artifact, PR description) is landed on directly by a reader, so a stale claim there is a trap → **correct every copy**.
- **An append-only ledger** is read newest-first and its value IS the audit trail → **freeze the merged entry; the correction goes in a NEW entry**. Erasing the old number destroys the evidence that it was ever believed.
- Getting this wrong in the safe direction leaves one stale number. Getting it wrong the way I did **erases the record that the number was ever wrong.**
- **The failure mode is a correct rule generalized past its domain** — the same shape as `E-…-A-DOCTRINE-WRITTEN-FOR-ONE-DOMAIN-IS-NOT-AUTOMATICALLY-RIGHT-FOR-THE-NEXT` (#921), and the same shape as this arc's Fisher-z finding (right for a rank/tail read, wrong for an interpolate/level read). Three instances now; the pattern is not about any one rule.
- **The falsifier that closed it `[G]`.** "Where else did I do this?" was answered by measurement, not memory: `git diff origin/main..HEAD` on all three board files gave **+13/−0, +10/−0, +0/−0**. **Zero removed lines is the structural proof of a pure prepend** — a prepend cannot delete, so no historical entry was rewritten anywhere in the PR. Worth reusing: it is a one-command append-only audit.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Verify the prepend instead of only counting deletions

This audit can falsely pass when a future change inserts a new section in the middle or at the end of a ledger: such a diff also has zero removed lines, so deletion counts establish only that the change is additive, not that it is a pure prepend. The recorded measurement is also inaccurate for the referenced #927 range: comparing a4e264c..3dae97b yields +13/-0, +17/-0, and +0/-0, rather than the stated +13/-0, +10/-0, and +0/-0. Please use a positional check and record the actual counts before promoting this as the reusable append-only audit.

Useful? React with 👍 / 👎.

- **Process note.** #927 sat as a draft through four review cycles — CodeRabbit skips drafts, and an explicit `@coderabbitai review` was consumed by the rate limit — so **no automated reviewer ever read these entries**; the figures rest on the self-verification above. The operator marked it ready and merged it. Cursor Bugbot was usage-limited throughout (billing, not a finding).
- **Deferred.** No EPIPHANIES entry minted for the living-vs-ledger distinction: recording it here keeps the follow-up PR **pure hygiene**, which the termination clause discharges. Promote it to EPIPHANIES on request — the content is above, not lost.

**Confidence (2026-08-12):** merged. The rounding fix is `[G]` (arithmetic). The living-vs-ledger distinction is `[G]` as a rule of this repo's own governance and `[H]` as a general claim about documentation. **The chain terminates with the pure-hygiene PR that records THIS entry** — no type, plan, deliverable, epiphany or code there, so per the termination clause it owes nothing further.

## 2026-08-12 — lance-graph #926 (MERGED) — the storm spine (90.9–94.3 %), the 12-byte L4 carrier, and five corrections that were each a claim fixed in ONE of its homes

- **Added.** `probes/weather-p1/COMET_TAIL_REPORT.md` (the canonical document: falsification ledger §4–§5.11, **§6.1** the L4 carrier, **§6.2** the three registers, §9 the spine/moderators reframe) + **10 probe scripts with committed JSON results**. EPIPHANIES: `E-THE-HEADLINE-NUMBER-MEASURED-A-MODEL-NOBODY-CLAIMED-1`, `E-SPINE-FOUND-MODERATORS-MISSING-1`, `E-THE-BYTE-WAS-ONLY-THE-SELECTOR-THE-PAIR-IS-THE-CARRIER-1`, `E-ZERO-FOR-ELEVEN-…` cross-refs. **9 919 insertions / 28 files: 47 % results-JSON, 36 % probe scripts, 17 % prose — zero Rust, zero library/product code, no test harness.** This PR changes no product surface; it is measurement apparatus and its output.
Expand Down