rfc: 0012 title: “meta: CLAUDE.md §2 pillar-#2 wording — template mining’s 50–200× is a logical reduction, not on-disk bytes” status: accepted author: Jens Holdgaard Pedersen jens@holdgaard.org drafting-assistance: Claude created: 2026-06-14 supersedes: — superseded-by: —
RFC 0012 — meta: CLAUDE.md §2 pillar-#2 wording
Status note.
accepted(2026-06-14, maintainer-approved + enacted.) TheCLAUDE.md§2 pillar-#2 reword (§3.1) and all three coupled reconciliations (§3.2 —benchmarks.md§2,README.md, RFC 0001 §1) were applied in the enacting PR; RFC 0001’s accepted prose took the recommended factual reword (with the RFC 0011 pointer). The §7 footer changelog line +Last updatedbump landed in the same diff. This meta-RFC required majority maintainer approval perCLAUDE.md’s footer; that gate is satisfied.
This is a
meta:RFC. It proposes a change toCLAUDE.md, which its own footer declares load-bearing: “This document is load-bearing; further changes require ameta:RFC and majority maintainer approval.” PerCLAUDE.md§8.5 (cache discipline) the edit is not made in the drafting session — this RFC specifies the exact change; a maintainer enacts it after approval. Precedent: the §6.2 “tests are specifications” bullet, added via an informalmeta:RFC waiver (commitb50067d, 2026-05-13). This RFC follows the same path, written out in full rather than as an informal waiver.
1. Summary
CLAUDE.md §2 pillar #2 currently reads: “Log lines collapse to
(template_id, params) at ingest time. This is where the 50–200×
compression comes from — before any byte-level codec runs.” That phrasing
reads as an on-disk-bytes claim: that template mining alone yields
50–200× smaller files than the raw corpus, ahead of (and independent of) a
byte codec. RFC 0011 (accepted) established by measurement that this is
false — a whole-stream byte codec (zstd) captures the same redundancy, so
on disk Ourios does not beat zstd (the A1 gate is refuted and demoted to a
diagnostic). Template mining’s 50–200× is a logical reduction (each
line becomes one row keyed by a small, stable template_id), and its
value is realised as query pruning — the benchmark gates B1/B2 — not
as fewer on-disk bytes than a codec. This RFC amends pillar #2 to say so,
so the project’s canonical thesis statement matches its measured reality,
and reconciles the coupled echoes of the same framing elsewhere
(benchmarks.md §2, README.md, and RFC 0001’s summary).
2. Motivation
2.1 The pillar statement is now contradicted by an accepted RFC
CLAUDE.md §2 is the project’s load-bearing thesis: changing a pillar “is
an RFC-level decision.” Pillar #2’s “this is where the 50–200×
compression comes from — before any byte-level codec runs” asserts that
the byte-savings come from template mining, ahead of the codec. RFC 0011
(accepted 2026-06-14) measured the opposite on every corpus class,
including the maximally-templated LogHub HDFS_v1 (ourios 8.3× vs zstd-19
16× → A1 delta 0.516×, benchmarks.md §9.5/§9.6). The headline number in
the most load-bearing document in the repo is therefore inaccurate as
written. benchmarks.md opens by calling itself “an honesty contract with
ourselves”; the same standard applies to the pillar it tests against.
2.2 The number is not wrong — its referent is
The 50–200× figure is real and worth keeping: it is the logical
collapse of N near-identical log lines to a handful of (template_id, params) rows. That reduction is exactly what lets a selective query read a
few row groups instead of scanning the corpus (pillar #1’s footer-skip),
which the thesis gates B1 (predicate-pushdown latency, PASS — 34.2× /
25.4×, benchmarks.md §9.4) and B2 (result-size-not-corpus-size
scaling, PASS) measure and confirm. RFC 0011 §2.3 spells this out. So the
fix is a referent correction — “logical reduction → query pruning,” not
“on-disk bytes → before the codec” — not a retraction of the claim.
2.3 Why fix the wording at all
An inaccurate load-bearing claim quietly licenses bad decisions: someone could “optimise” Ourios’s on-disk size to chase the 50–200×-vs-codec framing, trading away the columnar framing (page indexes, bloom filters, row-group metadata) that is the value (it enables the row-group skipping B1/B2 measure) — exactly the alternative RFC 0011 §4 rejected as counter-productive. Pinning the pillar to the logical-reduction framing forecloses that.
3. Proposed design
3.1 The CLAUDE.md §2 pillar-#2 change
Replace the current pillar #2 (CLAUDE.md §2, the “Drain-derived online
template mining” item):
- Drain-derived online template mining. Log lines collapse to
(template_id, params)at ingest time. This is where the 50–200× compression comes from — before any byte-level codec runs. Correctness of this layer is the single biggest engineering risk in the project.
with:
- Drain-derived online template mining. Log lines collapse to
(template_id, params)at ingest time — a logical 50–200× reduction (many near-identical lines become rows keyed by one small, stabletemplate_id). That reduction is what lets a selective query read a handful of row groups instead of scanning the corpus, so the payoff is query pruning (pillar #1’s footer-skip; benchmark gates B1/B2), not fewer on-disk bytes than a byte codec — RFC 0011 showed a whole-stream codec captures the same redundancy, so the on-disk-compression-vs-zstd ratio (A1) is a recorded diagnostic, not a gate. Correctness of this layer is the single biggest engineering risk in the project.
The final sentence (the “single biggest engineering risk” line) is preserved verbatim — it is load-bearing in its own right and unaffected.
3.2 The coupled documentation reconciliations
The same on-disk/byte-level framing echoes in three other docs; all are
reconciled in the same enactment so the docs stay consistent (none is
load-bearing in the CLAUDE.md sense, so they ride normal doc PRs). The
authoritative list is whatever the RFC0012.2 framing-grep (§5) surfaces —
as of drafting, the phrase “before any byte-level codec” / “over a
competent byte codec” appears in exactly these (plus RFC 0011 and this RFC,
which quote it to describe the change):
benchmarks.md§2 — the A1 “Why this bar” bullet paraphrases the pillar as the project’s headline claim (§2, CLAUDE.md) is “50–200× over raw, ≥ 5× over a competent byte codec.” That paraphrase (a) attaches a “≥ 5× over a competent byte codec” multiplier the pillar never literally stated and (b) is the byte-vs-codec framing RFC 0011 demoted. Reword to the logical-reduction / diagnostic framing.README.md— the “Drain-derived online template miner” bullet says lines collapse to(template_id, params)“before any byte-level codec runs.” Same fix: it is the logical reduction, before the codec in the pipeline but not a bytes-vs-codec claim.docs/rfcs/0001-template-miner.md§1 — its summary states “The compression target is 50–200× over raw bytes before any byte-level codec runs.” Same framing. RFC 0001 isaccepted, but this is a factual thesis-statement correction (not a change to its design or §5 acceptance criteria), so reconcile it to the logical-reduction framing with a one-line note pointing at RFC 0011. (If the maintainer prefers to leave an accepted RFC’s prose untouched, the alternative is a dated editorial note rather than a reword — maintainer’s call at enactment.)
Only the framing is reconciled; bare mentions of the 50–200×
figure as a logical reduction (e.g. docs/roadmap.md, other RFCs) are
correct and are left alone.
3.3 What does not change
- No code, schema, or on-disk format. This is a documentation-wording RFC.
- The production codec default (ZSTD-3) and the A1 diagnostic itself (RFC 0011) are untouched.
CLAUDE.md§1’s thesis sentence (“collapses the inverted index, the compression layer, the storage tier, and the query engine into one stack”) is left as-is — it describes the stack collapsing layers, not template mining as the byte-compressor; see §7 for the open question on whether it also wants a touch.
4. Alternatives considered
- Leave the wording. Rejected: an accepted RFC (0011) contradicts a load-bearing pillar; leaving it is the silent-inaccuracy failure mode the project’s honesty contract exists to prevent.
- Delete the 50–200× number. Rejected: the logical reduction is real, is the thesis’s actual mechanism, and is worth stating — only its referent (logical, not on-disk-bytes) needs fixing.
- Reword more aggressively (drop the figure, restate the whole pillar around query pruning). Rejected as over-reach for a wording fix: the minimal precise change keeps the pillar recognisable and the diff reviewable.
- Fold this into RFC 0011. Rejected: RFC 0011 is
acceptedand explicitly deferred theCLAUDE.mdedit to ameta:RFC (its §3 item 4 / §7), becauseCLAUDE.mdchanges need the footer’s majority-approval gate that a thesis-gate tuning RFC does not.
5. Acceptance criteria
Scenario RFC0012.1 — pillar #2 states the logical-reduction framing.
- Given
CLAUDE.md§2 pillar #2- When this RFC is enacted (post-approval)
- Then pillar #2 reads per §3.1: the 50–200× is described as a logical reduction whose payoff is query pruning (B1/B2), and the on-disk-vs-zstd ratio is named a diagnostic (A1, RFC 0011), not a gate
- And the “single biggest engineering risk” sentence is preserved verbatim
Scenario RFC0012.2 — no on-disk-bytes framing of the 50–200× remains.
- Given the repo docs (
CLAUDE.md,README.md,docs/benchmarks.md,docs/rfcs/0001-template-miner.md)- When this RFC is enacted
- Then no passage frames template mining’s 50–200× as on-disk bytes beaten “before any byte-level codec runs” or as “≥ N× over a byte codec” — all coupled echoes (§3.2:
benchmarks.md§2,README.md, RFC 0001 §1) are reconciled- And a repo-wide grep for the framing phrases —
before any byte-level codecandover a competent byte codec— returns only RFC 0011 / this RFC (which quote the old wording to describe the change). The check is on the framing, not on the 50–200× figure itself: mentions of that figure as a logical reduction (e.g.docs/roadmap.md,docs/rfcs/0005-parquet-storage.md) are correct and expected to remain.
Scenario RFC0012.3 — consistency with the accepted A1 re-scope.
- Given RFC 0011 (
accepted),benchmarks.md§7’s gate table (A1 = diagnostic), and the amended pillar #2- When a reader cross-checks the thesis statement against the benchmark gates
- Then the three agree: template mining’s value is logical / query-pruning (B1/B2 gate it), A1 is a diagnostic, and C1/C2 are the miner pillar’s gates (RFC 0001
accepted, RFC 0011)
6. Testing strategy
There is no code test: this RFC changes prose in two living documents. The acceptance criteria (§5) are doc-state assertions, verified by review + the grep in Scenario RFC0012.2, exactly as RFC 0011’s RFC0011.1–.3 were. Two notes:
- Unlike new OTel names (semconv
weaver registry generateno-diff CI) or RFC acceptance scenarios (greppable test ids),CLAUDE.mdcarries no automated consistency gate — the gate is the footer’s majority maintainer approval on the enacting PR. That human gate is this RFC’s “test.” - The enacting PR’s diff is the artefact: reviewers confirm the §3.1 text
landed verbatim and §3.2’s
benchmarks.mdreconciliation rode along.
7. Open questions
- Maintainer approval (majority).
CLAUDE.md’s footer requires it for any change; this RFC cannot be enacted without it. - Does
CLAUDE.md§1’s thesis sentence want a parallel touch? Resolved 2026-06-14 — yes (maintainer). Both the §1 thesis sentence andREADME.md’s parallel one now carry a one-clause clarification that the “compression” collapsed is Parquet’s byte codec plus the miner’s logical reduction (query pruning), not bytes that beat a codec. The load-bearing sentence itself is kept; only the clarifying clause was added. - Footer changelog line.
CLAUDE.md’s footer records each meta change with its commit range and rationale; the enacting PR should add the 2026-06-14 line (and bump “Last updated”) in the same diff.
8. References
- RFC 0011 — A1 re-scope (
accepted): the measurement and the diagnostic-not-gating decision this RFC propagates to the pillar wording. Its §3 item 4 / §7 explicitly deferred thisCLAUDE.mdedit to ameta:RFC. docs/benchmarks.md§2 (A1 + “Why this bar”), §7 (gate table: A1 diagnostic), §9.4/§9.5/§9.6 (the A1/B1/B2/C1/C2 readings).CLAUDE.md§2 (the pillars), §8.5 (cache discipline — why the edit is not made in-session), and the footer (themeta:RFC + majority- approval rule; precedentb50067d).- RFC 0001 (
accepted) and RFC 0007 (validated) — the miner and querier pillars whose gates (C1/C2 and B1/B2) carry the value the amended wording points at.