Doctrine is the source of truth — the official version everyone builds from.
Every operating procedure the company has introduced, captured verbatim from the record and linked back to the brief that set it. Read the company's history and its operating manual in the same place. 41 standing orders on file.
Doctrine is the source of truth — the official version everyone builds from.
Pull the numbers — reply.io sends/replies, GHL bookings/shows, collections. (3 min) Constraint hours vs 20. Under? Name what stole them — by name. (2 min) Queue check. Under 5 booked next week = the constraint is starving; feed it Monday. (2 min) Run the lie detector — git log --since="1 week ago" on Website + Brain repos. Non-zero = you polished. (3 min) Check the triggers — ≥12 shows/wk ×2 weeks → setter. 2 signed → sales pause. <3% replies after 300 sends → fix the message. (3 min) One sentence in the brief cloud: what the constraint was this week; what feeds it next week. (2 min)
Claude no longer writes marketing. Every copy slot stays a placeholder until approved by Chris + ChatGPT — and approved copy is pasted verbatim, never rewritten.
Established the content taxonomy — pillars mapped to the customer journey: HVAC Leads → HVAC Sales → HVAC Scaling, plus Masterclass, Facebook Ads, Uncensored, Strategy, and Content.
Locked catalog conventions — YTL## for the numbered YouTube library; VSL## for funnel Video Sales Letters.
Ruled that statuses must reflect real production state — nothing sits in "Filming" until it is actually shot.
Published dates go on shipped assets only — no aspirational dates cluttering the board.
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.
Adopt the Ownership eyebrow as house style — {doctrine noun} · {function} · Live — so the spine reads off the headers on every tab.
Established a standing rule: every benchmark figure stays Evidence-backed claim — verify before public use. Promoting doctrine to canon does not certify the statistics.
Two skills become standard. A design engine (UI/UX Pro Max) and an SEO suite (Claude SEO) were installed globally — every AnchorWorks and DreamState website is now built and audited through them.
Outbound teaches one term: Revenue Engine. The other nine lexicon terms stay internal until proof exists.
Google Tag Manager is the single tag router — every pixel and tag fires through it, nothing hard-coded, so nothing double-counts.
Attribution is captured once, at the source, and never overwritten — original source is the truth, not "where they were last seen."
SMS consent gate hardened: a text goes only to a number the owner handed over, or after a written yes to a specific number — a positive email reply alone is not consent.
Send windows locked: 6–9am recipient-local primary, 5–7pm secondary, midday banned.
Verify-before-send is a hard gate.
Whales are held out of practice sends. First impressions are spent only with the polished play — practice happens on the lower tiers.
Close two. Stop. Deliver both to their first sale. Then — and only then — reopen the pipeline. This is the anti–Grit-&-Gains clause. Breaking it is how the 80%-failure cohort gets rebuilt at 3× the price.
Mobiles stay reply-gated — triage calls only, never cold SMS; enrichment-revealed personal inboxes never receive a cold first touch.
The report is delivered on reply — link or PDF, no opt-in gate for an asset a prospect already asked for.
Every piece of work belongs to one of four layers — Knowledge → Projects → Assets → Publishing. Includes the Migration & Legacy clause: existing repos are legacy until intentionally migrated.
The operating model for how work happens: one session = one repository = one role. Defines the repositories, their roles, and a concrete registry.
File by what a thing is, into a building: rooms (Brain · Workshop · Studio · Closet · Home Base) → benches/stations → shelves.
Each repository has a single canonical role. Projects inherit from Black Ledger OS — they never redefine it.
The pipeline is explicit: Doctrine → Messaging Architecture → Copy (ChatGPT) → Implementation (Claude) → QA → Publish. Canon is always last, never first.
Adopted the reconciled-ledger model — the database is the ledger of record, never a hand-edited source of truth.
Each metric has exactly one authoritative source. When two systems disagree, the owner wins and the other gets fixed.
Adopted one metric, many altitudes for ROAS/CAC; MER is the CEO's one number.
Capture everything from day one. Compute every number, never type it. Visualize in sequence.
Raw logs are machine-only. When a human needs to correct something, they append a dated, reasoned entry to adjustments — and the reports net the raw data against it.
Same data, one formula, many lenses. Build once, filter many.
when the tracker and the record disagree, believe the record; a tracker only earns trust if it is reconciled.
the Miro War Board is the design intent (the revenue engine as designed); the Notion War Board is the execution tracker (what is being built); and the Executive Brief Cloud is the accurate record (what shipped, and why).
Real data lands in a staging table so the approved demo stays pristine; nothing is ever written back to GoHighLevel; the strip shows only what is truly live and labels the rest sample.
We keep one shared company brain — a living wiki — as the single place we save what we know.
Nothing important is deleted; superseded work is archived, never lost.
All tracking and ad/analytics accounts are created under the company login (chris@myanchorworks.com) — never a freelancer or personal account.
Tracking is Chris's lane; the dashboard is Ethan's. One written integration contract names who owns every field, so neither re-does the other's work.
A single integration contract names who writes every field, plus a hard rule: tracking IDs are Chris's to create and Ethan's only to consume — from one shared registry, never self-provisioned.
Repo governance: the outbound-machine repo holds playbooks and logs only; lead data and credentials never enter git, enforced by gitignore.