taketomarket 2.2.0 → 2.3.1
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/.claude-plugin/marketplace.json +13 -17
- package/.claude-plugin/plugin.json +2 -2
- package/README.md +35 -12
- package/bin/lib/campaign.cjs +12 -8
- package/bin/lib/codebase-scan.cjs +86 -0
- package/bin/lib/config.cjs +129 -0
- package/bin/lib/deploy.cjs +36 -0
- package/bin/lib/deviation.cjs +1 -1
- package/bin/lib/drift-log.cjs +4 -4
- package/bin/lib/health.cjs +32 -31
- package/bin/lib/install-detect.cjs +62 -0
- package/bin/lib/legacy-folder.cjs +100 -0
- package/bin/lib/playwright-check.cjs +26 -0
- package/bin/lib/site-location.cjs +22 -0
- package/bin/lib/state.cjs +3 -3
- package/bin/lib/svg-render.cjs +42 -0
- package/bin/ttm-tools.cjs +136 -4
- package/gates/base-gates.md +8 -8
- package/gates/gate-evaluation.md +8 -8
- package/install.js +37 -3
- package/package.json +10 -6
- package/playbooks/aeo.md +218 -114
- package/playbooks/affiliate.md +225 -160
- package/playbooks/email.md +236 -174
- package/playbooks/events.md +303 -213
- package/playbooks/landing-pages.md +309 -0
- package/playbooks/linkedin.md +264 -142
- package/playbooks/manifesto.md +322 -0
- package/playbooks/paid-ads.md +240 -189
- package/playbooks/positioning.md +340 -0
- package/playbooks/pr-media.md +308 -168
- package/playbooks/pseo.md +426 -0
- package/playbooks/seo.md +251 -158
- package/playbooks/social.md +253 -182
- package/playbooks/youtube.md +286 -181
- package/references/brand-color-theory.md +48 -0
- package/references/codex-image-gen-research.md +58 -0
- package/references/context-loading.md +6 -6
- package/references/humanizer-patterns.md +433 -0
- package/references/inline-education-blurbs.md +461 -0
- package/references/landing-page-anatomy.md +65 -0
- package/references/landing-page-headline-examples.md +190 -0
- package/references/linkedin-post-patterns.md +174 -0
- package/references/logo-design-principles.md +55 -0
- package/references/meta-gate-evaluation.md +3 -3
- package/references/obra-superpowers-conventions.md +170 -0
- package/references/playbook-leaders.md +472 -0
- package/references/playwright-mcp-setup.md +164 -0
- package/references/positioning-check-report.md +2 -2
- package/references/pseo-page-anatomy.md +56 -0
- package/references/pseo-templates/alternative-anatomy.md +31 -0
- package/references/pseo-templates/alternative-content-playbook.md +32 -0
- package/references/pseo-templates/blog-anatomy.md +28 -0
- package/references/pseo-templates/blog-content-playbook.md +36 -0
- package/references/pseo-templates/comparison-anatomy.md +29 -0
- package/references/pseo-templates/comparison-content-playbook.md +35 -0
- package/references/pseo-templates/use-case-anatomy.md +28 -0
- package/references/pseo-templates/use-case-content-playbook.md +30 -0
- package/skills/ttm-101/SKILL.md +25 -0
- package/skills/ttm-aeo-check/SKILL.md +17 -12
- package/skills/ttm-affiliate-kit/SKILL.md +5 -0
- package/skills/ttm-archive/SKILL.md +5 -0
- package/skills/ttm-brand-refresh/SKILL.md +5 -0
- package/skills/ttm-brief/SKILL.md +5 -0
- package/skills/ttm-competitor-scan/SKILL.md +5 -0
- package/skills/ttm-deploy/SKILL.md +22 -0
- package/skills/ttm-discover/SKILL.md +17 -0
- package/skills/ttm-email-check/SKILL.md +17 -0
- package/skills/ttm-email-preflight/SKILL.md +17 -11
- package/skills/ttm-fix/SKILL.md +5 -0
- package/skills/ttm-health/SKILL.md +6 -1
- package/skills/ttm-humanize/SKILL.md +33 -0
- package/skills/ttm-icp-refresh/SKILL.md +5 -0
- package/skills/ttm-improve-skill/SKILL.md +18 -0
- package/skills/ttm-init/SKILL.md +10 -3
- package/skills/ttm-keyword-map/SKILL.md +17 -11
- package/skills/ttm-landing/SKILL.md +19 -0
- package/skills/ttm-learn/SKILL.md +5 -0
- package/skills/ttm-linkedin-post/SKILL.md +26 -0
- package/skills/ttm-measure/SKILL.md +5 -0
- package/skills/ttm-new-campaign/SKILL.md +5 -0
- package/skills/ttm-next/SKILL.md +5 -0
- package/skills/ttm-playwright-setup/SKILL.md +18 -0
- package/skills/ttm-positioning-check/SKILL.md +5 -0
- package/skills/ttm-positioning-shift/SKILL.md +5 -0
- package/skills/ttm-produce/SKILL.md +5 -0
- package/skills/ttm-pseo/SKILL.md +26 -0
- package/skills/ttm-repurpose/SKILL.md +5 -0
- package/skills/ttm-request-skill/SKILL.md +18 -0
- package/skills/ttm-research/SKILL.md +18 -6
- package/skills/ttm-resume/SKILL.md +5 -0
- package/skills/ttm-review/SKILL.md +5 -0
- package/skills/ttm-seo/SKILL.md +64 -0
- package/skills/ttm-seo-audit/SKILL.md +17 -12
- package/skills/ttm-ship/SKILL.md +5 -0
- package/skills/ttm-state/SKILL.md +5 -0
- package/skills/ttm-update/SKILL.md +152 -4
- package/skills/ttm-verify/SKILL.md +5 -0
- package/templates/agents-md.md +14 -4
- package/templates/campaign-research.md +6 -6
- package/templates/campaign-state.md +1 -1
- package/templates/claude-md.md +14 -4
- package/templates/linkedin-base-template.md +48 -0
- package/templates/next-step-footer.md +13 -0
- package/templates/production-manifest.json +4 -4
- package/templates/pseo/alternative-cms-schema.json +65 -0
- package/templates/pseo/blog-cms-schema.json +55 -0
- package/templates/pseo/comparison-cms-schema.json +56 -0
- package/templates/pseo/use-case-cms-schema.json +62 -0
- package/templates/reference-files/brand.md +51 -0
- package/templates/reference-files/product-dna.md +73 -0
- package/templates/site-scaffold/app/globals.css +2 -0
- package/templates/site-scaffold/app/layout.tsx +17 -0
- package/templates/site-scaffold/app/page.tsx +33 -0
- package/templates/site-scaffold/app/robots.ts +8 -0
- package/templates/site-scaffold/app/sitemap.ts +10 -0
- package/templates/site-scaffold/app/tokens.css +21 -0
- package/templates/site-scaffold/components/Comparison.tsx +14 -0
- package/templates/site-scaffold/components/Faq.tsx +14 -0
- package/templates/site-scaffold/components/Features.tsx +14 -0
- package/templates/site-scaffold/components/FinalCta.tsx +17 -0
- package/templates/site-scaffold/components/Footer.tsx +12 -0
- package/templates/site-scaffold/components/Hero.tsx +22 -0
- package/templates/site-scaffold/components/HowItWorks.tsx +14 -0
- package/templates/site-scaffold/components/PricingTeaser.tsx +14 -0
- package/templates/site-scaffold/components/Problem.tsx +14 -0
- package/templates/site-scaffold/components/SocialProof.tsx +14 -0
- package/templates/site-scaffold/components/Solution.tsx +14 -0
- package/templates/site-scaffold/components/Testimonials.tsx +14 -0
- package/templates/site-scaffold/components/UseCases.tsx +14 -0
- package/templates/site-scaffold/content/.gitkeep +0 -0
- package/templates/site-scaffold/lib/.gitkeep +0 -0
- package/templates/site-scaffold/next.config.mjs +10 -0
- package/templates/site-scaffold/package.json +25 -0
- package/templates/site-scaffold/postcss.config.mjs +3 -0
- package/templates/site-scaffold/public/llms.txt +9 -0
- package/templates/site-scaffold/tsconfig.json +21 -0
- package/templates/verification-report.md +1 -1
- package/workflows/channel/linkedin-post.md +178 -0
- package/workflows/discipline/affiliate-kit.md +65 -6
- package/workflows/discipline/{email-preflight.md → email-check.md} +39 -4
- package/workflows/discipline/repurpose.md +82 -31
- package/workflows/discipline/{aeo-check.md → seo/aeo.md} +13 -6
- package/workflows/discipline/{seo-audit.md → seo/audit.md} +13 -6
- package/workflows/discipline/{keyword-map.md → seo/keyword-map.md} +13 -6
- package/workflows/education/ttm-101.md +114 -0
- package/workflows/lifecycle/brief-positioning-check.md +1 -1
- package/workflows/lifecycle/brief.md +64 -28
- package/workflows/lifecycle/{research.md → discover.md} +61 -19
- package/workflows/lifecycle/fix.md +72 -37
- package/workflows/lifecycle/humanize.md +280 -0
- package/workflows/lifecycle/learn.md +72 -35
- package/workflows/lifecycle/measure.md +54 -18
- package/workflows/lifecycle/produce.md +88 -37
- package/workflows/lifecycle/review.md +71 -25
- package/workflows/lifecycle/ship.md +62 -18
- package/workflows/lifecycle/verify.md +72 -26
- package/workflows/reference-mgmt/brand-refresh.md +50 -13
- package/workflows/reference-mgmt/competitor-scan.md +51 -15
- package/workflows/reference-mgmt/icp-refresh.md +48 -12
- package/workflows/reference-mgmt/positioning-check.md +55 -20
- package/workflows/reference-mgmt/positioning-shift.md +53 -17
- package/workflows/setup/init-brand-colors.md +75 -0
- package/workflows/setup/init-logo.md +113 -0
- package/workflows/setup/init-product-dna.md +83 -0
- package/workflows/setup/init-questions.md +166 -30
- package/workflows/setup/init-validation.md +22 -0
- package/workflows/setup/init.md +144 -39
- package/workflows/setup/new-campaign.md +48 -12
- package/workflows/site/deploy.md +98 -0
- package/workflows/site/landing.md +156 -0
- package/workflows/site/pseo.md +96 -0
- package/workflows/site/quality-gates.md +88 -0
- package/workflows/utility/archive.md +45 -9
- package/workflows/utility/health.md +77 -3
- package/workflows/utility/improve-skill.md +233 -0
- package/workflows/utility/next.md +38 -2
- package/workflows/utility/playwright-setup.md +128 -0
- package/workflows/utility/request-skill.md +218 -0
- package/workflows/utility/resume.md +40 -3
- package/workflows/utility/state.md +42 -7
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Landing Page Headline Examples — Reference
|
|
2
|
+
|
|
3
|
+
Category-tagged headline pairs demonstrating the Clarity layer (DISC-LANDING-PAGES-01), Specificity over cleverness (DISC-POSITIONING-04, playbook §"Specificity Over Cleverness"), and the Plain-Language Floor rule.
|
|
4
|
+
|
|
5
|
+
Loaded by `/ttm-landing` alongside `playbooks/landing-pages.md` and `references/landing-page-anatomy.md`. Used by `ttm-producer` (production-time calibration of hero H1 / taglines) and `ttm-verify` (gate-evaluation reference for FAIL annotations).
|
|
6
|
+
|
|
7
|
+
**Pattern per entry:** trap → ❌ bad headline → ✅ good headline → why + gate IDs demonstrated.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. SaaS & B2B Platforms — The "Enterprise Buzzword" Trap
|
|
12
|
+
|
|
13
|
+
Trap signature: stacking abstract nouns ("paradigms", "synthesis", "velocity") in place of naming the actual workflow.
|
|
14
|
+
|
|
15
|
+
### Analytics Tool
|
|
16
|
+
|
|
17
|
+
- ❌ "Unlock actionable data paradigms with unified predictive intelligence."
|
|
18
|
+
- ✅ "See exactly where your website visitors click, scroll, and get stuck."
|
|
19
|
+
- **Why bad:** invented category language ("paradigms", "predictive intelligence") with no plain-language floor; visitor cannot name the category. **Why good:** names the literal observed actions (click / scroll / get stuck) the ICP recognizes from their own work.
|
|
20
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01 (clarity), DISC-POSITIONING-04 (specificity), banned-phrase compliance.
|
|
21
|
+
|
|
22
|
+
### CRM / Sales Tool
|
|
23
|
+
|
|
24
|
+
- ❌ "Accelerate pipeline velocity via hyper-personalized touchpoint synthesis."
|
|
25
|
+
- ✅ "Track your sales deals and get reminders to follow up with leads before they go cold."
|
|
26
|
+
- **Why bad:** "pipeline velocity" and "touchpoint synthesis" are seller-internal vocabulary the champion (an AE) does not use about their own day. **Why good:** names the literal jobs (track deals, follow-up reminders, leads going cold) in champion vocabulary.
|
|
27
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (audience-vocabulary check), DISC-POSITIONING-04.
|
|
28
|
+
|
|
29
|
+
### Customer Support Software
|
|
30
|
+
|
|
31
|
+
- ❌ "Orchestrate multi-channel customer success flywheels at scale."
|
|
32
|
+
- ✅ "Manage all your customer emails, chats, and tweets in one shared inbox."
|
|
33
|
+
- **Why bad:** "orchestrate" + "flywheels" + "at scale" stacks 3 banned phrases; no named channel, no named workflow. **Why good:** names the channels explicitly (emails / chats / tweets) and the mechanism (one shared inbox).
|
|
34
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-03 (outcome framing), banned-phrase compliance.
|
|
35
|
+
|
|
36
|
+
### AI Writing Assistant
|
|
37
|
+
|
|
38
|
+
- ❌ "Leverage generative semantic frameworks to amplify content velocity."
|
|
39
|
+
- ✅ "Write high-converting landing pages and ad copy in seconds, not hours."
|
|
40
|
+
- **Why bad:** "leverage" + "generative semantic frameworks" + "content velocity" is internal-to-AI-team vocabulary; no named output type. **Why good:** names the output (landing pages, ad copy) and the contrast (seconds vs hours) the buyer measures themselves on.
|
|
41
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-03 (numeric specificity), DISC-LANDING-PAGES-04 (named alternative = manual writing).
|
|
42
|
+
|
|
43
|
+
### Collaboration Hub
|
|
44
|
+
|
|
45
|
+
- ❌ "The single source of truth for cross-functional alignment and asynchronous operational velocity."
|
|
46
|
+
- ✅ "One central place for your team to share notes, assign tasks, and track project deadlines."
|
|
47
|
+
- **Why bad:** "single source of truth" + "cross-functional alignment" + "operational velocity" = three abstract phrases stacked in one sentence; visitor cannot name what verbs they perform with the tool. **Why good:** names the three verbs (share notes, assign tasks, track deadlines) directly.
|
|
48
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-POSITIONING-04, anti-pattern #10 (stuffing all four layers).
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 2. FinTech & Crypto — The "We Sound Sophisticated" Trap
|
|
53
|
+
|
|
54
|
+
Trap signature: dressing money workflows in latinate / actuarial vocabulary to signal seriousness; loses the founder/finance-team buyer who just wants their books closed.
|
|
55
|
+
|
|
56
|
+
### Accounting Software
|
|
57
|
+
|
|
58
|
+
- ❌ "Streamline fiscal reconciliation and end-to-end ledger mitigation."
|
|
59
|
+
- ✅ "Track your business expenses and send professional invoices that get paid on time."
|
|
60
|
+
- **Why bad:** "fiscal reconciliation" + "ledger mitigation" reads like a CFO compliance memo; SMB owner audience does not use those words. **Why good:** named verbs (track expenses, send invoices) and a named pain (getting paid on time).
|
|
61
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (champion vocabulary check), DISC-POSITIONING-03 (champion vs buyer).
|
|
62
|
+
|
|
63
|
+
### Expense Management App
|
|
64
|
+
|
|
65
|
+
- ❌ "De-risk corporate spend architectures with automated compliance rails."
|
|
66
|
+
- ✅ "Give employees company cards with built-in spending limits so no one blows the budget."
|
|
67
|
+
- **Why bad:** "spend architectures" + "compliance rails" is CFO/audit-firm vocabulary; the practitioner buyer (ops/finance lead) does not describe their problem that way. **Why good:** names the artifact (company cards), the mechanism (built-in limits), and the named-alternative pain (someone blowing the budget).
|
|
68
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-04 (named alternative = the rogue spender), DISC-POSITIONING-03.
|
|
69
|
+
|
|
70
|
+
### Personal Finance Tracker
|
|
71
|
+
|
|
72
|
+
- ❌ "Optimize your holistic capital deployment and micro-budgetary allocations."
|
|
73
|
+
- ✅ "See exactly how much money you have left to spend this month after paying bills."
|
|
74
|
+
- **Why bad:** "capital deployment" is wealth-manager language; consumer audience reads it as "not for me." **Why good:** names the exact moment of decision the user has every month (money left after bills).
|
|
75
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (audience-vocabulary), DISC-LANDING-PAGES-03 (concrete after-state).
|
|
76
|
+
|
|
77
|
+
### Crypto / Web3 Wallet
|
|
78
|
+
|
|
79
|
+
- ❌ "A decentralized non-custodial gateway to cross-chain liquidity aggregation."
|
|
80
|
+
- ✅ "A secure app to store, send, and trade your digital currency without a middleman."
|
|
81
|
+
- **Why bad:** "non-custodial gateway" + "cross-chain liquidity aggregation" is protocol-team vocabulary; the retail wallet buyer does not yet know what those words mean. **Why good:** names the verbs (store / send / trade) and the named alternative (without a middleman) in 12-year-old language.
|
|
82
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01 (plain-language floor), DISC-LANDING-PAGES-04 (named alternative = "middleman" = exchanges/banks).
|
|
83
|
+
|
|
84
|
+
### Payment Processor
|
|
85
|
+
|
|
86
|
+
- ❌ "Frictionless global monetary infrastructure powering the internet economy."
|
|
87
|
+
- ✅ "Accept credit card payments from customers anywhere in the world with a few lines of code."
|
|
88
|
+
- **Why bad:** "global monetary infrastructure" + "internet economy" is press-release talk; the developer integrator buyer needs to know what the SDK does. **Why good:** names the action (accept credit card payments), the scope (anywhere in the world), and the integration cost (a few lines of code).
|
|
89
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (developer audience), DISC-LANDING-PAGES-03 (specific cost).
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 3. DevTools & Cloud Infrastructure — The "Heavy Jargon" Trap
|
|
94
|
+
|
|
95
|
+
Trap signature: stacking distributed-systems vocabulary ("topology", "fabrics", "telemetry matrices") as a substitute for naming the developer pain.
|
|
96
|
+
|
|
97
|
+
### Cloud Hosting Platform
|
|
98
|
+
|
|
99
|
+
- ❌ "Automated containerization topology with edge-optimized elasticity."
|
|
100
|
+
- ✅ "Deploy your code to the web instantly without worrying about configuring servers."
|
|
101
|
+
- **Why bad:** "containerization topology" + "edge-optimized elasticity" is ops-team vocabulary; the application developer buyer wants to forget servers exist. **Why good:** names the action (deploy code), the speed (instantly), and the named-alternative pain (configuring servers).
|
|
102
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-04 (named alternative = traditional ops), DISC-POSITIONING-03 (champion = app developer, not SRE).
|
|
103
|
+
|
|
104
|
+
### Database Service
|
|
105
|
+
|
|
106
|
+
- ❌ "Highly available, horizontally scalable distributed relational data fabrics."
|
|
107
|
+
- ✅ "A database that automatically grows with your app so it never crashes during a traffic spike."
|
|
108
|
+
- **Why bad:** "horizontally scalable distributed relational data fabrics" is four abstract modifiers; the buyer cannot say which problem this solves. **Why good:** names the failure mode (crash during traffic spike) and the mechanism (automatic growth).
|
|
109
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-03 (concrete failure-mode contrast), DISC-LANDING-PAGES-04 (named alternative = manual scaling).
|
|
110
|
+
|
|
111
|
+
### APM / Monitoring Tool
|
|
112
|
+
|
|
113
|
+
- ❌ "End-to-end telemetry and observability matrices for distributed microservices."
|
|
114
|
+
- ✅ "Get alerted the exact second your website goes down or a bug breaks the checkout page."
|
|
115
|
+
- **Why bad:** "telemetry" + "observability matrices" is monitoring-vendor vocabulary; the engineering manager buyer wants to know what they will be paged for. **Why good:** names the trigger (website down / checkout broken) and the named-alternative pain (finding out from a customer).
|
|
116
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (named scenarios), DISC-LANDING-PAGES-03 (concrete outcome).
|
|
117
|
+
|
|
118
|
+
### API Gateway
|
|
119
|
+
|
|
120
|
+
- ❌ "Unify ingress governance and request routing across heterogeneous endpoints."
|
|
121
|
+
- ✅ "A single, secure front door for all your external software tools to talk to your app."
|
|
122
|
+
- **Why bad:** "ingress governance" + "heterogeneous endpoints" is networking-team vocabulary; the application developer audience needs the metaphor. **Why good:** uses the "front door" metaphor (concrete enough to picture) and names the actors (external tools talking to your app).
|
|
123
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01 (plain-language floor — metaphor permitted because it lands instantly), DISC-POSITIONING-04.
|
|
124
|
+
|
|
125
|
+
### No-Code App Builder
|
|
126
|
+
|
|
127
|
+
- ❌ "Democratizing application development through visual programmatic synthesis."
|
|
128
|
+
- ✅ "Build custom mobile apps using a drag-and-drop editor—no coding skills required."
|
|
129
|
+
- **Why bad:** "democratizing" + "visual programmatic synthesis" is investor-deck vocabulary; the non-developer audience reads it as "not for me." **Why good:** names the output (mobile apps), the mechanism (drag-and-drop editor), and the prerequisite (no coding skills).
|
|
130
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (explicit ICP opt-in: non-coders), DISC-LANDING-PAGES-04 (named alternative = traditional coding).
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 4. UX Microcopy & Product UI — The "Engineering Speaks First" Trap
|
|
135
|
+
|
|
136
|
+
Trap signature: surfacing internal error/system vocabulary into end-user-facing strings. Same Clarity-first rule applies to microcopy as to hero H1s — the user reads a string at a moment of friction and must understand it instantly.
|
|
137
|
+
|
|
138
|
+
### File Upload Failure
|
|
139
|
+
|
|
140
|
+
- ❌ "Fatal Exception: Payload exceeds maximum multi-part form allocation threshold."
|
|
141
|
+
- ✅ "This file is too big. Please upload an image smaller than 5MB."
|
|
142
|
+
- **Why bad:** "Fatal Exception" + "multi-part form allocation threshold" is the stack trace bleeding into the UI. **Why good:** names the problem (file too big) and the fix (image smaller than 5MB) in one breath.
|
|
143
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01 (clarity), DISC-POSITIONING-04, anti-pattern #1 (clever-over-clear extended to microcopy).
|
|
144
|
+
|
|
145
|
+
### Account Creation Success
|
|
146
|
+
|
|
147
|
+
- ❌ "Profile provisioning completed. Session tokens have been successfully initialized."
|
|
148
|
+
- ✅ "Your account is ready! Let's set up your profile."
|
|
149
|
+
- **Why bad:** "profile provisioning" + "session tokens" is server-log vocabulary; user has no model for what just happened. **Why good:** confirms the state ("your account is ready") and previews the next action.
|
|
150
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-03 (named next action = outcome).
|
|
151
|
+
|
|
152
|
+
### Session Timeout Notice
|
|
153
|
+
|
|
154
|
+
- ❌ "Security protocol enforcement: Authentication window has elapsed due to zero user interaction inputs."
|
|
155
|
+
- ✅ "You've been logged out due to inactivity to keep your account safe."
|
|
156
|
+
- **Why bad:** "authentication window has elapsed due to zero user interaction inputs" is the security log narrating itself; user only needs to know what happened and why. **Why good:** states the state (logged out), the cause (inactivity), and the why (account safety) in one sentence.
|
|
157
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-03.
|
|
158
|
+
|
|
159
|
+
### Pricing Plan Limit
|
|
160
|
+
|
|
161
|
+
- ❌ "Usage parameters have reached tier capacity. Please upgrade to lift throughput constraints."
|
|
162
|
+
- ✅ "You've used all 5 free projects this month. Upgrade to Pro to create unlimited projects."
|
|
163
|
+
- **Why bad:** "usage parameters" + "tier capacity" + "throughput constraints" hides the actual limit and the actual benefit of upgrading. **Why good:** names the limit ("5 free projects this month") and the unlock ("unlimited projects").
|
|
164
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-03 (named after-state), DISC-LANDING-PAGES-04 (named contrast = free vs Pro).
|
|
165
|
+
|
|
166
|
+
### Search Field Placeholder
|
|
167
|
+
|
|
168
|
+
- ❌ "Execute dynamic query generation against database parameters..."
|
|
169
|
+
- ✅ "Search for orders, invoices, or customer names..."
|
|
170
|
+
- **Why bad:** "execute dynamic query generation" is engineering's description of what the input field does; the user wants to know what they can search. **Why good:** names the searchable entities (orders / invoices / customer names) so the user knows what kinds of queries land hits.
|
|
171
|
+
- **Gates demonstrated:** DISC-LANDING-PAGES-01, DISC-LANDING-PAGES-02 (named entities = audience-recognizable).
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## How to use these examples
|
|
176
|
+
|
|
177
|
+
- **At production time** (`ttm-producer`): when generating a hero H1, compare candidate output to the matched trap-category bad example. If candidate stacks ≥2 abstract nouns from the trap signature, regenerate using the good example's concrete-verb pattern as a calibration anchor.
|
|
178
|
+
- **At verification time** (`ttm-verify`): when annotating a FAIL on DISC-LANDING-PAGES-01 or DISC-POSITIONING-04, cite the closest trap category here and quote the good-side rewrite as the recommendation.
|
|
179
|
+
- **At humanize time** (`/ttm-humanize`): if hero copy survives the gates but still reads like a buzzword stack, run it past the trap-category good example as a tone calibration.
|
|
180
|
+
|
|
181
|
+
## Cross-references
|
|
182
|
+
|
|
183
|
+
- Discipline gates evaluated: `playbooks/landing-pages.md` § Discipline Gates (DISC-LANDING-PAGES-01..06).
|
|
184
|
+
- Positioning gate cross-applied: `playbooks/positioning.md` DISC-POSITIONING-04 (Specificity Over Cleverness).
|
|
185
|
+
- Banned phrases: `workflows/setup/init-validation.md` § Banned Phrases (Global).
|
|
186
|
+
- Operational hero structure: `references/landing-page-anatomy.md` § Hero headline rules.
|
|
187
|
+
|
|
188
|
+
## Sources
|
|
189
|
+
|
|
190
|
+
Examples curated from common SaaS / FinTech / DevTools / UX-microcopy buzzword-trap patterns. Categories adapted from the four traps identified in user-provided source material (May 2026).
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# LinkedIn Post Patterns — Reference
|
|
2
|
+
|
|
3
|
+
**Purpose:** Research-based catalog of LinkedIn writing patterns that engage and convert. Sourced from public creator playbooks (Justin Welsh, Sahil Bloom, Cole Schafer) and recent (2025-2026) engagement studies. Consumed by `/ttm-linkedin-post`.
|
|
4
|
+
|
|
5
|
+
**Stantly note:** The original P5 plan referenced "Stantly" as a LinkedIn ghostwriting / content-automation source. As of 2026-05-18, Stantly is unfindable: `stantly.com` does not resolve, `linkedin.com/company/stantly` returns 404, and no search results match a LinkedIn-focused product or agency by that name. The closest match is **Stan / Stanley** (an AI "Head of Content" for LinkedIn launched by the creator platform Stan in late 2025) — different product. This reference therefore substitutes the Stantly section with documented patterns from creators whose frameworks are public and verifiable. If Stantly resurfaces under a new name and shifts the consensus, regenerate this file via `/ttm-linkedin-post --rebuild-base`.
|
|
6
|
+
|
|
7
|
+
## Why first-line hooks decide everything
|
|
8
|
+
|
|
9
|
+
LinkedIn's mobile feed shows only the first **210-235 characters** before the "see more" truncation. Roughly **60-70% of potential readers churn at that decision point**, so the opening line carries more weight than the rest of the post combined (Justin Welsh: *"The first line is more important than 95% of the rest of the post."*). Every hook pattern below is engineered to clear the "see more" click.
|
|
10
|
+
|
|
11
|
+
## Hook patterns (first line)
|
|
12
|
+
|
|
13
|
+
1. **Confession** — "I made $0 from LinkedIn for 2 years. Here's what changed."
|
|
14
|
+
- Why it works: vulnerability + specific number primes curiosity.
|
|
15
|
+
|
|
16
|
+
2. **Counter-conventional** — "Stop posting daily. Here's what actually works."
|
|
17
|
+
- Why it works: relatable-enemy framing (Welsh): attack the default belief the reader is half-suspecting is wrong.
|
|
18
|
+
|
|
19
|
+
3. **Specific number** — "$47K in 60 days from one LinkedIn post. The breakdown:"
|
|
20
|
+
- Why it works: numbers survive the skim. Vague claims do not.
|
|
21
|
+
|
|
22
|
+
4. **Open loop** — "Most founders get this wrong about pricing."
|
|
23
|
+
- Why it works: triggers the Zeigarnik effect (unresolved tension). Must be paid off in the body — open loops left dangling burn trust.
|
|
24
|
+
|
|
25
|
+
5. **Question** — "Why do 90% of B2B startups fail at LinkedIn?"
|
|
26
|
+
- Why it works: rhetorical pull. Pair with a specific stat or example; bare questions ("Thoughts on AI?") fail.
|
|
27
|
+
|
|
28
|
+
6. **Story start** — "Last year I almost shut down my startup. Then a stranger sent me this:"
|
|
29
|
+
- Why it works: scene + cliffhanger. Story openings outperform meta-commentary roughly 2:1 in Sahil Bloom's tested formats.
|
|
30
|
+
|
|
31
|
+
7. **Welsh's "Relatable Enemy → Flip"** — "The 9-to-5 is getting pummeled. The great resignation is growing faster than ever."
|
|
32
|
+
- Two short lines, opposing emotional charges, set up the body. Template: `The {RelatableEnemy} is {Negativity}. The {Hero} is {StrongPositiveStatement}.`
|
|
33
|
+
|
|
34
|
+
### Hook anti-patterns (do not use)
|
|
35
|
+
|
|
36
|
+
- "Excited to share..." — generic announcement opener; signals nothing.
|
|
37
|
+
- "🚀 Big news!" — emoji-first openings underperform plain text on LinkedIn's 2025 ranking signals.
|
|
38
|
+
- Hooks longer than 12 words — get truncated in feed.
|
|
39
|
+
- Hooks with no concrete noun (number, name, dollar amount, date) — read as filler.
|
|
40
|
+
|
|
41
|
+
## Post structure templates
|
|
42
|
+
|
|
43
|
+
### Template A: Story + Lesson
|
|
44
|
+
1. Hook (specific scene).
|
|
45
|
+
2. Conflict (what went wrong).
|
|
46
|
+
3. Pivot (what changed).
|
|
47
|
+
4. Lesson (transferable insight).
|
|
48
|
+
5. CTA (question or low-friction action).
|
|
49
|
+
|
|
50
|
+
### Template B: List + Context
|
|
51
|
+
1. Hook with the number.
|
|
52
|
+
2. Brief context (1-2 lines).
|
|
53
|
+
3. Numbered list (5-10 items, each 1-3 lines).
|
|
54
|
+
4. Insight or wrap.
|
|
55
|
+
5. CTA.
|
|
56
|
+
|
|
57
|
+
### Template C: Counter-take
|
|
58
|
+
1. State the conventional wisdom.
|
|
59
|
+
2. State your counter-position.
|
|
60
|
+
3. 2-3 reasons.
|
|
61
|
+
4. Caveat (when conventional wisdom IS right) — earns credibility.
|
|
62
|
+
5. CTA.
|
|
63
|
+
|
|
64
|
+
### Template D: Behind-the-scenes
|
|
65
|
+
1. Specific moment (date, place, action).
|
|
66
|
+
2. What you saw / learned.
|
|
67
|
+
3. Why it matters generally.
|
|
68
|
+
4. CTA.
|
|
69
|
+
|
|
70
|
+
### Template E: Welsh's 5-step PAIPS (Problem → Agitate → Intrigue → Positive Future → Solution)
|
|
71
|
+
1. **Problem** — name the reader's pain in their language.
|
|
72
|
+
2. **Agitate** — make the pain present-tense and concrete.
|
|
73
|
+
3. **Intrigue** — hint that a path exists.
|
|
74
|
+
4. **Positive Future** — describe what life looks like on the other side.
|
|
75
|
+
5. **Solution** — your framework / tool / link.
|
|
76
|
+
|
|
77
|
+
Use PAIPS sparingly. It is the "sales letter on LinkedIn" pattern — strong for lead-gen posts, fatiguing if used weekly.
|
|
78
|
+
|
|
79
|
+
## Length norms
|
|
80
|
+
|
|
81
|
+
Two regimes coexist in 2025-2026 LinkedIn data:
|
|
82
|
+
|
|
83
|
+
- **Punch regime (400-900 chars):** crisp hot takes, single-image posts, list teasers. Lower ceiling, higher consistency.
|
|
84
|
+
- **Long regime (1,300-1,900 chars):** stories, breakdowns, frameworks. Higher ceiling, but the post must earn its length — AuthoredUp and Closely's 2025-2026 studies put the engagement peak at **1,300-1,900 characters**, with longer posts (1,301-2,500) generating ~27% higher engagement than sub-400-character posts.
|
|
85
|
+
|
|
86
|
+
Practical defaults:
|
|
87
|
+
- Below 400 chars: only for very crisp opinion drops with one specific claim.
|
|
88
|
+
- 800-1,200 chars: default sweet spot for narrative posts.
|
|
89
|
+
- 1,300-1,900 chars: the "long regime" — only when you have a real list, story, or framework. Don't pad.
|
|
90
|
+
- Above 2,000 chars: rarely. Move it to a newsletter or a carousel.
|
|
91
|
+
|
|
92
|
+
## Formatting
|
|
93
|
+
|
|
94
|
+
- **Line breaks every 1-2 sentences.** Dense paragraphs die on mobile.
|
|
95
|
+
- **No emoji at start of line** unless it's a list bullet. Emoji-led posts underperform plain text in the 2025 algorithm.
|
|
96
|
+
- **Hashtags:** 3-5 max, end of post, niche over broad. `#FounderLife` beats `#Business`.
|
|
97
|
+
- **Mentions (@):** only when relevant. Spammy tagging gets reach-throttled.
|
|
98
|
+
- **No bolding** — LinkedIn doesn't support markdown bold natively (Unicode-bold tricks look like AI tooling and get flagged by readers).
|
|
99
|
+
- **Single image > text-only** by roughly 30% in raw impressions (charts, screenshots, photos). Carousels of 5-7 slides outperform single-image when each slide is readable in 3 seconds.
|
|
100
|
+
|
|
101
|
+
## Engagement levers
|
|
102
|
+
|
|
103
|
+
- **Questions** — invite comments. End-of-post questions get roughly 3x replies vs. declarative endings.
|
|
104
|
+
- **Polls** — high engagement numbers but lower follower-quality reach. Use to surface audience signal, not as a content pillar.
|
|
105
|
+
- **Dwell time matters most.** LinkedIn's 2025-2026 ranking signal weights dwell time (time spent reading the post) over likes. Longer posts that earn the scroll generate more downstream reach than shorter ones with the same like count.
|
|
106
|
+
- **First-hour comments compound.** Reply to early commenters within 30 minutes — replies are weighted heavily by the algorithm.
|
|
107
|
+
- **Engagement pods are dead.** LinkedIn's 2025 algorithm explicitly demotes inauthentic engagement clusters (per multiple platform analyses).
|
|
108
|
+
|
|
109
|
+
## Banned moves (LinkedIn-specific + humanizer overlap)
|
|
110
|
+
|
|
111
|
+
Pair every banned move with the failure mode in parentheses so the model knows *why* to avoid it.
|
|
112
|
+
|
|
113
|
+
- `"What an amazing day at [event]!"` — (no signal; no specific takeaway).
|
|
114
|
+
- `"Just wanted to share…"` — (apologetic; reads as low-conviction).
|
|
115
|
+
- `"Thoughts?"` — (too vague; readers need a specific question to answer).
|
|
116
|
+
- `"🚀 Excited to announce…"` — (generic; pattern-matches to a thousand identical posts).
|
|
117
|
+
- `"What an honor / Humbled to…"` — (humble-brag; reads as performance).
|
|
118
|
+
- Excessive em dashes — (humanizer overlap: `references/humanizer-patterns.md` §14; LLM signature).
|
|
119
|
+
- `"Game-changer"`, `"in this fast-paced world"`, `"incredibly excited"` — (humanizer banned: AI vocabulary tells).
|
|
120
|
+
- `"Let's dive in"`, `"without further ado"` — (humanizer §28: signposting that announces instead of doing).
|
|
121
|
+
- `"At its core"`, `"the real question is"`, `"fundamentally"` — (humanizer §27: persuasive-authority tropes; padded importance).
|
|
122
|
+
- Inline-header lists with bold colons (`**Performance:**`, `**Security:**`) — (humanizer §16: looks like ChatGPT bullet output, not LinkedIn voice).
|
|
123
|
+
- Rule-of-three padding (`innovation, inspiration, and industry insights`) — (humanizer §10: trios as decoration).
|
|
124
|
+
- "Knowledge-cutoff" or hedge phrases (`as of my last update`, `it could be argued`) — (humanizer §21, §24).
|
|
125
|
+
- Curly quotes (`"…"` instead of `"…"`) — (humanizer §19: ChatGPT signature).
|
|
126
|
+
|
|
127
|
+
When in doubt, run the post through `/ttm-humanize` before publishing.
|
|
128
|
+
|
|
129
|
+
## Patterns from public creator playbooks
|
|
130
|
+
|
|
131
|
+
Stantly is unfindable (see top of file), so this section substitutes the documented playbooks below. Each is sourced from the creator's own public material:
|
|
132
|
+
|
|
133
|
+
- **Justin Welsh's "scroll-stopper → flip → gasoline + teaser":** three short lines, opposing emotional charges, ending in a one-word teaser question. Built specifically to clear the 210-character truncation. (Source: justinwelsh.me newsletter, "The Anatomy of a Viral LinkedIn Post".)
|
|
134
|
+
- **Sahil Bloom's universality bias:** write content that applies to the broadest possible sphere of your niche while still signaling identity. Test ideas in comment threads on viral posts first; the comments that get traction become future posts. (Source: growthinreverse.com case study + Bloom's own LinkedIn posts on his writing process.)
|
|
135
|
+
- **Cole Schafer's 20% headline rule:** spend ~20% of total writing time on the first line. Honey Copy's house style treats the headline as the product — the rest of the body exists to deliver on the promise the headline made. (Source: honeycopy.co, coleschafer.com courses.)
|
|
136
|
+
- **PAIPS sequencing (Welsh's 5-step copywriting formula):** Problem → Agitate → Intrigue → Positive Future → Solution. Used in lead-gen posts; do not use as a default narrative template.
|
|
137
|
+
- **The "rehook" on line 2:** the strongest LinkedIn writers do not just hook the first line — they place a second hook on line 2 to defeat readers who reflexively bail at the truncation point. This is in active use by ContentIn, AuthoredUp, and most 2025-2026 LinkedIn writing guides.
|
|
138
|
+
|
|
139
|
+
## Time + cadence
|
|
140
|
+
|
|
141
|
+
- **Best post times (2025-2026 data):** Tuesday and Wednesday, 8-10am in your audience's timezone, with secondary windows at 12-1pm and 3-5pm.
|
|
142
|
+
- **Daily cadence beats weekly** for follower growth; weekly beats sporadic.
|
|
143
|
+
- **3-4 posts per week is the floor** for compounding reach.
|
|
144
|
+
- **Avoid Friday afternoons and weekends** — reach typically drops 30-50% on LinkedIn's professional-feed weighting.
|
|
145
|
+
- **Reply window:** the first 30 minutes after posting are the highest-leverage time for replying to comments. Block the calendar.
|
|
146
|
+
|
|
147
|
+
## How to use this reference
|
|
148
|
+
|
|
149
|
+
The `/ttm-linkedin-post` skill consumes this file when drafting. Workflow:
|
|
150
|
+
|
|
151
|
+
1. Pick a template (A-E) based on the post's intent (story, list, counter-take, BTS, lead-gen).
|
|
152
|
+
2. Draft a hook from the 7 hook patterns.
|
|
153
|
+
3. Draft the body inside the chosen template, respecting length norms.
|
|
154
|
+
4. Self-check against the **Banned moves** list.
|
|
155
|
+
5. Run `/ttm-humanize` to catch LLM tells.
|
|
156
|
+
6. Format check: line breaks every 1-2 sentences, 3-5 niche hashtags at the end, no inline-header bolding.
|
|
157
|
+
|
|
158
|
+
## Sources
|
|
159
|
+
|
|
160
|
+
- Justin Welsh, ["The Anatomy of a Viral LinkedIn Post"](https://www.justinwelsh.me/newsletter/the-anatomy-of-a-viral-linkedin-post) — scroll-stopper / flip / gasoline framework, 210-char rule.
|
|
161
|
+
- Justin Welsh, ["The LinkedIn Operating System"](https://learn.justinwelsh.me/linkedin) — PAIPS copywriting formula, daily cadence, profile-as-foundation.
|
|
162
|
+
- Sahil Bloom, ["Growth In Reverse case study"](https://growthinreverse.com/sahil-bloom/) — universality bias, comment-thread testing, draft-fast-edit-slow.
|
|
163
|
+
- Cole Schafer, [Honey Copy](https://www.honeycopy.co/) and [coleschafer.com/courses/copywriting](https://www.coleschafer.com/courses/copywriting) — 20% headline rule, empathy-storytelling-authenticity stance.
|
|
164
|
+
- Cole Schafer interview on [Marie Forleo](https://www.marieforleo.com/blog/cole-schafer-honey-copy) — "writing for action" vs. "writing for ideas" distinction.
|
|
165
|
+
- AuthoredUp, ["LinkedIn Character Limits 2026: All Limits + Best Post Length Data"](https://authoredup.com/blog/linkedin-character-limit) — 1,300-1,900 char engagement peak; 372,126-post dataset (Sep 2025 - Feb 2026).
|
|
166
|
+
- ConnectSafely.ai, ["Best LinkedIn Post Length for Engagement 2026"](https://connectsafely.ai/articles/ideal-linkedin-post-length-engagement-guide-2026) — 47% engagement lift for 1,300-1,900 char posts.
|
|
167
|
+
- Closely, ["LinkedIn Algorithm 2025: Post at These Exact Times"](https://blog.closelyhq.com/linkedin-algorithm-2025-post-at-these-exact-times-10x-reach/) — best-times-to-post 2025 data, mobile-feed truncation.
|
|
168
|
+
- Meet-Lea, ["LinkedIn Algorithm Explained 2026: Dwell Time, Comments"](https://meet-lea.com/en/blog/linkedin-algorithm-explained) — dwell-time weighting, first-hour comment leverage.
|
|
169
|
+
- DEV Community / Synergist Digital, ["LinkedIn's Algorithm in 2025: Why Engagement Pods Are Dead"](https://dev.to/synergistdigitalmedia/linkedins-algorithm-in-2025-why-engagement-pods-are-dead-and-what-works-now-1f6h) — algorithmic demotion of inauthentic engagement clusters.
|
|
170
|
+
- Aditya Mallah, ["I Analyzed 1000+ Viral LinkedIn Posts"](https://adityamallahofficial.medium.com/i-analyzed-1000-viral-linkedin-posts-heres-the-prompt-pattern-they-all-share-37267e38d495) — hook-visibility (first 3 lines), readability lift from line breaks.
|
|
171
|
+
- BriefGlance, ["Stan Launches AI 'Stanley' to Automate Your LinkedIn Success"](https://briefglance.com/articles/stan-launches-ai-stanley-to-automate-your-linkedin-success) — context for Stan/Stanley, the product likely confused with "Stantly" in source plan.
|
|
172
|
+
- `references/humanizer-patterns.md` — overlapping banned-phrase catalog (AI vocabulary, em-dash overuse, signposting, persuasive-authority tropes, rule-of-three padding, curly quotes).
|
|
173
|
+
|
|
174
|
+
**Stantly URL audit (2026-05-18):** `stantly.com` returned ECONNREFUSED. `linkedin.com/company/stantly` returned HTTP 404. No web-search results match a LinkedIn-focused product or agency named "Stantly." If you find a current source, file an issue and regenerate this file with `/ttm-linkedin-post --rebuild-base`.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Logo Design Principles - Reference
|
|
2
|
+
|
|
3
|
+
**Purpose:** Knowledge base consumed by `/ttm-init` logo flow. Captures what makes a logo work for a SaaS brand and a developerneur audience.
|
|
4
|
+
|
|
5
|
+
## Logo types
|
|
6
|
+
|
|
7
|
+
- **Wordmark** - brand name in distinctive typography. Best for short, distinctive names (Stripe, Vercel, Linear).
|
|
8
|
+
- **Lettermark** - initials only. Works when name is long (IBM, NASA).
|
|
9
|
+
- **Symbol/icon** - abstract mark. Hard to do well; requires brand recognition to read.
|
|
10
|
+
- **Combination mark** - wordmark + symbol together. Most flexible.
|
|
11
|
+
|
|
12
|
+
**Recommendation default for developerneurs:** start with wordmark or combination mark. Symbol-only logos require brand equity you don't have yet.
|
|
13
|
+
|
|
14
|
+
## Principles
|
|
15
|
+
|
|
16
|
+
1. **Scalable** - readable at 16x16 favicon and on a billboard.
|
|
17
|
+
2. **Monochrome-safe** - works in single color when printed/embossed/etched.
|
|
18
|
+
3. **Distinctive** - passes the "if I removed the name, would you recognize it?" test.
|
|
19
|
+
4. **Memorable** - simple enough to redraw from memory.
|
|
20
|
+
5. **Versatile** - works on light, dark, and image backgrounds.
|
|
21
|
+
6. **Era-resistant** - avoid trendy fads (gradients, 3D bevels, fake metallic).
|
|
22
|
+
|
|
23
|
+
## Anti-patterns
|
|
24
|
+
- Generic "tech wing" or "abstract orbit" shapes (template-derived).
|
|
25
|
+
- Three offset circles. Everyone does this.
|
|
26
|
+
- Cliche motifs: lightbulb (idea), gear (tech), brain (smart), rocket (launch). Used to death.
|
|
27
|
+
- Heavy gradients unless they're load-bearing brand-recognition (rare).
|
|
28
|
+
- Drop shadows.
|
|
29
|
+
|
|
30
|
+
## Format checklist
|
|
31
|
+
For each finished logo, produce:
|
|
32
|
+
- `logo.svg` - vector primary.
|
|
33
|
+
- `logo-mark.svg` - symbol only (if a combination mark).
|
|
34
|
+
- `logo-wordmark.svg` - text only (if a combination mark).
|
|
35
|
+
- `logo-mono-light.svg` - single-color version for light bg.
|
|
36
|
+
- `logo-mono-dark.svg` - single-color version for dark bg.
|
|
37
|
+
- `logo-favicon.svg` - 32x32 simplified.
|
|
38
|
+
- `logo@1x.png`, `logo@2x.png` - raster fallbacks (for runtimes/embeds that don't support SVG).
|
|
39
|
+
|
|
40
|
+
## Vision-review checklist (what the AI evaluates)
|
|
41
|
+
1. **Legibility at small size** - render at 32x32, can you still tell what it is?
|
|
42
|
+
2. **Composition balance** - visual weight is even, not pulling left/right.
|
|
43
|
+
3. **Mark + wordmark spacing** - wordmark not crammed against the mark.
|
|
44
|
+
4. **Typography choice** - distinct enough; not Helvetica unless deliberately neutral.
|
|
45
|
+
5. **Color matches palette** - primary color from BRAND.md, not a one-off hue.
|
|
46
|
+
6. **Originality vs cliche** - is this Generic Startup Logo #427 or genuinely distinct?
|
|
47
|
+
|
|
48
|
+
## Sources
|
|
49
|
+
- Logo Design Love by David Airey - blog and book covering identity design fundamentals, including scalability, simplicity, and mark durability. https://www.logodesignlove.com
|
|
50
|
+
- Brand New (UnderConsideration) - daily critique of corporate identity work; strong signal for what is overused vs. genuinely fresh. https://www.underconsideration.com/brandnew
|
|
51
|
+
- Sagi Haviv (Chermayeff & Geismar Haviv) - interviews and talks on logo design longevity; key insight: the best logos work because they are simple enough to survive context change. https://www.cgstudionyc.com
|
|
52
|
+
- Lyft brand evolution case study (2019 refresh) - Lyft Design team articles on Medium documenting the shift from gradient-heavy to a bolder, simpler mark. https://design.lyft.com
|
|
53
|
+
- Mailchimp brand evolution case study (2018 refresh) - Collins agency case study on stripping back a mascot-driven identity into a flexible modern system. https://www.wearecollins.com/work/mailchimp
|
|
54
|
+
- Vercel design system - real-world wordmark example for developer tools; demonstrates how restraint and monochrome-first thinking work for a technical audience. https://vercel.com/design
|
|
55
|
+
- Linear brand guidelines - example of a restrained mark + wordmark combination that reads well for SaaS; minimal, geometric, scalable. https://linear.app/brand
|
|
@@ -12,7 +12,7 @@ Meta-gates operate at the **portfolio level**, not on individual assets. They ev
|
|
|
12
12
|
node ${CLAUDE_PLUGIN_ROOT}/bin/ttm-tools.cjs campaign list --raw
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Additional data sources: `.
|
|
15
|
+
Additional data sources: `.taketomarket/CALENDAR.md`, `.taketomarket/CAMPAIGNS/<slug>/BRIEF.md`
|
|
16
16
|
|
|
17
17
|
## Structured Output Format
|
|
18
18
|
|
|
@@ -67,7 +67,7 @@ Count the distinct channels used across all active campaigns.
|
|
|
67
67
|
|
|
68
68
|
**Tier:** 2 (Advisory)
|
|
69
69
|
|
|
70
|
-
**Data source:** `campaign list --raw` output + `.
|
|
70
|
+
**Data source:** `campaign list --raw` output + `.taketomarket/CALENDAR.md` + each campaign's BRIEF.md (launch date, audience segment)
|
|
71
71
|
|
|
72
72
|
### Evaluation Criteria
|
|
73
73
|
|
|
@@ -101,7 +101,7 @@ Compare target audience segments across campaigns launching in the same 2-week w
|
|
|
101
101
|
|
|
102
102
|
**Tier:** 2 (Advisory)
|
|
103
103
|
|
|
104
|
-
**Data source:** `.
|
|
104
|
+
**Data source:** `.taketomarket/CALENDAR.md` (quarterly theme section) + each campaign's BRIEF.md
|
|
105
105
|
|
|
106
106
|
### Evaluation Criteria
|
|
107
107
|
|