[mine-blindspots hyperthrive corpus] TrailingProhibition misses subject-pronoun clause (STRONG_PROHIBITION anchor) #158
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#158
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Cross-project filing from a
mine-blindspotsrun against thehyperthrive-websitesrepo as external corpus. Bucket (a): "rule exists, logic gap" — tier-1 cop bug, not new rule.Problem
hyperthrive-websites/CLAUDE.md:54:This trailing prohibition ("it never fills in values") is missed by
TrailingProhibition, while the adjacent line 53 —— is correctly caught (its trailing clause leads with "never" after an em-dash).
Detection
plugins/os-aidd-lint/lib/aidd_lint/cops/trailing_prohibition.rb:18:This anchors
\Ato the start of the clause. The clause after; it never fills in values.starts withit, notnever/don't/do not/only, so it never matchesSTRONG_PROHIBITIONeven though the semantic prohibition ("it never...") is exactly the pattern the cop exists to catch. Line 53's clause starts directly withnever, so it passes.Correction
(Fix direction as filed; exact regex left to implementer — the essential change is admitting an optional subject pronoun before the prohibition word.)
Pass/fail examples
...in.env.exampleand.env; it never fills in values....orcredvault list— never open.env.Provenance
/os-aidd-lint:mine-blindspotsrun, external corpushyperthrive-websites, bucket (a), cop citationtrailing_prohibition.rb:18(STRONG_PROHIBITION), evidencehyperthrive-websites/CLAUDE.md:54. Verified independently by a second agent pass against the live cop source and the live corpus file. 2026-07-27.Fix direction
Extend
STRONG_PROHIBITION(or add a parallel pattern feeding the same clause-check path) to also match/\A(it|this|that)\s+(never|don't|do\s+not|only)\b/iso a subject-pronoun lead-in to a strong prohibition word is caught, not just a bare prohibition word at clause start.Discoverer: hyperthrive-websites, session id unavailable, 2026-07-27. Filed from a mine-blindspots run against this repo as external corpus.
Classified OBVIOUS. Implemented on branch
aidd-lint-trailing-prohibition-gaps(commit9136cce), TDD.Change — added a sibling regex rather than widening STRONG_PROHIBITION in place:
One deviation from the filed fix direction:
onlyis excluded from the pronoun form. The ticket's proposed regex admitted a pronoun before all four words, but; it only takes a second/; this only applies to Xare ordinary prose, not prohibitions — that arm would have been a false-positive generator.never | don't | do notcarry the prohibition unambiguously even with a subject.Tests (tests/cops/trailing_prohibition_test.rb):
test_flags_a_trailing_prohibition_led_by_a_subject_pronoun— the ticket's must-fail case.test_ignores_a_pronoun_clause_led_by_only— pins the exclusion above.Suite: 290 runs, 699 assertions, 0 failures, 0 errors, 0 skips.
Corpus check: ran the cop over the repo's own 99 linted files before/after. Exactly one new offense attributable to this change — plugins/os-doc-hygiene/skills/check/SKILL.md:371
It never authors \expected_sha256`` — a genuine hit. Zero regressions.Awaiting human sign-off; not closing.