Repository navigation
feat(gates): retire the spaced em dash in the docs and make Google.EmDash an error - #49
Merged
Merged
Conversation
…Dash an error Vale 3.24.0 anchors a wrapped list item's alert on a later identical match and reports the two as one, so the Google.EmDash warning count (448 in .vale-baseline.json at 7ea99bb) could hold or fall on a change that added a spaced dash, and the ratchet could pass it. As an error the rule fails on one alert: a merge folds two errors into one, never into none. Every spaced dash (em or en, a line break counting as a space) in the prose of the Vale scope is rewritten as a colon, comma, period, semicolon or parentheses, chosen per sentence: 731 in prose across 25 files, 0 after. Four stay, all inside fenced code that quotes source verbatim (two docstrings in docs/insights/contract-map.md, two noqa comments in docs/reference/public-api.md), which Vale does not lint. Tables keep their pipes, and no code span, link, path or number changed. Eleven headings change anchors (AGENTS.md's title, eight in docs/behavior/processes.md, one each in docs/insights/contract-map.md and docs/insights/impact-analysis.md); nothing in the repo links to them. site/authored/index.md's front-matter description is quoted, since its colon is YAML syntax. .vale.ini sets Google.EmDash = error with its comment rewritten. mise run docs:prose:baseline lowered it 448 -> 0 and the zero entry is removed by hand, since the writer keeps a zeroed rule and an error rule has no warning budget. Every other rule's count is unchanged (273). The selftest moves the ratchet plants to a Google.Will fixture (planted-warning.md) and adds error plants: one spaced dash alone, one in a wrapped list item (wrapped-emdash.md), the two-dash merge, and one beside the real tree with no ratchet line. The strict xfail now expects two errors from merged-emdash.md. CONTRIBUTING.md and AGENTS.md say a spaced dash is an error and what to write instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Retire the spaced em dash in the published docs and make Google.EmDash an error
Follow-up to #45 (the Vale ratchet). Vale 3.24.0 anchors a wrapped list item's alert on a later identical match and reports the two as one, so the
Google.EmDashwarning count (448 in.vale-baseline.jsonat 7ea99bb) could hold or fall on a change that added a spaced dash. As an error the rule fails on one alert: a merge folds two errors into one, never into none.What changed
docs/**/*.md,site/authored/**/*.md, README.md, AGENTS.md, CONTRIBUTING.md) is rewritten by sense as a colon, comma, period, semicolon or parentheses: 731 in prose before, 0 after. Four stay inside fenced code that quotes source verbatim (two docstrings indocs/insights/contract-map.md, two# noqacomments indocs/reference/public-api.md); Vale does not lint code. Files outside the scope (RELEASING.md, SECURITY.md, package READMEs, the PR template) are untouched..vale.ini:Google.EmDash = error, comment rewritten to say why it sits at error..vale-baseline.json:mise run docs:prose:baselineloweredGoogle.EmDash448 -> 0, and the zero entry is removed by hand (the writer keeps a zeroed rule; an error rule has no warning budget). Every other rule is unchanged: 273 warnings.scripts/vale_gate.py,mise.toml: the docstring's Vale-limit paragraph says the rule is an error for that reason; examples nameGoogle.WordListCaserather than EmDash.packages/atif-cli/tests/test_vale_gate.py): the ratchet plants move to aGoogle.Willfixture (.vale/fixtures/planted-warning.md); new error plants: one spaced dash alone, one in a wrapped list item (.vale/fixtures/wrapped-emdash.md), the two-dash merge, and one beside the real tree (red, no ratchet line); the committed baseline is asserted to carry noGoogle.EmDash. The strict xfail now expects 2 errors frommerged-emdash.md(Vale reports 1).site/authored/index.md: the front-matterdescriptionis quoted, since its new colon is YAML syntax (the built page's meta description is the same text with a colon).Per-file spaced dashes in prose
docs/insights/contract-map.mddocs/insights/impact-analysis.mddocs/behavior/processes.mddocs/architecture/module-map.mddocs/reference/cli.mddocs/insights/tech-debt.mddocs/analysis/risk-hotspots.mddocs/architecture/data-flow.mddocs/insights/debugging-guide.mddocs/insights/business-logic.mddocs/README.mddocs/analysis/dead-code.mddocs/diagrams/behavioral/sequences.mdAGENTS.mddocs/reference/public-api.mdsite/authored/agents.mdCONTRIBUTING.mddocs/behavior/state-machines.mdREADME.mddocs/CONTRACT-V2.mddocs/diagrams/architecture/components.mddocs/architecture/system-overview.mddocs/diagrams/structural/dependency-graph.mddocs/CONTRACT.mdsite/authored/index.mdGates (on the committed tree, 5099c2a on main 7ea99bb)
mise run check: green,docs:prose: vale checked 25 of 25 files: 0 errors, 273 warnings, 0 rules above the baseline of 273; pyright 0 errors;2494 passed, 1 skipped, 1 xfailed.mise run docs:gate: green,docs:links: 20 pages, 45 documents read, 1962 internal links to 282 distinct targets, 0 broken, vitest 73 passed.docs/README.md:25gaveGoogle.EmDashand1 error, exit 1; one atCONTRIBUTING.md:116gave the same, exit 1; one in the README's "What you can do" intro gaveREADME.md:46:43: Google.EmDashand1 error, exit 1.Risks and what to look at
git diff --word-diff) for meaning, especially sentences where a paired aside became parentheses or a clause became a new sentence (docs/analysis/risk-hotspots.md"Owners" lines,docs/insights/contract-map.mdcached_tokensparagraph,docs/diagrams/structural/dependency-graph.mdexternals sentence).docs/behavior/processes.md, one each incontract-map.mdandimpact-analysis.md); nothing in the repo links to them, anddocs:linksis green. An outside deep link to the old anchors lands on the page top.[WARN] [content] Entry docs → 404 was not found.; not checked against main.🤖 Generated with Claude Code