October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk3 min

AI-Generated Code Brought Typography Into My Repository, So I Wrote a Roslyn Analyzer

Coree.Analyzers.Typography flags selected typographic punctuation in C# and configured additional files, with per-rule severity and file-scope controls.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

AI-generated code can bring curly quotes, long dashes, and other typographic punctuation into a repository. Those characters are not inherently wrong, and an analyzer cannot tell whether a person, a word processor, copied text, or an AI tool introduced them. The point of Coree.Analyzers.Typography is narrower: make selected characters visible and let each project decide what to accept.

Why flag typographic punctuation in a code repository?

Typography can slip into source code and other shipped project files through copy-and-paste, word-processing software, documentation edits, or generated text. A curly apostrophe or an em dash may be perfectly appropriate in prose, but it can be an unwelcome surprise in a codebase whose conventions favor plain ASCII punctuation.

As an Amazon Associate I earn from qualifying purchases.

The package documentation puts the concern succinctly: “Compilers do not care. Reviewers do.” That is a framing for a consistency and review issue, not evidence that every non-ASCII punctuation mark causes a compiler problem. The author’s account, indexed by DEV Community’s search aggregator, describes AI-generated code as the trigger for this particular project; it does not establish that AI is the source of any given character elsewhere.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which characters does the analyzer detect?

The documented diagnostics target a selected set of typographic punctuation, rather than Unicode generally. Ordinary ASCII hyphens, straight quotation marks, apostrophes, and periods are left alone.

Diagnostic Characters covered
CTYED001 En dash (U+2013) and em dash (U+2014)
CTYQM001 Typographic quotation marks, including curly quotes and guillemets
CTYAP001 Typographic apostrophe or closing single quotation mark (U+2019)
CTYEL001 Horizontal ellipsis (U+2026)
CTYMN001 Minus sign (U+2212)

These distinctions matter: a typographic minus sign is not the same character as the ASCII hyphen-minus, and the analyzer’s documented checks concern specific punctuation characters, not all Unicode text.

What files can it inspect?

The analyzer checks C# syntax trees and can also scan matching files beneath the project directory as MSBuild AdditionalFiles. That wider file coverage can make Visual Studio diagnostics correspond to build diagnostics for files included in the scan configuration; it is not an automatic scan of every file in a repository.

MSBuild include and exclude globs determine additional-file coverage. The README distinguishes Excludes, which replaces the default exclusion list, from AdditionalExcludes, which adds patterns to that list. The bin, obj, .git, and .vs directories are always excluded from additional-file scanning.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How much enforcement does it apply?

Each analyzer’s severity can be configured as warning, error, message, or off; warning is the documented default. That lets a team start with visible findings, raise selected rules to build errors when the policy is established, or disable checks it does not want.

Severity and file coverage are separate choices. A warning only helps if the relevant files are scanned, while a broad scan may surface punctuation that is intentional in prose. Teams should define both the character policy and the files to which it applies before making diagnostics build-blocking.

How to add it to a project

The package is distributed through NuGet as a development dependency with analyzer/build assets. The NuGet listing showed version 1.0.0.3 as of October 7, 2026; package metadata can change. Check the current listing for installation details and the version available to your project.

  1. Open the NuGet package page and add the package to the project using the installation method your .NET workflow uses.
  2. Set the diagnostic severities that match your team’s policy, choosing among warning, error, message, or off for each analyzer.
  3. Configure MSBuild include and exclusion globs for the additional files you want scanned; decide whether to replace defaults with Excludes or extend them with AdditionalExcludes.
  4. Build the project and review diagnostics in the IDE and build output, adjusting the file patterns or severities if intentional prose is generating noise.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Is this a useful guardrail or developer pedantry?

It is useful when a repository has a clear punctuation convention, reviewers want unexpected characters called out consistently, and the configured file set reflects that convention. It is likely to feel pedantic when a project has no such policy, when typographic punctuation is intentionally welcome in its prose, or when the scan scope is broader than the team wants to maintain.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The practical decision is not whether Unicode is good or bad. It is whether a particular character in a particular kind of file deserves attention. A configurable analyzer offers a lightweight way to make that decision visible without imposing a blanket ban.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.