canon: link-rot Phase 2 shipped — persist handoff + ledger + spec v2.2#148
Merged
canon: link-rot Phase 2 shipped — persist handoff + ledger + spec v2.2#148
Conversation
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.
Closes out the v0.26.0 oddkit promote — link-rot Phase 2 — by persisting the session artifacts and aligning the audit spec with what shipped.## What this PR adds**
odd/handoffs/2026-04-27-link-rot-phase-2-promote-resume.md** — the resume handoff that this session executed. Authored by the prior session (compacted at 2026-04-27T02:39 UTC), kept Continuation Test discipline; this session executed it cleanly. The companion "original" handoff (2026-04-27-link-rot-phase-2-promote-and-phase-3.md) was attached to the prior session's chat context only and was lost — see the resume's "Persistence Note" appendix. Per axiom 4 ("You Cannot Verify What You Did Not Observe"), this PR refuses to reconstruct the original from inference. The resume is comprehensive enough to stand alone.odd/ledger/2026-04-27-link-rot-phase-2-shipped.md— session ledger documenting the v0.26.0 ship: timeline, decisions (lineSeen waiver, spec amendment, original-handoff loss), observations (DNS overflow workaround, Bugbot Autofix non-blocking carve-out, real link-rot in writings/), learnings, and what remains for Phase 3.docs/oddkit/specs/oddkit-audit.mdv2.1 → v2.2 — defersindex_statefield andPARTIAL_INDEXstatus enum value per validator findings F-3 and F-5. Both were intentional drift in the v0.26.0 implementation; rather than carry permanent spec-vs-shipped drift, the spec now matches shipped behavior with both deferred items marked clearly in Partial-Data Compliance and the Origin v2.2 amendment paragraph. Use Only What Hurts: if a real consumer demonstrates need to distinguish "URI dead" from "couldn't be checked because index isn't warm," the deferred mechanism graduates back into the schema.F-4 (suppressed_findingsreturns full objects vs spec's "count only") was dispositioned by the validator asno action — additive, not harmfuland remains unchanged in v2.2.## What shipped to prod (verification recap)- ✅oddkit_versionreturns0.26.0- ✅ Unifiedoddkitaction enum at 13 values (audit+resolve+ 11 prior); strictly +1 from v0.25.0 baseline- ✅ Standaloneoddkit_audittool live; default scope["writings/"]; wider scope["writings/", "canon/"]honored- ✅ Real link-rot surfaced: 3 dead-references in default-scope smoke; 17 in writings+canon scope- ✅ Cursor Bugbot finding on promote PR head dispositioned per release-validation-gate Rule 1 (waived in body + tracked at klappy/oddkit#148)- ✅ Validator findings table appended to klappy/oddkit#146 body before merge## Refs- Promote PR: klappy/oddkit#146 (merged 2026-04-27T02:51:55 UTC)- F-1 fix-forward: klappy/oddkit#147- Bugbot lineSeen tracking issue: klappy/oddkit#148- Resume handoff this PR persists:klappy://odd/handoffs/2026-04-27-link-rot-phase-2-promote-resume- Session ledger this PR adds:klappy://odd/ledger/2026-04-27-link-rot-phase-2-shipped- Spec at v2.2:klappy://docs/oddkit/specs/oddkit-audit- Canon honored:klappy://canon/constraints/release-validation-gate(Rules 1, 2, 3 all)## Next session pick-upPhase 3 PR-3.1 —.github/workflows/canon-quality.ymlon this repo (klappy.dev), soft-block mode. Spec at v2.2 is the source of truth. Continuation Test in the new session ledger.Note
Low Risk
Documentation-only changes that align the spec with the implemented
oddkit_auditoutput and persist operational notes; no runtime behavior is modified.Overview
Aligns the
oddkit_auditaction spec to shipped v0.26.0 by bumping to DRAFT v2.2 and removingindex_state/PARTIAL_INDEXfrom the documented output schema (marking the partial-index mechanism as deferred).Adds two canon artifacts: a promote-resume handoff for completing/validating the Phase 2 promote steps, and a session ledger capturing what shipped, validator dispositions, and remaining Phase 3 follow-ups.
Reviewed by Cursor Bugbot for commit 7908310. Bugbot is set up for automated code reviews on this repo. Configure here.