BRANDBOOK · v1.0 · 2026

STRATEGY IS FOLKLORE.I SHIP OPERATING SYSTEMS.

Source of truth for the MarketingUpgrade.pro brand. Refrain, POV, ICP, voice, color, typography, components, and entity graph in one document. Edit this file when any brand decision changes; everything else in the codebase should derive from here.

brandbook.marketingupgrade.proAuthor: Joris van HuëtUpdated: 2026-10-07
§01

THE REFRAIN

Always repeat

Strategy is folklore. I ship operating systems.

Seven words, two clauses. The first clause names the problem (consultant industry sells folklore). The second clause names the alternative (a working system, not a deck). Repeat this on every hero, every CTA exit, every footer strap, every OG image alt, every email subject A/B variant, and every sales reply until it is the first thing every prospect can recall about the brand.

POV: what I believe

A marketing engagement turns into folklore when someone reads a deck back to a board, the retainer renews and growth does not move. The alternative is a working marketing operating system the team owns after the engagement ends.

ICP: who I serve

€5M to €100M revenue businesses across four sectors (E-commerce, Financial Services, B2B SaaS, Marketplaces). Stage: post-PMF, pre-Series C. Decision-maker: founder, CEO, or board chair.

Engagement shape

Project sprints of 2 to 6 weeks, interim leadership of 3 to 12 months, or fractional ongoing. €5,000 to €25,000 per month, 30-day exit clause. Operational from day one. Never a retainer-for-vibes.

The goal of every engagement

A marketing function that runs without me, documented, when the engagement ends.

§02

COLOR SYSTEM

Seven brand colors. Two operational accents (neon green for action, neon purple for brand). Black foundation, off-white text. Two greys for hierarchy. Danger red only on legal and regulatory pages. Click a swatch to copy the hex.

Neon Green

#00ff00
oklch(0.87 0.3 142)

Primary action. CTAs, accents, success state, positive signal.

  • ›Use as the dominant accent on dark backgrounds.
  • ›Reserve for action and affirmation. Never on punitive copy.
  • ›Pair with glow (text-shadow 0 0 10px #00ff00) on hero surfaces only.

Neon Purple

#e386e9
oklch(0.68 0.17 330)

Brand primary. Borders, secondary accents, attention markers.

  • ›Use for category labels, eyebrows, hover states, attention pulls.
  • ›All dashed borders default to this color.
  • ›Never use as primary CTA fill (reserve green for that).

Pure Black

#000000
oklch(0 0 0)

Page background, foundation.

  • ›All pages start from #000.
  • ›Card surfaces shift up to #0a0a0a or oklch(0.1 0 0).
  • ›Never use as text color (white only).

Off-white

#f2f2f2
oklch(0.95 0 0)

Body text, primary readable content.

  • ›Default text color on every page.
  • ›Headings use pure white #ffffff for additional contrast.
  • ›Never use a warm white. Keep it neutral.

Grey 60

#999999
oklch(0.6 0 0)

Muted secondary text, captions, metadata.

  • ›Dates, byline metadata, tag chips, fine print.
  • ›Never use for body content.
  • ›Pair with text-xs / font-mono for fine print.

Grey 80

#cccccc
oklch(0.8 0 0)

Body copy on dark cards.

  • ›Use inside p tags within bordered cards.
  • ›Provides hierarchy below pure-white headings.

Danger Red

#ff0000
oklch(0.6 0.2 20)

Hard warning, destructive states, error borders.

  • ›Page-level top/bottom borders on Legal, Privacy, Cookies pages signal regulatory weight.
  • ›Never for general CTAs. Never for body copy.
§03

TYPOGRAPHY

Four typefaces. Display (Black Ops One) for every heading. Mono (Space Mono) for everything else. Hand (Permanent Marker) for one rotated accent per section. Sans (Space Grotesk) as the long-form fallback. Never use Google's default sans serifs.

BLACK OPS ONE

var(--font-display)
STRATEGY IS FOLKLORE.

All H1-H6. All hero text. ALL CAPS with 0.05em letter-spacing.

Weights: 400 (single weight)

SPACE MONO

var(--font-mono)
Enterprise interim CMO leadership across four sectors.

Body text, paragraphs, navigation, tags, code, fine print.

Weights: 400, 700 (regular + bold)

PERMANENT MARKER

var(--font-hand)
Operational from day one.

Pull quotes, slight rotation accents (.rotate-slight class), human moments. Use sparingly — max one per section.

Weights: 400

SPACE GROTESK

var(--font-sans)
Engagement starts at €5,000/month for channel execution.

Body fallback when Space Mono is too dense. Long-form articles.

Weights: 400, 500, 600, 700

§04

VOICE & TONE

Six rules. Apply to every surface: homepage hero, blog posts, CTA copy, email subject lines, social posts. A voice violation is brand drift; this section is the merge gate.

01

Two-clause structure

DO

Strategy is folklore. I ship operating systems.

DON'T

We deliver strategic, results-driven marketing transformation.

Why: Two short clauses are memorable. They survive translation, voice search, AEO snippet selection.

02

Use 'I', not 'we'

DO

I do the diagnosis and the work myself.

DON'T

Our team does the diagnosis and the work.

Why: Solo operator. A plural pronoun fakes scale I don't have.

03

Sourced figures, not adjectives

DO

8% of CMOs run campaigns where multiple agents operate autonomously (BCG, 300 CMOs, June 2026).

DON'T

Acquisition costs have become more challenging.

Why: A figure carries its source, and a figure with no source does not ship. Name the mechanism when there is no figure.

04

Negative-negative-negative-positive cadence

DO

No 90-day onboarding. No PowerPoint. No retainer-for-vibes. Operational from day one.

DON'T

We focus on quick wins and long-term value delivery.

Why: Three negatives sharpen the contrast. One positive lands the punch. Rhythm matters.

05

Name brands, name the rule

DO

Engagements are structured to satisfy Dutch Wet DBA.

DON'T

Compliant with relevant European regulations.

Why: Specifics signal expertise. Vague signals consultancy.

06

Skip em-dashes

DO

Use a comma, a colon, or split the sentence.

DON'T

Em-dashes — they are inconsistent across keyboards.

Why: House rule, enforced by the copy linter in CI.

§05

HERO PATTERN (THE FLETCH FOUR-LINE)

Every above-fold hero uses these four lines, in this order. Eyebrow names the category. H1 is the refrain. Sub places the offer in context. Eyebrow2 sharpens with three negatives and one positive.

EYEBROW — Category label
Interim CMO · €5K–€25K/month · NL/Benelux
H1 — Refrain (5-7 words, two clauses)

STRATEGY IS FOLKLORE. I SHIP OPERATING SYSTEMS.

SUB — Category + ICP + offer

Enterprise interim CMO leadership for €5M to €100M businesses across e-commerce, fintech, SaaS, and marketplaces. Embedded from week one.

EYEBROW2 — Three negatives + one positive

NO 90-DAY ONBOARDING. NO POWERPOINT. NO RETAINER-FOR-VIBES. ONE OPERATOR, OPERATIONAL FROM DAY ONE.

§06

COMPONENT VOCABULARY

The visual vocabulary of the TFS (Tactical Field Scrapbook / Brutalist) language. Every page mixes these six elements in some combination. Adding a new element requires updating this section first.

Dashed border card
border-2 border-[#00ff00] borderStyle:dashed

Primary container for any structured content (KPIs, stack lists, pricing tiers).

Sharp corners
border-radius: 0 (TFS --radius: 0rem)

All buttons, cards, inputs. Never round corners. Brutalist baseline.

Neon glow
textShadow: 0 0 10px <color> — usually 10-20px blur

Hero text, brand strap, critical accents. Reserve for ~1-2 surfaces per page.

Scanlines / CRT
repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,255,0,0.015) 2px, rgba(0,255,0,0.015) 4px)

Overlaid on hero sections as low-opacity ambient texture. Never on text.

Slight rotation
.rotate-slight (animation: wiggle 1s ease-in-out infinite)

Apply to font-hand accents (Permanent Marker). One per section max.

Tracking-widest ALL CAPS
text-xs tracking-widest uppercase — usually with font-black or font-display

Section eyebrows, category labels, badge/chip copy.

§07

LOGO & LOCKUP

MarketingUpgrade.pro logo
MARKETING UPGRADE

USAGE RULES

  • ›Wordmark + icon lockup is the default. Icon-only variant for favicon and PWA.
  • ›Wordmark renders in #00ff00 with neon glow (text-shadow 0 0 10px #00ff00) on dark backgrounds only.
  • ›Letter-spacing: 0.15em (tracking-widest). Font weight: font-black.
  • ›Never use the wordmark in lowercase. Never combine with other display fonts.
  • ›Favicon set: /favicon.ico, /favicon-192.png, /favicon-512.png (PWA maskable).
§08

CTA PATTERNS

Primary — green fill

For the primary conversion action on every page. One per surface. Always “Start an intake” or a refrain-flavoured variant. Never “Get in touch”, “Learn more”, or any passive CTA.

Secondary — green dashed outline

For the not-ready-yet visitor. Always leads to a content surface (verticals, blog, whitepaper, glossary). Never leads to a calendar or form.

§09

ENTITY GRAPH (SEO / AEO / GEO)

The brand operates as two linked schema.org entities: a Person (the operator) and an Organization (the brand). Both share a cross-referenced sameAs graph. Any new platform presence must be added to both arrays and shipped on the same commit.

Person
Joris van Huët
Enterprise Interim CMO & Marketing Leader
@id: https://www.marketingupgrade.pro/#person
sameAs
Organization
MarketingUpgrade.pro
Type: ProfessionalService + LocalBusiness
@id: https://www.marketingupgrade.pro/#organization
sameAs

When adding a new platform (e.g., Substack, Mastodon, Wikidata Q-number, YouTube channel), update: client/index.html Person.sameAs, client/index.html Organization.sameAs, client/index.html LocalBusiness.sameAs, /client/public/.well-known/agent.json, /client/public/humans.txt, /client/public/llms.txt, /client/public/llms-full.txt, AND this brandbook. All in one PR.

§10

SEO CHECKLIST (PER PAGE)

Every indexable page MUST satisfy this checklist. The seo:lint script enforces it in CI. Pages that fail are blocked from merge.

  • ▸Exactly one <h1>, refrain-flavoured or page-specific.
  • ▸<title> ≤60 chars, brand at end (| MarketingUpgrade.pro).
  • ▸meta description 120-160 chars, with a concrete hook + implicit CTA.
  • ▸Canonical URL: absolute, on www.
  • ▸Open Graph + Twitter card tags (og:image min 1200×630).
  • ▸Visible byline on every MOFU/BOFU page (Joris van Huët, Updated YYYY-MM-DD).
  • ▸3+ internal links out, 2+ internal links in from relevant pages.
  • ▸One server-rendered CTA in initial HTML — no JS-only modals.
  • ▸JSON-LD: BreadcrumbList + at least one page-specific schema (Article, Service, FAQPage, DefinedTerm).
  • ▸Core content + internal links present in rendered HTML (verify with JS disabled).
§11

PRICING & ENGAGEMENT TIERS

From €5,000 to €25,000 per month, set by how much of the function I take on and how many days a week that takes; €25,000 is a full mandate with P&L ownership. Monthly cycles with a 30-day exit clause.

§12

FORBIDDEN — AUTO-REJECT ON SIGHT

  • ✕Words: 'innovative', 'results-driven', 'world-class', 'best-in-class', 'cutting-edge', 'thought leader', 'synergy', 'unlock', 'unleash'.
  • ✕Phrases: 'Trusted by [logos]' without proof. 'Get in touch.' 'Click here.' 'Learn more.'
  • ✕Visuals: stock photography of a person on a laptop. Skyline hero shots. Generic blue corporate gradient.
  • ✕Em-dashes ( — ). Use comma, colon, or sentence split.
  • ✕Soft 'we' sentences with no ICP. If you cannot replace 'we' with 'I' or with the ICP name, the sentence is meaningless.
  • ✕JS-only CTAs (modals, popups) without a server-rendered fallback link.
  • ✕Generic Google sans serifs (Roboto, Open Sans, Lato). The TFS stack is fixed.
  • ✕Rounded corners on buttons/cards. TFS --radius is 0.
  • ✕Any color outside the seven brand colors. Adding a new color requires a brandbook update first.
§13

TINTS & SHADES — FULL SCALE

Every brand color exposes a 50-950 step scale for nuanced UI usage (hover states, alert backgrounds, gradient stops, data visualization). The 500 step is the canonical hex. Lower numbers are lighter; higher numbers are darker. Generated programmatically; OKLCH-tuned source of truth lives in client/src/index.css.

Neon Green · canonical #00ff00
50
#e6ffe6
100
#ccffcc
200
#99ff99
300
#66ff66
400
#33ff33
500
#00ff00
600
#00d900
700
#00b300
800
#008c00
900
#006600
950
#003800
Neon Purple · canonical #e386e9
50
#fcf3fd
100
#f9e7fb
200
#f4cff6
300
#eeb6f2
400
#e99eed
500
#e386e9
600
#c172c6
700
#9f5ea3
800
#7d4a80
900
#5b365d
950
#321d33
Grey (neutral) · canonical #999999
50
#f5f5f5
100
#ebebeb
200
#d6d6d6
300
#c2c2c2
400
#adadad
500
#999999
600
#828282
700
#6b6b6b
800
#545454
900
#3d3d3d
950
#222222
Danger Red · canonical #ff0000
50
#ffe6e6
100
#ffcccc
200
#ff9999
300
#ff6666
400
#ff3333
500
#ff0000
600
#d90000
700
#b30000
800
#8c0000
900
#660000
950
#380000
§14

CONTRAST MATRIX — WCAG 2.2 AA + AAA

Every brand-color foreground × background pairing measured against WCAG 2.2. AA threshold: 4.5:1 for normal text, 3:1 for large text (18pt regular or 14pt bold). AAA: 7:1 normal / 4.5:1 large. Pairings marked “Fail” must not be used for text. Use them for decorative-only surfaces (borders, dividers, icons with adjacent labels).

FG / BGBlackOff-whiteCard #0a0a0aCard #1a1a1a
White
21.00:1
N:AAA · L:AAA
1.12:1
N:Fail · L:Fail
19.80:1
N:AAA · L:AAA
17.40:1
N:AAA · L:AAA
Off-white
18.76:1
N:AAA · L:AAA
1.00:1
N:Fail · L:Fail
17.68:1
N:AAA · L:AAA
15.55:1
N:AAA · L:AAA
Grey 80
13.08:1
N:AAA · L:AAA
1.43:1
N:Fail · L:Fail
12.33:1
N:AAA · L:AAA
10.84:1
N:AAA · L:AAA
Grey 60
7.37:1
N:AAA · L:AAA
2.54:1
N:Fail · L:Fail
6.95:1
N:AA · L:AAA
6.11:1
N:AA · L:AAA
Neon Green
15.30:1
N:AAA · L:AAA
1.23:1
N:Fail · L:Fail
14.43:1
N:AAA · L:AAA
12.68:1
N:AAA · L:AAA
Neon Purple
8.85:1
N:AAA · L:AAA
2.12:1
N:Fail · L:Fail
8.35:1
N:AAA · L:AAA
7.34:1
N:AAA · L:AAA
Danger Red
5.25:1
N:AA · L:AAA
3.57:1
N:Fail · L:AA
4.95:1
N:AA · L:AAA
4.35:1
N:Fail · L:AA

N = normal text grade · L = large text grade. AAA = ideal, AA = minimum, Fail = decorative only.

§15

TYPE SCALE

The full responsive type ramp, mobile-first. All sizes use rem so they respect user font-size preferences. Line heights are tuned per step; display sizes are tight (0.9-1.1) while body sits at 1.6 for long-form readability.

TokenSize (rem)Size (px)Line-heightUse
display-xl5.625900.9Hero H1 desktop
display-lg4.5720.95Hero H1 tablet
display3.5561.0Hero H1 mobile / Section H2 desktop
h13.0481.05Section H2 mobile
h22.25361.1Subsection H3
h31.875301.15Card title
h41.5241.2Inline emphasis
lead1.25201.5Sub-hero / lede paragraph
body-lg1.125181.6Long-form blog body
body1.0161.6Default paragraph
body-sm0.875141.55Card body, FAQ
caption0.75121.5Meta, byline, fine print
mono-sm0.6875111.4Code, hex, technical refs
eyebrow0.625101.3All-caps tracking-widest
§16

SPACING SYSTEM (4PT GRID)

Everything in the layout uses 4px increments. Tailwind's default scale maps cleanly: spacing-1 = 4px, spacing-2 = 8px, spacing-4 = 16px. Component padding, gap, and margin must come from this scale. Adding a one-off value (e.g., 13px) requires a design-token RFC.

spacing-1 · 4px / 0.25rem
spacing-2 · 8px / 0.5rem
spacing-3 · 12px / 0.75rem
spacing-4 · 16px / 1rem
spacing-5 · 20px / 1.25rem
spacing-6 · 24px / 1.5rem
spacing-8 · 32px / 2rem
spacing-10 · 40px / 2.5rem
spacing-12 · 48px / 3rem
spacing-16 · 64px / 4rem
spacing-20 · 80px / 5rem
spacing-24 · 96px / 6rem
spacing-32 · 128px / 8rem
§17

ICONOGRAPHY

Lucide React. Stroke-based, single weight (1.5px at 24px size). Always pair with a text label for accessibility. Never use an icon alone as a button without an aria-label.

ArrowRight
CTA arrows
CheckCircle2
Affirmations
Download
Assets, PDF
Mail
Contact
Briefcase
CV, roles
FileText
Whitepaper
BookOpen
Blog
Home
Nav
AlertCircle
Errors, 404
ICONOGRAPHY RULES
  • › Always import from `lucide-react`. Never inline SVGs.
  • › Default size: w-4 h-4 (16px) inside buttons, w-5 h-5 (20px) inline, w-8 h-8 (32px) in feature cards.
  • › Color: inherit from text-current. Tint with text-[#00ff00] or text-[#e386e9] when used as a standalone icon.
  • › Adding a new icon family (e.g., Heroicons) is forbidden without a brandbook RFC.
§18

MOTION & ANIMATION

Motion serves communication, not decoration. Hero text uses staggered letter reveal with a cinematic ease curve. Scroll-driven parallax for hero sections only. Always respect prefers-reduced-motion.

ease-in-out-cinematic
cubic-bezier(0.25, 0.46, 0.45, 0.94)

Hero text reveal, section entrances, anything narrative

ease-out-snap
cubic-bezier(0.16, 1, 0.3, 1)

Button hover, popover entry, anything reactive

ease-linear
linear

Progress bars, scanline overlays, infinite loops only

wiggle
rotate(-3deg) → rotate(3deg), 1s loop

Permanent Marker accents, .rotate-slight class

duration-fast · 150ms · Hover, focus, micro
duration-base · 300ms · Entries, exits, defaults
duration-slow · 600ms · Hero text reveal
duration-cinematic · 1200ms · Page-load drama
stagger-letter · 80ms · Per-letter delay
stagger-word · 150ms · Per-word delay
Engine: GSAP (gsap.com)

Choreographed motion — entrances, count-ups, staggers, loops — is built with GSAP 3.15+ (free for commercial use since 3.13, all plugins included). Gesture-bound motion that tracks a pointer or spring-physics UI state (card tilt, flip, drag) stays on framer-motion. One engine per job; never both on the same property of the same element.

Scope + revert

Every page wraps its tweens in gsap.context(() => {...}, rootRef) and returns ctx.revert() on unmount. No global selectors, no leaked tweens.

.from() only for entrances

Markup renders the FINAL state (SEO- and no-JS-safe); gsap.from() animates toward it. prefers-reduced-motion? Skip the whole context — the DOM is already correct.

Eases

back.out(1.4) for hero/card entrances · power2.out for reveals & counters · power3.out for bars/meters · power2.inOut for loops (sheens, sweeps).

Counters & staggers

Number count-ups: gsap.from with innerText: 0 + snap. Grid staggers 0.08–0.12s. Loops repeat with repeatDelay ≥ 6s — ambience, not noise.

useLayoutEffect(() => { if (matchMedia("(prefers-reduced-motion: reduce)").matches) return; const ctx = gsap.context(() => { gsap.from(".hero-card", { autoAlpha: 0, y: 48, scale: 0.92, duration: 1, ease: "back.out(1.4)" }); gsap.from(".stat-num", { innerText: 0, snap: { innerText: 1 }, duration: 1.5, ease: "power2.out", stagger: 0.09 }); gsap.from(".stat-bar", { scaleX: 0, transformOrigin: "0% 50%", duration: 1.1, ease: "power3.out", stagger: 0.09 }); }, pageRef); return () => ctx.revert(); }, []);

Reference implementation: fifacv.marketingupgrade.pro — entrance swing, stat count-ups, bar fills, below-fold reveals, and an 8-second sheen loop, all in one reverted context.

§19

ACCESSIBILITY: WORKING RULES

No formal external accessibility standard has been set. Two working rules are enforced in the codebase and should hold: every image carries a descriptive alt attribute, and arcade green (#00ff00) is used only on obsidian surfaces, where it clears 15:1. On the light canvas the accent is the darkened pink (#9b2fa3), because the green fails contrast there. The list below borrows from WCAG 2.2 as targets for new pages. It is a set of goals, not a claim of conformance.

1.1.1
Non-text content
All images have meaningful alt text or alt="" if decorative.
1.3.1
Info and relationships
Use <main>, <nav>, <section>, <article> semantic landmarks. Never <div> a heading.
1.4.3
Contrast (minimum)
Body text targets 4.5:1. The §14 matrix shows which brand pairings clear it.
1.4.10
Reflow
Single-column reflow at 320px width without horizontal scroll.
1.4.11
Non-text contrast
Borders and focus indicators ≥3:1 against background.
2.1.1
Keyboard
Every interactive element reachable by Tab. No keyboard traps.
2.4.7
Focus visible
Focus ring uses --ring (neon purple), never removed in CSS.
2.5.5
Target size
Min 44×44px tap targets for all CTAs and nav links.
3.1.1
Language
<html lang="en"> set; per-page lang attribute when content differs.
3.3.2
Labels or instructions
Every form input has a visible label, never placeholder-as-label.
4.1.2
Name, role, value
Custom components use ARIA appropriately. Test with VoiceOver / NVDA.
§20

DESIGN TOKENS — EXPORT

Canonical token export. CSS variables (drop into any project), Tailwind config snippet, and a JSON payload for Figma / Style Dictionary. Source of truth: client/src/index.css. When tokens change, update there first, then this brandbook.

CSS variables
:root {
  /* color */
  --green-500: #00ff00;
  --purple-500: #e386e9;
  --red-500: #ff0000;
  --white: #ffffff;
  --off-white: #f2f2f2;
  --grey-50: #f0f0f0;
  --grey-60: #999999;
  --grey-80: #cccccc;
  --bg-base: #000000;
  --bg-card: #0a0a0a;

  /* fonts */
  --font-display: "Black Ops One", system-ui;
  --font-mono: "Space Mono", monospace;
  --font-hand: "Permanent Marker", cursive;
  --font-sans: "Space Grotesk", system-ui, sans-serif;

  /* radius */
  --radius: 0;

  /* motion */
  --ease-cinematic: cubic-bezier(.25,.46,.45,.94);
  --ease-snap: cubic-bezier(.16,1,.3,1);
  --duration-fast: 150ms;
  --duration-base: 300ms;
  --duration-slow: 600ms;
}
JSON (Style Dictionary)
{
  "color": {
    "green":   { "500": "#00ff00" },
    "purple":  { "500": "#e386e9" },
    "red":     { "500": "#ff0000" },
    "neutral": {
      "0":   "#000000",
      "10":  "#0a0a0a",
      "60":  "#999999",
      "80":  "#cccccc",
      "95":  "#f2f2f2",
      "100": "#ffffff"
    }
  },
  "font": {
    "display": "Black Ops One",
    "mono":    "Space Mono",
    "hand":    "Permanent Marker",
    "sans":    "Space Grotesk"
  },
  "radius": { "default": 0 },
  "motion": {
    "ease": {
      "cinematic": "cubic-bezier(.25,.46,.45,.94)",
      "snap":      "cubic-bezier(.16,1,.3,1)"
    },
    "duration": {
      "fast":  "150ms",
      "base":  "300ms",
      "slow":  "600ms"
    }
  }
}
§22

GOVERNANCE — HOW TO CHANGE ANYTHING

The brandbook is the source of truth. Changes to colors, typography, voice, or component vocabulary require a documented RFC. Quick fixes (typos, formatting) can ship freely.

LEVEL 1 — EDITORIAL

Examples: Fixing a typo, updating an asset URL, adding a new entry to an existing list.

Process: Open PR, merge after self-review. No external sign-off.

LEVEL 2 — TOKEN EXTENSION

Examples: Adding a new shade step to an existing color scale. Adding a new icon to the library. Adding a new spacing token.

Process: Open PR with rationale + 2 example use cases. Merge after 1 reviewer approves.

LEVEL 3 — NEW TOKEN OR COMPONENT

Examples: Adding a new brand color. Adding a new typeface. Adding a new component pattern. Adding a new voice rule.

Process: Open RFC issue first. 7-day comment window. Implement only if no veto. Update brandbook + every reference in the codebase in the same PR.

LEVEL 4 — REFRAIN / POV / ICP CHANGE

Examples: Changing the refrain. Changing the ICP. Changing the POV.

Process: Synchronous workshop with the operator + a trusted external advisor. Cannot be done in a PR alone.

§23

CHANGELOG

v1.0.02026-06-15

Initial publication. Refrain locked: 'Strategy is folklore. I ship operating systems.' ICP: stay broad across six verticals. Brand graph (Person + Organization + LocalBusiness) cross-references LinkedIn, Reddit, and Interactive CV subdomain.