Skip to content

docs(rules): the mock-lies rule covers every stand-in - #52

Merged
goetchstone merged 1 commit into
mainfrom
chore/improve-rules-20261016
Oct 16, 2026
Merged

goetchstone merged 1 commit into
mainfrom
chore/improve-rules-20261016

Conversation

@goetchstone

Copy link
Copy Markdown
Owner

What and why

The improve-rules pass over everything since 2026-10-01: the fix commits b6feae3, 383100a, 6947456 and
5f8193e, the failure-log entries, the two open ledger entries, and failed CI runs.

Finding: known mode, weak wording. Three of the four fixes share one shape, a test stand-in kinder
than the real thing:

  • the in-memory Keychain's delete could not fail, so a refused one read as success (b6feae3);
  • every test and the in-memory store used one spelling of a domain, so a capitalized import became a
    second tenant (6947456);
  • TestClient and headless Chrome download a CSV that the app's WKWebView displays as a page (5f8193e).

CLAUDE.md's "mock lies" section names only tests/fixtures/mock_gam.sh, so it read as a rule about the
GAM mock. This edit says it covers every stand-in (the Keychain fake, the app window, GAM) and names the
tripwires that hold them to the real thing. Pre-commit item 6 says the same. This also resolves the
2026-10-08 ledger entry, which asked for an app-window corollary.

No new invariant, no renumbering. The ledger records the other verdicts: 383100a and the hook-test
incident were not rules problems, and the 2026-10-02 entry (#3's wording) is the next candidate, since
this PR makes one change.

How it was verified

  • .venv/bin/python -m pytest -q passes
  • Demonstrated the tripwires the text points to: with the swallow put back in
    _KeyringBackend.delete_password, 11 tests in test_vault.py fail; with download dropped from the
    Audit export link, test_every_link_to_a_download_route_carries_the_download_attribute fails; both
    pass once restored
  • make lint / a11y: n/a (docs only)

If it builds or runs a gam command

n/a

Live status: n/a (docs only).

Nothing private

  • No credentials, real domain names, real addresses, or captures from a real tenant

🤖 Generated with Claude Code

Three of the four fixes since the last pass were a fake kinder than
the real thing: the in-memory Keychain's delete could not fail, every
test held one spelling of a domain, and the test browser downloads a
CSV the app's WKWebView displays. The section named only mock_gam.sh.
It now covers the Keychain fake and the app window too, and names the
tripwires that hold them to the real thing. Pre-commit item 6 matches.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@goetchstone
goetchstone merged commit 7eea7b2 into main Oct 16, 2026
17 checks passed
@goetchstone
goetchstone deleted the chore/improve-rules-20261016 branch October 16, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant