Skip to content

docs: nine claims that were not true, and a rule that stays narrow because it was measured - #221

Merged
productdevbook merged 1 commit into
mainfrom
docs/claims-that-are-not-true
Aug 20, 2026
Merged

docs: nine claims that were not true, and a rule that stays narrow because it was measured#221
productdevbook merged 1 commit into
mainfrom
docs/claims-that-are-not-true

Conversation

@productdevbook

Copy link
Copy Markdown
Owner

The remaining findings from the adversarial review of today's range. Most were written by the change that was correcting something else — every long-standing count in this repository verified, and the three wrong ones were written yesterday. A correction feels small, local and safe, so it gets less scrutiny than new code.

The one that mattered

money-safety §7 said "answer 200 anyway" for an unsigned delivery, flatly. Every Mollie delivery is unsigned — that is the premise of its whole webhook path. So an agent told by CLAUDE.md and by every role file to read this skill before writing a webhook handler got the rule #207 had just spent a commit removing. It now carries the exception: a verify that reaches the network has an Err meaning two different things.

Counts, recounted

Claims about behaviour

Two doc comments still said fraudStatus is read "the way this crate has always read it"in the change that altered how it is read. And that CHANGELOG entry named Provider::charge and reporting as the paths it reached, not Provider::capture, whose /payment/postauth answer carries the same field.

The CHANGELOG for the amount fallback called price "the correct figure sitting unused". It is the basket total; paidPrice is what was collected, and they differ by an instalment surcharge this crate models itself. #220 argues that rather than assuming it, because changing the behaviour means changing #172's decision.

kasapay-review.md said the role "is registered without the tools to" write. Edit and Write are absent; Bash is not, and git commit is reachable through it. Stated as a fence it was not.

UNVERIFIED.md D5 records what Mollie's identifier character class assumes. Every comparable reading landed this week got an entry; this one, on the delivery path, did not.

The measurement that refused a fix

The review asked the seam detector to skip a bare /// between two blocks, since rustdoc takes the first paragraph as the summary either way. Reasonable — so I measured it before writing it.

380 matches.

Because a summary line ending in a full stop, then a blank ///, then a paragraph is the correct shape for a doc comment. Widening the rule would have flagged nearly every well-formed one in the workspace. Fifty means the rule is wrong somewhere; 380 means it is very wrong.

So the narrow rule is the right rule, and the limit is now recorded with the number that decided it — including what it leaves uncaught — so nobody widens it again.

CI decides.

…cause it was measured

All from an adversarial review of the range that landed today, most of them
written by the change that was correcting something else. Corrections carry a
higher defect rate than original writing, because a small local edit gets less
scrutiny than new code — every long-standing count in this repository verified,
and the three wrong ones were written yesterday.

money-safety §7 said "answer 200 anyway" for an unsigned delivery, flatly.
Every Mollie delivery is unsigned; that is the premise of its whole webhook
path. So an agent told to read this skill before writing a handler got the rule
#207 had just spent a commit removing. It now carries the exception, which is
that a `verify` reaching the network has an `Err` meaning two different things.

§3's count was wrong in both halves: nine status fallbacks across five
adapters, not eight, and PayTR's ninth refuses an undocumented status outright
rather than landing on `Pending` — which is the best of the three answers and
the sentence excluded it.

`scripts/requirements.txt` said the two named packages pull nineteen; twenty
lines, so eighteen. `coverage.py`'s docstring said four provider sections
report; three do, and PayPal has none at all — which is the thing #214's own
commit message noticed and then fixed in the role file rather than in the
script.

Two doc comments still said `fraudStatus` is read "the way this crate has
always read it", in the change that altered how it is read. The CHANGELOG entry
for that named `Provider::charge` and `reporting` as the paths it reached and
not `Provider::capture`, whose `/payment/postauth` answer carries the same
field.

The CHANGELOG for the amount fallback called `price` "the correct figure". It
is the basket total; `paidPrice` is what was collected, and they differ by an
instalment surcharge this crate models itself. #220 is where that is argued
rather than assumed, because changing it means changing #172's decision.

`kasapay-review.md` said the role "is registered without the tools to" write.
`Edit` and `Write` are absent; `Bash` is not, and `git commit` is reachable
through it. Stated as a fence it was not.

UNVERIFIED.md D5 records what `Webhook::verify`'s character class assumes about
Mollie identifiers. Every comparable reading landed this week got an entry and
this one did not, and it is on the delivery path.

And the seam detector stays narrow. The review asked it to skip a bare `///`
between two blocks, since rustdoc takes the first paragraph either way. Widened
that far it matches **380** doc comments, because a summary ending in a full
stop, a blank `///`, then a paragraph is the *correct* shape — the rule would
have flagged nearly every well-formed comment in the workspace. Fifty means the
rule is wrong somewhere; 380 means it is very wrong. The limit is recorded with
the number that decided it, so nobody widens it again.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@productdevbook, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 10 minutes

Limit details: You’ve used all 10 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: b6474260-b255-4aa0-9658-e964a620a1d0

📥 Commits

Reviewing files that changed from the base of the PR and between 03fa97d and 52cd377.

📒 Files selected for processing (11)
  • .claude/agents/kasapay-review.md
  • .claude/skills/money-safety/SKILL.md
  • .claude/skills/sandbox-verification/SKILL.md
  • CHANGELOG.md
  • CLAUDE.md
  • UNVERIFIED.md
  • crates/kasapay-iyzico/src/classic/client.rs
  • crates/kasapay-iyzico/src/reporting/client.rs
  • crates/kasapay/tests/documentation.rs
  • scripts/coverage.py
  • scripts/requirements.txt

Comment @coderabbitai help to get the list of available commands.

@productdevbook
productdevbook merged commit 293f613 into main Aug 20, 2026
8 checks passed
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