docs(claude.md): add §6.2 "Tests are specifications" bullet - #18
Merged
Conversation
A passing test must not be weakened or deleted without explicit approval; if a refactor makes a test inconvenient to keep working, add a new test alongside or surface the contract change for approval — never edit the test into compliance. Why this rule, why now: the project is intentionally fully AI-assisted, and AI editors are unusually prone to deleting or weakening inconvenient tests rather than diagnosing the underlying drift. Dave Farley calls this out as a recurring failure mode in his "AI without continuous delivery is a trap" talk; the rule encodes the safety net at the project level so neither human nor AI contributors can erode it incrementally. Footer updated to record the 2026-05-13 revision and to note the informal meta-RFC waiver (precedent: b50067d). This is a doc-only change. No code, tests, or build behaviour affected. mdbook source tree (`docs/`) is untouched, so no mdbook build needed (CLAUDE.md sits at repo root, outside the mdBook).
jensholdgaard
force-pushed
the
docs/claude-md-test-preservation
branch
from
May 13, 2026 20:32
ab2453b to
8043f1b
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new bullet to CLAUDE.md §6.2 codifying that passing tests must not be weakened or deleted without explicit approval, with rationale tied to AI-assisted development risks. Also updates the document footer to record the 2026-05-13 revision and the informal meta-RFC waiver.
Changes:
- New §6.2 bullet "Tests are specifications, not friction"
- Updated footer with revision history including the 2026-05-13 entry and waiver precedent
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
jensholdgaard
added a commit
that referenced
this pull request
Jul 12, 2026
…es as written Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y
jensholdgaard
added a commit
that referenced
this pull request
Jul 12, 2026
… counted runs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y
6 tasks
jensholdgaard
added a commit
that referenced
this pull request
Jul 13, 2026
…aintainer-gated fold-in (#494) * docs(bench): rfc 0031 §9 comparative entry draft (runs #8–#17) §9.13 compiles the RFC 0031 comparative program's honest-metric era (runs #8–#17 on corpus/otel-demo-v8 vs digest-pinned Loki 3.5.3): L1 and L3 provisional must-win passes on both channels, L2 parity-plus storage-side with named levers, the time-window losses published, the Loki flag deviations and nondeterminism recorded, and the §7 freeze inputs listed as open maintainer decisions. Fold-in is maintainer-gated; this is the draft. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(bench): rfc 0031 §9.13 — auditability round: full digest, run #16 row, scoped determinism Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — every quoted ratio carries its raw loki bytes Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — l2 ledger carries its raw loki bytes too Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — full reproduction rows, streaks audit from the entry alone Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — l2 reproduction rows back the quoted band Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — run #13's salvaged pairs are counted; say so Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — deviation flags spelled exactly as passed Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — bytes floor labeled as analog of the latency gate; .11 citation Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — bloom provenance cites impl + amendment; full run table Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — run #18 latency channel: rfc0031.7 passes as written Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(bench): rfc 0031 §9.13 — heading spans #18; pass claim scoped to counted runs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
jensholdgaard
added a commit
that referenced
this pull request
Jul 13, 2026
…orage, F_L6 @3 latency) (#502) * docs(rfc): rfc 0031 §7 — partial freeze: m_l1/m_l3 at 10 (storage), f_l6 at 3 (latency) Frozen where three-plus consecutive equivalence-verified runs prove headroom (L1 77×, L3 21×; window latency floor holds at 0.34/3.43/ 1.32); deferred with NAMED conditions where the data says wait: M_L2 freezes after RFC 0033 lands (until then processed-channel gate at 10, storage informational), M_L4 and F_L7 freeze on first measurement. Window bytes reclassified gated-floor → published diagnostic — the loss is structural, small in absolute terms, and publishing it honestly is the commitment. Calibration evidence: benchmarks.md §9.13 (runs #8–#18). Maintainer delegated the ordering and judgment 2026-07-13. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(rfc): rfc 0031 §3.6/§7 — comparator channels defined; references qualified Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(rfc): rfc 0031 — consistent benchmarks.md formatting Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(rfc): rfc 0031 — channel key labels match benchmarks.md terminology Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(rfc): rfc 0031 §3.6 — channel amendment explicitly supersedes the single-comparator wording Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y * docs(rfc): rfc 0031 §3.6 — two-channel model stated in the primary bullet Also: headChunkBytes described accurately (memory-served, counted so unflushed data is not free) and the loss band cites both the full record (0.003–0.018) and current code (0.007–0.018). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WQY9wfrfRggqSpMLH8Xj3Y --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds one bullet to
CLAUDE.md§6.2 (Testing discipline):Why this rule, why now
The project is intentionally fully AI-assisted. Dave Farley's recent talk on AI-assisted development calls out "deletes inconvenient tests rather than diagnose the failure" as a specific recurring failure mode he's seen. CLAUDE.md §6.2 already lists which tests we write but does not lock in not deleting them. This bullet closes that gap before the integration PRs (cluster + miner widening + Parquet) start putting more load on the test surface.
Meta-RFC waiver (per CLAUDE.md §10)
§10 requires a
meta:RFC for changes to this file. Maintainer (sole contributor) has informally waived for this small additive bullet; precedent is commitb50067d "docs: align CLAUDE.md with present-day repo (meta-RFC informally waived)". The footer is updated to record both the date and the waiver.Verification
CLAUDE.mdis at the repo root, outside the mdBook source tree (docs/) — nomdbook buildneeded.cargo/clippy/testinvocations affected.Test plan
🤖 Generated with Claude Code