handoff: P1.3.3 challenge canon-parity refactor (0.21.0)#124
Merged
Conversation
Fresh-session handoff at session close after P1.3.2 shipped end-to-end. This is the legitimate cross-session handoff — receiving session is a different conversation, different context window, different agent start. The P1.3.2 ledger just named 'same-session handoff anti-pattern' as the case to avoid; this is not that case. Scope (exactly three items, ~45-75 min to prod): 1. Migrate evaluatePrerequisiteCheck from regex to stemmed set intersection (D5 — same matcher gate shipped in 0.20.0). L2294 definition, L2129 call site, per-type parser around L413-435, base-prereq parser L709+. 2. Remove cachedChallengeTypeIndex, rebuild inline per D9 (microsecond derivation, not worth caching). L163-164, L634-651, L1518-1519, L2028. 3. Graduate 'cache fetches and parses, not microsecond derivations' to canon at canon/principles/cache-fetches-and-parses.md. Third deciding-argument recurrence after P1.3.2's D9 — graduation test satisfied. No envelope changes. No new governance files. Canon-first preserved: canon principle doc ships before code PR. Thin prompt for pickup is at the bottom of the handoff. Out of scope named explicitly: encode's triggerRegex paragraph classification, global cachedBM25Index, other sweep O-opens P2-P6. Refs: klappy://odd/ledger/2026-04-20-p1-3-2-gate-canary-landed.
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.
Fresh-session handoff at session close after P1.3.2 shipped end-to-end (see klappy://odd/ledger/2026-04-20-p1-3-2-gate-canary-landed).
This is the legitimate cross-session handoff, not the same-session anti-pattern the P1.3.2 ledger just named. Receiving session is a different conversation / context window / agent start. Tonight's session wrote this at close, not mid-stream.
Scope — exactly three items, ~45-75 min to prod
Migrate
evaluatePrerequisiteCheckfrom regex to stemmed set intersection. D5 from P1.3.2 (split-by-fit: prereq evaluation is independent gap-or-not, not ranked; set intersection is the fit-to-problem matcher; avoids BM25 IDF-negative pathology). L2294 definition, L2129 call site, parsers around L413-435 and L709+.Remove
cachedChallengeTypeIndex, rebuild inline per D9. Microsecond derivation over 6-9-type corpus; caching adds plumbing without throughput benefit. L163-164, L634-651, L1518-1519, L2028. Parse-product caches stay (cachedChallengeTypes, cachedBasePrerequisites, cachedNormativeVocabulary, cachedStakesCalibration).Graduate
cache-fetches-and-parsesto canon.canon/principles/cache-fetches-and-parses.md. Third deciding-argument recurrence after P1.3.2's D9 — graduation test satisfied. Canon-first: this doc ships before the code PR.Ship as 0.21.0
No envelope changes. No new governance files. No multi-phase sequencing. Smaller than P1.3.2 because the design work is reused.
Out of scope (named explicitly to prevent scope creep)
triggerRegexparagraph classification — different tool, different code path, separate PRcachedBM25Index— may have a size-threshold answer; not a challenge concernThin prompt for next session
Included in the handoff body. Points the next session at the handoff URI, the P1.3.2 ledger for D5/D9 rationale, and the vodka-architecture canon doc for principle-doc structure.
Refs
klappy://odd/ledger/2026-04-20-p1-3-2-gate-canary-landedNote
Low Risk
Documentation-only change adding a session handoff; no runtime, data, or security behavior is modified.
Overview
Adds a new handoff doc (
odd/handoffs/2026-04-20-p1-3-3-challenge-revisit.md) that scopes and line-references the next planned P1.3.3 work: switching challenge prerequisite evaluation from regex to stemmed set intersection (D5), removingcachedChallengeTypeIndexin favor of per-request index rebuilds (D9), and drafting a new canon principlecache-fetches-and-parsesto formalize the caching rule.No code, tests, or production behavior changes are included in this PR; it’s a forward-looking execution plan and checklist for the next session/release (
0.21.0).Reviewed by Cursor Bugbot for commit cd5133b. Bugbot is set up for automated code reviews on this repo. Configure here.