Proposed hooks — 2026-05-05
LEARN pass findings
- Top-quartile lookup: performance log is empty. First run. No winning H-formulas to bias toward. New batch is fresh-basis across 7 of 8 formulas.
- Under-served scan:
wiki/content/published/is empty. No drift signal. Batch sub-persona mix matches the 30/50/20 target exactly: 2 Validator / 4 Operator / 1 Scaler. - Signature cooldown: no published carousels in last 7 days. All 10 voice signatures from
messaging.mdare available. None in cooldown. - Loser autopsy: no bottom-quartile data yet. No retest or retire decisions to surface.
- Formula coverage: 7 of 8 formulas exercised this batch. H5 (X is not the way + But this is) deliberately held for batch 2 so we can isolate its performance signal against batch 1.
H1-Authority — [Operator]
"I went bankrupt in 2017. Built a $100M e-comm engine since. The thing that breaks 90% of founders is not the market. It is what they tell themselves on the bad day."
basis:
- perf: first run, no perf data; fresh
- signature: none — fresh; references "the bad day" framing
- icp_pain: Operator's loneliness on a 0.43 ROAS day; the narrative they tell themselves about it
draft_id_proposed: 2026-05-05-h1-bad-day-narrative
H2-Steps-Controversial — [Operator]
"I ran a 0.43 ROAS day in March. A 5.92 ROAS day the week after. 3 numbers decide which one I get tomorrow. None of them is ROAS."
basis:
- perf: first run, no perf data; fresh
- signature: none — fresh; uses real ROAS numbers from in-market posts (A1 archetype)
- icp_pain: Operator's overreliance on ROAS as the diagnostic; need for upstream metrics
draft_id_proposed: 2026-05-05-h2-three-numbers-not-roas
H3-Trending-Guide — [Validator]
"AI for product validation in 2026. What it catches. What it misses. A field guide for first-time e-comm founders."
basis:
- perf: first run, no perf data; fresh
- signature: none — fresh; trending topic anchor (AI in 2026)
- icp_pain: Validator's fear of building the wrong product; using AI as decision crutch
draft_id_proposed: 2026-05-05-h3-ai-validation-field-guide
H4-Desire-Proof — [Operator]
"How to build a $1M month that does not depend on a single ad set. Backed by the December I just closed."
basis:
- perf: first run, no perf data; fresh
- signature: echoes "OUR FIRST $1M+ MONTH" (in-market A1 post, December)
- icp_pain: Operator's channel concentration risk; one Meta account ban kills the month
draft_id_proposed: 2026-05-05-h4-million-month-no-single-adset
H6-Whats-Worse — [Operator]
"What's worse? A bad ROAS day, or a great ROAS day you cannot afford to scale because cashflow is broken?"
basis:
- perf: first run, no perf data; fresh
- signature: indirect echo of "Cashflow is a skill, not a result" (hooks.md H1-Ex2 reference)
- icp_pain: Operator's blind spot — the bigger pain is scaling-without-cashflow, not the bad day itself
draft_id_proposed: 2026-05-05-h6-great-roas-broken-cashflow
H7-Stat-Steps — [Validator]
"95% of new Shopify stores never see a $10K month. The 5% that do share the same 4 habits I had in Year 1 to $5M."
basis:
- perf: first run, no perf data; fresh
- signature: none — fresh; uses $5M Y1 receipt as proof
- icp_pain: Validator's "is it worth" hesitation; pattern of habits is more accessible than tactics
draft_id_proposed: 2026-05-05-h7-five-percent-club
H8-Signs-Protocol — [Scaler]
"6 signs you have outgrown your founder mode. The protocol to install the system before the company breaks."
basis:
- perf: first run, no perf data; fresh
- signature: echoes "Building a system that builds a company" (verbatim signature from messaging.md)
- icp_pain: Scaler's fear of becoming the bottleneck; urgency framing ("before the company breaks")
draft_id_proposed: 2026-05-05-h8-six-signs-outgrown-founder-mode
Sub-persona mix achieved
| Sub-persona | Target | This batch | Status |
|---|---|---|---|
| Validator | 30% (~2/7) | 2 (H3, H7) | ✓ on target |
| Operator | 50% (~4/7) | 4 (H1, H2, H4, H6) | ✓ on target |
| Scaler | 20% (~1/7) | 1 (H8) | ✓ on target |
Formula coverage
| Formula | Used | Notes |
|---|---|---|
| H1 Authority+Problem+Controversial | ✓ | Operator |
| H2 Authority+Steps+Controversial | ✓ | Operator |
| H3 Trending+Guide+ForWhom | ✓ | Validator |
| H4 Desire+Audience+Proof | ✓ | Operator |
| H5 X-is-not+But-this-is | ✗ | held for batch 2 to isolate signal |
| H6 What's-Worse | ✓ | Operator |
| H7 %Struggle+Steps | ✓ | Validator |
| H8 Signs+Protocol | ✓ | Scaler |
PROPOSED UPDATES
PROPOSED UPDATES:
- file: wiki/content/hooks.md
change: consider promoting "Cashflow is a skill, not a result" from H1-Ex2 to a top-level voice signature in messaging.md if H1 (this batch's Operator hook) lands top quartile
rationale: line is doing heavy lifting in 2 of 7 hooks already (H1 indirectly, H6 directly). If reach validates it, treating it as a signature with cooldown protection prevents over-use.
- file: telos/GOALS.md
change: align ARR target currency with brand-book/about.md ($100M, USD)
rationale: brand-book and the new MISSION.md cite $100M; GOALS.md still says €100M ARR. Cabinet-internal inconsistency. Cross-cabinet, not in agent's scope to apply, but flagged for Ansis weekly review.
- file: wiki/content/drafts/queue/
change: add "rejection log" sub-file pattern when batches fail Ansis 9 AM review
rationale: currently the SOP says "reject in queue with one-line reason" but no canonical place for the agent to read those rejections. Without a sticky rejection log, the agent does not learn from rejected hooks across days.
Ansis 9 AM review checklist
- [ ] 7 hooks present
- [ ] Each has a
basis:line - [ ] Sub-persona mix within ±10pts of target (this batch: 2/4/1, exact)
- [ ] At least one hook from H1, H4, or H8 (proven workhorses for his arc) — ✓ all three present
- [ ] No banned phrases (em-dashes-as-commas, hyphen-conjunctions, fluff: really/very/just/actually/literally)
- [ ] Frozen CTA verbatim — N/A this batch (hooks-only; CTA appears in expansion)
- [ ] PROPOSED UPDATES section present — ✓
To approve: mark ✓ next to the hook IDs you want expanded into full carousels, then run:
py -3 scripts/content_agent_run.py --mode expand --draft-id <draft_id_proposed>
(Or, if running this manually in Claude during Phase 1, paste the prompt + context with the expand instruction per ops/agents/content-agent/README.md.)