Skill that audits and rewrites content to remove AI writing patterns. Use it with your favorite agents including Claude Code, OpenClaw, Codex, and Hermes.
This report summarizes scanner evidence for conorbronsdon/avoid-ai-writing, a JavaScript project with 4,964 GitHub stars. SynthScan examined 69,866 lines of code across 417 source files, recording 685 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 17.9 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 307 finding(s).
Are imports declared and package/API names verified? 6 finding(s).
Are wrappers, guards, and repeated structures necessary? 399 finding(s).
Which changes need focused human review? 685 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 685 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 677 | // ─── Sycophantic tone ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 685 | // ─── Filler phrases ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 693 | // ─── Generic conclusions ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 701 | // ─── "Let's" constructions ───────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 710 | // ─── Reasoning chain artifacts ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 737 | // ─── Vague attributions ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 745 | // ─── Hollow intensifiers ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 754 | // ─── Emotional flatline ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 943 | // ─── Generic future-narrative closers ────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 952 | // ─── "Real/actual" adjective inflation ───────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 960 | // ─── Formulaic openers ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3135 | // ── Trinary classification (GPTZero-shaped) ────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 28 | // ═══ Tier 1 pre-pass: normalize bypass tricks ══════════════════════ | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 47 | // ─── Source-coordinate mapping (issue #189) ───────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 47 | // ─── Source-coordinate mapping (issue #189) ───────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 248 | // ─── Tier 1: Always flag ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 433 | // ─── Tier 2: Flag in clusters (2+ per paragraph) ────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 495 | // ─── Tier 3: Flag by density ─────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 647 | // ─── Transition phrases ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 664 | // ─── Chatbot artifacts ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 726 | // ─── Significance inflation ──────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 775 | // ─── Lingering-attention claims ──────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 799 | // ─── Novelty inflation ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 807 | // ─── Cutoff disclaimers ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 823 | // ─── AI-tool fingerprints ────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 873 | // ─── Template phrases ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 882 | // ─── False concession ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 922 | // ─── Rhetorical question openers ─────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 929 | // ─── Hedge-stacked predictions ───────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 975 | // ─── Speculative scenario openers ────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 994 | // ─── Launch-copy dramatic introductions ──────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1026 | // ─── Dramatized contrast against the crowd ───────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1057 | // ─── Fake-casual props (stage directions and wink asides) ────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1087 | // ─── Performed-insight phrases ───────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1117 | // ─── Negation chains ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1139 | // ─── Negative parallelism ────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1219 | // ─── Dev-blog boilerplate ────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2013 | // ─── Forms that open with `#` but are not social tags ────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2013 | // ─── Forms that open with `#` but are not social tags ────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2038 | // ─── Title Case Section Headers in non-technical prose ───────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2064 | // ─── Parenthetical hedging asides ────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2076 | // ─── Confidence calibration ──────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2087 | // ─── Social endorsement / CTA closers ────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2119 | // ─── Unnecessary hyphenation (#107) ─────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2119 | // ─── Unnecessary hyphenation (#107) ─────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2159 | // ═══ Helpers ═══════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2229 | // ═══ Main analysis ═════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2416 | // ── 1. Tier 1 words ────────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2454 | // ── 2. Tier 2 clusters ─────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2487 | // ── 3. Tier 3 density ──────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2510 | // ── 4–21. Pattern categories ───────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2548 | // ── Tier 1 v2: formulaic openers + parenthetical hedges ────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2593 | // ── Normalization-trigger flag ─────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2658 | // ── Smart-punctuation co-occurrence signature ──────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2687 | // ── Punctuation distribution mode ──────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2718 | // ── Function-word trigram entropy ──────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2777 | // ── Cross-paragraph burstiness ─────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2810 | // ── Tier 3 multi-word phrase density ───────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2863 | // ── Hashtag stuffing ───────────────────────────────────────── | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2889 | // ── Bullet list of bare noun phrases ───────────────────────── | COMMENT |
| 310 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle4/claude-responses.json | 5 | "technical_context": "I'll audit the source for AI-isms under the technical-blog profile, then rewrite while preservin | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle4/claude-responses.json | 6 | "protected": "Only the opening sentence is editable prose; the quote, table, code, and path/URL are protected and stay | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle4/claude-responses.json | 6 | "protected": "Only the opening sentence is editable prose; the quote, table, code, and path/URL are protected and stay | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle4/claude-responses.json | 6 | "protected": "Only the opening sentence is editable prose; the quote, table, code, and path/URL are protected and stay | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle4/mimo-responses.json | 5 | "technical_context": "## Final rewrite\n\nThe estimate uses robust standard errors. The old guide says retries are dis | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle4/mimo-responses.json | 6 | "protected": "## Audit\n\nOnly one justified finding in the editable prose:\n\n- **Transition phrase to remove:** \"Mo | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle4/mimo-responses.json | 6 | "protected": "## Audit\n\nOnly one justified finding in the editable prose:\n\n- **Transition phrase to remove:** \"Mo | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle4/mimo-responses.json | 9 | "detect_only": "## 1. Issues found\n\n**P1**\n- **\"robust\"** — Tier 1A AI frequency marker. Suggests: *strong, relia | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle3/claude-responses.json | 5 | "technical_context": "No justified AI-isms in this passage under the technical-blog profile. Both candidate matches tu | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle3/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle3/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle3/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle3/mimo-responses.json | 5 | "technical_context": "## Audit\n\nThe source text is three sentences reporting a factual correction about technical be | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle3/mimo-responses.json | 6 | "protected": "## Audit\n\n**Findings:**\n\n1. **P2 — \"Moreover\"** (transition phrase): `Moreover, the rollout finish | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle3/mimo-responses.json | 6 | "protected": "## Audit\n\n**Findings:**\n\n1. **P2 — \"Moreover\"** (transition phrase): `Moreover, the rollout finish | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle3/mimo-responses.json | 6 | "protected": "## Audit\n\n**Findings:**\n\n1. **P2 — \"Moreover\"** (transition phrase): `Moreover, the rollout finish | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle2/claude-responses.json | 5 | "technical_context": "## Final rewrite\n\nThe estimate uses robust standard errors. The old guide says retries are dis | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle2/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle2/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle2/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle2/mimo-responses.json | 5 | "technical_context": "## Issues found\n\nNone.\n\n**Technical meaning preserved.** \"Robust standard errors\" is a leg | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle2/mimo-responses.json | 6 | "protected": "**Final rewrite**\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle2/mimo-responses.json | 9 | "detect_only": "## Detect Mode Audit\n\n**1. Issues found**\n\n- **P1 (AI frequency marker):** \"robust\" — This word | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle5/claude-responses.json | 5 | "technical_context": "## Final rewrite\n\nThe estimate uses robust standard errors. The old guide says retries are dis | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle5/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle5/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …5-296-2026-09-16/isolated-cycle5/claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle5/mimo-responses.json | 6 | "protected": "# Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal m | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle5/mimo-responses.json | 6 | "protected": "# Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal m | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle5/mimo-responses.json | 6 | "protected": "# Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal m | CODE |
| MEDIUM⚡ | …295-296-2026-09-16/isolated-cycle5/mimo-responses.json | 9 | "detect_only": "## 1. Issues found\n\n**P1 — Obvious AI smell**\n\n- **Tier 1A: \"robust\"** — \"Moreover, this **robu | CODE |
| MEDIUM | …stack-295-296-2026-09-16/initial/claude-responses.json | 6 | "protected": "**Final rewrite**\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivo | CODE |
| MEDIUM | …stack-295-296-2026-09-16/repair1/claude-responses.json | 6 | "protected": "**Final rewrite**\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivo | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle3-mimo-responses.json | 5 | "technical_context": "## Audit\n\nThe source text is three sentences reporting a factual correction about technical be | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle3-mimo-responses.json | 6 | "protected": "## Audit\n\n**Findings:**\n\n1. **P2 — \"Moreover\"** (transition phrase): `Moreover, the rollout finish | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle3-mimo-responses.json | 6 | "protected": "## Audit\n\n**Findings:**\n\n1. **P2 — \"Moreover\"** (transition phrase): `Moreover, the rollout finish | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle3-mimo-responses.json | 6 | "protected": "## Audit\n\n**Findings:**\n\n1. **P2 — \"Moreover\"** (transition phrase): `Moreover, the rollout finish | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle2-mimo-responses.json | 5 | "technical_context": "## Issues found\n\nNone.\n\n**Technical meaning preserved.** \"Robust standard errors\" is a leg | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle2-mimo-responses.json | 6 | "protected": "**Final rewrite**\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …-16/literal-checks/isolated-cycle2-mimo-responses.json | 9 | "detect_only": "## Detect Mode Audit\n\n**1. Issues found**\n\n- **P1 (AI frequency marker):** \"robust\" — This word | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle3-claude-responses.json | 5 | "technical_context": "No justified AI-isms in this passage under the technical-blog profile. Both candidate matches tu | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle3-claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle3-claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle3-claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle2-claude-responses.json | 5 | "technical_context": "## Final rewrite\n\nThe estimate uses robust standard errors. The old guide says retries are dis | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle2-claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle2-claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …6/literal-checks/isolated-cycle2-claude-responses.json | 6 | "protected": "## Final rewrite\n\nThe rollout finished Friday.\n\nMina said, \"This seamless platform marks a pivotal | CODE |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3145 | // technical writing where the tier1 vocabulary (robust, | COMMENT |
| MEDIUM⚡ | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3146 | // comprehensive, leverage, ecosystem) legitimately overlaps with | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 32 | // them BEFORE pattern matching so "delve" with a Cyrillic 'е' still | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 88 | // word: letters on both sides, the shape a humanizer uses to break "delve" | COMMENT |
| MEDIUM | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2357 | // "delve" with a Cyrillic 'е' still hits Tier 1. Compose the map while | COMMENT |
| MEDIUM | detector/patterns.test.js | 625 | // word ("delve", "robust", "leverage") and substitutes synonyms the | COMMENT |
| MEDIUM | detector/patterns.test.js | 1678 | // ZWSP between "del" and "ve" defeats naive "delve" exact-match. Pre- | COMMENT |
| MEDIUM | detector/patterns.test.js | 1690 | // 'dеlve' would not equal 'delve' and Tier 1 misses it. After | COMMENT |
| MEDIUM | detector/patterns.test.js | 2834 | `>[We must delve](https://example.com) into the landscape and leverage our synergy.\n${prose}`, | CODE |
| MEDIUM⚡ | detector/patterns.js | 3145 | // technical writing where the tier1 vocabulary (robust, | COMMENT |
| MEDIUM⚡ | detector/patterns.js | 3146 | // comprehensive, leverage, ecosystem) legitimately overlaps with | COMMENT |
| MEDIUM | detector/patterns.js | 32 | // them BEFORE pattern matching so "delve" with a Cyrillic 'е' still | COMMENT |
| 18 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .ssot.yaml | 1 | # Which promo surfaces copy this repo's counts, and where the real number lives. | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 21 | * the skill treats them as stronger or weaker AI-origin signals. | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 141 | // - mixed-script words ("pаypal", "dеlve"), anywhere; | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 281 | 'symphony': 'coordination, balance', | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 321 | const after = text.slice(end, end + 40); | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 581 | // crypto-shill phrases stacked) and would otherwise be suppressed by | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 601 | 'negative-parallelism': 4, | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 621 | 'smart-punct-signature': 6, | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 761 | /\bi\s+was\s+fascinated\s+to\b/gi, | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 781 | // ("I keep coming back to Hirschman because it predicts who quits"), and | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 821 | ]; | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 881 | COMMENT | |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 961 | // The "In the rapidly evolving world of X, Y has emerged as..." family | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 981 | // pointing at a concrete example, not a speculative world) and bare | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1001 | // deliberate miss. The Meet surface additionally requires one of four | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1021 | const LAUNCH_INTROS = [ | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1041 | // claim the same way. Verb stems carry explicit inflection tails so | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1061 | // that is a recall limit: exactly six stage directions ("checks | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1141 | // a negated copula, a body X, then a restatement: "it / this / that / | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1521 | blankRange(chars, frontmatter.start, frontmatter.end); | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1541 | // because separate masks disagree about who owns overlapping text: a fence | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2021 | // positives on exactly the stuffed-block shape this rule exists to catch. | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2041 | // in marketing/personal/blog prose. Skipped when contextMode is | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2081 | /\bsignificantly\b/gi, | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2301 | // characters, and results are translated before they leave the function. | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2361 | sourceMap = norm.sourceMap; | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2561 | // tokens capitalized incl. function words) — that's headline style, | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2581 | // Workplace". Measured across 81 files that provably predate LLMs | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2801 | type: 'cross-para-burstiness', | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2861 | } | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2881 | issues.push({ | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2961 | flushRun(); | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3021 | }); | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3081 | issues.push({ | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3121 | // ── Sentence-region smoothing (HMM-style without an HMM) ───────── | COMMENT |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 3261 | if (trimBoundaryWhitespace) { | COMMENT |
| LOW | detector/patterns.js | 21 | * the skill treats them as stronger or weaker AI-origin signals. | COMMENT |
| LOW | detector/patterns.js | 141 | // - mixed-script words ("pаypal", "dеlve"), anywhere; | COMMENT |
| LOW | detector/patterns.js | 281 | 'symphony': 'coordination, balance', | COMMENT |
| LOW | detector/patterns.js | 321 | const after = text.slice(end, end + 40); | COMMENT |
| LOW | detector/patterns.js | 581 | // crypto-shill phrases stacked) and would otherwise be suppressed by | COMMENT |
| LOW | detector/patterns.js | 601 | 'negative-parallelism': 4, | COMMENT |
| LOW | detector/patterns.js | 621 | 'smart-punct-signature': 6, | COMMENT |
| LOW | detector/patterns.js | 761 | /\bi\s+was\s+fascinated\s+to\b/gi, | COMMENT |
| LOW | detector/patterns.js | 781 | // ("I keep coming back to Hirschman because it predicts who quits"), and | COMMENT |
| LOW | detector/patterns.js | 821 | ]; | COMMENT |
| LOW | detector/patterns.js | 881 | COMMENT | |
| LOW | detector/patterns.js | 961 | // The "In the rapidly evolving world of X, Y has emerged as..." family | COMMENT |
| LOW | detector/patterns.js | 981 | // pointing at a concrete example, not a speculative world) and bare | COMMENT |
| LOW | detector/patterns.js | 1001 | // deliberate miss. The Meet surface additionally requires one of four | COMMENT |
| LOW | detector/patterns.js | 1021 | const LAUNCH_INTROS = [ | COMMENT |
| LOW | detector/patterns.js | 1041 | // claim the same way. Verb stems carry explicit inflection tails so | COMMENT |
| LOW | detector/patterns.js | 1061 | // that is a recall limit: exactly six stage directions ("checks | COMMENT |
| LOW | detector/patterns.js | 1141 | // a negated copula, a body X, then a restatement: "it / this / that / | COMMENT |
| LOW | detector/patterns.js | 1521 | blankRange(chars, frontmatter.start, frontmatter.end); | COMMENT |
| LOW | detector/patterns.js | 1541 | // because separate masks disagree about who owns overlapping text: a fence | COMMENT |
| LOW | detector/patterns.js | 2021 | // positives on exactly the stuffed-block shape this rule exists to catch. | COMMENT |
| LOW | detector/patterns.js | 2041 | // in marketing/personal/blog prose. Skipped when contextMode is | COMMENT |
| LOW | detector/patterns.js | 2081 | /\bsignificantly\b/gi, | COMMENT |
| LOW | detector/patterns.js | 2301 | // characters, and results are translated before they leave the function. | COMMENT |
| 121 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | …295-296-2026-09-16/isolated-cycle2/mimo-responses.json | 9 | "detect_only": "## Detect Mode Audit\n\n**1. Issues found**\n\n- **P1 (AI frequency marker):** \"robust\" — This word | CODE |
| HIGH⚡ | …-16/literal-checks/isolated-cycle2-mimo-responses.json | 9 | "detect_only": "## Detect Mode Audit\n\n**1. Issues found**\n\n- **P1 (AI frequency marker):** \"robust\" — This word | CODE |
| HIGH | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 837 | // Noun-only template variables common in AI-generated email or | COMMENT |
| HIGH | detector/patterns.test.js | 1604 | // The canonical AI-generated boilerplate that users paste without | COMMENT |
| HIGH | detector/patterns.js | 837 | // Noun-only template variables common in AI-generated email or | COMMENT |
| HIGH | skills/avoid-ai-writing/detector/patterns.js | 837 | // Noun-only template variables common in AI-generated email or | COMMENT |
| HIGH | skills/ai-writing-detector/scripts/patterns.js | 837 | // Noun-only template variables common in AI-generated email or | COMMENT |
| HIGH | skills/preservation-verifier/scripts/patterns.js | 837 | // Noun-only template variables common in AI-generated email or | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1188 | function negativeParallelismIssues(text, reveals, contrasts) { | CODE |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1387 | function maskHtmlCommentsOutsideCode(chars) { | CODE |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 1993 | function findUnnecessaryHyphenation(text) { | CODE |
| LOW | …i-writing/skills/avoid-ai-writing/detector/patterns.js | 2631 | function countVersionHeadingDashes(value) { | CODE |
| LOW⚡ | detector/patterns.test.js | 3417 | function assertIndexedIssuesSliceExactly(source, issues, label) { | CODE |
| LOW | detector/patterns.js | 1188 | function negativeParallelismIssues(text, reveals, contrasts) { | CODE |
| LOW | detector/patterns.js | 1387 | function maskHtmlCommentsOutsideCode(chars) { | CODE |
| LOW | detector/patterns.js | 1993 | function findUnnecessaryHyphenation(text) { | CODE |
| LOW | detector/patterns.js | 2631 | function countVersionHeadingDashes(value) { | CODE |
| LOW | scripts/validate-openai-plugin.py | 58 | def duplicate_top_level_frontmatter_keys(inner: str) -> list[str]: | CODE |
| LOW | scripts/validate-openai-plugin.py | 68 | def strip_frontmatter_metadata(text: str) -> str: | CODE |
| LOW | scripts/validate-openai-plugin.py | 221 | def parse_supported_yaml_scalar(value: str): | CODE |
| LOW | scripts/fp-preprocess.js | 72 | function potentialIndentedCodeLines(lines) { | CODE |
| LOW | scripts/rewrite-eval-opencode.js | 481 | function finishInvalidResultQuarantine(task, taskDir, failure) { | CODE |
| LOW | scripts/fp-measure.js | 123 | function measurementHarnessFingerprint() { | CODE |
| LOW | skills/avoid-ai-writing/detector/patterns.js | 1188 | function negativeParallelismIssues(text, reveals, contrasts) { | CODE |
| LOW | skills/avoid-ai-writing/detector/patterns.js | 1387 | function maskHtmlCommentsOutsideCode(chars) { | CODE |
| LOW | skills/avoid-ai-writing/detector/patterns.js | 1993 | function findUnnecessaryHyphenation(text) { | CODE |
| LOW | skills/avoid-ai-writing/detector/patterns.js | 2631 | function countVersionHeadingDashes(value) { | CODE |
| LOW | skills/ai-writing-detector/scripts/patterns.js | 1188 | function negativeParallelismIssues(text, reveals, contrasts) { | CODE |
| LOW | skills/ai-writing-detector/scripts/patterns.js | 1387 | function maskHtmlCommentsOutsideCode(chars) { | CODE |
| LOW | skills/ai-writing-detector/scripts/patterns.js | 1993 | function findUnnecessaryHyphenation(text) { | CODE |
| LOW | skills/ai-writing-detector/scripts/patterns.js | 2631 | function countVersionHeadingDashes(value) { | CODE |
| LOW | skills/preservation-verifier/scripts/patterns.js | 1188 | function negativeParallelismIssues(text, reveals, contrasts) { | CODE |
| LOW | skills/preservation-verifier/scripts/patterns.js | 1387 | function maskHtmlCommentsOutsideCode(chars) { | CODE |
| LOW | skills/preservation-verifier/scripts/patterns.js | 1993 | function findUnnecessaryHyphenation(text) { | CODE |
| LOW | skills/preservation-verifier/scripts/patterns.js | 2631 | function countVersionHeadingDashes(value) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | evals/rewrite/cases.json | 951 | "source": "The storage cap is 750 GB per tenant, not 750 TB. Anything above the cap queues until the next billing cy | CODE |
| MEDIUM | detector/patterns.test.js | 616 | const text = "I hope this helps! Let me know if you need anything else. Great question! Feel free to reach out."; | CODE |
| MEDIUM⚡ | detector/patterns.test.js | 2698 | test('v2: canonical "As an AI language model" disclaimer fires cutoff-disclaimer + AI_ONLY', () => { | CODE |
| MEDIUM⚡ | detector/patterns.test.js | 2701 | const text = 'As an AI language model, I cannot provide legal advice on this matter. However, I can suggest you consul | CODE |
| MEDIUM⚡ | detector/patterns.test.js | 2701 | const text = 'As an AI language model, I cannot provide legal advice on this matter. However, I can suggest you consul | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | scripts/fp-compare.test.js | 232 | const modified = result.modes.paragraph.comparison.changes.examples.find((change) => | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/validate-openai-plugin.py | 135 | CODE | |
| LOW | scripts/validate-openai-plugin.py | 221 | CODE | |
| LOW | scripts/validate-openai-plugin.py | 285 | CODE | |
| LOW | scripts/validate-openai-plugin.py | 440 | CODE | |
| LOW | scripts/promo-drift-report.py | 23 | CODE | |
| LOW | scripts/check-ssot-controls.py | 13 | CODE | |
| LOW | …void-ai-writing-router/scripts/validate_connections.py | 99 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/validate-openai-plugin.py | 3 | CODE | |
| LOW | scripts/package-openai-plugin.py | 3 | CODE | |
| LOW | scripts/validate-openai-plugin.test.py | 3 | CODE | |
| LOW | …void-ai-writing-router/scripts/validate_connections.py | 9 | CODE | |
| LOW | …ai-writing-router/scripts/validate_connections.test.py | 3 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 288 | - **Voice-profile targets are bound to the Never-inject guardrails (#100).** `casual`, `professional`, and `warm` each h | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/validate-openai-plugin.py | 118 | except Exception as exc: | CODE |
| LOW | scripts/validate-openai-plugin.py | 425 | except Exception as exc: | CODE |