Evolving the system
The repo ships tuned for a mid-market B2B SaaS shape: pipeline-denominated economics, named segments in the thousands of contacts, quarterly budgets with a reserve. Your business is probably not exactly that. Almost everything is adjustable, through four specific levers. A short list of controls is not — they are what makes the output trustworthy.
Remove any of these and the memos stop being evidence. What is left is ordinary AI-generated text in a folder structure — confident, unaccountable, and useless at audit time.
campaign-protocol.md stays canonical — extend it, never bypass it[NEEDS SOURCE: …]budget-rules.md and nowhere else; charters repeat them with a "budget-rules.md wins" noteWork top-down. Most businesses are fully served by levers 1 and 2; reach for 3 and 4 only when the defaults describe a world you don't operate in. After any change: re-run personalize the marketing office (it regenerates every synced copy), then run the smoke test.
config/The KPI unit, segment names, channel list, funnel stages, benchmarks. This is not "adapting" so much as filling in the truth: if your KPI is booked demos, the whole system denominates in booked demos with zero edits — the hurdle, the stops, the tranche gates all read "cost per primary-KPI unit". Most perceived misfits dissolve here.
The "Rails overrides" table in config/budget-and-channels.md rewrites any default in
budget-rules.md at personalize time, retagged with the date it was set. Caps, the hurdle ratio,
the reserve floor, tranche shape, WAIT validity — all fair game. Overridden values stay visibly distinct from
defaults, so an auditor can see what you tuned and when.
agents/ and the protocol filesCharters are markdown: rewrite a Method step, tighten a Forbidden behavior, re-aim a chair's scope, update
the worked micro-example to your world. Edit the numbered files in agents/ — never the synced
copies under skills/ or .claude/. Keep the eight-section charter format; the
orchestrator depends on it. If a charter and a protocol file disagree, the protocol wins — so structural
rules change in campaign-protocol.md itself, deliberately.
Adding, merging, or retiring a chair touches six places; do all six or the system desyncs:
① the charter in agents/ (keep the format) · ② a skill wrapper in
skills/<name>/SKILL.md · ③ a row in the isolation matrix in
campaign-protocol.md, stating exactly what it may and may never see · ④ its slot in the run
sequence (same file) · ⑤ a slice row in prompts/personalize.md's table so personalization knows
which config feeds its context block · ⑥ re-run personalize to generate the .claude/ copies.
Prefer refitting an existing chair over adding a fifteenth: every new memo dilutes the reader — you — and the
mandatory nine are already a lot of reading per decision.
An MSP selling IT management contracts to local businesses breaks several defaults at once: revenue is recurring MRR, not one-off ACV; addressable segments are hundreds of contacts, not thousands; channels are local and relationship-heavy; vendor co-op (MDF) money arrives with deadlines. Here is the full retune. All values below are illustrations — set your own.
| Dimension | Shipped default assumes | MSP reality | Lever |
|---|---|---|---|
| Deal economics | One-off ACV; pipeline = opps × ACV | Recurring MRR; a deal's value is contract-months | 1 — define pipeline as 12-month contract value (opps × MRR × 12) in budget-and-channels.md |
| Primary KPI | SQLs at volume | A handful of booked assessments a month | 1 — KPI = "first assessments booked", defined per your CRM |
| Segments | Thousands of addressable contacts | "Dental practices — metro area": maybe 300 contacts | 1 + 2 — small named segments; tighter fatigue and reach caps |
| Channels | Paid social, syndication, webinars | Local search, events/lunch-and-learns, referral programs, vendor co-marketing | 1 — the channel table drives everything; benchmarks per channel with sources |
| Budget shape | Quarterly budget with a 10% reserve | Smaller budget + vendor MDF with use-by dates | 2 + 3 — MDF as treasury cash calls in reverse (funds expiring, not owed) |
| Climate signals | Category momentum, competitor ad spend | Local: businesses opening, a competitor MSP acquired, insurance/compliance deadlines driving IT audits | 3 — re-aim the climate chair's signal inventory |
| Rail (as named in budget-rules.md) | Default | MSP override — why |
|---|---|---|
| Max share of quarterly budget committed to any one campaign | 15% | 25% — a small budget can't be split fifteen ways and still buy anything |
| Max concurrent campaigns targeting the same named segment | 3 | 2 — a 300-contact segment fatigues fast |
| Reach cap per flight (share of segment's addressable contacts) | 50% | 40% — leave room for the referral motion to work the same list |
| Frequency cap (touches per contact per week, all campaigns) | 3 | 2 — a 300-contact market remembers overexposure |
| Economics hurdle: projected pipeline-to-spend | 5:1 | 5:1 kept — but computed on 12-month contract value, per the definition above |
| WAIT-WITH-TRIGGER validity | 90 days | 60 days — local windows (an office move, a compliance deadline) close faster |
Everything else — the 40% channel cap, the reserve floor, the tranche shape, the kill defaults — survives contact with the MSP world unchanged. That's the pattern generally: override less than you expect.
templates/assets/ —
add an event-invite.md skeleton (copy the email skeleton's structure, keep the
claims-and-sources table).you ▸ run the committee on campaigns/DENT-Q2/brief.md M1 analyst conviction 3/5 — insurance-audit deadline is dated; list is thin M3 economics target 8 assessments · $12k budget · pipeline on MRR×12 projected 4.2:1 → FAIL vs 5:1 — flip-point: close rate ≥ 24% M6 architect segment "Dental practices — metro" at 1/2 concurrent ✓ · reach 38% of 300 contacts ✓ (cap 40%) M8 treasury vendor MDF $4,000 expires in 41 days — dated inflow flagged DECISION ▸ WAIT-WITH-TRIGGER — ≥ 2 audit-driven inbound requests before the MDF expiry, else NO-GO and release the reserved co-op funds · expires 60d
Same controls, different vocabulary: the hurdle fails on MRR-denominated pipeline, the fatigue cap counts a 300-contact segment, and the treasury chair is watching an expiring co-op balance instead of a conference payment. Fictional values throughout.
KPI = activated signups or PQLs; economics denominate in payback months rather than pipeline — redefine the hurdle accordingly (lever 2) and let the economics chair chain spend → signups → activation → paid. Segment fatigue matters less; channel concentration and creative-testing tranches matter more.
Few, large deals; the analyst's evidence is relationships and references, not funnel rates. Lower the volume math's weight by pasting deal-level data; tighten the brand-risk chair — in services, one damaged relationship costs more than a failed campaign — and expect "not launching is a position" to win more often. It should.
Two audiences: end customers and the channel. Add partner-facing segments in config, count partner campaigns against the same fatigue caps, and extend the compliance profile with partner-program brand rules. If partner marketing is half your spend, that's the one case a fifteenth chair (partner-channel officer) may earn its seat — via all six touchpoints of lever 4.
config/ for facts, agents/ and the protocol files for
behavior. Then personalize the marketing office — it regenerates
skills/*/references/ and .claude/ wholesale.journal/
when you override a rail permanently ("raised per-campaign cap to 25% on YYYY-MM-DD, reasoning…") gives the
quarterly audit the context it will otherwise lack a year from now.