-
No tool names on user surfaces§ Executive Decisions · Decision Log
Purge tool-name leaks from every user surface. No screen sounds technical — never say Supabase, LLM→SQL, or MCP to a person reading the dashboard.
-
Ownership eyebrow house style§ Executive Decisions · Decision Log
Adopt the Ownership eyebrow as house style — {doctrine noun} · {function} · Live — so the spine reads off the headers on every tab.
The executive summary.
The KPI Command Center works — but it still sounded like software. Today we held it against the Black Ledger OS doctrine and asked one question: does our own instrument speak in the voice we preach? Where it didn't, we fixed it — then merged the whole system to main.
Six language moves realigned the narrative without touching a single metric. The Overview became The Engine Room, Marketing the Demand Engine, Client Success the Nurture Engine; the corporate "Attainment" became the plain "vs target"; the AI panel became Ask the Ledger; and every engineer's leak — Supabase, LLM→SQL, MCP — was rewritten in plain English. The finance names (MER, Blended CAC, NRR, eNPS) stayed exact on purpose: a command center earns trust through precision, not brand words.
Realign the framing, not the gauges — the titles carry the doctrine, the numbers stay exact.
Current stage: Foundation — the cockpit is live, on-brand, on-voice, and merged to main. Live data sources are the next phase.
What was decided.
Realign the framing, not the gauges. Titles and eyebrows carry the doctrine; metric names stay precise — an instrument should read like an instrument.
lockedPurge tool-name leaks from every user surface. No screen sounds technical — never say Supabase, LLM→SQL, or MCP to a person reading the dashboard.
lockedAdopt the Ownership eyebrow as house style — {doctrine noun} · {function} · Live — so the spine reads off the headers on every tab.
lockedName the AI panel in-voice — "Ask the Ledger," not "AI Assistant" — and keep it an honest, labelled preview.
lockedClose the secret leak first. A .env.production with live keys was untracked but not ignored; harden .gitignore before any commit.
lockedMerge to main with Chris's sign-off and retire the superseded branch — one canonical source of truth.
locked
What was done.
02Secrets held under speed
03Merged to main — one source of truth
04Why the voice matters.
By the numbers.
Where we are.
Foundation — instrument first, then pour traffic.
Decisions still required.
- First live source — Stripe or GoHighLevel? The one decision that unblocks ingestion. Stripe is the locked cash truth; GHL is already flowing leads. (Teed up for Chris.)
“First live source is GoHighLevel — the acquisition system of record — chosen over Stripe for the first slice.”
Resolved by Brief 012 · The First Live Reading - Deploy target. The permanent URL that replaces localhost, so the whole team reads the same board.
“Deploy target locked. The cockpit lives on Cloudflare Pages against cloud Supabase, on a permanent URL — localhost retired.”
Resolved by Brief 012 · The First Live Reading - Prior-agency actuals. Which real history replaces the seeded assumptions — churn, close rate, CAC, show rate.
- Narrative sign-off. Chris + ChatGPT's final copy to lift this brief from DRAFT to canonical.
What comes next.
- 01Pick the first live source — Stripe (cash) or GoHighLevel (leads) — the choice that unblocks ingestion.
- 02Blueprint the ingestion — B.L.A.S.T. — map source field → Supabase table → view → tile before a line of code.
- 03Deploy the dashboard — A permanent URL, so the board leaves localhost for good.
- 04Replace seed with actuals — Swap modeled assumptions for prior-agency history so the numbers reflect reality.
- 05Build outward from the spine — Acquisition → churn defense → full granularity, in sequence.
