canon: graduate cache-fetches-and-parses to tier-2 principle (P1.3.3 Phase 1)#125
Merged
Conversation
Third deciding-argument recurrence satisfies the graduation test: - 0.19.0 encode/challenge parse-product caching (implicit) - 0.20.0 gate D9 (first explicit — operator named the argument) - 0.21.0 challenge cachedChallengeTypeIndex removal (second explicit) Names the two halves of the principle: cache fetches + parses, don't cache microsecond derivations. Enumerates the plumbing tax (four hidden costs avoided by rebuild-per-request). Anchors the threshold to current corpus sizes (6-9 types, 4 transitions, 8 prereqs) and acknowledges global cachedBM25Index (524+ docs) as out-of-scope counter-case. Canon-first for P1.3.3 challenge code refactor (oddkit 0.21.0).
klappy
pushed a commit
that referenced
this pull request
Apr 20, 2026
…elease-validation-gate Closeout ledger for the oddkit 0.22.0 ship cycle (PRs #124, #125, #127, #128, #129). First post-canon application of release-validation-gate (tier 1, landed earlier today in P1.3.3). Documents the retroactive-closure pattern used to heal PR #127's validation gap without reverting, and names the four criteria that make retroactive closure legitimate. Key contents: - Summary of what shipped (two envelope-conformance fixes into 0.22.0) - D3 names the retroactive-closure pattern and its four legitimacy criteria - Timeline of all agent/validator sessions with evidence trail - L2 distinguishes feature-branch validators from promotion-PR validators under canon's strict reading - L3 captures the Managed-Agent-bypass workaround for orchestrator-IP rate limits - H2 carries forward P11 (oddkit_gate mechanical enforcement of release-validation-gate) Writing canon gate satisfied: blockquote with compressed argument, Summary section, descriptive headers. Encoded via oddkit_encode (governance_source: knowledge_base) — 18 DOLCHE artifacts folded into D/O/L/C/H sections.
This was referenced Apr 20, 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.
Graduates the "cache fetches and parses, not microsecond derivations" pattern to canon as a tier-2 principle after its third deciding-argument recurrence across the oddkit tool sweep.
Why now
Three recurrences, per the graduation test:
cachedBasePrerequisitescaches parse product. Natural decision, principle not yet named.cachedChallengeTypeIndexremoval applies D9 to a second tool. Second explicit application; graduation test satisfied.The graduation test is three decision points where the principle is the reason, not three appearances of the pattern. Appearances are evidence; decisions are graduation.
What the doc says
cachedBM25Indexover 524+ canon docs sits on the other side of the threshold; out of scope here; revisit if any tool grows past ~50 entries.Canon-first sequencing
This canon PR ships before the oddkit code PR that removes
cachedChallengeTypeIndex. Same pattern as P1.3.2's Phase 1 canon preceding Phase 2 code (#120 → #118). Merge this; verify retrievable viaoddkit_get; then open the code PR.Writing canon gate
References
Note
Low Risk
Adds a new canon principle document only; no runtime or behavioral code changes.
Overview
Adds a new tier-2 canon principle,
cache-fetches-and-parses.md, formalizing guidance to cache expensive fetch/parse work while rebuilding cheap microsecond derivations (e.g., small BM25 indexes) to avoid invalidation/cleanup “plumbing tax.”The document also records the principle’s graduation rationale (third deciding-argument recurrence) and sets a rule-of-thumb threshold for when caching derived values should be reconsidered as corpus size grows.
Reviewed by Cursor Bugbot for commit 84651e2. Bugbot is set up for automated code reviews on this repo. Configure here.