Skip to content

Repo-wide em dash (U+2014) violates CLAUDE.md's house style outside @ref glosses #472

Description

@philcunliffe

What

CLAUDE.md bans the em dash (U+2014) repo-wide: "No em dashes ... anywhere: code,
comments, JSDoc, strings, or docs." That is a standing, repo-wide violation on
master today, independent of any open PR.

Verified counts (measured directly against master at this triage)

  • 2459 lines across 193 tracked files contain at least one U+2014.
  • Confirms the specific examples raised during triage of PR LLP corpus hygiene: illustrative @refs are marked and no gloss uses an em dash (#463 items 2 and 3) #468:
    • llp/0045-client-attach.design.md: 66 lines
    • llp/0041-central-config-client-actions.design.md: 54 lines
    • hypaware-plugin-kernel-types.d.ts: 36 lines
  • Heaviest offenders overall: hypaware-core/plugins-workspace/{claude,codex}/skills/hypaware-report-to-html/SKILL.md (72 lines each), llp/0063-login-auto-provision-forward-sink.decision.md (71), llp/0045-client-attach.design.md (66), llp/tombstones/0020-hypaware-design.explainer.md (66), llp/0041-central-config-client-actions.design.md (54), llp/0022-iceberg-export-partitioning.spec.md (51), llp/tombstones/0018-implementation-plan.plan.md (51).

Scope note

Issue #463 item 3 (fixed by PR #468) covers only em dashes used as the
separator inside @ref gloss lines, and PR #468 lands that fix. This issue is
the broader, repo-wide CLAUDE.md violation: em dashes in ordinary prose,
comments, and docs outside @ref annotations, which #463 never claimed to
cover and which no other open or closed issue tracks (search performed at
filing time: em dash, em-dash, U+2014, 463 all checked).

A related gap worth folding into the fix

While triaging #468 I confirmed the new test/core/llp-ref-hygiene.test.js
em-dash check only inspects the single line containing the @ref token, so
an em dash in a continuation line of a multi-line gloss is invisible to it.
Three live examples exist today, undetected by the new test:

  • hypaware-core/plugins-workspace/format-iceberg/src/table-format.js:456
  • llp/0067-session-opt-out.design.md:114
  • src/core/runtime/activation.js:64

Worth widening that test's scan to the full multi-line gloss (or just running
it as part of whatever mechanism resolves this issue), so the corpus-hygiene
invariant PR #468 establishes doesn't have a standing blind spot.

Backlink

Found and filed during neutral triage of #468 (branch fix/issue-463, head
ef04fcd709c145866bcf7d6e439d4ea12b056bb9). Not part of that PR's declared
scope, so filed separately rather than blocking it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    neutral:fixDelegate this issue to neutral for an autonomous fix attempt (reproduce -> fix -> PR)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions