docs(standards): a fourth review rule — the instrument that answers an adjacent question - #146
Open
wshallwshall wants to merge 1 commit into
Open
docs(standards): a fourth review rule — the instrument that answers an adjacent question#146wshallwshall wants to merge 1 commit into
wshallwshall wants to merge 1 commit into
Conversation
wshallwshall
enabled auto-merge (squash)
August 2, 2026 15:13
…n adjacent question
The three rules in Secure_Development_Standards §3 catch prose that is TRUE and
misleading. They do not catch the failure that produced eleven retractions across
four parallel sessions on 2026-08-02: a claim that is FALSE when written while
feeling measured, because the instrument answered a question adjacent to the one
asked.
The eleven, each verified by the session that made it:
git diff on a STAGED file "unstaged delta?" vs "is the tree dirty?"
merge-base --is-ancestor "is this an ancestor?" vs "did this land?" <-- squash-merge: always no
a hash INEQUALITY "are these different?" vs "is the copy WORSE?"
session-start banner "who was live then?" vs "who is live now?"
grep -c $'\r$' on git diff "does the diff render CR?" vs "does the FILE have CRLF?"
$? after `cmd | tail` "did tail succeed?" vs "did the gate pass?"
Actions ?filter=latest "latest attempt?" vs "what did the suite ever do?"
JOB conclusion "did the job pass?" vs "did the STEP pass?"
Two findings that make it actionable rather than a scolding:
- Re-reading caught NONE of the eleven. A check that could fail caught one
immediately. Re-reading confirms what you meant; it cannot test what you wrote.
- None was a stale fact. Every one was wrong at birth. "#119 never merged (it
died on a CI timeout)" was never true at any instant -- that PR's timeline
carries exactly one `closed` event, simultaneous with `merged`. So dating a
claim does not protect against this class; only re-deriving it does.
Hence the rule is a PROPHYLACTIC, checkable before the sentence exists and without
a peer: name the question, name what the instrument returns, confirm they are the
same sentence.
Also adds the one-liner to CLAUDE.md §11 alongside the other three, per the
provenance note's own reasoning -- an instruction that short cannot drift, and a
pointer nobody follows mid-task changes no behaviour.
No version-history row: the "Reviewing security prose" subsection carries none
(added in 39990f8 without one), so additions there set no bump precedent. No
change to the SSDF / ASVS / HIPAA mappings.
Named by the repo-security-review session, which applied it to its own four
retractions and found four for four; instances contributed by the
ci-margin-correction, announce-hook, sandbox-codec and ADR 0154 sessions.
wshallwshall
force-pushed
the
claude/instrument-adjacency-rule
branch
from
August 2, 2026 15:17
8a5b777 to
be0328f
Compare
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.
The three rules in
Secure_Development_Standards§3 catch prose that is true and misleading. They do not catch the failure that produced eleven retractions across four parallel sessions on 2026-08-02: a claim that is false when written, while feeling measured, because the instrument answered a question adjacent to the one asked.Each instance was verified by the session that made it:
git diffon a staged filemerge-base --is-ancestorgrep -c $'\r$'overgit diff$?aftercmd | tailtailsucceed?filter=latestTwo findings make this actionable rather than a scolding:
closedevent, simultaneous withmerged. Dating a claim therefore does not protect against this class; only re-deriving it does.So the rule is a prophylactic — checkable before the sentence exists, and without a peer: name the question, name what the instrument returns, confirm they are the same sentence. That is what distinguishes it from the three above it, which need a reviewer to arrive.
Also adds the one-liner to
CLAUDE.md§11 alongside the other three, per the provenance note's own reasoning: an instruction that short cannot meaningfully drift, and a pointer nobody follows mid-task changes no behaviour.No version-history row. The "Reviewing security prose" subsection carries none — it was added in
39990f8cwithout one — so additions there set no bump precedent. No change to the SSDF / ASVS / HIPAA mappings.Attribution: named by the repo-security-review session, which applied it to its own four retractions and found four for four; instances contributed by the ci-margin-correction, announce-hook, sandbox-codec and ADR 0154 sessions, each of which had made one. Docs-only, 2 files, +27/-1.
One further item, recorded here so it is findable in history rather than lost with a scratch file: BACKLOG #340 has one verified paragraph offered and not written — that a merge queue distinguishes the invalidations that were the gate working from the ones that were not, with nobody adjudicating, which hand coordination structurally cannot because a freeze is global by construction: it stops everything or nothing. Evidence: of the four bumps PR #136 took, two were legitimate (#136, #143 and #144 all edit
docs/BACKLOG.md) and two were not (#106's coord-script change, the deps/ASVS pair). It slots under The largest cost is protocol, not throughput. Left unwritten because it arrived after #143 and #144 had merged and did not warrant a third CI cycle on the item documenting the cost of exactly that.