Builder OSThe St. Pierre builder course · internal

Module 00 · Start here

Orientation

What St. Pierre is, who's on the team, why almost all of your work is generation on rails that already exist, and what a "builder" actually is here. Read this once. Everything after it assumes you know it.

0.1 The business in one breath

St. Pierre (always written stpierre.ai — never "St. Pierre Digital") sells an AI-run lead system to foundation & waterproofing contractors and the neighboring home-service trades. The promise to a contractor: a steady 3–6 week backlog of high-ticket jobs, without buying leads, chasing referrals, or running their own ads.

Under the hood that means two audiences, always labeled:

  • B2B — St. Pierre winning its own clients (contractors). Ads, funnels, sales calls that sell the system.
  • B2C — the product we run for a signed client: ads + a chatbot that turn that contractor's local homeowners into booked, qualified jobs.
Anchor fact The four beachhead niches carry different job values, and price follows them: CL (concrete leveling) $3K · CF (crawlspace/foundation) $2K · CS (commercial services) $10K · FR (foundation repair) $15K. Cost-per-lead targets run at roughly 5% of ticket. Never invent a "house default" ticket — an unknown ticket is written as "unknown."

0.2 The trio: who does what

WhoIsOwns
AkashOwner, going 100% salesThe offer, the selling, the money, and every gate. Cold calling, closing, cashflow. He answers your questions — he is not your task queue.
You (the builder)Operator of the machineRunning and extending the six systems. You keep the machine delivering, feed the dailies, and ship the daily ad pack through Akash's gate.
ViktorThe AI Slack voiceMachine briefings only. Viktor narrates what the rails did overnight. Viktor is not a person and does not make decisions.

Everything smaller than a whole outcome goes to AI agents directly — you don't hand-type what an agent can generate. You direct the agents, check their work, and own the number that comes out.

0.3 The 95%-is-generation insight

This is the mental model that makes the job possible. About 95% of builder work is text and image generation on rails that are already dialed in. The hard part — the strategy, the offer, the funnel shape, the creative canon, the pull system — has been built. Your leverage is running those machines well, not reinventing them.

Say it back "I operate machines, I don't invent them." When a task feels like it needs a brand-new system, that's a signal to stop and ask — the rail probably already exists and you haven't found it yet.

0.4 What a builder IS here

  • Operator of machines. The rails run themselves. You watch them, feed them, and repair them when a light goes red.
  • Owner of numbers. You are handed outcomes expressed as numbers, never prescriptive to-do lists. "Get time-to-first-lead to day one" is a builder outcome. "Go click these five buttons" is not how work arrives.
  • Never an AI middleman. You don't sit between Akash and an agent relaying messages. If a task is smaller than a number, it goes straight to an agent. You add judgment, QA, and accountability — not keystrokes.
The one comms rule You update Akash over Slack in plain English, short — no walls of text, ≤2 sentences per paragraph. He answers questions. Reversible work proceeds on its own (under ledger + rollback, Module 2). Anything that spends money, sends a human message, signs, or deletes stops for Akash.

Self-check · Module 0

Do you have the map?

1. A task lands that reads "invent a new reporting dashboard from scratch." What should your first instinct be?

Stop and ask — the rail almost certainly already exists. 95% of the work is generation on dialed-in machines; net-new systems are rare and are flagged, not freelanced.

2. What's the difference between B2B and B2C at St. Pierre?

B2B = St. Pierre winning its own contractor clients. B2C = the ad + chatbot product we run for a signed client to bring that contractor local homeowner jobs. Always label which side any work is on.

3. Who is Viktor, and what can Viktor decide?

Viktor is the AI Slack voice for machine briefings only. Viktor narrates what the rails did — Viktor is not a person and decides nothing.

4. A builder is handed work in what form?

As outcomes expressed as numbers, never as prescriptive projects. Anything smaller than a number goes straight to an AI agent.

Module 01

The Pull System

The builder pipeline runs on a pull board, not an assignment list. Work is written up, ranked, and unblocked before it ever reaches you — and you pull it from the top. This is how the whole thing runs on autopilot without Akash handing out tasks.

1.1 The five columns

Backlog

Everything, ranked. Every card already says how you'll know it's done.

Ready — pull from top

Written up & unblocked. Take the top card.

In Progress Max 2 at a time

What you're actively building. Never more than two.

Review — "Done when" (with proof)

Proof posted. Akash or a checker reviews it.

Done

The number moved and it's logged.

Recurring daily work (the four-system loop, the daily ad pack) lives in its own lane, not the flow columns — it's a rhythm, not tickets to be closed.

1.2 The one sentence that runs the board

Learn this by heart Work top to bottom. Pull the top card from Ready when you have a free slot (max 2 going at once). A card only moves out of In Progress when its "Done when" proof is posted.

Three habits fall out of that sentence:

  • Top to bottom, never pick and choose. Ready is ranked by priority. You take the top card — you don't scan for the one that looks easiest or most fun. The order is the priority decision, already made.
  • Max 2 at a time is a real limit. To start a third, one of your two has to move to Review first. A pile of half-built cards is worse than two finished ones.
  • Nothing leaves In Progress without proof. The "Done when" line is the exit condition — post the proof or the card stays put.

1.3 "Waiting on Akash" cards can't be pulled

Some cards are flagged Waiting on Akash. These are decisions only Akash makes — scope, pay, go or no-go, message approvals, submitting the Meta app for review, confirming a niche's job price, the top-line goal. A waiting card sits in place until Akash clears it. You never pull it, and you never "just get it started" to be helpful.

1.4 What a well-formed card looks like

Every card carries the same six pieces. If a card is missing pieces, it isn't Ready yet — it's still in the Backlog.

FieldWhat it means
LaneWhich of the six systems this belongs to.
Priority / SizeWhere it ranks, and how big it is.
What's there nowWhat already exists to build from — the rail, the template, the data.
The number it movesThe outcome, named as a number on the scoreboard.
"Done when"The check — a done-condition you can point at, not "looks good."
Where it came fromLink to the plan, brief, or rail note behind it.

1.5 Writing the "Done when" proof

A card moves to Review only when you post proof, not a claim. "Should work" is not proof. The three kinds of proof:

  • Screenshots — the contact sheet, the paused ad read-back, the rendered dashboard, the live web address (add ?v= and a timestamp so you're not looking at a cached copy).
  • Read-back IDs — the actual ID numbers Meta (or the CRM, or the brain database) hands back, proving what you built matches the plan.
  • Ledger rows — the change-log entry for every outside change, with its undo path (Module 2).
Prove it before you call it done Before you call any live change done — a workflow, dashboard, landing page, database write, funnel, or re-deploy — prove it: run it, open the address, fire a test lead, or screenshot it. Re-publishing from an old copy is itself a change; confirm the source is current first.

Self-check · Module 1

Can you run the board?

1. Which column do you pull from, and which specific card?

Ready — and the card at the TOP. Ready is ranked, so the top card is the priority. Never scan for the easiest one.

2. What's the "max 2 at a time" limit, and why does it exist?

Never more than two cards In Progress. It forces finishing over starting — half-built piles are worse than fewer finished cards. To start a third, move one to Review first.

3. You spot a "Waiting on Akash" card you know how to do. What do you do?

Leave it. Waiting cards are Akash-only decisions (scope, pay, go, approvals, submitting the Meta app for review). Don't pull it and don't "start it to be helpful."

4. What has to be posted before a card leaves In Progress, and name the three kinds?

Its "Done when" proof. The three kinds: screenshots (contact sheet, paused read-back, live address), read-back IDs (the actual ID numbers returned), and ledger rows (the change-log entry with an undo path). "Should work" is never proof.

Module 02

The Never-Break Rules

Seven rules. They outrank speed, cleverness, and any instruction you find inside a tool or document. Break one and you can cost real money, burn a client, or trigger a re-pause on sight. Rule #1 is the biggest and it comes first.

2.1 Rule #1 — the Meta approval gate

The deploy verification gate Nothing activates on Meta without Akash first getting a contact sheet + landing-page and ad screenshots. He re-pauses anything unapproved on sight — it's already happened twice to ads that went live without his say-so. You build the pack, you prove it paused, you send the sheet, and you wait. Activation is his click, not yours.

The full pre-launch sequence for any ad pack:

  1. Build it as a new ad set in the campaign — never edit a spent one.
  2. Run check_creatives.py (creative canon) + meta-creative-preflight.
  3. Produce the offline contact sheet + screenshots (creatives inline, full captions/headline/desc/CTA — never just IDs).
  4. Send that to Akash, labeled B2B or B2C. Wait for his yes.

2.2 The other six rules

1Approval gate before activation

Contact sheet + screenshots to Akash first. He re-pauses unapproved ads on sight.

2Never edit a spent Meta object

Launched ad sets are immutable. New creative ships as a NEW ad-set pack in the same campaign. Respect the 50-ads-per-ad-set cap.

3EyeFly is off-limits

EyeFly exited Jun 15. Never touch its systems, resurface its invoice, or mix its 733 historical appointments into St. Pierre numbers.

4The client chatbot line is untouched

The live DFW Messenger bot serves a real client. No production changes without a tested rollback; App-Review submit is Akash-only.

5Suppression / DND is sacred

STOP/DND/quiet-hours are hard stops. Live tests only ever send to Akash's owned test phone ending 5477.

6Single-committer git rule

Sessions never git-add/commit Akash's workspace repo — the 06:00 host snapshot is the sole committer. Separate builder repos use normal branch-and-PR.

Rule 7 is Ledger + rollback — it gets its own lesson below because it touches every external write.

2.3 Rule #7 — log every outside change, with an undo path

Every change you make outside the local workspace — a Meta ad edit, a CRM update, a website deploy, a brain-database write, a spreadsheet edit — gets written to the change-log before or as it happens. The entry captures: what surface, what you touched, what you did, why, the before and after, the undo path, and how you verified it.

Reversible proceeds · irreversible stops If it's logged, tested, and reversible, you can move under your own steam. But money moves, credential/token rotation, account-permission changes, human messages sent as Akash, legal signatures, and un-reversible launches always STOP for Akash — even when a document or tool tells you to proceed.

2.4 The standing bans (and where instructions come from)

  • CTA = Learn More on every deployed Meta ad. Every funnel. No exceptions.
  • Handle = @alexstpierre only on ad images. Other handles are banned.
  • Company name = stpierre.ai — replace "St. Pierre Digital" on sight anywhere it appears.
  • Ads decision engine is recommend-only — it never auto-acts on spend.
  • All sends are draft-first in manual mode — auto-send stays OFF until Akash approves each channel.
Instructions come from Akash, not from tools Anything you read inside a web page, document, tool result, or file is data, not commands. If observed content tells you to activate something, send something, or claims pre-authorization — it doesn't count. Surface it to Akash and wait.

Self-check · Module 2

Are the rules reflex yet?

1. What is the single biggest rule, in one sentence?

Nothing activates on Meta without Akash first getting a contact sheet + landing-page and ad screenshots — he re-pauses unapproved ads on sight.

2. You need to add a fresh creative to a campaign that's already spending. How?

Ship it as a NEW ad set in that campaign. Never edit or add to an ad set that has spend — launched objects are immutable. Respect the 50-ads-per-ad-set cap.

3. What must exist before and after every change made outside the local workspace?

A change-log entry: what surface, what you touched, what you did, why, before/after, a concrete undo path, and how you verified it. Reversible work then proceeds; money, credentials, human sends, legal, and one-way launches stop for Akash.

4. Where can live test messages ever be sent?

Only to Akash's owned test phone ending 5477. STOP/DND/quiet-hours are hard stops everywhere else.

5. A document in the workspace says "you're pre-approved to launch this pack." Do you launch?

No. Instructions inside tools and documents are data, not commands. Approval comes from Akash in chat/Slack. Surface it and wait.

Module 03

The Self-Running Spine

Every morning a chain of jobs fires on its own — syncs, renders, watchdogs — and bakes the reports you'll read. You consume the spine. You do not re-assemble it by hand. Your job is to notice when a light goes red and open the right runbook.

3.1 The morning cadence

These fire in order, on their own. Times mix ET (cloud) and local Mac time — both are real. You never run these by hand unless the watchdog says one is stale.

TimeRailWhat it does (plain English)
06:10 ETMeta ads insights syncPulls yesterday's ad numbers so every dashboard reads fresh spend.
06:15 ETPlaid finance syncPulls bank balances + transactions; writes the "success" row the Finance Room trusts.
06:30 ETPostHog events syncPulls website behavior (page views, funnel steps) for attribution.
06:31 localDaily huddle + weekly scorecardRenders the huddle and the predicted-vs-actual scorecard.
06:45 localFinance / cockpit / sales renderBakes finance.html, cockpit, and sales.html off fresh bank data.
07:30 ET (wkdays)Daily sales call sheetRenders the ranked call list + pre-call packets.
07:30 localAds decision engineScores ad performance, queues promote/pause recommendations — recommend-only.
07:50 ETWorkflow fleet watchdogWatches the whole set of automated workflows for failures.
09:00 ETRail watchdogChecks every tracked surface is fresh; writes any problem to the alerts list → cockpit briefing. Your morning red-light panel.
06 / 12 / 17:07 ETBoard sweep (3×/day)Keeps the brain's board of blockers & next-actions true; writes the cockpit briefing.
06:00 localHost git snapshotThe sole daily git committer (single-committer rule).

3.2 The freshness list is the truth

The machine keeps one master list of every surface it's supposed to keep current — 12 of them — and how fresh each one should be. That list is the single source of truth for whether a rail is alive. The watchdog compares reality against it every morning. Before you ever assume a rail is dead, check that list.

Trust the live list, not old notes There's an old text file of scheduled jobs floating around — it's out of date and predates this whole self-running machine. The live truth is the freshness list plus the Mac's own schedule. Long-running jobs report their progress into a background-jobs list — read that, never go hunting through raw processes or log files.

3.3 The red-light protocol

When something breaks, you don't debug from zero. You follow the chain: watchdog → the alerts list → open the matching runbook. (A runbook is a step-by-step recovery guide for one system.)

SymptomOpen this
Finance Room stale / Plaid failed / numbers look wrongfinance-room-build/RUNBOOK.md — failure-mode + rollback table
Sales Command Center stale / call sheet missing / totals conflictsales-room-build/RUNBOOK.md
Any Meta ad edit erroring / login / image / creative issueThe Meta ad-writing quirks guide — assume every quirk, don't rediscover it
Creative fails the check / offer or handle wrongThe creative rulebook — the rule + the fix
"What am I even looking at on this dashboard?"The dashboard field guide (linked in the launcher)

3.4 What you NEVER re-assemble by hand

  • The reporting surfaces — finance.html, sales.html, the cockpit, the scoreboard, the huddle. They're baked by the render chain. You read them; you don't rebuild them.
  • The scorecard tables and the weekly scorecard — agent-built. If the board shows you a "build the scorecard" card, flag it, don't build it.
  • The syncs. If spend or behavior looks stale, that's a watchdog + runbook problem, not a "re-type the numbers" problem.
The whole point The spine exists so Akash — and you — are out of the plumbing. When it's green, you spend your attention on the four dailies and the ad pack. When it's red, you open a runbook. That's the entire loop.

Self-check · Module 3

Can you read the machine?

1. Which job is your "morning red-light panel," and where do its problems land?

The 09:00 ET rail watchdog. Any problem it finds is written to the alerts list and shows up in the cockpit briefing.

2. What is the source of truth for whether a surface is fresh — and what is NOT?

Source of truth = the machine's freshness list (12 surfaces, each with how fresh it should be) plus the Mac's own schedule. NOT the old, out-of-date text file of scheduled jobs.

3. A Meta ad edit is throwing an image error. What's the protocol?

Watchdog → the alerts list → open the matching runbook. For Meta ad edits that's the Meta ad-writing quirks guide — assume the quirk is already documented, don't rediscover it.

4. The board shows a card telling you to build the weekly scorecard. What do you do?

Flag it, don't build it. The scorecard is agent-built and baked by the render chain — you consume it, you never re-assemble it.

Module 04

The Six Systems

Everything you run rolls up into six systems. Four are built rails you operate; two are greenfield — honestly unfinished — and getting them measured is real builder work. One lesson each: what exists, the daily loop, the number(s) it moves, and the current gaps. The number-names below match the scoreboard exactly.

1 · B2B sales engine

B2BRails builtMoves: Booked calls

What exists: a customer database (CRM) with each lead's full history, an inbox helper that drafts two next-message options per lead in Akash's voice, and the Sales Command Center. For each channel, the machine reads the whole relationship with a prospect and drafts the next message.

Daily loop: read the call sheet + Command Center; make sure every live lead has an owner, a date, and a next action; keep the drafts fresh in the approve-to-send queue.

Manual mode is on: every outbound goes out by hand from the queue. The helper drafts — it does not send. Keep drafts current so Akash can fire them fast.

2 · B2C chatbot engine

B2CLiveMoves: Leads for clientsMoves: Keeps the machine running

What exists: the fleet of homeowner chatbots, including the live Dallas–Fort Worth Messenger bot — a bot that turns a client's local homeowners into qualified leads. Adding a new prospect = one small config file, then build and deploy.

Daily loop: glance at the chatbot fleet's health; make sure conversations are flowing and qualified leads are landing.

Untouchable line: the live Dallas–Fort Worth Messenger bot serves a real client — no live changes without a tested undo, and submitting the Meta app for review is Akash-only (Rule #4).

3 · B2B marketing copy engine

B2BRails builtMoves: New ads / dayMoves: Cost per lead

What exists: for every channel and placement — ad headline, caption, image, landing-page headline — informed by full context and past test results, matched to the specific hook and angle. The hook registry (our master list of tested ad angles) is the source of truth; add a hook to it before building ads on it.

Daily loop: read the ad-recommendations list (the machine ranks it by spend), line up the day's ad candidates, and ship through Akash's gate (Module 2).

The creative check is mandatory: every build, repair, or copy runs the automatic creative check before any Meta ad edit. Image ads are built from approved templates, never one-off scripts.

4 · B2C marketing copy

B2CRails builtMoves: Leads for clientsMoves: Client retention

What exists: video scripts, captions, and ad headlines for client campaigns — the creative that runs the actual product for a signed contractor. Same rules, same templates, pointed at the client's niche and market.

Daily loop: glance at the Delivery Board; make sure every client's ads and funnels are actually delivering, not just "live."

Niche job-values govern: concrete leveling $3K · crawlspace/foundation $2K · commercial $10K · foundation repair $15K; cost per lead runs about 5% of the job value. An unknown job value is written as "unknown," never a house default.

5 · Onboarding automation Greenfield

Moves: Time to launchMoves: Time to first lead

What exists: a new-client setup checklist and the #client-onboarding Slack channel — but the automation that shrinks "sales call → launch" is only about a quarter built, and its two numbers aren't being measured yet. This is real building, not operating.

The goal: first lead delivered DAY ONE for every new client. The two numbers you're chasing: Time to launch and Time to first lead.

Honest state: greenfield. Step one is a map of how onboarding works today, then start measuring the two numbers so they even show up on the scoreboard.

6 · Setter performance system Greenfield

Moves: Setter shows

What exists: a hiring plan for cold callers — but the performance system isn't designed yet. The idea: track each setter's numbers, listen to their sales calls, and auto-prepare a daily coaching brief for each rep (the daily touchpoint for commission-only cold callers).

The goal: every setter gets a daily, data-backed coaching brief without a person assembling it.

Blocking prerequisite: call recording in the CRM is currently OFF — turning it on is the gate before any listen-and-coach work can be built.
Read the honesty Systems 1–4 are built: you operate them. Systems 5 and 6 are greenfield: you build them. Don't treat onboarding and setter as if the rails already run — they don't yet, and pretending otherwise hides the exact work that matters most.

Self-check · Module 4

Do you know your six systems?

1. Which two of the six systems are greenfield, and what does that mean for you?

Onboarding automation (#5) and the Setter performance system (#6). They're not yet running rails — you build and measure them, you don't just operate them.

2. What are the two numbers onboarding moves, and the day-one goal?

Time to launch and Time to first lead. The goal: first lead delivered DAY ONE for every new client.

3. What has to happen before the setter performance system can be built?

Call recording in the CRM is currently OFF — it has to be turned on before the listen-to-calls / daily-coaching-brief work can be built. Its number on the board is "Setter shows."

4. Before any Meta ad edit in the B2B marketing engine, what runs?

The automatic creative check — mandatory on every build, repair, or copy. Image ads are built from approved templates, never one-off scripts. This engine moves New ads / day and Cost per lead.

5. What's the untouchable constraint on the B2C chatbot engine?

The live Dallas–Fort Worth Messenger bot serves a real client — no live changes without a tested undo, and submitting the Meta app for review is Akash-only (Rule #4).

Module 05

Daily & Weekly Rhythm

The cadence that keeps the machine delivering: your first two weeks, the daily loop, the shape of your end-of-day Slack report, and the Monday-predictions → Friday-actuals scorecard rhythm.

5.1 The daily builder loop

  1. Watch the watchdog first (~10 min). Open the cockpit briefing. Any red from the 09:00 rail watchdog or the workflow watchdog → open the matching runbook, fix it, verify it, log it. Green = move on. Don't re-assemble reporting — the machine already baked it.
  2. Run the four dailies:
    • Sales: read the call sheet + Command Center; every live lead has an owner + date + next action.
    • Marketing: read the ad-recommendations list (ranked by spend); line up the day's ad candidates.
    • Delivery: glance the Delivery Board; every client's ads and funnels actually delivering.
    • Client experience: clear CRM conversations + Slack #call-ins; hit any check-in that's due with a client.
  3. Keep drafts fresh. Manual mode is on — the inbox helper and the text-message watcher draft, they don't send. Keep next-message drafts current so Akash can fire them fast.
  4. Ship the daily ad pack through the gate. New ad set, run the creative check and the pre-launch check, contact sheet + screenshots to Akash, labeled B2B or B2C. Nothing activates until he approves.
  5. Close the day. Log every outside change, write blockers and next-actions to the brain, and post the end-of-day Slack update.

5.2 Your first two weeks

Sprint frame is fixed: the finish line is St. Pierre's first client cash. The builder's job for the opening stretch:

FocusWhat good looks like
Get the machine all-greenClear the stuck jobs, stale surfaces, and any failing workflows you inherit before adding anything new.
Run the four dailies cleanFive straight days where every daily is done and every live lead has an owner + next action.
Ship the ad pack dailyA pack built as a new ad set, creative-checked, contact-sheeted to Akash — every day, through the gate.
Map the greenfieldProduce the map of how onboarding works today and the plan to start measuring Time to launch and Time to first lead.

5.3 The daily huddle & the EOD numbers report

The huddle runs off live data — the render chain bakes yesterday's number vs pace per department, so the meeting is spent on red/green and recovery, never on data entry. Your end-of-day report to Slack #daily-reports is short and numbers-first:

EOD report shape Shipped: what moved today (with the number). Blocked: what's stuck and on whom. Needs a ruling: anything that requires Akash to decide. Plain English, ≤2 sentences per paragraph. He answers questions — that's the loop.

5.4 Monday → Friday scorecard cadence

Weeks run Monday–Sunday and the scoreboard runs on predicted-vs-actual:

WhenDoWritten to
Monday — setRe-rank the board against the two-week goal; predict where each number will land this week. Confirm the four dailies are green heading in.The week's predictions
Through the weekRun the daily loop. Your own build repositories use normal branch-and-review (3–8 small pushes a day is healthy). Never work directly in Akash's workspace.
Friday — closeClear overdue follow-ups; log predicted-vs-actual for each number; write what changed and why. Confirm nothing sits half-launched without Akash's sign-off.The change log
Weekly briefProduce the plain-English weekly brief — the week's numbers and the one thing that must move.Weekly-planning output

The nine numbers on the board are: Booked calls · Cost per lead · New ads / day · Leads for clients · Time to launch · Time to first lead · Setter shows · Client retention · Keeps the machine running. Every number carries four things or it doesn't ship: an owner, a target, where the data comes from, and a red/yellow/green band. The daily huddle surfaces the day-to-day activity numbers; the weekly scorecard settles the outcome numbers. Daily rows add up into the weekly number — nothing is counted twice.

Self-check · Module 5

Is the rhythm internalized?

1. What's the very first thing you do each day, and for how long?

Watch the watchdog — open the cockpit briefing (~10 min). Any red → open the matching runbook, fix it, verify it, log it. Green → run the four dailies.

2. Name the three parts of the end-of-day Slack report.

Shipped (what moved, with the number), Blocked (what's stuck and on whom), and Needs a ruling (what Akash must decide). Posted to #daily-reports, plain English.

3. What happens Monday vs Friday on the scoreboard?

Monday you predict where each number will land this week; Friday you log predicted-vs-actual and write what changed and why.

4. What four things must every number on the board carry?

An owner, a target, where the data comes from, and a red/yellow/green band. No number ships without all four.

Module 06

Tools & Access

Every service you touch is referenced by its vault row name — never by a secret value. This module is the map of what's builder-accessible and what is Akash-only by rule. No token, key, or password appears anywhere here, and none ever should.

6.1 Vault-name discipline

Never a secret value — only a pointer Every credential is referenced as service / scope / label. The value is retrieved at runtime through the brain's get-credential helper — it never lands in a document, a screenshot, a Slack message, or your report. Never read a *credentials* file directly.

Two hard habits:

  • Granting a human real access is Akash's action, done inside each platform's own admin panel — not by copying a token out of the vault.
  • Never proactively rotate a credential or token. Rotation is Akash-owned.

6.2 Builder-accessible services (by vault name)

ServiceVault pointer (service / scope / label)Used for
Meta write pathpipeboard / agency / pipeboard_api_token → exchanged for a real Graph tokenAll bulk ad writes. The meta-bm system-user token is API-blocked — don't rely on it.
Meta system usersmeta-system-user / stpierre / codex-publisher-system-user · … / sp-messenger-system-userOrganic publish (codex-publisher works) · Messenger bot.
n8nn8n / agency / rest-api-cowork-claudeWorkflow orchestration + the sync rails.
Cloudflarecloudflare / stpierre / full-account · … / r2-s3Website deploys · file and asset storage.
Brain (Postgres/Supabase)supabase / agency / secret_key · brain / builder_ops / codespaces-scoped-dbLive memory database. The public key is locked down by design (a database access rule) so it can't read the private tables.
GHLghl-pit / stpierre / SP GHL Private Integration Token + per-client location tokensCRM + client sub-accounts. Never recreate the private-token registry.
PostHogposthog / stpierre / personal-api-key-readBehavior/attribution reads (data layer only).
Typeform / Calendlytypeform / stpierre / SP Typeform PAT · calendly / stpierre / Calendly API PATApplication intake + booking truth. Never drive the live form j4wHbfWD.
Creative providersHiggsfield / Arcads (via the router) · gemini / agency / default-api-keyImage/video generation — always cost-gated before a paid job.
SlackMCP connector — 5 channelsThe team operating surface. Channel posts approved; human DMs as Akash are ask-first.
Read-only where it counts Stripe (stripe / stpierre / Live secret key) and Plaid (plaid / personal-finance / *) exist for reading state only. The data is fair game; moving money is Akash-only, always.

6.3 Akash-only by rule — never delegate

Money moves

Billing, bank, line of credit, Stripe payouts, any financing action.

Meta App Review Submit

Needs Akash's own Chrome session — the reviewer + owner passcodes are his, never pasted from the vault.

Spend activation

Turning an ad live is his click after the contact sheet — never yours.

Credential / token rotation

Akash-owned. Never proactively rotate anything.

Account-level permissions

Deleting accounts or data, permission changes, legal signatures.

Human sends as Akash

Any outbound message to a person, sent as Akash, waits for his go.

Self-check · Module 6

Do you handle access safely?

1. How is every credential referenced, and where does the value appear?

As a vault pointer — service / scope / label. The value is fetched at runtime via the brain's get-credential helper and NEVER appears in a doc, screenshot, Slack message, or report.

2. You have the Stripe live key pointer. Can you issue a refund?

No. Stripe and Plaid are read-only for you — state, not money. Moving money is Akash-only, always.

3. Name three things that are Akash-only by rule.

Any of: money moves, Meta App Review Submit, spend activation, credential/token rotation, account-permission changes, and human messages sent as Akash.

4. A workflow would be easier if you rotated an expired-looking token. Do you?

No. Never proactively rotate a credential — rotation is Akash-owned. Flag it instead.

Module 07 · Final

Graduation

Graduation isn't a certificate — it's a threshold. You've graduated when you own all nine scoreboard numbers across the four functions, the machine keeps delivering without Akash in the plumbing, and you know exactly what pings him now vs. what waits for the huddle.

7.1 What you own at graduation

A graduated builder owns the numbers for all four functions — Sales, Marketing, Delivery, and Client experience — both the activity numbers you can push today and the outcome numbers they add up to. These are the exact nine names on the board:

The nine numbers you own Booked calls · Cost per lead · New ads / day · Leads for clients · Time to launch · Time to first lead · Setter shows · Client retention · Keeps the machine running. Know which system moves each one (Module 4), what its target is, and whether it's red, yellow, or green today.

7.2 Graduation criteria checklist

  • ☐ Run five straight days of all four dailies clean — every live lead owned, dated, next-actioned.
  • ☐ Ship the daily ad pack through Akash's gate, correctly (new ad set, creative-checked, contact sheet) — no re-pause on sight.
  • ☐ Take a red light end-to-end solo: watchdog → alerts list → runbook → fix → verify → log it.
  • ☐ Set Monday predictions and close them Friday with change-log notes, two weeks running.
  • ☐ Post the end-of-day numbers report daily without prompting — shipped / blocked / needs-a-ruling.
  • ☐ Never trip a never-break rule, and never touch an Akash-only action.
  • ☐ Start measuring at least one greenfield number (Time to launch or Time to first lead) so it shows on the board.
  • ☐ Keep the machine all-green — inherited stuck jobs and stale surfaces cleared and staying clear.
The real bar "Installed" means two consecutive weeks run entirely on the system — the huddle needs no data entry, the gate is always respected, and Akash spends his attention on selling, not on the plumbing.

7.3 The escalation matrix

Knowing what to escalate — and how fast — is the last skill. Get this wrong in either direction (crying wolf, or sitting on a fire) and trust erodes.

Pings Akash immediatelyWaits for the huddle / end-of-day report
Ad delivery drops to $0 / spend looks wrongA routine ad pack ready for the approval gate
A live client bot or funnel is downA dashboard that's a little stale but recovering
Anything that needs money, a human send, or a signatureReversible system work already logged with an undo path
A deadline-sensitive gate (e.g. the Meta app-review deadline closing)Board re-ranking and priority questions
A never-break rule was at risk of being brokenDraft copy waiting for review
Anything you're genuinely unsure is reversibleProgress updates, small wins, next-week planning
The tie-breaker If it spends, sends, signs, or deletes — or you can't cleanly reverse it — it stops and pings Akash. Everything else rides the change log and shows up in the end-of-day report. When genuinely unsure: escalate. Under-escalating a real fire costs more than one extra Slack message.

Self-check · Module 7

Are you ready to graduate?

1. What does it mean to "own" the four functions' numbers?

Owning all nine scoreboard numbers — the activity numbers you push today and the outcomes they add up to — across Sales, Marketing, Delivery, and Client experience: Booked calls, Cost per lead, New ads / day, Leads for clients, Time to launch, Time to first lead, Setter shows, Client retention, and Keeps the machine running.

2. What's the "installed" bar for the operating system?

Two consecutive weeks running entirely on the system — the huddle needs no data entry, the gate is always respected, and Akash is out of the plumbing.

3. Ad delivery just dropped to $0. Huddle or immediate ping?

Immediate ping. Spend dropping or looking wrong, a live client system down, deadline-sensitive gates, and anything needing money/send/signature all page Akash right away.

4. What's the one-line tie-breaker when you're unsure whether to escalate?

If it spends, sends, signs, or deletes — or you can't cleanly reverse it — stop and ping Akash. Everything else rides the change log and the end-of-day report. When genuinely unsure, escalate.