Add annotated-link / definition exception to the em dash rule (#14)#190
Open
pfstr wants to merge 1 commit into
Open
Add annotated-link / definition exception to the em dash rule (#14)#190pfstr wants to merge 1 commit into
pfstr wants to merge 1 commit into
Conversation
An em dash used as the separator in a reference-list item (`[title](url) — description`) or a definition list (`**Term** — definition`) is a formatting convention, not a mid-sentence AI tell. The current hard cut flattens these, e.g. turning a source list's `... ) — Debian-specific notes` into `... ). Debian-specific notes`. Section 14 now describes the annotated-link / definition pattern, tells the skill to detect it, and asks the user once whether to keep or convert these separators, then applies that choice document-wide. Embedded mode (which cannot ask) defaults to keeping them. The closing scan step is updated so the two exceptions (voice sample, kept annotated-link separators) no longer contradict the "any hit means the draft isn't done" check. Version bumped to 2.10.0 across SKILL.md, README.md, and plugin.json per the maintenance contract. No change to the 33 patterns.
pfstr
force-pushed
the
annotated-link-em-dash-exception
branch
from
July 22, 2026 06:33
c7e4dc8 to
b768c8d
Compare
conorbronsdon
pushed a commit
to conorbronsdon/avoid-ai-writing
that referenced
this pull request
Jul 22, 2026
An em dash after a bolded lead term or markdown link opening a list item
("**Term** — description", "[label](url) — description") is typography,
not a prose splice, and no longer counts toward the 1-per-1,000-words
rate. The detector exclusion is line-anchored with an optional bullet
marker, so mid-sentence splices still count. Fixture pair added: a
definition-style feature list stays clean; the same dash density in
flowing prose still fires.
This repo's own README and changelog use the separator convention
throughout — that's the strict-context false positive in practice.
Same carve-out independently proposed upstream in blader/humanizer#190.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011MYk8KLh4KovTFwW2idcqb
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds an exception to pattern #14 (em/en dash hard cut) for em dashes that act as a structural separator in an annotated link or definition, rather than a mid-sentence AI tell.
The canonical case is a reference/source list:
Here the em dash after
](url)separates the linked title from its description. The same shape appears in glossaries and definition lists (**Term** — definition). Under the current hard cut, the skill rewrites... ) — Debian-specific notesinto... ). Debian-specific notes, which flattens a deliberate formatting convention.Behavior added
](url)(or a bolded/leading term at the start of a list item) and introduces a descriptive clause for that title.—/–scan step is updated so the two standing exceptions (voice sample, kept annotated-link separators) no longer contradict the "any hit means the draft isn't done" check.The exception is scoped narrowly: only the title/term separator is affected; em dashes anywhere else in the prose still follow the existing rule.
Maintenance contract
Per
AGENTS.md, bumped the version to 2.10.0 inSKILL.md(metadata.version),.claude-plugin/plugin.json, and theREADME.mdversion history, and added a changelog note explaining the fix. No numbered patterns were added, removed, or renumbered (still 33).python3 scripts/validate-package.pypasses, andSKILL.mdis 425/500 lines.Why
Reference lists that use the
title — descriptionconvention are common in technical writing, and having the humanizer silently rewrite the separator is surprising. Asking once preserves author intent without weakening the default em dash cut for real prose tells.