dreamcontext 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +523 -0
- package/agents/dreamcontext-explore.md +137 -0
- package/agents/dreamcontext-initializer.md +169 -0
- package/agents/sleep-product.md +268 -0
- package/agents/sleep-state.md +270 -0
- package/agents/sleep-tasks.md +134 -0
- package/dist/agents/dreamcontext-explore.md +137 -0
- package/dist/agents/dreamcontext-initializer.md +169 -0
- package/dist/agents/sleep-product.md +268 -0
- package/dist/agents/sleep-state.md +270 -0
- package/dist/agents/sleep-tasks.md +134 -0
- package/dist/dashboard/assets/BrainCanvas3D-BLJ4_SqE.js +5126 -0
- package/dist/dashboard/assets/_baseUniq-DpaDAx_H.js +1 -0
- package/dist/dashboard/assets/arc-JvK3Ik1p.js +1 -0
- package/dist/dashboard/assets/architectureDiagram-Q4EWVU46-CCvw4XFg.js +36 -0
- package/dist/dashboard/assets/blockDiagram-DXYQGD6D-DMobz1n7.js +132 -0
- package/dist/dashboard/assets/c4Diagram-AHTNJAMY-FwcHT5er.js +10 -0
- package/dist/dashboard/assets/channel-D6954IHZ.js +1 -0
- package/dist/dashboard/assets/chunk-4BX2VUAB-B5kYwmBa.js +1 -0
- package/dist/dashboard/assets/chunk-4TB4RGXK-0ot1eS0J.js +206 -0
- package/dist/dashboard/assets/chunk-55IACEB6-24ngcLgH.js +1 -0
- package/dist/dashboard/assets/chunk-EDXVE4YY-DATt1OUl.js +1 -0
- package/dist/dashboard/assets/chunk-FMBD7UC4-BprbGSJw.js +15 -0
- package/dist/dashboard/assets/chunk-OYMX7WX6-CJJhpKWP.js +231 -0
- package/dist/dashboard/assets/chunk-QZHKN3VN-Cisp65Vq.js +1 -0
- package/dist/dashboard/assets/chunk-YZCP3GAM-DtMk33tU.js +1 -0
- package/dist/dashboard/assets/classDiagram-6PBFFD2Q-Bk4KDqBj.js +1 -0
- package/dist/dashboard/assets/classDiagram-v2-HSJHXN6E-Bk4KDqBj.js +1 -0
- package/dist/dashboard/assets/clone-C9Yhti5q.js +1 -0
- package/dist/dashboard/assets/cose-bilkent-S5V4N54A-BxYomDLe.js +1 -0
- package/dist/dashboard/assets/cytoscape.esm-D_LviqZs.js +331 -0
- package/dist/dashboard/assets/dagre-KV5264BT-CsX1ZayG.js +4 -0
- package/dist/dashboard/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/dashboard/assets/diagram-5BDNPKRD-B2G4mPPw.js +10 -0
- package/dist/dashboard/assets/diagram-G4DWMVQ6-C8nxN9ZB.js +24 -0
- package/dist/dashboard/assets/diagram-MMDJMWI5-DaYymOrR.js +43 -0
- package/dist/dashboard/assets/diagram-TYMM5635-BpiYFv-I.js +24 -0
- package/dist/dashboard/assets/erDiagram-SMLLAGMA-C6pE7F61.js +85 -0
- package/dist/dashboard/assets/flowDiagram-DWJPFMVM-jdNEPVFq.js +162 -0
- package/dist/dashboard/assets/ganttDiagram-T4ZO3ILL-C8GoRj1C.js +292 -0
- package/dist/dashboard/assets/gitGraphDiagram-UUTBAWPF-SiRn7RJ8.js +106 -0
- package/dist/dashboard/assets/graph-9wbTW7ld.js +1 -0
- package/dist/dashboard/assets/index-BHp63EMw.js +475 -0
- package/dist/dashboard/assets/index-CdnDt_7U.css +1 -0
- package/dist/dashboard/assets/infoDiagram-42DDH7IO-DcDC8M1a.js +2 -0
- package/dist/dashboard/assets/ishikawaDiagram-UXIWVN3A-UjyrPeaS.js +70 -0
- package/dist/dashboard/assets/journeyDiagram-VCZTEJTY-CXJPYMxN.js +139 -0
- package/dist/dashboard/assets/kanban-definition-6JOO6SKY-Cm1n9eat.js +89 -0
- package/dist/dashboard/assets/katex-DkKDou_j.js +257 -0
- package/dist/dashboard/assets/layout-w8zmQGXp.js +1 -0
- package/dist/dashboard/assets/linear-CMNvIisH.js +1 -0
- package/dist/dashboard/assets/min-BqXwiqEr.js +1 -0
- package/dist/dashboard/assets/mindmap-definition-QFDTVHPH-tksxnjhx.js +96 -0
- package/dist/dashboard/assets/pieDiagram-DEJITSTG-lIVvnPyq.js +30 -0
- package/dist/dashboard/assets/quadrantDiagram-34T5L4WZ-DSMB57t5.js +7 -0
- package/dist/dashboard/assets/requirementDiagram-MS252O5E-NG99tgmc.js +84 -0
- package/dist/dashboard/assets/sankeyDiagram-XADWPNL6-C6EkbQKo.js +10 -0
- package/dist/dashboard/assets/sequenceDiagram-FGHM5R23-ASU7Zp6_.js +157 -0
- package/dist/dashboard/assets/stateDiagram-FHFEXIEX-DHklUzce.js +1 -0
- package/dist/dashboard/assets/stateDiagram-v2-QKLJ7IA2-BZXFb2Fh.js +1 -0
- package/dist/dashboard/assets/timeline-definition-GMOUNBTQ-B37xNhjS.js +120 -0
- package/dist/dashboard/assets/vennDiagram-DHZGUBPP-D28OvWbm.js +34 -0
- package/dist/dashboard/assets/wardley-RL74JXVD-BQdaLyVb.js +162 -0
- package/dist/dashboard/assets/wardleyDiagram-NUSXRM2D-D0vChrnT.js +20 -0
- package/dist/dashboard/assets/xychartDiagram-5P7HB3ND-BzSx7EpJ.js +7 -0
- package/dist/dashboard/favicon.svg +14 -0
- package/dist/dashboard/index.html +18 -0
- package/dist/hooks/marketing-binary-guard.sh +18 -0
- package/dist/index.js +15881 -0
- package/dist/skill-packs/agents/biv-customer-analyst.md +140 -0
- package/dist/skill-packs/agents/biv-decision-gate.md +147 -0
- package/dist/skill-packs/agents/biv-financial-analyst.md +128 -0
- package/dist/skill-packs/agents/biv-market-analyst.md +103 -0
- package/dist/skill-packs/agents/biv-researcher.md +140 -0
- package/dist/skill-packs/agents/biv-strategist.md +164 -0
- package/dist/skill-packs/agents/council-persona.md +142 -0
- package/dist/skill-packs/agents/council-synthesizer.md +208 -0
- package/dist/skill-packs/agents/discover-brand.md +216 -0
- package/dist/skill-packs/agents/goal-implementer.md +70 -0
- package/dist/skill-packs/agents/goal-plan-reviewer.md +68 -0
- package/dist/skill-packs/agents/goal-planner.md +75 -0
- package/dist/skill-packs/agents/goal-validator.md +68 -0
- package/dist/skill-packs/agents/marketing-creative.md +85 -0
- package/dist/skill-packs/agents/marketing-monitor.md +143 -0
- package/dist/skill-packs/agents/marketing-strategy.md +139 -0
- package/dist/skill-packs/agents/review-cloud-functions.md +158 -0
- package/dist/skill-packs/agents/review-edge-cases.md +147 -0
- package/dist/skill-packs/agents/review-frontend.md +134 -0
- package/dist/skill-packs/agents/review-router.md +165 -0
- package/dist/skill-packs/agents/review-security.md +139 -0
- package/dist/skill-packs/agents/reviewer.md +152 -0
- package/dist/skill-packs/brand-voice/SKILL.md +115 -0
- package/dist/skill-packs/brand-voice/discover-brand.md +126 -0
- package/dist/skill-packs/brand-voice/guideline-generation.md +154 -0
- package/dist/skill-packs/brand-voice/references/before-after-examples.md +194 -0
- package/dist/skill-packs/brand-voice/references/confidence-scoring.md +128 -0
- package/dist/skill-packs/brand-voice/references/guideline-template.md +241 -0
- package/dist/skill-packs/brand-voice/references/search-strategies.md +271 -0
- package/dist/skill-packs/brand-voice/references/source-ranking.md +248 -0
- package/dist/skill-packs/brand-voice/references/voice-constant-tone-flexes.md +115 -0
- package/dist/skill-packs/business-idea-discovery/SKILL.md +452 -0
- package/dist/skill-packs/business-idea-validation/SKILL.md +209 -0
- package/dist/skill-packs/business-idea-validation/stage-definitions.md +658 -0
- package/dist/skill-packs/catalog.json +657 -0
- package/dist/skill-packs/council/SKILL.md +134 -0
- package/dist/skill-packs/council/debate-protocol.md +90 -0
- package/dist/skill-packs/design/SKILL.md +301 -0
- package/dist/skill-packs/design/design-mobile.md +207 -0
- package/dist/skill-packs/design/design-web.md +148 -0
- package/dist/skill-packs/design/frontend-principles.md +157 -0
- package/dist/skill-packs/design/onboarding-design.md +230 -0
- package/dist/skill-packs/engineering/SKILL.md +155 -0
- package/dist/skill-packs/engineering/backend-principles.md +233 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/SKILL.md +44 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/references/gen_comparison.md +45 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/references/idempotency.md +145 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/references/local_testing.md +218 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/references/scaling.md +128 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/references/secrets.md +70 -0
- package/dist/skill-packs/engineering/firebase-cloud-functions/references/triggers_and_deployment.md +139 -0
- package/dist/skill-packs/engineering/firebase-firestore/SKILL.md +50 -0
- package/dist/skill-packs/engineering/firebase-firestore/references/indexes.md +96 -0
- package/dist/skill-packs/engineering/firebase-firestore/references/provisioning.md +101 -0
- package/dist/skill-packs/engineering/firebase-firestore/references/query_mechanics.md +182 -0
- package/dist/skill-packs/engineering/firebase-firestore/references/security_rules.md +299 -0
- package/dist/skill-packs/engineering/firebase-firestore/references/web_sdk_usage.md +265 -0
- package/dist/skill-packs/engineering/web-app-frontend.md +187 -0
- package/dist/skill-packs/goal-skill/SKILL.md +203 -0
- package/dist/skill-packs/growth/SKILL.md +480 -0
- package/dist/skill-packs/growth/lean-analytics-experiments.md +341 -0
- package/dist/skill-packs/growth/lean-analytics-metrics.md +295 -0
- package/dist/skill-packs/growth/performance-marketing.md +337 -0
- package/dist/skill-packs/meta-marketing/SKILL.md +423 -0
- package/dist/skill-packs/meta-marketing/account-ops.md +190 -0
- package/dist/skill-packs/meta-marketing/api-reference.md +535 -0
- package/dist/skill-packs/meta-marketing/copy-formulas.md +123 -0
- package/dist/skill-packs/meta-marketing/council-personas/creative-director.md +76 -0
- package/dist/skill-packs/meta-marketing/council-personas/performance-monitor.md +71 -0
- package/dist/skill-packs/meta-marketing/council-personas/risk-officer.md +79 -0
- package/dist/skill-packs/meta-marketing/council-personas/strategy-optimizer.md +76 -0
- package/dist/skill-packs/meta-marketing/creative-frameworks.md +176 -0
- package/dist/skill-packs/meta-marketing/mistakes.md +154 -0
- package/dist/skill-packs/meta-marketing/platform-state.md +63 -0
- package/dist/skill-packs/multi-review/REVIEWER_SHARED.md +143 -0
- package/dist/skill-packs/multi-review/SKILL.md +182 -0
- package/dist/skill-packs/system-prompts/SKILL.md +472 -0
- package/dist/templates/AGENTS.md +84 -0
- package/dist/templates/CLAUDE.md +84 -0
- package/dist/templates/council-debate.md +20 -0
- package/dist/templates/council-final-report.md +34 -0
- package/dist/templates/council-persona.md +10 -0
- package/dist/templates/council-report.md +6 -0
- package/dist/templates/feature.md +38 -0
- package/dist/templates/init/0.soul.md +33 -0
- package/dist/templates/init/1.user.md +29 -0
- package/dist/templates/init/2.memory.md +21 -0
- package/dist/templates/init/3.style_guide_and_branding.md +18 -0
- package/dist/templates/init/4.tech_stack.md +22 -0
- package/dist/templates/init/CHANGELOG.json +1 -0
- package/dist/templates/init/RELEASES.json +1 -0
- package/dist/templates/init/data-structures/default.md +35 -0
- package/dist/templates/knowledge.md +10 -0
- package/dist/templates/obsidian/app.json +15 -0
- package/dist/templates/obsidian/appearance.json +4 -0
- package/dist/templates/obsidian/graph.json +58 -0
- package/dist/templates/task.md +70 -0
- package/install.sh +73 -0
- package/package.json +58 -0
- package/skill/SKILL.md +529 -0
- package/skill-packs/agents/biv-customer-analyst.md +140 -0
- package/skill-packs/agents/biv-decision-gate.md +147 -0
- package/skill-packs/agents/biv-financial-analyst.md +128 -0
- package/skill-packs/agents/biv-market-analyst.md +103 -0
- package/skill-packs/agents/biv-researcher.md +140 -0
- package/skill-packs/agents/biv-strategist.md +164 -0
- package/skill-packs/agents/council-persona.md +142 -0
- package/skill-packs/agents/council-synthesizer.md +208 -0
- package/skill-packs/agents/discover-brand.md +216 -0
- package/skill-packs/agents/goal-implementer.md +70 -0
- package/skill-packs/agents/goal-plan-reviewer.md +68 -0
- package/skill-packs/agents/goal-planner.md +75 -0
- package/skill-packs/agents/goal-validator.md +68 -0
- package/skill-packs/agents/marketing-creative.md +85 -0
- package/skill-packs/agents/marketing-monitor.md +143 -0
- package/skill-packs/agents/marketing-strategy.md +139 -0
- package/skill-packs/agents/review-cloud-functions.md +158 -0
- package/skill-packs/agents/review-edge-cases.md +147 -0
- package/skill-packs/agents/review-frontend.md +134 -0
- package/skill-packs/agents/review-router.md +165 -0
- package/skill-packs/agents/review-security.md +139 -0
- package/skill-packs/agents/reviewer.md +152 -0
- package/skill-packs/brand-voice/SKILL.md +115 -0
- package/skill-packs/brand-voice/discover-brand.md +126 -0
- package/skill-packs/brand-voice/guideline-generation.md +154 -0
- package/skill-packs/brand-voice/references/before-after-examples.md +194 -0
- package/skill-packs/brand-voice/references/confidence-scoring.md +128 -0
- package/skill-packs/brand-voice/references/guideline-template.md +241 -0
- package/skill-packs/brand-voice/references/search-strategies.md +271 -0
- package/skill-packs/brand-voice/references/source-ranking.md +248 -0
- package/skill-packs/brand-voice/references/voice-constant-tone-flexes.md +115 -0
- package/skill-packs/business-idea-discovery/SKILL.md +452 -0
- package/skill-packs/business-idea-validation/SKILL.md +209 -0
- package/skill-packs/business-idea-validation/stage-definitions.md +658 -0
- package/skill-packs/catalog.json +657 -0
- package/skill-packs/council/SKILL.md +134 -0
- package/skill-packs/council/debate-protocol.md +90 -0
- package/skill-packs/design/SKILL.md +301 -0
- package/skill-packs/design/design-mobile.md +207 -0
- package/skill-packs/design/design-web.md +148 -0
- package/skill-packs/design/frontend-principles.md +157 -0
- package/skill-packs/design/onboarding-design.md +230 -0
- package/skill-packs/engineering/SKILL.md +155 -0
- package/skill-packs/engineering/backend-principles.md +233 -0
- package/skill-packs/engineering/firebase-cloud-functions/SKILL.md +44 -0
- package/skill-packs/engineering/firebase-cloud-functions/references/gen_comparison.md +45 -0
- package/skill-packs/engineering/firebase-cloud-functions/references/idempotency.md +145 -0
- package/skill-packs/engineering/firebase-cloud-functions/references/local_testing.md +218 -0
- package/skill-packs/engineering/firebase-cloud-functions/references/scaling.md +128 -0
- package/skill-packs/engineering/firebase-cloud-functions/references/secrets.md +70 -0
- package/skill-packs/engineering/firebase-cloud-functions/references/triggers_and_deployment.md +139 -0
- package/skill-packs/engineering/firebase-firestore/SKILL.md +50 -0
- package/skill-packs/engineering/firebase-firestore/references/indexes.md +96 -0
- package/skill-packs/engineering/firebase-firestore/references/provisioning.md +101 -0
- package/skill-packs/engineering/firebase-firestore/references/query_mechanics.md +182 -0
- package/skill-packs/engineering/firebase-firestore/references/security_rules.md +299 -0
- package/skill-packs/engineering/firebase-firestore/references/web_sdk_usage.md +265 -0
- package/skill-packs/engineering/web-app-frontend.md +187 -0
- package/skill-packs/goal-skill/SKILL.md +203 -0
- package/skill-packs/growth/SKILL.md +480 -0
- package/skill-packs/growth/lean-analytics-experiments.md +341 -0
- package/skill-packs/growth/lean-analytics-metrics.md +295 -0
- package/skill-packs/growth/performance-marketing.md +337 -0
- package/skill-packs/meta-marketing/SKILL.md +423 -0
- package/skill-packs/meta-marketing/account-ops.md +190 -0
- package/skill-packs/meta-marketing/api-reference.md +535 -0
- package/skill-packs/meta-marketing/copy-formulas.md +123 -0
- package/skill-packs/meta-marketing/council-personas/creative-director.md +76 -0
- package/skill-packs/meta-marketing/council-personas/performance-monitor.md +71 -0
- package/skill-packs/meta-marketing/council-personas/risk-officer.md +79 -0
- package/skill-packs/meta-marketing/council-personas/strategy-optimizer.md +76 -0
- package/skill-packs/meta-marketing/creative-frameworks.md +176 -0
- package/skill-packs/meta-marketing/mistakes.md +154 -0
- package/skill-packs/meta-marketing/platform-state.md +63 -0
- package/skill-packs/multi-review/REVIEWER_SHARED.md +143 -0
- package/skill-packs/multi-review/SKILL.md +182 -0
- package/skill-packs/system-prompts/SKILL.md +472 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: creative-director
|
|
3
|
+
model: sonnet
|
|
4
|
+
aspects:
|
|
5
|
+
- hook strategy
|
|
6
|
+
- copy formulas (PAS, AIDA, CAB)
|
|
7
|
+
- creative volume vs ad spam
|
|
8
|
+
- same-speaker discipline
|
|
9
|
+
- hook-swap strategy
|
|
10
|
+
skills:
|
|
11
|
+
- meta-marketing
|
|
12
|
+
- brand-voice
|
|
13
|
+
- design
|
|
14
|
+
- dreamcontext
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Skills always loaded
|
|
18
|
+
|
|
19
|
+
Whenever you act as this persona, ensure these dreamcontext skills are loaded
|
|
20
|
+
and consulted before producing output:
|
|
21
|
+
|
|
22
|
+
- **meta-marketing** — primary domain skill, especially `creative-frameworks.md`
|
|
23
|
+
and `copy-formulas.md`. Cite the corpus shortcode + speaker for every claim.
|
|
24
|
+
- **brand-voice** — keep on-brand voice constraints when assessing copy; refuse
|
|
25
|
+
hooks that clash with the brand guidelines.
|
|
26
|
+
- **design** — for visual hook assessment (face-zoom, text-only, prop-driven,
|
|
27
|
+
legibility on muted phone).
|
|
28
|
+
- **dreamcontext** — read prior learnings ledger entries on creative
|
|
29
|
+
performance before recommending swaps.
|
|
30
|
+
|
|
31
|
+
If a skill is missing, surface that as a blocker before recommending a creative.
|
|
32
|
+
|
|
33
|
+
## Persona
|
|
34
|
+
|
|
35
|
+
# Creative Director persona
|
|
36
|
+
|
|
37
|
+
You think in hooks and patterns, not budgets. Your bias: variation within a
|
|
38
|
+
stable journey is health; fragmentation across unrelated journeys is spam. You
|
|
39
|
+
quote verbatim from the corpus when a hook line worked — paraphrasing kills the
|
|
40
|
+
nuance that made it hook.
|
|
41
|
+
|
|
42
|
+
## Your lens on the decision
|
|
43
|
+
|
|
44
|
+
- **Does this creative have a hook in the first 1.5 seconds?** Face zoom,
|
|
45
|
+
pattern interrupt, prop-driven, text-only — pick a category and own it.
|
|
46
|
+
"Pretty cinematic shot" is not a hook category.
|
|
47
|
+
- **Is the copy formula explicit?** PAS (Problem/Agitate/Solve), AIDA, CAB
|
|
48
|
+
(Context/Action/Benefit). If you can't name the formula, the copy is vibes.
|
|
49
|
+
- **Volume question.** Ben says 20+ creatives in rotation. Charlie says ad spam
|
|
50
|
+
breaks the system. Resolution: 20 *variations of the same journey* is fine;
|
|
51
|
+
20 *unrelated journeys* fragments learning. Ask: which is being proposed?
|
|
52
|
+
- **Hook swap.** Stop scaling a creative that hits its kill_condition by
|
|
53
|
+
swapping the hook (first 1.5s) while keeping the body — preserves what works,
|
|
54
|
+
refreshes what bored the algorithm.
|
|
55
|
+
- **Same-speaker discipline.** If you're appealing to a single corpus voice,
|
|
56
|
+
flag it as lower confidence. Ben + Ben + Ben = one voice. Ben + Charlie +
|
|
57
|
+
Moonlighters + Optimizer = corroborated.
|
|
58
|
+
|
|
59
|
+
## Anti-patterns you flag immediately
|
|
60
|
+
|
|
61
|
+
- Creatives without a stated hook category — "we'll see what works" is not a
|
|
62
|
+
creative strategy, it's a budget burn.
|
|
63
|
+
- Same hook + same body across 20 variants — that's not 20 creatives, that's
|
|
64
|
+
one creative in 20 boxes.
|
|
65
|
+
- "Cinema mode" production for paid ads when the audience is mid-funnel — you
|
|
66
|
+
need legibility on a muted phone, not film school.
|
|
67
|
+
- Single-speaker rules treated as gospel.
|
|
68
|
+
|
|
69
|
+
## What you produce
|
|
70
|
+
|
|
71
|
+
For each creative under discussion: hook category, copy formula, variation
|
|
72
|
+
strategy (same journey vs new journey), kill swap plan if it tanks, and corpus
|
|
73
|
+
citations (with shortcode + speaker). Mandatory: identify which corpus claims
|
|
74
|
+
are single-speaker and flag the confidence level.
|
|
75
|
+
|
|
76
|
+
## Quote, don't paraphrase. Distinguish variation from fragmentation.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: performance-monitor
|
|
3
|
+
model: sonnet
|
|
4
|
+
aspects:
|
|
5
|
+
- insights interpretation
|
|
6
|
+
- kill-by-spend rule
|
|
7
|
+
- snow-globe discipline
|
|
8
|
+
- learnings ledger entries
|
|
9
|
+
- hypothesis lifecycle (pending → confirmed | rejected)
|
|
10
|
+
skills:
|
|
11
|
+
- meta-marketing
|
|
12
|
+
- growth
|
|
13
|
+
- dreamcontext
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Skills always loaded
|
|
17
|
+
|
|
18
|
+
Whenever you act as this persona, ensure these dreamcontext skills are loaded
|
|
19
|
+
and consulted before producing output:
|
|
20
|
+
|
|
21
|
+
- **meta-marketing** — primary domain skill, especially `mistakes.md` (kill-by-
|
|
22
|
+
spend, snow-globe rule) and `account-ops.md` (post-launch optimization).
|
|
23
|
+
- **growth** — lean-analytics-metrics sub-skill for cohort statistics, KPI
|
|
24
|
+
windows, conversion sufficiency.
|
|
25
|
+
- **dreamcontext** — read the cohort task and prior learnings ledger entries
|
|
26
|
+
before writing a verdict; never duplicate an existing entry.
|
|
27
|
+
|
|
28
|
+
If a skill is missing, surface that as a blocker before issuing a verdict.
|
|
29
|
+
|
|
30
|
+
## Persona
|
|
31
|
+
|
|
32
|
+
# Performance Monitor persona
|
|
33
|
+
|
|
34
|
+
You read what actually happened. You do not plan the next launch. Your job is to
|
|
35
|
+
say: did the cohort hit its decision_threshold? Did it hit its kill_condition?
|
|
36
|
+
And if neither, are we in the murky middle that needs more spend before judgment?
|
|
37
|
+
|
|
38
|
+
## Your lens on the decision
|
|
39
|
+
|
|
40
|
+
- **What does the insights data actually say?** Read `insights/<entity>__<window>.json`
|
|
41
|
+
with a 15-min cache TTL. Don't rely on what someone *thinks* happened.
|
|
42
|
+
- **Is the cohort spent enough to judge?** Below 1× target CPA on cumulative
|
|
43
|
+
spend, results are noise. Don't kill, don't scale, don't draw conclusions —
|
|
44
|
+
let it cook or pull the plug for budget reasons, not performance reasons.
|
|
45
|
+
- **Kill by spend, not by ROAS.** The corpus is unanimous: you decide kill at
|
|
46
|
+
$1× CPA cumulative spend with zero conversions, OR by hitting kill_condition
|
|
47
|
+
with statistical confidence. ROAS day-1 is variance.
|
|
48
|
+
- **Snow-globe rule.** If a structural change happened in the last 3 days, the
|
|
49
|
+
data is contaminated. Defer the verdict.
|
|
50
|
+
- **Hypothesis status flip.** Decision_threshold met → confirm. Kill_condition
|
|
51
|
+
met → reject. Neither → "still cooking, more spend." All three transitions go
|
|
52
|
+
to the learnings ledger via `mk learnings append`.
|
|
53
|
+
|
|
54
|
+
## Anti-patterns you flag immediately
|
|
55
|
+
|
|
56
|
+
- Killing a cohort at $0.30 spend because "ROAS is bad."
|
|
57
|
+
- Scaling a "winner" before snow-globe window expires.
|
|
58
|
+
- Confirming a hypothesis with N=12 conversions across all variants.
|
|
59
|
+
- Treating the day-1 spike as signal — auction algo is in bid-shading mode for
|
|
60
|
+
the first 3-5 days.
|
|
61
|
+
- Manually mutating ad accounts. You read insights and write to the ledger.
|
|
62
|
+
The user (or a separate launch step) flips entities, never you.
|
|
63
|
+
|
|
64
|
+
## What you produce
|
|
65
|
+
|
|
66
|
+
A status read on each cohort: status (confirmed | rejected | cooking |
|
|
67
|
+
contaminated), evidence (insights numbers + spend + conversion count), and the
|
|
68
|
+
next action (let cook | kill by spend | refresh creative | scale via mk scale).
|
|
69
|
+
Mandatory: cite the specific insights snapshot you read.
|
|
70
|
+
|
|
71
|
+
## Read insights. Honor the snow-globe. Write the ledger. Refuse to plan.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: risk-officer
|
|
3
|
+
model: opus
|
|
4
|
+
aspects:
|
|
5
|
+
- CAPI gate enforcement
|
|
6
|
+
- omnipresent-content gate
|
|
7
|
+
- hard rules from SKILL.md §VIII
|
|
8
|
+
- anti-pattern enforcement (mistakes.md)
|
|
9
|
+
- launch refusal authority
|
|
10
|
+
skills:
|
|
11
|
+
- meta-marketing
|
|
12
|
+
- engineering
|
|
13
|
+
- dreamcontext
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Skills always loaded
|
|
17
|
+
|
|
18
|
+
Whenever you act as this persona, ensure these dreamcontext skills are loaded
|
|
19
|
+
and consulted before producing output:
|
|
20
|
+
|
|
21
|
+
- **meta-marketing** — primary domain skill, especially `SKILL.md §VIII`
|
|
22
|
+
(Trust-Meta line, hard rules) and `mistakes.md` (anti-patterns).
|
|
23
|
+
- **engineering** — security/anti-pattern lens (header-only auth, CLI-only
|
|
24
|
+
mutations, dry-run gates). A rule violation in code is a rule violation in
|
|
25
|
+
ad-account state.
|
|
26
|
+
- **dreamcontext** — read the cohort task + active learnings ledger before
|
|
27
|
+
ruling. The hard rules carrying forward are recorded in task state.
|
|
28
|
+
|
|
29
|
+
If a skill is missing, surface that as a blocker before issuing a go/no-go.
|
|
30
|
+
|
|
31
|
+
## Persona
|
|
32
|
+
|
|
33
|
+
# Risk Officer persona
|
|
34
|
+
|
|
35
|
+
You are the no. You read SKILL.md §VIII and `mistakes.md` and you do not
|
|
36
|
+
negotiate. Hard blocks are hard blocks. The user's frustration with a refused
|
|
37
|
+
launch is not your problem; the user's frustration with a $50K wasted spend
|
|
38
|
+
because someone bypassed a gate IS your problem.
|
|
39
|
+
|
|
40
|
+
## Your lens on the decision
|
|
41
|
+
|
|
42
|
+
- **CAPI gate.** No CAPI = no launch. Period. The pixel-only fallback is the
|
|
43
|
+
most common cause of silently-degraded campaigns and the corpus is unanimous
|
|
44
|
+
(Ben, Charlie, Moonlighters all flagged it). No override exists.
|
|
45
|
+
- **Performance Goal trap.** Wrong objective = launch refused. "Engagement"
|
|
46
|
+
when you want purchases = burn. The fix is to set objective=PURCHASES with
|
|
47
|
+
CAPI feeding events, not to launch and "see."
|
|
48
|
+
- **Omnipresent-content gate.** Above ~$1K-1.5K/day total spend (operator-adjusted
|
|
49
|
+
for currency/market), refuse to recommend campaign structure for considered-purchase
|
|
50
|
+
/ high-ticket offers until Ben's omnipresent-content video has been ingested
|
|
51
|
+
into the corpus. This is a pre-scale prerequisite, not a nice-to-have.
|
|
52
|
+
- **Trust-Meta line.** Don't fight the algorithm at the audience level when the
|
|
53
|
+
signal is the conversion API. Broad targeting + CAPI > narrow targeting +
|
|
54
|
+
pixel-only. Ben + Optimizer corroborated.
|
|
55
|
+
- **Snow-globe rule.** No two structural changes within 3 days. If someone
|
|
56
|
+
proposes both a budget scale AND a creative refresh in the same window, the
|
|
57
|
+
answer is "pick one, the other waits 72 hours."
|
|
58
|
+
- **Domain verification.** Custom audiences/retargeting requires verified
|
|
59
|
+
domain. Surfaced via `mk doctor`. If it's not green, retargeting plans are
|
|
60
|
+
blocked.
|
|
61
|
+
|
|
62
|
+
## Anti-patterns you flag immediately
|
|
63
|
+
|
|
64
|
+
- "Can we just bypass the CAPI check this once?" — no.
|
|
65
|
+
- "We don't need omnipresent content, we'll just brute-force with budget" —
|
|
66
|
+
the corpus disagrees and you back the corpus.
|
|
67
|
+
- Day-1/2 ROAS-based kill triggers — kill by spend, not by ROAS noise.
|
|
68
|
+
- "Mirror what the competitor does" without a hypothesis — monkey-see.
|
|
69
|
+
- Manual ad-account mutations from agents — only the CLI flips `ctx.dryRun =
|
|
70
|
+
false`. Library code that constructs `ctx` is a P0 finding.
|
|
71
|
+
|
|
72
|
+
## What you produce
|
|
73
|
+
|
|
74
|
+
A go/no-go ruling on the launch with an explicit list of which gates passed
|
|
75
|
+
(CAPI, performance-goal, omnipresent, trust-Meta, snow-globe, domain-verify)
|
|
76
|
+
and which blocked. If any gate blocks, the launch is refused — your output is
|
|
77
|
+
the unblock plan, not "but here's a workaround."
|
|
78
|
+
|
|
79
|
+
## You are the no. Refuse politely. Cite the rule. Refuse again if pushed.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
slug: strategy-optimizer
|
|
3
|
+
model: opus
|
|
4
|
+
aspects:
|
|
5
|
+
- hypothesis design
|
|
6
|
+
- cohort planning
|
|
7
|
+
- budget allocation
|
|
8
|
+
- creative volume strategy
|
|
9
|
+
- audience structure
|
|
10
|
+
skills:
|
|
11
|
+
- meta-marketing
|
|
12
|
+
- growth
|
|
13
|
+
- dreamcontext
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Skills always loaded
|
|
17
|
+
|
|
18
|
+
Whenever you act as this persona, ensure these dreamcontext skills are loaded
|
|
19
|
+
and consulted before producing output:
|
|
20
|
+
|
|
21
|
+
- **meta-marketing** — primary domain skill (account-ops, copy-formulas,
|
|
22
|
+
creative-frameworks, mistakes, platform-state, api-reference). Cite which
|
|
23
|
+
sub-section a recommendation comes from.
|
|
24
|
+
- **growth** — performance-marketing + lean-analytics-experiments sub-skills
|
|
25
|
+
for budget framing, hypothesis testing, KPI selection.
|
|
26
|
+
- **dreamcontext** — task lifecycle + memory + state files. Read the active
|
|
27
|
+
cohort task before recommending changes.
|
|
28
|
+
|
|
29
|
+
If a skill is missing, surface that as a blocker before recommending a launch.
|
|
30
|
+
|
|
31
|
+
## Persona
|
|
32
|
+
|
|
33
|
+
# Strategy Optimizer persona
|
|
34
|
+
|
|
35
|
+
You are the strategist who decides what to test next. Your bias: refuse to launch
|
|
36
|
+
without a falsifiable hypothesis, a budget the user has actually committed to, and
|
|
37
|
+
a clear kill condition. You read the corpus (Ben Heath, Charlie, Moonlighters,
|
|
38
|
+
Optimizer) but you do not paraphrase blindly — single-speaker claims get flagged
|
|
39
|
+
as lower confidence, and same-speaker counts as one voice.
|
|
40
|
+
|
|
41
|
+
## Your lens on the decision
|
|
42
|
+
|
|
43
|
+
- **Is the hypothesis shape-valid?** Predicted_winner + predicted_metric +
|
|
44
|
+
decision_threshold + kill_condition. If any field is missing or ambiguous, the
|
|
45
|
+
decision is "go back and define it" — not "let's ship something."
|
|
46
|
+
- **Is the budget real or aspirational?** A budget the user hasn't said out loud
|
|
47
|
+
in dollars-per-day is not a budget. `null + ASK_USER_FOR_BUDGET` is the only
|
|
48
|
+
honest answer when you don't know.
|
|
49
|
+
- **Is the cohort decomposable?** A cohort that mixes 3 audiences × 2 placements
|
|
50
|
+
× 5 creatives is not testing a hypothesis — it's a wishlist. Strip to the one
|
|
51
|
+
variable you actually want to learn about.
|
|
52
|
+
- **Are we above the omnipresent-content threshold (~₺30-40K/month)?** If yes,
|
|
53
|
+
refuse to recommend campaign structure until Ben's omnipresent-content video
|
|
54
|
+
has been ingested. This is a hard pre-scale gate, not a nice-to-have.
|
|
55
|
+
- **Snow-globe rule.** No two structural changes within 3 days. If the user
|
|
56
|
+
proposes both a budget scale AND a creative refresh in the same conversation,
|
|
57
|
+
pick one and defer the other.
|
|
58
|
+
|
|
59
|
+
## Anti-patterns you flag immediately
|
|
60
|
+
|
|
61
|
+
- "Let's test our way to the right ICP" — testing without a hypothesis is
|
|
62
|
+
burning budget for variance, not learning.
|
|
63
|
+
- ROAS-based kill triggers on day-1/2 — kill by spend ($1× CPA absolute), not by
|
|
64
|
+
ROAS noise.
|
|
65
|
+
- "Mirror what competitors do" — without a hypothesis about *why* the pattern
|
|
66
|
+
works in your market, mirroring is just monkey-see.
|
|
67
|
+
- Min-budget violations — if cohort daily budget < 1× target CPA, the test will
|
|
68
|
+
never converge.
|
|
69
|
+
|
|
70
|
+
## What you produce
|
|
71
|
+
|
|
72
|
+
A 9-section output: hypothesis (4 fields), audience, placements, creative
|
|
73
|
+
direction, budget (always ASK_USER if unspecified), kill condition, snow-globe
|
|
74
|
+
check, omnipresent-gate check, anti-pattern check.
|
|
75
|
+
|
|
76
|
+
## Be opinionated. Refuse vague briefs. Cite the corpus when you appeal to authority.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Meta Ads Creative Frameworks
|
|
2
|
+
|
|
3
|
+
**Purpose**: External strategic frameworks from practitioners. This file is *project-agnostic* — it describes the frameworks themselves; the calling project supplies its own ICP, offer, language, and worked examples.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. The Angle × Format × Hook Creative Grid (Sam Maxwell, $4.2M ad spend)
|
|
8
|
+
|
|
9
|
+
> "This one creative framework is responsible for almost every winner. 4 angles × 3 formats × 3 hooks = 36 unique creatives from one product."
|
|
10
|
+
|
|
11
|
+
### The grid
|
|
12
|
+
|
|
13
|
+
| Axis | Options | Count |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| **Angle** (what story) | Pain · Transformation · Social Proof · Authority | 4 |
|
|
16
|
+
| **Format** (who/how) | Founder · UGC · Demo | 3 |
|
|
17
|
+
| **Hook** (first 2s) | Question · Stat · Contrarian | 3 |
|
|
18
|
+
|
|
19
|
+
**36 creatives from one product.** Not 36 products. Not 36 pains. Same product, same pain — rotated through every axis.
|
|
20
|
+
|
|
21
|
+
### Why this matters (the diagnostic)
|
|
22
|
+
|
|
23
|
+
If you've shipped 20+ ads and "creative fatigue" hits at low spend, audit which cells of the grid you've actually tested. The common failure is shipping 20 hook variants of the **same** angle × **same** format. Maxwell's diagnosis: *"You're feeding the algorithm the same angles over and over."* That isn't creative fatigue — it's *angle fatigue*.
|
|
24
|
+
|
|
25
|
+
### Diagnostic test: angle fatigue vs algorithmic fatigue
|
|
26
|
+
|
|
27
|
+
Run this before assuming Meta is the problem:
|
|
28
|
+
|
|
29
|
+
1. **Count distinct cells shipped.** Take every ad in the account, tag it `(angle, format, hook)`, and count unique tuples. Deduplicate variants of the same tuple.
|
|
30
|
+
2. **Compare to spend at fatigue.** If fatigue (rising frequency, falling ROAS, plateaued CPL) hit before you exhausted the budget you'd expect for ~12 cells worth of testing, **it is angle fatigue, not algorithmic fatigue**. Meta hasn't run out of buyers — your library has run out of angles.
|
|
31
|
+
3. **The threshold rule:** if you have shipped ≥10 ads inside the same `(angle, format, hook)` cell and none has broken out, **stop adding to that cell.** The next ad must change at least one axis. Adding a 41st variant of Question-Pain-Demo is the waste pattern Maxwell named.
|
|
32
|
+
|
|
33
|
+
This is the most common misdiagnosis in low-budget accounts: operators blame the algorithm for what is actually a coverage problem.
|
|
34
|
+
|
|
35
|
+
### Each axis explained
|
|
36
|
+
|
|
37
|
+
#### Angles (what story)
|
|
38
|
+
|
|
39
|
+
| Angle | What it is |
|
|
40
|
+
|---|---|
|
|
41
|
+
| **Pain** | The problem state. "Here's what's wrong." Easy to write; usually overused. |
|
|
42
|
+
| **Transformation** | Before → After. Life with the product. Concrete, time-bound. |
|
|
43
|
+
| **Social Proof** | Other customers / users / domain experts endorse. Quote cards, testimonial UGC, count-of-users. |
|
|
44
|
+
| **Authority** | Expert / institutional legitimacy. Founder credentials, advisor quote, press mention, parent-brand halo. |
|
|
45
|
+
|
|
46
|
+
If your library is 100% Pain, even one working ad per missing angle multiplies learning.
|
|
47
|
+
|
|
48
|
+
#### Formats (who is on screen / how it's shown)
|
|
49
|
+
|
|
50
|
+
| Format | What it is |
|
|
51
|
+
|---|---|
|
|
52
|
+
| **Founder** | Operator on camera, talking to the customer directly. Selfie-style or studio. Highest-leverage missing format for B2B SaaS sold to small operators. |
|
|
53
|
+
| **UGC** | A real customer (or actor playing one) filming themselves using / describing / complaining about the product domain. Customers trust customers. |
|
|
54
|
+
| **Demo** | Product-centric. Screenshot card, feature grid, screen recording. Easy to produce, plateaus fast. |
|
|
55
|
+
|
|
56
|
+
**Founder format priority:** for founder-led B2B tools, one 20–30s vertical of the founder explaining "Here's what we built and why" is table-stakes. If you've never run one, that's the highest-leverage missing creative regardless of angle/hook expansion.
|
|
57
|
+
|
|
58
|
+
#### Hooks (the first 2 seconds)
|
|
59
|
+
|
|
60
|
+
| Hook | Pattern | Notes |
|
|
61
|
+
|---|---|---|
|
|
62
|
+
| **Question** | Question mark in headline / voiceover | Easy default; often the only hook type a library has. |
|
|
63
|
+
| **Stat** | A specific number that stops the scroll | Low-effort to add — pair a number with an existing Pain angle on Demo format. Unlocks 4 new cells immediately. |
|
|
64
|
+
| **Contrarian** | A statement that violates the default assumption | High-craft; lands hard when right. *"X is not the problem. Y is."* / *"Stop doing X. Do Y instead."* |
|
|
65
|
+
|
|
66
|
+
### Minimum expansion plan (when stuck in one cell)
|
|
67
|
+
|
|
68
|
+
**Trigger:** apply this whenever the diagnostic above flags angle fatigue, OR proactively whenever the cell-coverage count is ≤3 of 36. Before generating the Nth variant inside a single cell, ship at least:
|
|
69
|
+
|
|
70
|
+
1. **1 Founder ad** — operator on camera, 20–30s selfie, pain opener + product reveal + CTA.
|
|
71
|
+
2. **1 UGC ad** — scripted customer monologue, phone-shot aesthetic. Hire a creator if you don't have a real one yet.
|
|
72
|
+
3. **1 Stat hook** — same format you already have, but lead with a number.
|
|
73
|
+
4. **1 Transformation angle** — before/after framing, not pain-only.
|
|
74
|
+
5. **1 Social Proof angle** — testimonial card format.
|
|
75
|
+
|
|
76
|
+
5 new creatives, 5 new cells, first real multi-cell test.
|
|
77
|
+
|
|
78
|
+
### Cadence discipline (from Maxwell)
|
|
79
|
+
|
|
80
|
+
- **Weekly cadence**: Mon/Wed/Fri fixed creative review, no matter what. Solo operators run the same cadence at 10 min/session.
|
|
81
|
+
- **First 5–10 min**: audit what's working over the last 72 hours. Tag each surviving ad's grid cell.
|
|
82
|
+
- **72-hour rule**: any new creative gets 72 hours to show signal before judgment. Day-1 silence is not a kill signal.
|
|
83
|
+
- **"It's not Meta, it's your creative"**: bidding and campaign structure matter, but the real lever is angle diversity.
|
|
84
|
+
|
|
85
|
+
### FB Ad Library spy — three bucket method
|
|
86
|
+
|
|
87
|
+
On each weekly review, pull angle ideas from **three categories of brands**, not one. Same-vertical brands give you the angles you already know. The richer signal comes from buyers-in-common, vertical-different.
|
|
88
|
+
|
|
89
|
+
| Bucket | Definition | What you're looking for |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| **1. Same demographic, different vertical** | Brands targeting your buyer with a non-competing product (e.g., a small-business CRM and a small-business invoicing tool both target solopreneurs). | Pain framings, agitation specificity, ICP language. Your buyer recognizes themselves in their ad → that ad's *callout structure* is portable. |
|
|
92
|
+
| **2. Adjacent vertical, similar buyer journey** | Same buyer-decision shape (considered purchase, monthly subscription, hand-over-a-workflow) in a different industry. | Trust-building structures, founder formats, social proof formats — the journey-shape lessons transfer cleanly. |
|
|
93
|
+
| **3. Same product category, different geography or language** | Direct competitors operating in markets you don't compete in. | Format choices (UGC / founder / demo mix), CTA conventions, hook patterns localized to that market. |
|
|
94
|
+
|
|
95
|
+
**Pick one brand per bucket per review. Three brands × weekly = ~12 inputs/month — enough cross-pollination without becoming a research rabbit hole.**
|
|
96
|
+
|
|
97
|
+
### The waste pattern Maxwell names
|
|
98
|
+
|
|
99
|
+
> "I would just randomly get on a huddle on Slack with my creative director. Randomly send messages when ideas came to mind. We'd throw out any and every type of ad. Hoping and praying."
|
|
100
|
+
|
|
101
|
+
The fix: replace "when I think of a hook" with "which empty grid cell is next."
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## 2. The "On Us" Reciprocity Hack (Max Sturtevant, @wellcopymax)
|
|
106
|
+
|
|
107
|
+
> "Free shipping" → "Shipping on us". Same offer, different psychology. Reframes the offer as generosity, triggers reciprocity.
|
|
108
|
+
|
|
109
|
+
### The mechanism
|
|
110
|
+
|
|
111
|
+
| Phrasing | What the brain does |
|
|
112
|
+
|---|---|
|
|
113
|
+
| "Free shipping" | Feels like a feature. Implies customer must do something (place order) to earn it. Overused, invisible. |
|
|
114
|
+
| "Shipping on us" | Feels like a gift. Brand is *paying out of pocket for me*. Triggers reciprocity — I feel mild social debt to respond. |
|
|
115
|
+
|
|
116
|
+
The two words "on us" reframe the same offer as active generosity instead of passive terms.
|
|
117
|
+
|
|
118
|
+
### Typographic treatment
|
|
119
|
+
|
|
120
|
+
Brands that use this reframe well *italicize* "on us" (or its localized equivalent) to draw the eye to the emotionally loaded phrase:
|
|
121
|
+
|
|
122
|
+
- *"Shipping is **On Us** This Year."*
|
|
123
|
+
- *"Shipping's **On Us**."*
|
|
124
|
+
|
|
125
|
+
The italicization isolates the reciprocity word so the brain registers it as the gift-cue, separate from the rest of the sentence. Apply this in the headline, primary text, and on the CTA button itself when the platform allows formatting. On platforms without italic support (most ad-button text), use ALL CAPS or a different color treatment on the same words.
|
|
126
|
+
|
|
127
|
+
### Where this generalizes
|
|
128
|
+
|
|
129
|
+
The "free X" → "X on us" reframe applies anywhere an offer is currently phrased as a feature:
|
|
130
|
+
|
|
131
|
+
| Feature phrasing | Reciprocity reframe |
|
|
132
|
+
|---|---|
|
|
133
|
+
| `Free 30-day trial` | `First 30 days on us.` |
|
|
134
|
+
| `Free shipping` | `Shipping on us.` |
|
|
135
|
+
| `No setup fee` | `Setup on us.` |
|
|
136
|
+
| `Includes onboarding` | `Onboarding on us.` |
|
|
137
|
+
|
|
138
|
+
**Cultural-language note:** When localizing, look for the language's native word for *gift / hospitality / treat-from-the-host* — that word usually carries warmer reciprocity weight than the literal translation of "free." Examples worth translating into: gift, treat, on the house, our shout. The right word is rarely the dictionary equivalent of "free."
|
|
139
|
+
|
|
140
|
+
### Risk
|
|
141
|
+
|
|
142
|
+
The word "free" is a scan-word people look for on signup pages. Removing it from the CTA could drop click-through even if the psychology is better. **Test in ads first** before changing the signup page CTA.
|
|
143
|
+
|
|
144
|
+
### Where else "on us" framing applies (cross-funnel reciprocity)
|
|
145
|
+
|
|
146
|
+
The reciprocity reframe compounds when applied consistently across every operator-to-customer touchpoint, not just the ad. Each touch reinforces the gift framing the ad started.
|
|
147
|
+
|
|
148
|
+
| Touchpoint | Default phrasing (feature) | Reciprocity reframe |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| Ad CTA | `Try free for 30 days` | `First 30 days on us.` |
|
|
151
|
+
| Confirmation email subject | `Your free account is ready` | `Welcome. First month on us.` |
|
|
152
|
+
| Trial-end reminder | `Your trial expires in 3 days` | `Your free month ends soon. Want to stay?` |
|
|
153
|
+
| Onboarding milestone | `You completed setup!` | `Take it easy this first month. We'll talk later.` |
|
|
154
|
+
| Support reply | `Sure, I can help with that.` | `Of course — that one's on us.` |
|
|
155
|
+
| Receipt for refund | `Your refund has been processed.` | `Refund's on us. No hard feelings.` |
|
|
156
|
+
|
|
157
|
+
**Test ads first** (the CTA is the highest-traffic surface and the cheapest A/B). If ad-level CTR holds or improves with the reframe, propagate to email, in-app, and support touches in that order.
|
|
158
|
+
|
|
159
|
+
**Don't half-do it.** A reciprocity-framed ad that lands the user on a "Free Trial" signup page wastes the priming. The user reads the page in the ad's voice for ~3 seconds — make those 3 seconds match.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## 3. How this file gets used
|
|
164
|
+
|
|
165
|
+
1. **Before writing a new ad concept**: open §1, run the angle-fatigue diagnostic, pick an empty (or under-covered) grid cell. Generate for that cell. Do not generate the Nth variant of the cell you've already tested.
|
|
166
|
+
2. **Before writing CTA / offer copy**: check §2. If the current phrasing is "free / try / test", consider the "on us" reframe — and if you adopt it, propagate the reframe to the signup page, confirmation email, and trial-end reminder so the priming compounds.
|
|
167
|
+
3. **Weekly creative review**: run Maxwell's M/W/F cadence even if solo. 10 min. Audit last 72h. Run §1's three-bucket FB Ad Library spy — one brand per bucket — to seed next week's grid expansion.
|
|
168
|
+
4. **When this file updates**: append, do not rewrite. Add new frameworks as they surface. Source attribution stays in frontmatter or section heading.
|
|
169
|
+
|
|
170
|
+
## 4. What's NOT in here
|
|
171
|
+
|
|
172
|
+
- Calling project's specific cohort data, named ads, ship status, naming system — those live in the calling project, not in this skill.
|
|
173
|
+
- Localized copy rules and language-specific style — operator-supplied.
|
|
174
|
+
- Image generation prompts / asset pipelines — out of scope for this skill.
|
|
175
|
+
|
|
176
|
+
This file is frameworks only. The calling project supplies the application.
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Meta Ads — Mistakes to Avoid"
|
|
3
|
+
source: "External industry report: 'Biggest Meta Advertising Mistakes in 2026' (AppsFlyer, Meta guidance, agency case studies)"
|
|
4
|
+
lane: "cross-lane — applies to all meta-ads sub-domains"
|
|
5
|
+
status: "distilled — cross-referenced with corpus"
|
|
6
|
+
updated: "2026-04-25"
|
|
7
|
+
note: "This file distills an external mistakes report. It is NOT from the video corpus — treat it as an independent signal source. Where it corroborates corpus rules, that is noted. Where it adds net-new signals, those are flagged."
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Meta Ads — Mistakes to Avoid (2026)
|
|
11
|
+
|
|
12
|
+
External report covering the top 12 Meta advertising mistakes, cross-referenced with the corpus. Net-new signals are flagged; corpus corroborations are noted.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Cross-reference index
|
|
17
|
+
|
|
18
|
+
| Mistake | Corpus status | Net-new signals |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| 1. Wrong objective | Corroborates Ben's "performance goal trap" — now 2 sources | 1-day attribution window is Meta's new default (2026) |
|
|
21
|
+
| 2. Incomplete tracking | Corroborates CAPI+pixel Tier 2 rule | event_id deduplication required; 40-60% conversion loss stat; Event Match Quality score |
|
|
22
|
+
| 3. Over-segmented budgets | Corroborates firm rule (consolidate campaigns) | 50 conversions/week threshold to exit learning |
|
|
23
|
+
| 4. Vague audience targeting | Corroborates firm rule (broad targeting) | Nothing new |
|
|
24
|
+
| 5. Churning / frequent edits | Corroborates snow-globe rule | "Duplicate instead of edit" for big changes; 7-day evaluation window |
|
|
25
|
+
| 6. Creative fatigue / weak hooks | Corroborates hook-swap strategy | Frequency >2.5 = fatigue signal; logo-first openers are a top killer |
|
|
26
|
+
| 7. Poor landing page experience | **Net-new — not in corpus** | Full sub-domain gap |
|
|
27
|
+
| 8. No retargeting | **Net-new — not in corpus** | Allocate 20-30% budget to retargeting as standard |
|
|
28
|
+
| 9. Scaling too fast | Partially covered | 20-30% budget increment rule; 50 conversions/week before aggressive scale |
|
|
29
|
+
| 10. Ignoring automation | Corroborates firm rule (let Meta do its thing) | Advantage+ Shopping improved 70% YoY (Meta Q4 2024) |
|
|
30
|
+
| 11. Privacy/compliance | **Net-new — not in corpus** | iOS ATT, GDPR, disapproved ads, account suspension risk |
|
|
31
|
+
| 12. Poor process/governance | **Net-new — not in corpus** | Pre-launch checklist, post-mortem culture |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Firm guardrails (derived from report — adopt immediately)
|
|
36
|
+
|
|
37
|
+
### G1 — Always use the Conversions objective, never Traffic/Clicks for sales campaigns
|
|
38
|
+
|
|
39
|
+
**Rule:** If the goal is purchases or leads, the campaign objective must be Conversions (or Catalog Sales). Using Traffic optimizes for clicks, not buyers — Meta's AI finds clickers, not converters. Metrics look good (low CPC, high CTR) while revenue stays flat.
|
|
40
|
+
|
|
41
|
+
**Corpus note:** This is the external report's corroboration of Ben's single-speaker "performance goal trap" claim (`dAJyqo6wnq4` §8). Two independent sources (Ben + industry report) now agree. Promoting from single-speaker to near-rule.
|
|
42
|
+
|
|
43
|
+
**Pre-publish check:** Confirm optimization event matches the business goal before launching. Conversions → Purchase or Lead. Never Traffic for revenue campaigns.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### G2 — CAPI + pixel deduplication is mandatory, not optional
|
|
48
|
+
|
|
49
|
+
**Rule:** Install both CAPI and pixel. They are not alternatives. Set `event_id` to the same value in both the browser (pixel) and server (CAPI) events so Meta deduplicates them — otherwise conversions are double-counted.
|
|
50
|
+
|
|
51
|
+
**What happens without CAPI:** 40-60% of conversions become invisible to Meta (iOS restrictions, ad blockers, cookie deprecation). Meta's AI optimizes on a fraction of real signal, causing it to target the wrong people.
|
|
52
|
+
|
|
53
|
+
**Event Match Quality:** Send first-party identifiers (email, phone, external_id) alongside events. Higher match quality = better AI optimization. Check the score in Events Manager.
|
|
54
|
+
|
|
55
|
+
**Net-new:** The deduplication requirement (event_id) and the 40-60% loss statistic are not in the video corpus. These are operational requirements, not optional improvements.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### G3 — Minimum 50 conversions/week per adset to exit the learning phase
|
|
60
|
+
|
|
61
|
+
**Rule:** Each adset needs to generate approximately 50 conversion events per week to exit Meta's learning phase and enter stable delivery. Below this threshold, CPMs are erratic and results are unreliable.
|
|
62
|
+
|
|
63
|
+
**Implication:** If your total weekly conversion volume is 50, run one adset. If it's 150, run up to three. Never split budget so thin that no single adset can reach 50 events.
|
|
64
|
+
|
|
65
|
+
**Corpus note:** This metric was implied by "get out of learning" corpus rules (Ben + Charlie) but never quantified. This is a net-new specific number.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### G4 — Duplicate instead of edit for significant changes
|
|
70
|
+
|
|
71
|
+
**Rule:** When a significant structural change is needed (new creative batch, audience change, optimization event change), duplicate the winning adset and make changes in the copy. Do not edit the live adset — editing a live adset resets the learning phase.
|
|
72
|
+
|
|
73
|
+
**Small changes (≤20% budget increase):** Can be made on the live adset without a full reset.
|
|
74
|
+
**Big changes:** Duplicate → make changes → let new copy prove itself → pause original once new copy is stable.
|
|
75
|
+
|
|
76
|
+
**Corpus note:** Corroborates snow-globe rule but adds the duplicate-vs-edit operational procedure, which was not explicit in the corpus.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### G5 — Scale budget by 20-30% increments, not multiples
|
|
81
|
+
|
|
82
|
+
**Rule:** When increasing campaign budget, raise by 20-30% at a time. Wait 3-5 days (snow-globe) before the next increase. Do not 2x or 10x budget in a single move — this forces a learning reset and causes CPA to spike.
|
|
83
|
+
|
|
84
|
+
**Corpus note:** "Start small, scale existing campaigns" was in the corpus (Ben). The 20-30% increment figure is net-new and specific.
|
|
85
|
+
|
|
86
|
+
**Before scaling aggressively:** Confirm the campaign is producing ≥50 conversions/week consistently. Scale before that threshold means scaling a system that hasn't converged.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Net-new sub-domains (not in corpus — gaps to fill)
|
|
91
|
+
|
|
92
|
+
### Landing page alignment (Mistake #7)
|
|
93
|
+
|
|
94
|
+
This is a complete gap in the corpus — no video covered it.
|
|
95
|
+
|
|
96
|
+
**Key points from report:**
|
|
97
|
+
- Mobile load time >3 seconds kills conversions before the user even sees the page
|
|
98
|
+
- The landing page headline must match the ad's promise (if ad says "50% off", the page must say "50% off")
|
|
99
|
+
- One CTA above the fold, no competing actions
|
|
100
|
+
- Test the full conversion funnel end-to-end — many advertisers test ads but not what happens after the click
|
|
101
|
+
|
|
102
|
+
**Status:** Single external source (not yet a firm rule). Worth a corpus video on landing page strategy before promoting.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Retargeting allocation (Mistake #8)
|
|
107
|
+
|
|
108
|
+
This is a gap in the corpus — the corpus videos focused on prospecting structure, not retargeting budget split.
|
|
109
|
+
|
|
110
|
+
**Key points from report:**
|
|
111
|
+
- Standard allocation: ~20-30% of total budget to retargeting (site visitors, cart abandoners, engaged social users, email list)
|
|
112
|
+
- Build retargeting audiences: "viewed video 50%+", "visited product page", "added to cart", "engaged with IG/FB"
|
|
113
|
+
- Lower-funnel retargeting ads should have more direct offers (discount, urgency, direct CTA)
|
|
114
|
+
|
|
115
|
+
**Status:** Single external source. Note in playbook; do not promote to rule until corpus video confirms.
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
### Privacy / compliance (Mistake #11)
|
|
120
|
+
|
|
121
|
+
Completely absent from corpus. High-severity, low-frequency but catastrophic when it hits.
|
|
122
|
+
|
|
123
|
+
**Key points from report:**
|
|
124
|
+
- iOS ATT (App Tracking Transparency): opt-in required; most users opt out; CAPI is the mitigation (server-side, not browser-dependent)
|
|
125
|
+
- iOS 17 Link Tracking Protection: strips UTM parameters from Safari/Mail links; affects attribution
|
|
126
|
+
- Meta policy violations: ads with "miracle health claims", personal attribute targeting ("are you diabetic?"), misleading promotions → account suspension
|
|
127
|
+
- GDPR/CCPA: cookie consent banners required; without them, pixel tracking is illegally blocked in EU/CA
|
|
128
|
+
|
|
129
|
+
**Operator action:** Before any new campaign, review Meta's "Prohibited content" list. Do not reference specific personal attributes in ad copy. If the operator's primary market is outside the EU but the product ships in EU app stores or has EU users, GDPR still applies — wire cookie consent and CAPI server-side regardless of the launch country.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Anti-patterns quick reference
|
|
134
|
+
|
|
135
|
+
| # | Anti-pattern | Correction |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| 1 | Traffic/Clicks objective for revenue campaigns | Switch to Conversions; match event to goal |
|
|
138
|
+
| 2 | Pixel-only tracking (no CAPI) | Install CAPI + deduplicate with event_id |
|
|
139
|
+
| 3 | 15 adsets at $5/day each | 2-3 adsets at $20-50/day; wait for 50 conversions/week |
|
|
140
|
+
| 4 | Editing a live adset for big changes | Duplicate → change → let new copy prove → pause original |
|
|
141
|
+
| 5 | Checking results after 24h and making changes | 7-day evaluation window minimum; 3-5 days between moves |
|
|
142
|
+
| 6 | Logo animation in first 2 seconds of video | Jump directly to hook: problem → product benefit |
|
|
143
|
+
| 7 | 3× budget overnight | 20-30% increments every 3-5 days |
|
|
144
|
+
| 8 | All budget on cold prospecting, zero retargeting | Allocate 20-30% to retargeting audiences |
|
|
145
|
+
| 9 | Ad promise ≠ landing page promise | Match headline/offer between ad and landing page exactly |
|
|
146
|
+
| 10 | Manual interest stacks + manual placements | Advantage+ / broad targeting; let Meta choose |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Open decisions surfaced by this report
|
|
151
|
+
|
|
152
|
+
- **CAPI as launch prerequisite (decision #5):** Report confirms 40-60% conversion loss without CAPI. This strengthens the case for making CAPI a hard pre-launch check.
|
|
153
|
+
- **Landing page as a sub-domain:** Worth adding `§1 pre-launch` checklist to account-ops playbook covering tracking + landing page alignment.
|
|
154
|
+
- **Performance goal trap (decision #3):** Report independently confirms wrong objective is the #1 mistake. Recommend closing this decision: yes, make it a hard pre-publish guard.
|