Repository navigation
fix(readme): restore the canonical hypermnesia-mcp-viz identity anchor - #510
Merged
Merged
Conversation
main went red on 089361a: tests_py/scripts/test_codex_plugin_contract.py ::test_current_companion_docs_use_canonical_publication_identities failed across Test (3.10/3.11/3.12/3.13) and Test (SQLite backend). 7663 passed, this one failed. My own defect, from #509. Collapsing the seven-line four-piece-stack block at the top of the README dropped the anchor <a href="https://github.com/cdeust/cortex-viz">hypermnesia-mcp-viz</a> which that test asserts on. The assertion is not decorative: the repo is named cortex-viz while the published plugin identity is hypermnesia-mcp-viz, and the test is the mechanical guard that the README keeps naming the canonical published identity rather than the repo slug. The replacement line said "visualization and reasoning-agent companions" in prose, naming neither. The fix names both companions with their links instead of alluding to them, which satisfies the contract and reads better than the vague form it replaces. Reproduced before fixing: the test fails on origin/main and passes after, 8 passed in that file. check_doc_claims.py and check_version_surfaces.py both clean. Note for a follow-up, not fixed here: this reached main because the CI `changes` filter excludes '*.md' from `code`, so a README-only PR skips every test job — yet this test's input IS README.md. The guard is gated off exactly when its subject changes. Filed separately rather than widening this fix.
cdeust
marked this pull request as ready for review
September 8, 2026 15:27
pull Bot
pushed a commit
to asleekgeek/Cortex
that referenced
this pull request
Sep 8, 2026
Root cause of the cdeust#509 -> cdeust#510 incident. The `changes` filter classifies '*.md' out of `code`: code: - '**' - '!{*.md,docs/**/*.md,...}' so a README-only PR sets code=false and every test job is skipped. But part of that suite takes documentation as its INPUT: tests_py/scripts/test_codex_plugin_contract.py reads README.md and asserts on the canonical published identities (the hypermnesia-mcp-viz anchor, the viz/spec migration strings). The guards were therefore switched OFF exactly when their subject changed. cdeust#509 was a README-only diff, every test job skipped, it merged green, and the push to main went red on that test across five jobs (run 34238410970 — 7663 passed, 1 failed). cdeust#510 fixed the symptom; this fixes the reason it could reach main at all. Adds `docs` to test-sqlite's predicate only, not to the 3.10-3.13 matrix: test-sqlite already runs THE FULL SUITE in one ~5-minute job, so it covers the doc-contract tests at the smallest cost that closes the gap. Waking the whole matrix on every prose edit would undo cdeust#475-cdeust#481. scripts/check_ci_gate_results.py mirrors ci.yml's predicates — its own check_policy docstring requires the workflow and the executable policy to stay "in exact agreement". Changing only the workflow would have left two sources of truth disagreeing about when test-sqlite may skip, so _required_jobs gains the same condition and both files carry the same note. Caught by re-reading the diff, not by CI. Its two docs-only tests are updated to the new policy, and the first is turned into a named regression test that asserts skipping test-sqlite on a docs-only PR is NOT justified — the exact hole cdeust#509 fell through. Verified: actionlint 1.7.12 (the pinned version) clean on ci.yml; check_ci_gate_complete.py OK; both gate test files 38 passed, 159 subtests; craftsmanship, ruff check, ruff format, doc-claims all clean. Co-Authored-By: Claude Opus 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01StMBvNd7eVJGtpnC2zNsx1
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.
main is red, and it is my defect
Run 34238410970 on
089361ad— the #509 merge — failed onTest (3.10),(3.11),(3.12),(3.13)andTest (SQLite backend). 7663 passed, 1 failed:Collapsing the seven-line four-piece-stack block in #509 dropped that anchor. My replacement line said "visualization and reasoning-agent companions" in prose, naming neither.
The assertion is not decorative. The repository is named
cortex-viz; the published plugin identity ishypermnesia-mcp-viz. That test is the mechanical guard that the README keeps naming the canonical published identity rather than the repo slug — the same class of guard the sibling testtest_readme_carries_the_complete_viz_and_spec_identity_migrationsenforces for the spec migration. I deleted the thing it protects.The fix
Name both companions with their links instead of alluding to them. That satisfies the contract and reads better than the vague form it replaces:
Verification — failure reproduced, then fixed
origin/main, before1 failed, 7 passedin that file8 passedtests_py/scripts/whole directory879 passed, 0 failed (8 errors intest_groomer.py, an optional-dependency gap in this container — CI passes those, they are in the 7663)check_doc_claims.py,check_version_surfaces.py,ruff format --checkWhy this reached main — a real gap, filed separately
The CI
changesfilter classifies*.mdout ofcode:So a README-only PR sets
code=falseand every test job is skipped — whiletest_codex_plugin_contract.py's input isREADME.md. The guard is gated off exactly when its subject changes. #509 was therefore merged on a green PR that had never run the test its diff would break.That is the root cause, and it will recur on the next README edit. I have not widened this PR with it: main is red now and this fix is the minimal thing that clears it. I'll raise the filter gap separately so it gets its own review — the cheap shape is a small docs-triggered job running just the doc-contract tests, rather than the full matrix on every prose change, which would undo the CI-efficiency work in #475–#481.
🤖 Generated with Claude Code
https://claude.ai/code/session_01StMBvNd7eVJGtpnC2zNsx1
Generated by Claude Code