<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Quadrant IntegrityLens</title><link>https://docs.integritylens.quadrant.tools/</link><description>Recent content on Quadrant IntegrityLens</description><generator>Hugo</generator><language>en</language><atom:link href="https://docs.integritylens.quadrant.tools/index.xml" rel="self" type="application/rss+xml"/><item><title>Installation</title><link>https://docs.integritylens.quadrant.tools/getting-started/installation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/getting-started/installation/</guid><description>&lt;h1 id="installation"&gt;Installation&lt;a class="anchor" href="#installation"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;div id="install-loading"&gt;
&lt;p&gt;Loading latest release information&amp;hellip;&lt;/p&gt;
&lt;/div&gt;
&lt;noscript&gt;
&lt;h2 id="download"&gt;Download&lt;a class="anchor" href="#download"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pre-built binaries are available for Linux, Windows, and macOS.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Platform&lt;/th&gt;
 &lt;th&gt;Download&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Linux (amd64)&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://integritylens.quadrant.tools/releases/integritylens-linux-amd64"&gt;integritylens-linux-amd64&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Windows (amd64)&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://integritylens.quadrant.tools/releases/integritylens-windows-amd64.exe"&gt;integritylens-windows-amd64.exe&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;macOS (Apple Silicon)&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://integritylens.quadrant.tools/releases/integritylens-darwin-arm64"&gt;integritylens-darwin-arm64&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;After downloading, make the binary executable (Linux/macOS):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x integritylens-*&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Optionally move it to a directory in your &lt;code&gt;PATH&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mv integritylens-linux-amd64 /usr/local/bin/integritylens&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/noscript&gt;
&lt;div id="install-content" style="display:none"&gt;
&lt;p id="install-version"&gt;&lt;/p&gt;
&lt;div id="install-tabs" class="install-tabs"&gt;
 &lt;div class="install-tab-buttons"&gt;
 &lt;button class="install-tab-btn" data-platform="darwin" onclick="showPlatformTab('darwin')"&gt;macOS&lt;/button&gt;
 &lt;button class="install-tab-btn" data-platform="linux" onclick="showPlatformTab('linux')"&gt;Linux&lt;/button&gt;
 &lt;button class="install-tab-btn" data-platform="windows" onclick="showPlatformTab('windows')"&gt;Windows&lt;/button&gt;
 &lt;/div&gt;
 &lt;div class="install-tab-panel" id="tab-darwin" style="display:none"&gt;
 &lt;h3&gt;macOS (Apple Silicon)&lt;/h3&gt;
 &lt;p&gt;&lt;a id="dl-darwin" class="book-btn" href="#"&gt;Download for macOS&lt;/a&gt;&lt;/p&gt;
 &lt;p&gt;After downloading, open Terminal and run:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Make executable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x ~/Downloads/integritylens-darwin-arm64
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Move to a directory in your PATH&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mv ~/Downloads/integritylens-darwin-arm64 /usr/local/bin/integritylens&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt; &lt;p&gt;On first launch, macOS may block the binary because it is not notarized.
 Open &lt;strong&gt;System Settings &amp;rarr; Privacy &amp;amp; Security&lt;/strong&gt; and click
 &lt;strong&gt;Allow Anyway&lt;/strong&gt;, then run the command again.&lt;/p&gt;</description></item><item><title>Text Extraction</title><link>https://docs.integritylens.quadrant.tools/architecture/extraction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/architecture/extraction/</guid><description>&lt;h1 id="text-extraction"&gt;Text Extraction&lt;a class="anchor" href="#text-extraction"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Quadrant IntegrityLens uses a smart extraction strategy that balances speed and
accuracy depending on the type of PDF.&lt;/p&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;h2 id="embedded-text-fast-path"&gt;Embedded text (fast path)&lt;a class="anchor" href="#embedded-text-fast-path"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Most PDFs created from Word processors have an embedded text layer. Extracting this text is very fast (~0.2 seconds) and produces high-quality results. This is the default path for most student submissions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2 id="broken-text-layer-detection"&gt;Broken text layer detection&lt;a class="anchor" href="#broken-text-layer-detection"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Some PDFs — particularly those generated by LaTeX — have a text layer that contains garbled characters. Quadrant IntegrityLens detects this automatically by checking for specific Unicode indicators (standalone diaeresis characters) that signal a broken text layer. When a broken text layer is detected, Quadrant IntegrityLens falls back to OCR automatically. No manual intervention is needed.&lt;/p&gt;</description></item><item><title>Unicode Characters</title><link>https://docs.integritylens.quadrant.tools/scanners/unicode/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/unicode/</guid><description>&lt;h1 id="unicode-character-scanners"&gt;Unicode Character Scanners&lt;a class="anchor" href="#unicode-character-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect special Unicode characters that AI models (ChatGPT,
Copilot, etc.) frequently insert into text but that students almost never
type manually. They run regardless of the selected language.&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Scanner ID&lt;/th&gt;
 &lt;th&gt;Character&lt;/th&gt;
 &lt;th&gt;Example&lt;/th&gt;
 &lt;th&gt;Confidence&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;em-dash&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2014 — (em dash)&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;Text — more text&amp;rdquo; instead of &amp;ldquo;Text - more text&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;en-dash-word-join&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2013 – between letters&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;word–joiner&amp;rdquo; instead of &amp;ldquo;word-joiner&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;smart-quotes&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+201D &amp;quot; and U+2018 '&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;quoted&amp;rdquo; instead of &amp;ldquo;quoted&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Medium / Low&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;ellipsis&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2026 … (horizontal ellipsis)&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;and so on…&amp;rdquo; instead of &amp;ldquo;and so on&amp;hellip;&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;non-breaking-space&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+00A0 (non-breaking space)&lt;/td&gt;
 &lt;td&gt;Invisible — looks like a normal space&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;invisible-space&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+200B, U+200A, U+2009, U+202F, U+FEFF&lt;/td&gt;
 &lt;td&gt;Completely invisible zero-width characters&lt;/td&gt;
 &lt;td&gt;High&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;minus-sign&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;U+2212 − (minus sign)&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;5 − 3&amp;rdquo; instead of &amp;ldquo;5 - 3&amp;rdquo;&lt;/td&gt;
 &lt;td&gt;Medium&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="why-these-matter"&gt;Why these matter&lt;a class="anchor" href="#why-these-matter"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;When students type text in a word processor, they use the standard keyboard
characters: hyphens (&lt;code&gt;-&lt;/code&gt;), straight quotes (&lt;code&gt;&amp;quot;&lt;/code&gt;), three dots (&lt;code&gt;...&lt;/code&gt;), and
regular spaces. AI models, however, are trained on typographically polished
text and tend to output Unicode variants of these characters.&lt;/p&gt;</description></item><item><title>Activation</title><link>https://docs.integritylens.quadrant.tools/getting-started/activation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/getting-started/activation/</guid><description>&lt;h1 id="activation"&gt;Activation&lt;a class="anchor" href="#activation"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Quadrant IntegrityLens requires a valid license key. After purchasing a license,
activate it once on each computer where you use the tool.&lt;/p&gt;
&lt;h2 id="purchasing-a-license"&gt;Purchasing a license&lt;a class="anchor" href="#purchasing-a-license"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Visit the purchase page to buy a license:&lt;/p&gt;
&lt;a class="book-btn"href="https://integritylens.quadrant.tools/buy/"rel="noopener"target="_blank"&gt;Purchase a license&lt;/a&gt;
&lt;p&gt;After payment you will receive a license key starting with &lt;code&gt;QIL-&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="activating-your-license"&gt;Activating your license&lt;a class="anchor" href="#activating-your-license"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;h2 id="run-the-activate-command"&gt;Run the activate command&lt;a class="anchor" href="#run-the-activate-command"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;integritylens license activate QIL-XXXX-XXXX-XXXX-XXXX&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Replace &lt;code&gt;QIL-XXXX-XXXX-XXXX-XXXX&lt;/code&gt; with the key you received. The tool
contacts the license server, validates the key, and stores it on your
computer.&lt;/p&gt;</description></item><item><title>Analysis</title><link>https://docs.integritylens.quadrant.tools/architecture/analysis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/architecture/analysis/</guid><description>&lt;h1 id="analysis"&gt;Analysis&lt;a class="anchor" href="#analysis"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;After text extraction, Quadrant IntegrityLens parses the document structure and runs
scanners concurrently.&lt;/p&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;h2 id="structure-parsing"&gt;Structure parsing&lt;a class="anchor" href="#structure-parsing"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The extracted Markdown text is parsed to identify &lt;strong&gt;page boundaries&lt;/strong&gt; (from &lt;code&gt;&amp;lt;!-- page N --&amp;gt;&lt;/code&gt; markers), &lt;strong&gt;headings&lt;/strong&gt; (Markdown headings at any level), and &lt;strong&gt;sections&lt;/strong&gt; (text between headings). This structure allows each finding to be annotated with a precise location: page number, heading, and surrounding section text.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2 id="concurrent-scanning"&gt;Concurrent scanning&lt;a class="anchor" href="#concurrent-scanning"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;All enabled scanners run concurrently on the full text. Each scanner is independent and focuses on a specific type of AI indicator. Scanners declare which languages they support — when you set &lt;code&gt;--language&lt;/code&gt;, only matching scanners run. Language-independent scanners (Unicode and structural) always run.&lt;/p&gt;</description></item><item><title>German Language</title><link>https://docs.integritylens.quadrant.tools/scanners/german/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/german/</guid><description>&lt;h1 id="german-language-scanners"&gt;German Language Scanners&lt;a class="anchor" href="#german-language-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect patterns specific to German text and only run when
the language is set to &lt;code&gt;deu&lt;/code&gt; (the default).&lt;/p&gt;
&lt;h2 id="umlaut-digraphs-german"&gt;Umlaut digraphs (&lt;code&gt;german&lt;/code&gt;)&lt;a class="anchor" href="#umlaut-digraphs-german"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;AI models sometimes replace German umlauts (ä, ö, ü) with ASCII digraphs
(ae, oe, ue). This scanner detects such substitutions.&lt;/p&gt;
&lt;p&gt;To avoid false positives, Quadrant IntegrityLens uses an allowlist of approximately
4,500 known German words that contain umlauts. A digraph is only flagged
if the word (or a compound suffix) has a known umlaut form. This means
English loanwords like &amp;ldquo;poem&amp;rdquo; or legitimate German words like &amp;ldquo;Abenteuer&amp;rdquo;
(adventure) are not flagged.&lt;/p&gt;</description></item><item><title>Usage</title><link>https://docs.integritylens.quadrant.tools/getting-started/usage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/getting-started/usage/</guid><description>&lt;h1 id="usage"&gt;Usage&lt;a class="anchor" href="#usage"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="basic-usage"&gt;Basic usage&lt;a class="anchor" href="#basic-usage"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="book-steps"&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;h2 id="analyse-a-document"&gt;Analyse a document&lt;a class="anchor" href="#analyse-a-document"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pass a PDF file as argument:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;integritylens document.pdf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Quadrant IntegrityLens extracts the text, runs all enabled scanners, and displays the findings in the terminal. Each finding shows the &lt;strong&gt;scanner&lt;/strong&gt; that triggered it, a &lt;strong&gt;confidence level&lt;/strong&gt; (Low, Medium, or High), the &lt;strong&gt;page number&lt;/strong&gt; and &lt;strong&gt;heading&lt;/strong&gt; where the passage was found, and a &lt;strong&gt;text excerpt&lt;/strong&gt; showing the flagged content in context.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2 id="generate-a-pdf-report"&gt;Generate a PDF report&lt;a class="anchor" href="#generate-a-pdf-report"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Use &lt;code&gt;--report&lt;/code&gt; to create a PDF report alongside the terminal output:&lt;/p&gt;</description></item><item><title>Swiss German</title><link>https://docs.integritylens.quadrant.tools/scanners/swiss-german/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/swiss-german/</guid><description>&lt;h1 id="swiss-german-scanner"&gt;Swiss German Scanner&lt;a class="anchor" href="#swiss-german-scanner"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;h2 id="eszett-detection-swiss-german"&gt;Eszett detection (&lt;code&gt;swiss-german&lt;/code&gt;)&lt;a class="anchor" href="#eszett-detection-swiss-german"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Swiss Standard German never uses the Eszett (ß) — it always uses &amp;ldquo;ss&amp;rdquo; instead.
For example:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Meaning&lt;/th&gt;
 &lt;th&gt;Standard German (Germany)&lt;/th&gt;
 &lt;th&gt;Swiss Standard German&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;street&lt;/td&gt;
 &lt;td&gt;Straße&lt;/td&gt;
 &lt;td&gt;Strasse&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;big&lt;/td&gt;
 &lt;td&gt;groß&lt;/td&gt;
 &lt;td&gt;gross&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;moreover&lt;/td&gt;
 &lt;td&gt;außerdem&lt;/td&gt;
 &lt;td&gt;ausserdem&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;AI language models are predominantly trained on German text from Germany and
therefore produce ß regularly. When a student submission written in Swiss
German contains Eszett characters, this is a strong indicator that the text
was not written by the student.&lt;/p&gt;</description></item><item><title>Rhetorical Patterns</title><link>https://docs.integritylens.quadrant.tools/scanners/rhetorical/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/rhetorical/</guid><description>&lt;h1 id="rhetorical-pattern-scanners"&gt;Rhetorical Pattern Scanners&lt;a class="anchor" href="#rhetorical-pattern-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect rhetorical writing patterns that AI models overuse
in German text. They only run when the language is set to &lt;code&gt;deu&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A single occurrence of these patterns is normal in student writing. The
scanners only trigger when patterns appear &lt;strong&gt;two or more times&lt;/strong&gt;, and
confidence increases with frequency.&lt;/p&gt;
&lt;h2 id="negative-parallelism-negative-parallelism"&gt;Negative parallelism (&lt;code&gt;negative-parallelism&lt;/code&gt;)&lt;a class="anchor" href="#negative-parallelism-negative-parallelism"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Detects parallel negation constructions such as &amp;ldquo;Not only X, but also Y&amp;rdquo;
and &amp;ldquo;Neither X nor Y&amp;rdquo;. The scanner matches the German equivalents of
these patterns.&lt;/p&gt;</description></item><item><title>Structural Patterns</title><link>https://docs.integritylens.quadrant.tools/scanners/structural/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.integritylens.quadrant.tools/scanners/structural/</guid><description>&lt;h1 id="structural-pattern-scanners"&gt;Structural Pattern Scanners&lt;a class="anchor" href="#structural-pattern-scanners"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;These scanners detect formatting patterns and textual artifacts that are
characteristic of AI-generated content. They run regardless of the selected
language.&lt;/p&gt;
&lt;h2 id="label-lists-label-list"&gt;Label lists (&lt;code&gt;label-list&lt;/code&gt;)&lt;a class="anchor" href="#label-lists-label-list"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Detects AI-style lists where each item starts with a bold label followed
by a description:&lt;/p&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;&lt;strong&gt;Clarity&lt;/strong&gt;: The text should be easy to understand.
&lt;strong&gt;Brevity&lt;/strong&gt;: Keep sentences short.
&lt;strong&gt;Accuracy&lt;/strong&gt;: Facts must be verified.&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;Students writing lists typically use plain bullet points without bold labels.&lt;/p&gt;</description></item></channel></rss>