Four regexes rescanned a long whitespace or blank-line run from every
position, so a document ending in blank lines or carrying a large masked
comment block took seconds instead of milliseconds:
- the sentence splitter behind highlight regions, replaced with a
single-pass scan that yields the same spans as the former regex
- its boundary-whitespace trim in rendered-Markdown mode, now trimStart
and trimEnd arithmetic instead of a `\s*$` match
- the Markdown table delimiter test, now run on the trimmed line
- the line-anchored `Interesting part:` opener, whose leading `\s*`
crossed newlines under /m and is now `[ \t]*`
The #190 fixture still scaled quadratically after #196 because masked
comments become whitespace, which the sentence splitter then choked on.
64000 masked comments now analyze in under a second.
Regression tests compare sentence boundaries against the former regex on
every boundary shape and assert linear growth by ratio rather than by a
wall-clock budget. Bundled detector copies regenerated.
Closes#235
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LmCsufeKSGpesBP7w4Xf4j
Run maskCode once per document and advance a single comment-open scan.
Refresh code or list-aware views only when a removed comment contained
backticks or list markers, preserving #123 edge cases.
Fixesconorbronsdon/avoid-ai-writing#190
Co-authored-by: Sharad. <sharadvc@users.noreply.github.com>
Align CONTRIBUTING.md, CLAUDE.md, and the PR checklist on impact-based release notes, Unreleased entries, and release-time versioning. Exempt routine documentation and maintenance without user-facing effect, and remove the three corresponding Unreleased notes from #185.
Reviewed by GPT-5.6 Sol / Codex. Tests, self-scan, count check, SSOT, detector, and plugin-skill-sync passed.
Integrate PRs #181 and #183 with required changelog entries and the newcomer issue policy. Original contributor commits are preserved.
Reviewed by GPT-5.6 Sol / Codex; npm test, self-scan, pattern count, SSOT, detector, and plugin-skill-sync checks passed.
Preserve contributor commits from PRs #181 and #183, record their required changelog entries, and document one good-first issue for a contributor's first PR.
Reviewed with GPT-5.6 Sol / Codex.
Fixesconorbronsdon/avoid-ai-writing#169
The guard script already derives counts from references/patterns.md;
update the CI step label, promo-drift issue text, and .ssot.yaml
diagram so contributor-facing docs match the implementation.
Remove the nonexistent marketing boost from patterns.js comments.
Document all four accepted modes in CATEGORIES.md; only technical
changes flagging today. Regenerate mirrored detector copies.
Fixesconorbronsdon/avoid-ai-writing#173
Co-authored-by: Sharad. <sharadvc@users.noreply.github.com>
CONTRIBUTING.md explains when to bump the README pattern-category
bullet and the checked CLAUDE.md literal. The PR template adds a
matching checklist item. CLAUDE.md clarifies README as canonical
and its own quote as a CI-checked copy.
Fixesconorbronsdon/avoid-ai-writing#170