Skip to content

docs: normalize em dashes to double hyphens across the documentation - #66

Merged
laugiov merged 1 commit into
mainfrom
claude/readme-fixes-pr-65-2wtzub
Aug 19, 2026
Merged

docs: normalize em dashes to double hyphens across the documentation#66
laugiov merged 1 commit into
mainfrom
claude/readme-fixes-pr-65-2wtzub

Conversation

@laugiov

@laugiov laugiov commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Pipeline: chore
Spec: n/a — documentation only
Gates: G1 (content review) — the file list with before/after counts and the justification for every kept occurrence is in this body
Deploy-impact: none — Markdown files only; no infra/docker/**, no docker-compose*.yml, no .env.dist

Summary

#65 gave the README double hyphens as sentence punctuation. This aligns the rest of the Markdown tree with that convention.

573 em dashes (U+2014) were inventoried across 45 files: 539 substituted, 3 reformulated, 31 deliberately kept. 44 files changed, 514 insertions / 514 deletions — one for one, as a punctuation change should be. README.md is untouched.

No global sed was run. Every occurrence was classified in context first (fenced code block, inline code span, table placeholder cell, or prose), and only prose was substituted.

Kept, with the reason for each

Table placeholder cells (15). A bare em dash as the entire cell content, meaning "not applicable":

Location Why
docs/runbooks/RACI.md:13,14,15,21,23 RACI column empty for a role not involved
docs/20_enterprise_sso.md:46,51,52,53,54,55 "Default value" column, no default
docs/QUICKSTART.md:197 Role column for the PostgreSQL account
docs/15_siem_integration.md:97 Default for SIEM_ENDPOINT
docs/03_high_level_architecture.md:371 NullSiemExporter, no endpoint
docs/compliance/data-classification.md:14 PUBLIC class, no constraint

Fenced code blocks (15). Shell comments, CLI output, an ASCII tree, a JSON sample, a PR-body example: docs/15_siem_integration.md:20,21,22,50,197, docs/QUICKSTART.md:45,141,142,143,207, docs/25_prompt_customization.md:53,230, docs/11_opencti_integration.md:159, docs/16_taxii_server.md:306, docs/factory/README.md:45.

Inline code span (1). docs/runbooks/post-mortem-template.md:29, inside the template placeholder text.

Reformulated rather than substituted (3)

A double hyphen would have sat next to a CLI flag spelled with the same characters, so these were repunctuated instead:

Location Before After
docs/AI_DEPLOYMENT.md:196 ``up -d --build— **not**make quickstart``` comma
docs/AI_DEPLOYMENT.md:224 --admin --generate` — see runbook §6 semicolon
docs/QUICKSTART.md:293 up -d --build` — nginx + php-fpm colon

Before / after per file

File Before After Subst. Reform.
CHANGELOG.md 71 0 71 0
docs/25_prompt_customization.md 38 2 36 0
docs/26_reading_the_ttp_screens.md 38 0 38 0
docs/23_reading_the_threat_actor_screen.md 35 0 35 0
docs/factory/pipelines.md 31 0 31 0
docs/06_roadmap.md 29 0 29 0
docs/runbooks/production-deployment.md 29 0 29 0
docs/AI_DEPLOYMENT.md 27 0 25 2
docs/16_taxii_server.md 25 1 24 0
docs/factory/README.md 21 1 20 0
docs/QUICKSTART.md 19 6 12 1
docs/11_opencti_integration.md 18 1 17 0
docs/21_threat_actor_profiling.md 18 0 18 0
docs/24_analyst_feedback.md 15 0 15 0
docs/15_siem_integration.md 14 6 8 0
docs/17_email_provider_setup.md 11 0 11 0
docs/20_enterprise_sso.md 10 6 4 0
docs/standards-track.md 10 0 10 0
docs/03_high_level_architecture.md 9 1 8 0
docs/08_getting_started.md 9 0 9 0
docs/runbooks/incident-response-plan.md 9 0 9 0
docs/compliance/gdpr-record-of-processing.md 8 0 8 0
docs/factory/templates/gate-report.md 8 0 8 0
docs/DEMO.md 7 0 7 0
docs/compliance/data-classification.md 7 1 6 0
docs/compliance/mule-victim-account-policy.md 6 0 6 0
docs/runbooks/RACI.md 6 5 1 0
docs/runbooks/n8n-credentials.md 6 0 6 0
DISCLAIMER.md 5 0 5 0
docs/05_evaluation_methodology.md 4 0 4 0
docs/12_api_quick_reference.md 4 0 4 0
docs/27_ttp_intelligence.md 4 0 4 0
docs/compliance/breach-notification-procedure.md 3 0 3 0
docs/compliance/data-processing-agreements.md 3 0 3 0
GOVERNANCE.md 2 0 2 0
docs/07_faq.md 2 0 2 0
docs/13_misp_integration.md 2 0 2 0
docs/README.md 2 0 2 0
docs/compliance/README.md 2 0 2 0
CONTRIBUTING.md 1 0 1 0
docs/02_value_proposition.md 1 0 1 0
docs/04_security_guardrails.md 1 0 1 0
docs/09_dpia_template.md 1 0 1 0
docs/22_metrics_catalog.md 1 0 1 0
docs/runbooks/post-mortem-template.md 1 1 0 0

docs/runbooks/post-mortem-template.md is inventoried but unmodified: its only occurrence is inside a code span.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Refactoring (no functional change)
  • Documentation update
  • Infrastructure / CI change

Checklist

  • make test passes — n/a, no application code changed
  • make stan passes — n/a, no PHP changed
  • make cs-fixer applied and left the worktree unchanged — n/a, no PHP changed
  • New code has tests — n/a, documentation only
  • Documentation updated if needed
  • No secrets or credentials in the code — no content changed, only punctuation
  • Follows DDD architecture — n/a, no Domain, Application, Infrastructure or UI code touched, no migration, no port interface

Factory gates

  • Every commit and task cites a requirement id — n/a, chore pipeline, no spec
  • Gate reports linked in the Gates: line above — G1 is this body: the file table and the justification for all 31 kept occurrences
  • Escalation triggers listed — none fired: the diff is Markdown only, no sensitive path is touched
  • Reproduction or exploit test committed before the fix — n/a, not a bug or security PR

Verification

  • grep -r '—' docs/ *.md returns exactly the 31 occurrences listed above, each named and justified.
  • Text integrity: for every changed file, the old and new versions were compared with both punctuation forms normalized to a single token. Only docs/AI_DEPLOYMENT.md and docs/QUICKSTART.md differ — precisely the three reformulations. The other 42 files are provably identical outside punctuation, so no sentence changed meaning, no wording was improved, and nothing was restructured.
  • No non-Markdown file appears in the diff; README.md is unchanged.
  • Every internal link and heading anchor in the 44 edited files resolves. The one unresolved path, ../../security/advisories/new in docs/04_security_guardrails.md, is a pre-existing GitHub relative link (same convention as ../../issues) and was not touched.
  • En dashes (–) and existing hyphens were left alone; only U+2014 was in scope.

Generated by Claude Code

The README uses double hyphens as sentence punctuation. Align the rest of
the Markdown tree with that convention: 573 em dashes (U+2014) inventoried
across 45 files, 539 substituted, 3 reformulated, 31 deliberately kept.

Kept, because they are not sentence punctuation:

- 15 table placeholder cells, where a bare em dash is the whole cell and
  means "not applicable" (RACI matrix, OIDC defaults, SIEM endpoint,
  NullSiemExporter, PUBLIC data class, PostgreSQL role)
- 15 occurrences inside fenced code blocks: shell comments, doctor output,
  the SIEM exporter ASCII tree, a JSON sample, a PR-body example
- 1 inside an inline code span, in the post-mortem template placeholder

Reformulated rather than substituted, because a double hyphen would have
sat next to a CLI flag written with the same characters: a comma in
AI_DEPLOYMENT.md ("--build", not "make quickstart"), a semicolon in
AI_DEPLOYMENT.md (after "--generate"), a colon in QUICKSTART.md (after
"--build").

Punctuation only. Every file except those two was verified identical to
its previous version once both punctuation forms are normalized to a
single token, so no sentence changed meaning, no wording was improved and
nothing was restructured. En dashes and existing hyphens were left alone;
only U+2014 was in scope. README.md is unchanged. Every internal link and
heading anchor in the 44 edited files still resolves.

Documentation only. No application code, no configuration, no migration;
no non-Markdown file appears in the diff.
@laugiov
laugiov merged commit 18dbd22 into main Aug 19, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants