docs: match the adopter claim to what was verified, and guard the compact samples - #11
Conversation
The claim was "Used by developers and organizations worldwide in their production workflows", under a heading reading "Trusted by developers worldwide". The organizations were verified by hand, at organization level — these orgs have repositories that run Commit Check. Which repositories was not pinned down, so "in their production workflows" claimed more than that: a repository can be a demo, a template or an experiment. It was also the least load-bearing part of the sentence, since eighteen logos carry the point on their own. What was verified is the stronger claim anyway, because a reader can check it — the dependents graph is right there, and "production" is not falsifiable. So the section says that instead, and the dependents link moves into the sentence rather than dangling after the logo grid. Dropping "worldwide" from the heading also stops it and the sentence below repeating the same two words back to back. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U9zFxq8V4qxG4aMzJhGBFn
The two text formats spell a check name differently — the default output prints the kebab-case name, --compact prints the config key — so a sample of one cannot be validated against the other. The existing guard only matches the default format, which meant every --compact sample on the site was checked by nothing at all. That is the same blind spot that let a pre-2.13 sample sit unnoticed in the troubleshooting page: the sample was stale in a format the guard could not see, and every test still passed. Fixing that one sample did not close the hole it came through. Two samples were uncovered, in example.md and rules.md — one indented inside a content tab, one not, so the pattern allows leading whitespace. Verified by breaking one deliberately: the guard names the file and both spellings, rather than only going red. This also decides what happens if commit-check#528 reconciles the two formats upstream. Today that would quietly leave both samples wrong; now docs-sync fails and says which lines to rewrite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U9zFxq8V4qxG4aMzJhGBFn
✅ Deploy Preview for commit-check ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Warning Review limit reached
Next review available in: 55 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe pull request updates the dependents section in ChangesDocumentation and validation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/docs_sync_test.py`:
- Around line 103-108: Update the documentation scan in the test loop over
_COMPACT_FAILURE matches to explicitly record or fail on rule IDs absent from
by_id, rather than skipping them via if entry. Emit a diagnostic identifying the
unknown rule ID, then only compare printed with entry.check when the rule
exists, preserving the existing stale-check behavior.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 0d23529b-4d8d-4e52-b340-42803490a52d
📒 Files selected for processing (2)
docs/index.mdtests/docs_sync_test.py
Both sample guards looked up the rule ID and then wrote `if entry and ...`, so an ID the package does not define fell through the condition and the sample passed. A typo, or an ID retired upstream, could sit in the docs with every test green — which is the exact failure these guards exist to catch, so it is the one they must not wave through. Review raised this against the compact guard, because that is what was in the diff. The older guard had the same line, so fixing only the new one would have left the hole in the more established of the two and made the pair inconsistent. Both now share one helper rather than the fix being written twice. Verified by breaking each case in turn: a stale name in the default format, a stale name in --compact, and CC999 in place of a real ID. All three now name the file and the problem; the third previously passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U9zFxq8V4qxG4aMzJhGBFn
|
Good catch — fixed in 936d8cb, and it applied more widely than the comment could see.
The older guard had the same line. It was flagged only on Verified by breaking each case rather than by a green run:
The third is the case you raised; it passed before this change. One note on the tooling output attached to the comment: the ast-grep Generated by Claude Code |
What
The last item from the structural review, plus a hole it exposed in the anti-drift tests.
The adopter claim said more than was checked
The organizations were verified by hand — these orgs have repositories that run Commit Check. Which repositories was not pinned down.
The wording went a step further than that:
A repository can be a demo, a template or an experiment, so "in their production workflows" claimed something that was not established. It was also the least load-bearing part of the sentence — eighteen logos carry the point without it.
What was established is the better claim anyway, because a reader can check it: the dependents graph is one click away, whereas "production" is not falsifiable.
The dependents link moves into the sentence rather than dangling after the logo grid, and dropping "worldwide" from the heading stops it and the sentence repeating the same two words back to back. Confirmed nothing linked to the old anchor; all 18 logos and the dependents link are intact.
Nothing was checking the
--compactsamplesThe two text formats spell a check name differently:
CC003 subject-imperative check failed ==>--compact[FAIL] CC003 subject_imperative:A sample of one therefore cannot be validated against the other, and
_SAMPLE_FAILUREonly matches the default format. So every--compactsample on the site was covered by nothing.That is the same blind spot that let a pre-2.13 sample sit unnoticed in the troubleshooting page — stale in a format the guard could not see, with every test still passing. Fixing that one sample did not close the hole it came through.
Two samples were uncovered, in
example.mdandrules.md. One is indented inside a content tab and one is not, so the pattern allows leading whitespace — worth noting because a stricter first attempt at counting them found only one of the two.Verified by breaking one deliberately rather than by trusting a green run:
It names the file and both spellings, rather than only going red.
This also settles what happens if commit-check/commit-check#528 reconciles the two formats upstream: today that would quietly leave both samples wrong; now
docs-syncfails and says which lines to rewrite.Test plan
mkdocs build --strictcleanNote
The proxy here blocks external hosts, so I could not open the deploy preview; everything was checked against a local build.
This closes the review list. The only open item left from it is upstream: commit-check/commit-check#528.
Generated by Claude Code
Summary by CodeRabbit