Skip to content

Commit 4fef302

Browse files
claude[bot]claude
andauthored
fix(gate): let check:role-word exempt marked vendor-wire fences (#10787)
ADR-0090 D3's ratchet is per-file and EXACT, so no file anywhere has spare budget and the corpus cannot gain a single new occurrence of the reserved word. A route whose wire parameter is literally named `role` therefore could not have its request shape documented by anyone but the maintainer: `POST /api/v1/auth/organization/add-member` reads `body.role` with no snake_case alias, and #10050 had to describe a REQUIRED parameter without naming it. Per the maintainer ruling of 2026-08-21 (option B), the gate gains a narrowly-scoped exemption for upstream-owned vocabulary inside fenced code blocks MARKED as vendor wire payloads. Prose stays fully ratcheted — that is what D3 is aimed at, and D3's Word ban paragraph already names the better-auth boundary as its single documented exception, so this clarifies D3 rather than amending it. The ADR is untouched. The marking is what bounds the exemption, not the fence. A block is exempt only when the line directly above its opening fence is exactly `{/* os:vendor-wire <vendor> */}` (.mdx) or `<!-- os:vendor-wire <vendor> -->` (.md), naming a vendor declared in VENDOR_BOUNDARIES — the same per-extension comment convention `os:check` already uses. A marker that opts nothing in is a loud orphan rather than a silent no-op, an unclosed claimed fence exempts nothing, and every run publishes how many blocks it suppressed, so the exemption cannot widen unobserved. Today's corpus: 0 blocks, 0 occurrences. Self-test covers all three directions over a fixture proven to carry the word (marked fence passes, prose still fails, UNMARKED fence still fails), plus the positive control and every near-miss marker, driven both as predicates and through a real child process. Refs #10533 Claude-Session: https://claude.ai/code/session_01DdCnBGcHeufjrq7drTD3wt Co-authored-by: Claude <noreply@anthropic.com>
1 parent 109008b commit 4fef302

1 file changed

Lines changed: 606 additions & 16 deletions

File tree

0 commit comments

Comments
 (0)