Twelve documented failures. Each one is something an AI agent has produced — or is likely to produce — when working with the NMG spec. Side-by-side: the bad output, the counter-rule, the correct version. Every NMG-branded deliverable should be checked against this list before shipping.
Why this exists. Abstract don'ts ("don't use other reds") don't survive an agent that's never seen the brand. Concrete don'ts with the actual bad output and the regex-checkable counter-rule do. This page is the regression test suite for agent behavior — paired with /check, it makes brand-violations a graded, observable thing.
The most common AI violation. The agent reaches for red twice — once for the eyebrow, once for a CTA button, once for an icon. Each individually looks fine. Together they violate the brand's most ownable rule.
What an agent shipped
STRATEGY
Own the citation.
When an LLM cites your brand…
View playbook →
Eyebrow red + accent bar red + CTA red + (often) an icon red. Four red elements in one region.
Correct
STRATEGY
Own the citation.
When an LLM cites your brand…
View playbook →
ONE red anchor (the eyebrow + bar count as one stack). CTA is outlined-on-canvas; the red lives in the eyebrow only.
Counter-rule
ONE red element per visible region. The NMG Section Stack (eyebrow + heading + 3px bar) counts as a single red anchor because it's one composed primitive. A second red — CTA button, badge, icon, link underline, status pill — violates the Restraint Rule. If you have two, remove one.
Detection · count occurrences of background: var(--nmg-red) + color: var(--nmg-red) + color: #FF0000 per visible region. If > 1 stack worth, fail.
Anti-pattern 02 · Three-Tick Warmth
02
Pure white #FFFFFF as page canvas
Every AI defaults to pure white because Material, Bootstrap, Tailwind, and every CSS reset do. NMG canvas is warm white #F8F7F4 — three lightness ticks below pure white. The difference is what makes NMG feel like paper, not screen.
What an agent shipped
MARCH 2026
Monthly Report
Pure white page. Cold. Generic.
Background is #FFFFFF. Feels like Notion, not NMG. Cards have nowhere to lift to.
Correct
MARCH 2026
Monthly Report
Card lifts on warm canvas. Three ticks warmer.
Background #F8F7F4. Cards lift to #FFFFFF. The page is paper.
Counter-rule
Page canvas is always #F8F7F4. NEVER #FFFFFF at the page level. White is reserved for cards lifting off the canvas. This is The Three-Tick Warmth — three lightness ticks below pure white, the difference between paper and screen.
Detection · grep for background: #FFFFFF or background-color: #fff or background: white applied to body, html, main, .page, or .canvas. Any match is a fail.
Anti-pattern 03 · brand_sanctity_rule
03
CSS filter: invert() on the wordmark
An agent tries to be clever: same PNG, different theme, just invert the colors. Result: the red dot becomes cyan, then renders as blue. The brand is now off-brand by 180° on the color wheel. The on-dark variant exists for exactly this reason.
What an agent shipped
nmg.
CSS filter: invert(1) applied. The red #FF0000 dot becomes cyan #00FFFF — reads as blue. Brand is now wrong.
Correct
Download nmg-dark.png from the manifest. Light wordmark + RED dot, preserved.
Counter-rule
NEVER apply filter: invert(), brightness(), hue-rotate(), grayscale(), or mix-blend-mode to any NMG wordmark PNG. These re-color every pixel — including the red dot — and silently produce a non-brand mark. For dark backgrounds, download the -on-dark variant from logos.json.
Detection · grep for filter: or mix-blend-mode near any reference to nmg*.png. Any match is a brand_sanctity_rule violation.
Anti-pattern 04 · brand_sanctity_rule
04
Recreating the wordmark in HTML/CSS text
An agent thinks: "the wordmark is just 'nmg' in serif with a red period — I'll type it." Result: a typographic recreation that doesn't match the actual brand asset, often violates the Restraint Rule by adding a second red dot, and degrades on every render.
What an agent shipped
nmg.
Typed HTML/CSS recreation. Font weights, kerning, baseline alignment all drift from the canonical asset.
Correct
Use <img src="logos/nmg.png"> from the manifest. Pixel-canonical, every render.
Counter-rule
NEVER recreate the wordmark in HTML/CSS text. The wordmark exists only as PNG (and nmg-dot.svg for the standalone dot). Use an <img> tag with the appropriate variant from logos.json. If you need to refer to NMG in body copy, write "NMG" in plain text without the dot — reserve the dotted form for the actual logo image.
Detection · grep for patterns like nmg<span style="color:red">.</span>, <strong>NMG.</strong>, or any inline construction placing a red dot next to "nmg" via typography.
Anti-pattern 05 · Tables
05
Dark header band on data tables
Material, Bootstrap, and most dashboard themes ship dark-band table headers. They feel like data product UI. NMG tables are editorial — bottom-border-only, header in uppercase muted text, no zebra striping.
What an agent shipped
Page
Sessions
Δ
/gold-jewellery
48,210
+1.2
/diamond-rings
32,154
+2.4
/wedding-collection
28,001
+3.1
Dark header band + zebra rows. Looks like a 2014 SaaS dashboard. Not NMG.
Correct
Page
Sessions
Δ
/gold-jewellery
48,210
+1.2
/diamond-rings
32,154
+2.4
/wedding-collection
28,001
+3.1
Uppercase muted header, no fills, bottom borders only. Editorial.
Counter-rule
NMG tables are bottom-border-only. Header text is uppercase, muted (#8A8892), 11px +0.18em letter-spacing. NEVER use a filled header band. NEVER zebra-stripe rows. Tables in NMG feel like an FT article, not a Salesforce report.
Detection · grep for background on <th> or thead. Any non-transparent value is a fail. Check that every header cell has text-transform: uppercase + letter-spacing: 0.16em+.
Anti-pattern 06 · Typography
06
Body line-height 1.5 (tight)
Most CSS resets ship line-height: 1.5. NMG body is 1.7. The difference looks small in spec but reads as the difference between dense documentation and editorial prose.
What an agent shipped
NMG is a digital-first agency group operating across three sub-brands. The agency is engineered in Gurugram and sold from Los Angeles and London.
Tight body. Reads as technical documentation, not editorial. Feels cramped.
Correct
NMG is a digital-first agency group operating across three sub-brands. The agency is engineered in Gurugram and sold from Los Angeles and London.
Body line-height 1.7. Reads as editorial. The brand breathes.
Counter-rule
All NMG body text uses line-height: 1.7. Headings use line-height: 1.1–1.15. Never default to 1.5 or 1.6 for body. The 1.7 baseline is what makes NMG read as a magazine instead of a manual.
Detection · grep line-height: 1.5, line-height: 1.6, line-height: 1.4 on any body, p, or .body-* selector. Should all be 1.7.
Anti-pattern 07 · Typography
07
Calibri / Saira / Times in proposals
Microsoft Word and Google Docs default to Calibri. Older NMG decks used Saira. Either choice now is wrong — NMG is Montserrat 800 (display) + Inter 500 (body), no exceptions. Calibri in a proposal is a brand signal that the file was assembled in Word without applying the spec.
What an agent shipped
Organic Growth Engine 2026
A 12-month SEO & content strategy for R Kumar Jewellers.
Calibri throughout. Looks like a Microsoft Word default template. Brand-invisible.
Correct
Organic Growth Engine 2026
A 12-month SEO & content strategy for R Kumar Jewellers.
Montserrat 800 display + Inter 500 body. Reads as NMG.
Counter-rule
NMG uses two fonts only: Montserrat 800 (display) and Inter 500 (body). NEVER Calibri, Saira, Times, Arial, Roboto, Open Sans, or any other family. For DOCX/PPTX, embed the fonts or use the Google Fonts equivalents. Deep Blue + Calibri + Saira are deprecated as of v3.6.
Detection · grep font-family for anything not Montserrat or Inter. Check DOCX/PPTX XML for w:rFonts entries naming Calibri or Saira.
Anti-pattern 08 · Color
08
Deep Blue #0C3D93 in headings
Legacy NMG decks used a deep navy blue for headings. That color is deprecated. Agents that ingest old templates resurrect it. Headings are always Near Black #1B1B1B — never blue, never any chromatic color.
What an agent shipped
SECTION 02
Distribution Strategy
From the 2023 deck template. Still blue.
Deep Blue heading. Pulled from a 2023 legacy NMG template. Deprecated since v3.6.
Correct
SECTION 02
Distribution Strategy
Near Black #1B1B1B. Crisp, calm, modern.
Headings in Near Black #1B1B1B. The only chromatic color in NMG is red.
Counter-rule
All NMG headings are #1B1B1B (Near Black). NEVER Deep Blue, navy, charcoal, slate, or any other color. The brand has exactly one chromatic accent: red. Every other text tone is neutral. Deep Blue is in the deprecated: log — flag any project still using it.
Detection · grep for #0C3D93, #1E3A8A, navy, blue as text-color anywhere. Headings should be color: #1B1B1B or var(--color-text-primary).
Anti-pattern 09 · NMG Section Stack
09
Sections without the NMG Section Stack
An agent leads a section with a giant gray number ("02"), a thin border-bottom, or just plain heading text. None of those are the brand. NMG sections always lead with eyebrow + heading + 3px red bar — the named primitive.
What an agent shipped
02
Distribution Strategy
Generic dashboard section opener. Pretty. Not NMG.
Big gray number + thin border = modern dashboard pattern. Could be Notion, Linear, Vercel. Has no NMG signal.
Correct
SECTION 02
Distribution Strategy
Eyebrow → heading → 3px red bar. The NMG Section Stack.
The NMG Section Stack: red eyebrow + Montserrat 800 heading + 3px red bar. NMG signature.
Counter-rule
Every NMG section leads with The NMG Section Stack: eyebrow (Inter 700, 11px, +0.18em, UPPERCASE, red) → heading (Montserrat 800) → 3px red accent bar. NEVER substitute a gray number, thin border-bottom, decorative numeral, or any "modern dashboard" pattern. This is the brand's most ownable primitive.
Detection · for every section heading, verify the three preceding/following elements: a red uppercase eyebrow, the heading itself, a 3px solid red bar. If any one of the three is missing, fail.
Anti-pattern 10 · States
10
Material-default empty / loading / error states
Most agents ship Material defaults for empty states (a friendly cartoon), loading states (a circular spinner), and errors (a yellow warning triangle). NMG state design is editorial — quiet copy on the warm canvas, one tiny red anchor when needed.
What an agent shipped
📭
No items yet!
Looks like you haven't added anything. Try adding your first item!
Material emoji + chipper exclamation copy + Material-blue button. Three brand violations in one state.
Correct
Nothing here yet.
Add your first item to see it on the warm canvas.
Add item →
One tiny red dot. Quiet, direct copy. Outlined CTA. The brand's voice in an empty state.
Counter-rule
NMG empty, loading, error, and success states use the same voice as the rest of the brand: confident, short, direct. NEVER emojis. NEVER exclamation marks. NEVER Material-blue accents. One small red dot or eyebrow anchors the moment; the rest is neutral text on warm canvas.
Detection · grep state copy for emojis (regex [\u{1F300}-\u{1F9FF}]), exclamation marks at sentence end, and any blue accent #1976D2, #3B82F6, etc.
Anti-pattern 11 · Illustration
11
Multi-color illustration or gradient
When an agent needs an illustration, it reaches for stock characters in pastel gradients. NMG illustration is mono-line in secondary (Near Black) with ONE red accent dot. Never multi-color. Never gradients. Never characters in flat tones.
What an agent shipped
Pastel gradient blob + pop-art accent. Looks like a 2021 fintech onboarding illustration. Not NMG.
Correct
Mono-line in Near Black. ONE red accent dot. Editorial, restrained, NMG.
Counter-rule
NMG illustration is mono-line in secondary (Near Black #1B1B1B), 1.5–2px stroke, with ONE red accent dot per illustration. NEVER multi-color. NEVER gradients. NEVER characters in pastel tones. The red dot motif is the only fill.
Detection · scan SVG/illustration for: more than one non-black fill color, any linearGradient/radialGradient, more than one red element. Any of these = fail.
Anti-pattern 12 · Aligned Data Doctrine
12
Numbers without tabular numerals
KPI cards, tables, and charts in NMG always use tabular numerals — each digit takes the same width, so columns align. Without it, "142K" and "832K" misalign by a few pixels and the eye reads them as messy. The Aligned Data Doctrine is the most ownable thing about NMG dashboards.
What an agent shipped
142K
Sessions
1,847
Keywords
4.2%
CTR
Proportional-width digits. Look closely: the 1s, 4s, 2s aren't aligned across cards. Reads as imprecise.
Correct
142K
Sessions
1,847
Keywords
4.2%
CTR
Tabular numerals. Every digit is the same width. The eye reads precision.
Counter-rule
Apply font-feature-settings: 'tnum' 1, 'lnum' 1 TABLE-wide, KPI-wide, CHART-wide — not just on individual numeric cells. The Aligned Data Doctrine treats every datum that lives in a column as a column-aligned cell, including chart axis labels and tooltip numbers.
Detection · grep for font-feature-settings. Verify it's applied at the parent level (table, .kpi-grid, .chart) and not just at the cell. If only at the cell level, half the data surfaces will be missed.
How to use this page. Before shipping any NMG-branded output, walk the table of contents above and verify your work against each anti-pattern. The /check scanner tests for many of these automatically; this page documents the ones that need a human-or-agent eyeball. New failures? File them: every observed AI-generated anti-pattern becomes a new entry here. The library grows with the brand.