Drop the ADR count claim; give pytest<10 a stated release condition - #20
Merged
Conversation
Two small corrections, one worth more than its size.
adr/CLAUDE.md read "Six exist: ADR-001 ... ADR-006 -- all Accepted. The
next number is 007." That was wrong within hours of being read: ADR-007
landed in the very change that introduced the merge gate requiring
exactly this kind of restatement to be updated in the same branch. The
gate's own first application missed it.
Nothing mechanical was going to catch it -- check-references sees paths
that do not resolve and a count is not a path; check-claims reports
completeness claims about files, not tallies. So the count is gone
rather than corrected. That paragraph now points at docs/index.md's ADR
section, which is generated and checked in CI, and states the next
number as a rule ("one past the highest that exists there") rather than
a value. Correcting "Six" to "Seven" would have reset the drift by one
and left the class of defect in place; the reasoning is the one
docs/CLAUDE.md already gives for the index, dependency tree and
inventory. The blast-radius grep found exactly one such ADR count claim
in the repository, which is the only reason this was one line rather
than a sweep.
Second: practices.md's tooling dependency update policy gains a
"Standing watch items" subsection, and pytest<10 is its first entry. A
pin dodging a known upstream defect is different from an ordinary
version choice -- it has a specific condition that releases it, and with
nowhere to record that condition it becomes a pin nobody remembers the
reason for.
The entry records what was verified rather than assumed: pytest-bdd
8.1.0 (still latest) passes nodeid/baseid to pytest's
_register_fixture/FixtureDef; a scenario run under
-W error::PytestRemovedIn10Warning fails rather than warns; it passes
normally only because warnings are not errors here. Upstream has
acknowledged it -- issue #823 open, and PR #827 ("fix: avoid deprecated
nodeid argument to _register_fixture") open as of 2026-08-05 -- which is
a better position than ADR-007 could state when written, and makes
"stay pinned" the obvious option rather than a hopeful one. Trigger to
unpin is checkable: run that command against a released pytest-bdd
containing #827 and expect a pass.
make ci clean: 337 tests, all eleven gates. check-claims returns only
its five known false positives. Documentation only; no code changed and
TASK-018 deliberately not started.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Two small corrections, one worth more than its size. Documentation only — no code changed, and TASK-018 deliberately not started.
1. The merge gate's first miss
adr/CLAUDE.mdread:That was wrong within hours of being written.
ADR-007landed in the very change that introduced the merge gate requiring exactly this kind of restatement to be updated in the same branch. The gate's own first application missed it.Nothing mechanical was going to catch it.
check-referencessees paths that don't resolve, and a count is not a path.check-claimsreports completeness claims about files, not tallies.So the count is gone rather than corrected. That paragraph now points at
docs/index.md's ADR section — generated from the tree, checked in CI — and states the next number as a rule ("one past the highest that exists there") rather than a value.Correcting "Six" to "Seven" would have reset the drift by one and left the class of defect in place. The reasoning is the one
docs/CLAUDE.mdalready gives for the index, the dependency tree and the inventory: a hand-written count sitting next to a generated listing of the same thing is a liability, not a convenience.The blast-radius grep found exactly one such ADR count claim in the repository — the only reason this was one line rather than a sweep.
2.
pytest<10now has a release conditiondocs/practices.md's tooling dependency update policy gains a Standing watch items subsection. A pin dodging a known upstream defect is a different animal from an ordinary version choice: it has a specific condition that releases it, and with nowhere to record that condition it becomes a pin nobody remembers the reason for.The entry records what was verified, not assumed:
nodeid/baseidto pytest's_register_fixture/FixtureDef.-W error::pytest.PytestRemovedIn10Warningfails rather than warns; it passes normally only because warnings aren't errors here.Upstream status, newly checked: issue #823 is open, and PR #827 (fix: avoid deprecated nodeid argument to
_register_fixture) is open as of 2026-08-05. That's a materially better position than ADR-007 could state when it was written, and makes "stay pinned" the obvious option rather than a hopeful one.Trigger to unpin is checkable: run that command against a released pytest-bdd containing #827 and expect a pass.
Merge-gate statement
make ciclean locally (337 tests, all eleven gates); CI on this push.practices.mdrestates the tooling policy.check-claimsreturns only its five known false positives.🤖 Generated with Claude Code