Rule handbook metadata

Rule
AI.THEME.PERSONALITY_COHERENCE · lane ai
Page status
stale
page_version
c55d81ed3a33aedc15eb7162fdfc84805ab6d5f34b1b8ee11afd5b9fa9af67aa
generated_at
2026-05-19T22:35:00.000Z
registry_fingerprint
6773fda516344e110b5a7b1435e655e1264e773825ca8bbe62194189891c42ba

How this rule is fixed

This is an AI-enabled rule. Pass/fail requires model judgment; there is no deterministic fixer in the pilot registry.

  • Harness: invoke-ai-ruleset-harness.sh runs design-rules/ai/run-design-ai-rule.sh on the Before fixture and expects findings with matching principleId.
  • Remediation: Cursor agent plans from forge-ux-remediation.plan.md after sitewide audit — not handbook After copy.

Detection module: docs/design/ux-audit/ai-enabled-design-principles.md#ai-theme-personality-coherence. Scroll down for Before / After examples and Evidence and remediation steps.

Purpose

Kitchen Sink theme packs (forge-theme.css, forgesdlc-theme.css, docs-theme.css) encode a deliberate Forge temperament: dark, spacious foundation; amber for primary emphasis and warmth; cyan for informational labels and secondary actions. This AI rule judges whether a page feels like one brand—accent colors, gradients, glass surfaces, and dark/light balance support reading and trust instead of competing with it.

Deterministic rules guard token allowlists, font stacks, and contrast floors (DET.TOKEN.NO_DRIFT, DET.THEME.FONT_STACK, DET.THEME.CONTRAST_MIN); this rule guards personality coherence that passes token scans yet still reads as patchwork: random Bootstrap accent buttons, inline hex rainbows, gradient text on every heading, or a bright band dropped into an otherwise dark product shell.

Plan: Walk the page and map where each accent appears—labels, CTAs, cards, links, ambient layers. Do: Reassign colors to Forge roles (cyan eyebrows, amber primary CTA, restrained forge-gradient-text on the hero title only). Check: Screenshots show one calm dark personality with accents that guide, not shout. Adjust: When the same accent drift repeats (for example ad-hoc btn-success beside btn-forge), propose a deterministic DET.* companion or catalog contract tightening.

Passing signals

  • Accent roles are stable: section-label text-cyan and card-label on card-amber tiles mark structure; btn-forge carries the primary action; btn-cyan-outline or btn-forge-outline carries secondary—no stray btn-warning, btn-success, or inline #22c55e / #a855f7 accents.
  • Dark foundation stays dominant: body and section bands use Forge dark surfaces (forge-section, forge-card, glass / glass-amber on #0A0E17 family backgrounds); light strips are intentional and brief, not accidental Bootstrap defaults.
  • Gradient display is focal, not noisy: forge-gradient-text appears on the hero product-landing-title (or one display headline), not on every h2h5 and link.
  • Glass and card variants match temperament: glass-amber and forge-card card-amber share the same amber story; default forge-card handles neutral tiles—surfaces do not each invent a new accent hue.
  • Theme pack choice is consistent: marketing/product pages load forgesdlc-theme.css after forge-theme.css and use landing-hero, fs-landing-hero-band, and landing-hero-kicker patterns; handbook pages use docs-theme.css cues without dropping marketing gradients mid-chapter.
  • Ambient layers respect personality: expressive forge-ambient--expressive mesh stays behind scrimmed copy (AI.AMBIENT.READABILITY_CONFLICT); cyan/amber sparks do not become a third competing accent system.
  • Typography reinforces brand calm: font-display headlines, forge-support body, text-dim / text-muted-4 for de-emphasis—weights and colors stay on the Forge scale.

Failing signals

  • Accent roulette: adjacent sections use cyan labels, amber cards, green success buttons, purple inline links, and orange warning badges—no readable role system.
  • Gradient overload: forge-gradient-text on hero, section titles, card headings, and footer links; copy feels like a promo filter, not enterprise documentation.
  • Theme pack collision: docs-style nav-section-label beside landing-hero-kicker, or handbook glass-solid panels mixed with product fs-marketing-stat-band without a transition—reads as two sites stitched together.
  • Light/dark whiplash: full-width bg-light text-dark band between dark forge-section blocks with no scrim or bridge; eyes re-adapt every scroll.
  • Bootstrap defaults fighting Forge: raw btn-primary / btn-info / text-info beside tokenized btn-forge; card border-info next to forge-card card-amber.
  • Inline hex drift: style="color:#e879f9" or custom gradients on heroes despite DET.TOKEN.NO_DRIFT policy—personality leaves the Forge palette entirely.
  • Accent behind content: high-opacity forge-ambient--hero cyan/amber mesh with no scrim makes labels feel like part of the decoration, not the message.

Before example

Before (failing example)

Ship faster with AI!!!

Everything in one platform

Agents, automation, and compliance-ready workflows.

Traceability

Logs everywhere

Enterprise grade

Smart AI

Magic automation

Failing KS markup: mixed Bootstrap accents, inline hex colors, gradient text everywhere, and a bright band that breaks the dark Forge personality.

After example

After (passing example)

Forge Platform

Governed delivery you can inspect

Calm dark surfaces, amber primary actions, and cyan structure labels—accents that guide reading instead of decorating every line.

Governance spine from intent through review to evidence

Passing KS markup: dark Forge foundation, cyan informational labels, amber primary emphasis, gradient display on the hero title only, and a consistent CTA pair.

Evidence and remediation

Capture: full-page screenshot plus crops of hero, first accent band, and CTA row. Record loaded theme sheets (forge-theme.css, forgesdlc-theme.css, or docs-theme.css), accent class usage (text-cyan, text-amber, card-amber, btn-forge), and any inline color overrides. Note whether forge-gradient-text appears more than once above the fold.

Remediate (in order):

  1. Assign accent roles: cyan for section-label / informational eyebrows; amber for primary CTA (btn-forge) and accent cards (card-amber); remove stray Bootstrap semantic buttons (btn-success, btn-warning, btn-info).
  2. Restore dark foundation: replace accidental bg-light bands with forge-section on dark surfaces, or isolate intentional light strips with clear hierarchy and matching typography tokens.
  3. Limit gradient display: keep forge-gradient-text on the hero product-landing-title (or one focal headline); revert section and card titles to solid font-display color.
  4. Align theme pack: marketing/product pages use landing-hero + forgesdlc-theme.css patterns; handbook pages stay on docs-theme.css cues—do not mix kicker/hero marketing classes into chapter bodies.
  5. Remove inline hex and custom gradients; map colors to Forge CSS variables (--forge-amber, --forge-cyan, --forge-bg) and re-run DET.TOKEN.NO_DRIFT when policy is enabled.
  6. Tune ambient intensity so cyan/amber atmosphere stays behind scrimmed content (AI.AMBIENT.READABILITY_CONFLICT).
  7. Re-run AI batch with principleId: AI.THEME.PERSONALITY_COHERENCE; propose a deterministic companion when the same accent drift repeats (for example banning non-Forge button classes on product landing roots).