Add Anti-Cache Lying constraint and content-addressed storage implementation#30
Merged
Merged
Conversation
…plan Encode the OddKit stale-cache incident into three new canon artifacts: - Tier 1 constraint: Anti-Cache Lying (odd/constraint/anti-cache-lying.md) - Decision Rule #15: Measure Total Cost Before Optimizing (added to decision-rules.md) - Incident record: OddKit Stale Cache Feb 2026 (docs/incidents/) - Implementation plan: Content-Addressed Storage for OddKit (docs/oddkit/) Updates decision-rules.md outline, operating constraints, and failure modes to reflect the new rule and anti-pattern. https://claude.ai/code/session_018r5zV6zfjtH53A6ZdAQaqm
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
This PR establishes a foundational constraint against TTL-based caching of derived or mutable content, documents a critical incident where OddKit violated this constraint, and provides an implementation plan to replace TTL caching with content-addressed storage.
Key Changes
New Constraint: Anti-Cache Lying (
odd/constraint/anti-cache-lying.md)Incident Documentation (
docs/incidents/oddkit-stale-cache-2026-02.md)invalidate_cacheflush mechanism was incomplete (only cleared.zipfiles)Implementation Plan (
docs/oddkit/IMPL-content-addressed-caching.md)invalidate_cacheas orphan cleanup (storage hygiene, not correctness).zipfiles)Decision Rule Addition (
canon/constraints/decision-rules.md)Notable Implementation Details
https://claude.ai/code/session_018r5zV6zfjtH53A6ZdAQaqm
Note
Low Risk
Documentation-only additions/edits that don’t modify runtime code paths. Main risk is governance/process impact if teams treat the new caching constraint as universally applicable without nuance.
Overview
Introduces a new canonical constraint,
odd/constraint/anti-cache-lying.md, that prohibits TTL-based caching for derived/mutable content and mandates content-addressed (e.g., commit-SHA) storage; it reframes cache invalidation as hygiene rather than a correctness mechanism.Updates
canon/constraints/decision-rules.mdwith a new Decision Rule #15 (Measure Total Cost Before Optimizing) and a related failure mode (Local Maxima Optimization / Cache Trap), explicitly requiring TCO evidence before accepting “it will be faster” optimizations.Adds supporting documentation: an incident report on OddKit serving stale canon for days (
docs/incidents/oddkit-stale-cache-2026-02.md) and an implementation instruction set to replace TTL caching with SHA-keyed immutable storage and rename/repurposeinvalidate_cacheinto orphan cleanup (docs/oddkit/IMPL-content-addressed-caching.md).Written by Cursor Bugbot for commit 46e1e27. This will update automatically on new commits. Configure here.