← Commit history

Publish 0.1.4

Ray ·c622ca13b9 ·24d ago ·parent 631b08b
5 files changed +17−12
README.md+1−1
@@ -37,7 +37,7 @@ Exit codes: `0` clean or soft-only, `1` hard findings (em-dashes / spaced `--`),  | Severity | Rule | Example | |---|---|---|-| hard | em-dash, en-dash-in-prose, spaced `--` | `a game-changer — really` |+| hard | em-dash, en-dash-in-prose, spaced `--` (literal or as `—`/`–` entities) | `a game-changer — really` | | warn | tell-words | delve, seamless, robust, leverage, utilize, showcase, in-depth, myriad | | warn | boilerplate cadence | "it's not just X, it's Y", "in today's world", "when it comes to", "plays a pivotal role" | | info | filler | "in order to", "a variety of", empty intensifiers |
SKILL.md+1−1
@@ -31,7 +31,7 @@ Default exit codes: `0` clean or soft-only, `1` hard findings (em-dashes / space  <!-- prose-lint-disable (this list names the banned words on purpose) --> -- **Hard (error):** em-dashes, en-dashes in prose, and spaced double-hyphens.+- **Hard (error):** em-dashes, en-dashes in prose, and spaced double-hyphens. Entity forms (`&mdash;`, `&ndash;`, `&#8212;`, `&#x2014;`) count: what the reader sees rendered is what gets linted. - **Tells (warn):** AI-favorite words (delve, seamless, robust, leverage, utilize,   showcase, in-depth, cutting-edge, myriad, ...) and boilerplate cadence   ("it's not just X, it's Y", "in today's ... world", "when it comes to", "whether
bin/prose-lint+10−5
@@ -119,8 +119,12 @@ const RULES = [   {     id: 'em-dash',     severity: 'error',-    re: /—/g,-    msg: () => 'Em-dash (—) in prose — replace with a comma, colon, period, or parentheses',+    // The literal, the horizontal bar (U+2015, renders the same), and the HTML entity+    // forms of both. Hand-written readme.html pages write dashes as entities as a matter+    // of course, and an entity is what the reader sees rendered (adom/prose-lint#1).+    // Matching the entity in the source keeps line:col pointing at the thing to edit.+    re: /[—―]|&(?:mdash|horbar|#8212|#8213|#x201[45]);/gi,+    msg: (m) => `Em-dash (${m[0]}) in prose — replace with a comma, colon, period, or parentheses`,   },   {     id: 'ascii-em-dash',@@ -131,9 +135,10 @@ const RULES = [   {     id: 'en-dash',     severity: 'warn',-    // en-dash NOT between digits (a real number range like 2–5 is fine)-    re: /(?<!\d)–(?!\d)|(?<=\s)–(?=\s)/g,-    msg: () => 'En-dash (–) in prose — use a hyphen for compounds or rewrite',+    // en-dash NOT between digits (a real number range like 2–5 or 2&ndash;5 is fine);+    // entity forms get the same exemption.+    re: /(?<!\d)(?:–|&(?:ndash|#8211|#x2013);)(?!\d)|(?<=\s)(?:–|&(?:ndash|#8211|#x2013);)(?=\s)/gi,+    msg: (m) => `En-dash (${m[0]}) in prose — use a hyphen for compounds or rewrite`,   },   tellWordRule(),   // --- warn: AI cadence / boilerplate structures ---
package.json+3−3
@@ -2,7 +2,7 @@   "slug": "prose-lint",   "title": "Prose Lint",   "type": "app",-  "version": "0.1.3",+  "version": "0.1.4",   "description": "Deterministic house-style linter for Adom copy. Flags em-dashes and the tics that make AI-written text read as AI-written (tell-words, boilerplate cadence, filler), with line:col, plain-language suggestions, --fix for safe swaps, and a --json envelope. Markdown/code-aware: never flags a --flag in a code span, a number range, or a URL.",   "tags": [     "cli",@@ -19,7 +19,7 @@     "make this read less AI",     "prose lint"   ],-  "discovery_pitch": "Reach for prose-lint before shipping any user-facing copy — READMEs, wiki pages, release notes, UI strings — to catch em-dashes and AI-tells deterministically.",+  "discovery_pitch": "Reach for prose-lint before shipping any user-facing copy \u2014 READMEs, wiki pages, release notes, UI strings \u2014 to catch em-dashes and AI-tells deterministically.",   "sample_prompts": [     {       "label": "Lint a wiki page",@@ -51,5 +51,5 @@     "subhead": "No em-dashes. No AI slop. Deterministic.",     "screenshot": "docs/hero.png"   },-  "changelog": "0.1.3: restore clean README (0.1.2 was a publish-advisory test)."+  "changelog": "0.1.4: em/en-dash rules also match the HTML entity forms (&mdash; &ndash; &horbar; and the numeric/hex codes) and the U+2015 horizontal bar, with line:col on the entity in the source; a hand-written readme.html no longer passes clean while rendering dashes (adom/prose-lint#1). 0.1.3: restore clean README (0.1.2 was a publish-advisory test)." }
page.json+2−2
@@ -2,7 +2,7 @@   "slug": "prose-lint",   "title": "Prose Lint",   "type": "app",-  "version": "0.1.3",+  "version": "0.1.4",   "description": "Deterministic house-style linter for Adom copy. Flags em-dashes and the tics that make AI-written text read as AI-written (tell-words, boilerplate cadence, filler), with line:col, plain-language suggestions, --fix for safe swaps, and a --json envelope. Markdown/code-aware: never flags a --flag in a code span, a number range, or a URL.",   "tags": [     "cli",@@ -58,5 +58,5 @@     "name": "Ray",     "email": "[email protected]"   },-  "changelog": "0.1.3: restore clean README (0.1.2 was a publish-advisory test)."+  "changelog": "0.1.4: em/en-dash rules also match the HTML entity forms (&mdash; &ndash; &horbar; and the numeric/hex codes) and the U+2015 horizontal bar, with line:col on the entity in the source; a hand-written readme.html no longer passes clean while rendering dashes (adom/prose-lint#1). 0.1.3: restore clean README (0.1.2 was a publish-advisory test)." }\ No newline at end of file