Imperium SOP

From discovery call to demo desk

What happens after a call ends, frame by frame, and what each step pulls from.

2 minbefore the call, read their website
3.5 minmachine time after the call
20 minAlex checks the desk
48 hto the demo call
Live todayworks now Needs a stepone thing to switch on Comingbeing built

What a desk is built from

What a demo desk is built fromThree discs on the left feed one factory disc in the centre: the call, the prospect company site, and the industry pack, which is highlighted. Three discs on the right come out of the factory: the demo desk, the ARX seat, and a follow-up email draft. THE CALLtranscript or Granola noteTHEIR WEBSITEcolours, logo, photosINDUSTRY PACKpages, charts, sample dataDEMO FACTORYruns on Alex’s MacDEMO DESKtheir dashboard, SAMPLE dataARX SEATtheir name and iconFOLLOW-UPa draft, Alex sends it
What a demo desk is built fromThree discs on the left feed one factory disc in the centre: the call, the prospect company site, and the industry pack, which is highlighted. Three discs on the right come out of the factory: the demo desk, the ARX seat, and a follow-up email draft. THE CALLtranscript or Granola noteTHEIR WEBSITEcolours, logo, photosINDUSTRY PACKpages, charts, sample dataDEMO FACTORYruns on Alex’s MacDEMO DESKtheir dashboard, SAMPLE dataARX SEATtheir name and iconFOLLOW-UPa draft, Alex sends it
Three inputs go into the demo factory on Alex’s Mac. Three things come out. The industry pack is the base every desk starts from.
Built from

packs/staffing: pages, charts and sample data, cut from a past client desk. Plus scorecard.json from the call and brand.json from their website.

Not built from

imperium-dashboard-os, the client dashboard template. It is never used for demos.

Frame by frame

01

Before the call

Live todayabout 2 min
Northgate.
#274C5B#E8A33D

A one-page brief where every claim links to a page on their site, plus their colours, logo and photos.

Pullstheir websiteprecall.pybrief.htmlbrand.json
02

On the call

Live todaythe call
10:06:40Month end timesheets take three of us the best part of two days, and half of them are photos off a phone.
10:09:28The tracker and Bullhorn never agree, so nobody trusts either of them.
10:10:54It’s not tens. Beyond that I’d be making it up.
Live todaylive-transcript records the call Needs a stepGranola note, second source ComingARX recorder
The scorecard form open during the call
Pullscalendar calllive-transcriptlive/transcript.md+scorecard form
03

Call ends: one command

Live todayby hand
$ python3 tools/demo-factory/postcall/postcall.py northgate --build
Transcript: the live transcript from tools/live-transcript
Read the call into .../northgate/extracted.json in 119.5 s

4 questions waiting, worst first: volumes.open_roles, decision_maker, headcount, pains
  .../northgate/clarify.md
  form with the scorecard loaded: .../northgate/clarify-url.txt
Needs a stepHands-free: --watch --settle-minutes 5 --build --notify waits for 5 quiet minutes, then runs. The launch agent is not installed yet.
Pullslive/transcript.mdpostcall.py
04

Reads the call, scores every field

Live todayone model call
company1.00never_on_screen0.95pack0.95currency0.95industry0.90current_tools0.90scenes0.90sites0.85clients0.85active_workers0.80attendees0.75budget0.75authority0.75timeline0.70painsasked0.55teams0.55next_call0.35headcountasked0.30decision_makerasked0.30open_rolesasked0.15website0.10
0.70 or more: filled inbelow: asked or left at defaultthe 0.70 line
Pullstranscript.mdclaude -pextracted.jsona value, a score and a quote per field
05

Asks Alex what it is unsure of

Live today119.5 s for 03 to 05
1How many open roles?0.15“It’s not tens. Beyond that I’d be making it up.”If skipped: no default, must answer
2Who signs it off?0.30“I’d want our chairman to have seen it… Owen has a veto in practice.”If skipped: Sarah Lin
3How many people, by team?0.30“We’ve got fourteen recruiters. Then Owen’s side… that’s six, and two in finance.”If skipped: no default, must answer
4Top three pains, worst first?0.55“The timesheets hurt more often. The compliance hurts more if it ever happens. I don’t know.”If skipped: the order she raised them
Writesclarify.mdat most 5 questions, each with the quote and a default+clarify-url.txtthe same, as a filled-in form
06

Alex answers

Live todaya few minutes
"headcount": 26, "teams": ["Recruiters 14", "Operations and compliance 6", "Finance 2"], "volumes": { open_roles: 220, active_workers: 410, sites: 3, clients: 38 }, "decision_maker": "Sarah Lin", "pains": ["month end timesheets", "tracker vs Bullhorn", "slow CVs on urgent crews"]
$ postcall.py northgate --answers answers.json --build
Pullsanswers.json+extracted.jsonscorecard.json
07

Builds the desk

Live today82.6 s from answers to READY
packs/staffingpages, charts, sample data
scorecard.jsontheir pains, teams, numbers
brand.jsontheir colours and logo
assemble.py
northgate-os/
  dashboards/index.html
  START-HERE.md
  SOPS/
  READY.txt
RuleNever hand-edit a desk. Fix the pack or the generator and rebuild.
08

Checks itself

Gates liveJudges optionalgates 83.5 s, judges 8 to 9.5 min

15 gates, all passed

123456789101112131415
1 to 7: build checks8 to 15: visual checks at desktop and phone width

3 judges, median score out of 10

M1 Brand fidelity9.0M2 Visual polish9.0M3 Fits the call8.0M4 Data credibility7.0M5 Demo story9.0M6 Copy9.0M7 Completeness9.0
9.5 target9.0 where our own best desks land

Not at 9.5 yet. Weakest is data credibility: the sample figures are a fixed set, not sized to the call.

Pullsdesk screenshots+qa/RUBRIC.mdgates.py, judge.pyqa/scores.json
09

Alex’s 20-minute check

Live todaysame day
READY.txt1 minToday page3 minEvery page, nav order8 minPhone width2 minNever-say list2 minSTART-HERE.md, first prompt4 min
Opensdashboards/index.html+START-HERE.md
10

The demo desk

Live todaytheir dashboard
The demo desk home page at desktop width, marked SAMPLE The same page at phone width
Showstheir name, colours and pains, with SAMPLE figures on every page
11

Seat warm-up

Live today30 min before the demo, ready in 13.3 s
The ARX seat open on the home screen, greeting Sarah
Pullsnorthgate-os/+brand.jsonseatkit.py, launch.shARX seatgreeting, icon, Ask Before Edits on
12

The demo call

Live todaywithin 48 h

Each scene from START-HERE.md, seconds to answer

Month-end run70 sTracker vs Bullhorn36 sWho is free in November140 sThis morning’s urgent job153 sMobilise a crew46 sBack to the dashboards94 s

Share the seat window only. Talk over the long ones. Outbound email is blocked inside the demo.

PullsSTART-HERE.mdARX seat
13

Follow-up draft

Draft only48 s
ToSarah Lin, Managing Director
SubjectNorthgate demo desk: month end, the tracker and urgent crews

Hi Sarah,

Thanks to you and Owen for your time yesterday, and for being so open about where the month actually goes.

Three things stuck with me…

Never sent by the factory. Alex reads it, edits it and sends it himself. No pricing, one next step.

Pullsscorecard.json+call notesfollowup.pyfollowup.md

Today and next

PieceTodayNext
Call recordingLive today
live-transcript records calendar calls with an outside guest
Coming
The ARX recorder
GranolaNeeds a step
Second source for the transcript
Sign in to the Granola connector in claude.ai settings
After-call startLive today
One command by hand, or --watch
Install the launch agent so it starts on its own
Sample figuresNeeds a step
A fixed set from the pack
Sized to each call’s scorecard
Who can run itNeeds a step
Alex’s Mac, branch demo-factory/v0
Merge it so the team can run it
QualityNeeds a step
Judges score 7 to 9
9.5 on every score

Internal SOP. Northgate Recruitment, Sarah Lin and Owen are a made-up test prospect. Times measured on 29 October 2026.