Growth Master Agents
Requirements: Python 3 (stdlib only) + bash + Claude Code, no Docker, no API keys, no account โ full walkthrough in SETUP.md.
Four marketing agents for Claude Code, each backed by a real harness and a real verification gate โ not a prompt that hopes for the best. Together they form one growth engine: psychology designs the funnel, copy writes it, email sequences it, CRM wires it.
What's in here
agents/ Claude Code agent definitions (drop into .claude/agents/)
funnel-psychologist.md
master-copywriter.md
email-strategist.md
crm-automator.md
growth-masters/ the harness each agent reads from
funnel-psychology/
copywriting/
email-marketing/
crm-automation/
Each harness directory follows the same eight-file pattern:
| File | Purpose |
|---|---|
MANUAL.md |
the distilled research โ named sources, named playbooks, a scoring rubric per deliverable type |
AGENTS.md |
startup workflow: read state, run the gate, one feature at a time |
feature_list.json |
every deliverable type as a feature, with status and dependencies |
progress.md + session-handoff.md |
cross-session state so work doesn't drift between runs |
verify_*.py |
a linter that encodes the discipline's rubric as executable checks |
samples/good/ + samples/bad/ |
one known-excellent deliverable (must PASS the linter) and one deliberately broken one (must FAIL it) |
init.sh |
the gate โ runs the linter against both sample sets and exits nonzero if either check doesn't hold |
The four agents
1. funnel-psychologist โ conversion-path architect
Designs the funnel from psychological first principles โ stages, order, offer at each rung,
matched to prospect awareness and market sophistication. Owns the skeleton: every stage's single
job, single primary CTA, quantified conversion assumptions, instrumentation, and failure exits.
Ten named playbooks (Value Ladder, PLF, tripwire, webinar, application, CVJ, challenge, free-tool,
book funnel, flywheel). Deliverable types: funnel-blueprint, offer-stack,
landing-page-spec, funnel-audit, split-test-plan.
2. master-copywriter โ conversion copy
Writes the words for a single persuasion surface โ sales pages, VSL scripts, ad sets,
subject-line banks, landing hero variants. Operates from six lead types, a proof equation, and
ten named playbooks (Kennedy, Sugarman, Ogilvy, Halbert, and others). Deliverable types:
sales-page, vsl-script, ad-set, email-subject-bank, landing-hero-variants.
3. email-strategist โ the inbox channel
List architecture, deliverability, sequence design, cadence, lifecycle communication from
welcome to winback. Deliverable types: welcome-sequence, launch-sequence, ecom-flow-set,
daily-email, reactivation-campaign, deliverability-audit.
4. crm-automator โ data, triggers, orchestration
Builds (not just describes) the CRM layer: lead-scoring models, automation specs, lifecycle
journey maps, segmentation plans, pipeline audits, integration runbooks. Deliverable types:
automation-spec, lead-scoring-model, segmentation-plan, journey-map, pipeline-audit,
integration-runbook. Its linter hard-fails on anything that looks like an inline secret
(API key, token, password pasted directly into a doc) โ every credential must be an env-var
or vault reference instead.
How the four chain together
funnel-psychologist -> master-copywriter -> email-strategist -> crm-automator
designs the writes the builds the wires it into
skeleton copy for it sequences your CRM
- funnel-psychologist never writes copy, sends, or triggers โ it hands a blueprint downstream.
- master-copywriter writes to the blueprint's stages; it doesn't restructure the funnel.
- email-strategist sequences the copy into lifecycle arcs; it doesn't rewrite the sales page.
- crm-automator turns everything above into concrete CRM specs โ properties, events, scores, triggers โ it doesn't invent new stages or copy.
Quickstart
- Copy
agents/*.mdinto your project's.claude/agents/directory. - Copy
growth-masters/into your project root (or anywhere โ the agent files reference it asgrowth-masters/<discipline>/relative to your working directory). - Confirm
python3is on yourPATHโ the gates are plain Python 3 with no dependencies. - Run each gate once to prove it holds before trusting it:
cd growth-masters/funnel-psychology && ./init.sh
cd ../copywriting && ./init.sh
cd ../email-marketing && ./init.sh
cd ../crm-automation && ./init.sh
Every gate should print PASS โ the linter correctly passes the samples/good/ file and
correctly fails the samples/bad/ file for that discipline.
- In Claude Code, invoke an agent directly: "Use the funnel-psychologist agent to design a funnel blueprint for [your offer]." Or spawn it as a subagent via the Task tool.
The "no bullshit" contract
This is the actual discipline these harnesses enforce, and it's why the gate exists:
- The linter (
verify_*.py) encodes the discipline's rubric as executable checks โ not vibes. init.shruns the linter againstsamples/good/*(must PASS) andsamples/bad/*(must FAIL). If it ever passes the bad sample or fails the good one,init.shexits nonzero โ the linter is decorative and must be fixed before any deliverable in that discipline is trusted.- Every session starts by re-running
./init.sh. Never trust a prior "done" claim โ the harness'sAGENTS.mdmandates re-verification from the gate, not from prose. - No deliverable is marked
doneinfeature_list.jsonwithout the linter passing it.
Make it your own
- Swap the worked examples. The manuals and playbooks use a specific illustrative CRM scenario (a warm buyer list with zero re-engagement emails sent) to show the playbooks applied to a real decision. Replace those numbers with your own list size, revenue, and channel state wherever you see them โ the playbooks are the reusable part, the numbers are just the demonstration.
- Add a fifth master. Clone the harness pattern (the same eight files), write a
verify_<discipline>.pylinter that encodes your rubric as executable checks, buildsamples/good/andsamples/bad/, and write aninit.shgate that passes the good sample and fails the bad one. Then write the agent file atagents/<agent-name>.mddescribing what it owns and what it hands off. The master is real the moment./init.shgoes green โ and not one moment before. - Tighten or loosen the linters.
verify_*.pyin each harness is plain, dependency-free Python โ read it, adjust the rubric thresholds (word caps, required sections, banned words) to match your own house style, then confirm./init.shstill holds.
Requirements
- Python 3 (no external packages โ the linters use only the standard library)
- Claude Code, to run the agents (
agents/*.mdare standard Claude Code subagent definitions)