# Anti-AI lint rules: textual fingerprints typical of LLM-generated content. # # Severity: # warn — build proceeds, message printed # fail — build aborts (exit 1) unless build.sh --skip-lint # # Whitelisting matches: # In an HTML file: # # Per site (site.yaml): anti_ai_allow: # - leverage # - em-dash-3-bullet # # Vocab matches are case-insensitive substring matches against the visible # text of the rendered HTML (script/style/comments stripped). Pattern matches # are regex (Python re), case-insensitive by default, against the same. # # Source: docs/geo-seo-guideline.md §3.6 (Wikipedia AI-content signals). vocab: de: warn: - "nahtlos" - "robust" - "umfassend" - "ganzheitlich" - "fungiert als" - "dient als Brücke" - "Symbiose" - "im Bereich der" - "in der heutigen schnelllebigen" - "ein Meilenstein" - "ein Beweis für" - "hat Spuren hinterlassen" - "Es ist wichtig zu erwähnen" - "Es ist wichtig zu beachten" - "bahnbrechend" - "revolutionär" fail: - "in der sich entwickelnden Landschaft" - "Herausforderungen und Zukunftsaussichten" - "Herausforderungen und Perspektiven" en: warn: - "delve" - "tapestry" - "testament" - "intricate" - "garnered" - "bolstered" - "enduring" - "robust" - "comprehensive" - "meticulous" - "interplay" - "pivotal" - "underscore" - "moreover" - "furthermore" - "additionally" - "crucial" - "showcasing" - "highlighting" - "leverage" - "streamline" - "holistic" - "seamless" - "unleash" - "ecosystem" - "in the realm of" - "dive into" - "It's important to note that" - "It is important to note that" - "In this article, we'll" fail: - "in today's evolving landscape" - "in the ever-evolving landscape" - "Challenges and Future Prospects" patterns: - name: em-dash-3-bullet description: | Three "Word: text — Word: text — Word: …" segments in one block. Classic AI bullet pattern. regex: '(\w[\w\s]{0,30}:\s+[^—\n]{2,80}—\s*){2,}\w[\w\s]{0,30}:' severity: warn - name: not-only-but-also description: '"not only X, but also Y" / "nicht nur X, sondern auch Y" filler.' regex: '\b(?:not only|nicht nur)\b[^.,;\n]{1,80}\b(?:but also|sondern auch)\b' severity: warn - name: as-an-ai description: Leftover AI self-disclosure. regex: '\b(?:as an? (?:AI|language model)|als (?:eine?|eine\s+)?(?:KI|Sprachmodell))\b' severity: fail