Invariant

Codifies the SOV R8 Track H learning — internal taxonomy IDs (EVD-003, CMP-001, PER-005, CS-001, CLM-008, etc.) leaked into public-facing copy on multiple integration pages. They are internal-only.

Atom ID Exposure

Verdigris uses a canonical taxonomy of internal atom IDs to manage claims and proof points:

Prefix Atom type Example Path
EVD- Evidence EVD-003 canonical/atoms/evidence/EVD-003.yaml
CLM- Claim CLM-008 canonical/atoms/claims/CLM-008.yaml
CMP- Competitor CMP-001 canonical/atoms/competitors/CMP-001.yaml
PER- Persona PER-005 canonical/atoms/personas/PER-005.yaml
CS- Case study CS-001 canonical/case_studies/CS-001.yaml
CAP-, OBJ-, ENT-, PTR-, ECO-, TOP-, FAQ-, SPC-, CPL-, CUS- Other atoms various canonical/atoms/*/

These IDs are the internal cross-reference system. They are never customer-facing. They never appear in rendered HTML/Markdown body copy, alt text, captions, image filenames in public paths, OG metadata, MDX frontmatter that renders to UI text, or any external comms (Slack, Linear, email, social).

Rule

Invariant

The character pattern \b(?:EVD|CLM|CMP|PER|CS|CAP|OBJ|ENT|PTR|ECO|TOP|FAQ|SPC|CPL|CUS)-\d{3,}\b must not appear in any rendered surface visible to a customer.

Where IDs are permitted

Location Permitted? Why
canonical/** YAML source files Yes The source of truth
MDX frontmatter canonicalRefs: array Yes Machine-only metadata, never rendered to UI
MDX frontmatter comments (# ...) Yes Stripped from render
MDX body — inside an HTML comment <!-- EVD-003 --> Yes Stripped from render
MDX body — visible to reader No Rule violation
Figure caption body (rendered) No Rule violation — use (see <case study link>) instead, attach atom ID in source comment
OG card text, SEO description, sitemap No External-facing
Alt text, ARIA labels No External-facing (screen readers)
Image filenames at /og/* or any public asset path No URL leaks to logs
Commit messages, PR titles, branch names Yes Internal git history
Linear issue titles, descriptions, comments Yes Internal CRM
Slack messages Yes (internal channels), No (customer-shared messages) Audience-dependent

Substitution patterns

When you need to reference an internal atom in customer-facing copy, substitute by describing the evidence in prose and linking to the published surface:

Don’t write Do write
... in the T-Mobile deployment (EVD-003). ... in the [T-Mobile Albuquerque deployment](/case-studies/t-mobile).
caption: "Three-phase load currents (EVD-003)" caption: "Three-phase load currents from the T-Mobile Albuquerque pilot"
Competitive context (CMP-001) Competitive context: Packet Power positions on...
For DC ops engineers (PER-001), this means... For data-center operators on the floor, this means...
Per CLM-008, Verdigris provides... Verdigris provides... (assert directly; no citation needed in body)

Why

  1. Atom IDs are internal taxonomy, not editorial. They tell internal authors where the evidence lives so it can be updated in one place. They tell customers nothing — EVD-003 is opaque without the YAML it references.

  2. Atom IDs date the page. A page that exposes EVD-003 reads as a machine-rendered artifact. Real editorial surfaces don’t show their CMS field IDs.

  3. Atom IDs leak the org chart. Five-digit padded IDs reveal whether we have 5 or 500 evidence atoms, hint at our internal velocity, and broadcast our content-engineering machinery in a way that feels like watching the kitchen from the dining room.

  4. Atom IDs trip the brand-coherence evaluator’s “AI-generated artifact” detector. Pages with visible internal IDs score lower on perception evaluation because the IDs read as machine output, not authored prose.

Compliant

<!-- canonicalRefs lives in frontmatter; never visible to reader -->
---
canonicalRefs:
  - EVD-003
  - CS-001
  - CLM-008
---

# How Verdigris detects degrading rectifiers

In the [T-Mobile Albuquerque deployment](/case-studies/t-mobile), Verdigris flagged a degrading rectifier 21 days before its first equipment alarm. 800+ rectifiers, 4% hidden degradation, zero standard alarms triggered.

<figure>
  <WaveformTrace ... />
  <figcaption>
    Fig. 3 — Three-phase load currents at 8 kHz during a 60-second segment from the T-Mobile Albuquerque deployment.
    <!-- evidence: EVD-003; case study: CS-001 -->
  </figcaption>
</figure>

Non-compliant

{/* IDs in body */}
In the T-Mobile deployment (EVD-003), Verdigris flagged a degrading rectifier...

{/* IDs in caption */}
<figcaption>Three-phase load currents (EVD-003)</figcaption>

{/* IDs in alt text */}
<img src="..." alt="EV2 dashboard EVD-003" />

{/* IDs in OG description (frontmatter that renders to head metadata) */}
seo:
  description: "Real customer outcome — 21 days early warning at T-Mobile (EVD-003)"

Where this applies

Surface Scope
All /content/**/*.mdx body Required (invariant)
All /content/**/*.mdx frontmatter fields that render to UI text (title, description, seo.title, seo.description, eyebrow, etc.) Required
All /content/**/*.mdx frontmatter fields that are machine-only (canonicalRefs, internal comments) Permitted
All public assets (paths under /og/, /assets/, etc.) Required
All external comms (Slack to customers, Linear issues shared with partners, email, social posts) Required
Whitepaper PDF body Required

Enforcement

This rule is enforced at three layers:

  1. rules/visual-rules.yml > composition.atom_id_exposure — machine-enforceable regex pattern (severity: error, maturity: invariant). Runs against rendered MDX, OG cards, sitemaps, llms.txt.
  2. www brand-positioning evaluator — adds BANNED_ATOM_ID_EXPOSED issue code to the existing banned-phrase pipeline. Pre-commit and CI gate.
  3. Hookify rule at ~/.claude/projects/-Users-chungty-Projects-verdigriswww/.claude/hookify.atom-id-exposure.local.md — warns at MDX file save when an atom-ID pattern appears in body, frontmatter UI fields, or alt text.

Sources

  1. SOV R8 Track H commit log — six per-page commits stripping atom IDs from /integrations/* body copy (e.g. ebaf45d0 fix(integrations): ABB Track H final cleanup — orphan PNGs + strip atom ID, c297802c fix(integrations): Vertiv Track H final cleanup ... strip atom ID). Each commit is evidence the rule was needed and not previously codified.
  2. Verdigris brand-coherence evaluator (v7.0.0+) — perception scoring flags “machine-rendered artifact” patterns; visible internal IDs trip this. See pipelines/website/evaluators/brand-positioning.ts.
  3. Convention from editorial publishingNew York Times, The Economist, Nature, Science — none expose internal CMS IDs (nyt:art:12345, econ:b2c:abc) to readers. The Verdigris atom system is structurally equivalent; the convention is the same.

See also