Skip to content

vs-context7 snapshot can silently rot: guard locks README==sample but nothing checks sample==registry #49

Description

@kiki830621

Problem

The README/wiki competitive claim is only as honest as compare_context7_sample.json's captured_at. The drift guard (--emit-readme --check + test_emit_readme_block_matches_committed_readme) verifies README ⟷ sample internal consistency, but nothing verifies sample ⟷ registry reality. The only reality check is --verify-live (re-fetches the registry ground truth for LiveDocs' side), and it is not wired into any CI / script / release gate.

The devil's-advocate lens (#46 verify) put it sharply: once the sample ages, the front-page captured 2026-07-02 · context7 0/6 silently rots into an asserted number — the exact failure mode the "measured, never asserted" iron rule (#27/#29) exists to prevent — while all tests + CI stay green.

Mitigations already in place (why this is low-urgency, not zero)

  • The emitted block prints its captured_at, so a stale date is visible on the front page (not hidden). README: promote vs-context7 freshness stat + a harness-generated Unicode bar chart to the top #46 added captured_at validation so a missing/malformed date fails loud rather than shipping "captured None".
  • context7's side is a recorded human judgment (its answer is prose, not a queryable version), so it structurally cannot be auto-re-captured — a refresh is inherently a deliberate human act.

Scope note

This is broader than #46 (README chart) — it's the snapshot-refresh discipline for the whole vs-context7 comparison (the wiki Home number has the same dependency). #46 doesn't make it worse.

Options

  • A periodic --verify-live run (CI cron / release checklist) that warns when the LiveDocs-side ground truth has drifted from the recorded sample.
  • A staleness budget: warn/fail if captured_at is older than N months.
  • Document the refresh procedure (re-judge context7 + re-run + --emit-readme --write) as a release-checklist step.

Source: surfaced during /idd-verify #46 (devil's-advocate lens). Non-blocking follow-up — beyond #46's locked scope.

Current Status

Phase: closed (merged + verified; see Closing Summary)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions