Summary
#3162 narrowed conversational-antecedent's in follower from a blanket exemption to a document-locator predicate, because as we discussed in yesterday's meeting was being silently suppressed. under, at, and on still have the identical weakness — they exempt unconditionally.
Same defect class, deliberately left out of that change so it could get its own corpus measurement.
What escapes today
| Input |
Current |
Should be |
As we agreed on Tuesday, the cap is 30s. |
not flagged |
flagged (T1) |
As we decided at the standup, retry three times. |
not flagged |
flagged (T1) |
As we agreed under time pressure, this is temporary. |
not flagged |
flagged (T1) |
As we decided on the ADR's recommendation, … |
not flagged |
correctly not flagged |
The referent in the first three is the conversation, not a written locus a reader can open — which is exactly the distinction audit_noise_follower_is_document_locator already encodes for in.
Why this was not folded into #3162
on in particular is high-traffic prose (based on, on the other hand, depends on, on disk), so narrowing it is a materially different false-positive risk from in. #3162's whole method was measuring each pattern change against the repo's 1136-file tracked-markdown corpus before shipping it; bolting three more followers on without that measurement would have undercut the standard the rest of that change was held to.
Suggested approach
The predicate already exists — audit_noise_follower_is_document_locator in plugins/docs-hygiene/skills/audit-noise/scripts/lib/noise-shapes.sh. The work is deciding, per follower, whether it should defer to that predicate or keep exempting unconditionally, and proving each choice against the corpus:
- Baseline the corpus sweep first (
detect.sh --paths-file over git ls-files '*.md' minus **/evals/fixtures/** and CHANGELOG.md).
- Adjudicate every added finding as true or false positive — this change raises recall, so a non-zero delta is expected and each one needs a ruling.
on may warrant a tighter locator set than in, or may not be worth narrowing at all. That is a finding, not a failure.
Acceptance criteria
Related
Summary
#3162 narrowed
conversational-antecedent'sinfollower from a blanket exemption to a document-locator predicate, becauseas we discussed in yesterday's meetingwas being silently suppressed.under,at, andonstill have the identical weakness — they exempt unconditionally.Same defect class, deliberately left out of that change so it could get its own corpus measurement.
What escapes today
As we agreed on Tuesday, the cap is 30s.As we decided at the standup, retry three times.As we agreed under time pressure, this is temporary.As we decided on the ADR's recommendation, …The referent in the first three is the conversation, not a written locus a reader can open — which is exactly the distinction
audit_noise_follower_is_document_locatoralready encodes forin.Why this was not folded into #3162
onin particular is high-traffic prose (based on,on the other hand,depends on,on disk), so narrowing it is a materially different false-positive risk fromin. #3162's whole method was measuring each pattern change against the repo's 1136-file tracked-markdown corpus before shipping it; bolting three more followers on without that measurement would have undercut the standard the rest of that change was held to.Suggested approach
The predicate already exists —
audit_noise_follower_is_document_locatorinplugins/docs-hygiene/skills/audit-noise/scripts/lib/noise-shapes.sh. The work is deciding, per follower, whether it should defer to that predicate or keep exempting unconditionally, and proving each choice against the corpus:detect.sh --paths-fileovergit ls-files '*.md'minus**/evals/fixtures/**andCHANGELOG.md).onmay warrant a tighter locator set thanin, or may not be worth narrowing at all. That is a finding, not a failure.Acceptance criteria
under,at,oneither defers to the locator predicate or keeps its blanket exemption, with the choice justified against corpus evidence.as we agreed on Tuesdayandas we decided at the standupflag.onidioms.above/below/earlier/later/previously/elsewherestop-words keep working unchanged.SKILL.md'sconversational-antecedenttreatment row stays true after the change.Related
in; recorded this as a deferred recall gap in its## Related.