Skip to content

architect ADR tooling (capture-adr template + compendium generator) emits em-dashes, blocks no-em-dash consumer projects #223

@tompahoward

Description

@tompahoward

Description

The architect ADR tooling emits U+2014 (em-dash) in its generated markdown, which conflicts with any consumer project that enforces a no-em-dash prose policy via a pre-commit hook. Two sources: (1) the /wr-architect:capture-adr (and /wr-architect:create-adr) skeleton template emits em-dashes in the frontmatter sentinel ([unspecified (em-dash) fill at canonical review]) and the deferred-section pointers, which land in the ADR BODY; (2) wr-architect-generate-decisions-compendium (per ADR-077) emits em-dashes in its summary lines (e.g. "5 ADRs total (em-dash) 5 in-force") in the generated docs/decisions/README.md.

Symptoms

  • A consumer project's em-dash pre-commit hook flags 12+ em-dashes in the ADR skeleton body and 9+ in the generated compendium on every /wr-architect:capture-adr invocation.
  • The commit is blocked until the em-dashes are manually replaced (e.g. perl -CSD -i -pe 's/U+2014/-/g'), or git commit --no-verify is used (bypassing all other staged-file checks).
  • This recurs on EVERY ADR capture / create / compendium refresh because the em-dashes are hardcoded in the tooling output.

Workaround

Run perl -CSD -i -pe 's/\x{2014}/-/g' on the generated ADR + compendium before committing, OR add a hook skip-list entry for the auto-generated compendium (partial - does not cover the hand-authored ADR skeleton body).

Affected plugin or component

@windyroad/architect - the capture-adr / create-adr skeleton templates AND wr-architect-generate-decisions-compendium.

Frequency

Every /wr-architect:capture-adr, /wr-architect:create-adr, and compendium refresh, for any consumer project with a no-em-dash prose policy.

Versions

  • Local plugin: @windyroad/architect@0.13.0
  • Upstream package: @windyroad/architect@0.13.0
  • Claude Code CLI: 2.1.150 (Claude Code)
  • Node: v22.17.1
  • OS: Darwin 25.3.0 x86_64

Evidence

Hit 2026-06-03 committing a new ADR in a consumer project: the skeleton body carried em-dashes in the frontmatter sentinel + deferred pointers, and the regenerated compendium carried em-dashes in its summary line; the consumer's em-dash hook flagged 12 + 9 and blocked the commit. Suggested fix: default the templates + compendium generator to hyphens (or make the punctuation respect a project prose policy), so consumer projects with a no-em-dash policy are not blocked on every ADR operation.

Cross-reference

Reported from https://github.com/mountain-pass/addressr-mcp docs/problems/open/016-em-dash-hook-blocks-architect-tooling-output.md

Tracked locally as P016 in the downstream project's docs/problems/ directory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions