@sellable/mcp 0.1.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.
Files changed (200) hide show
  1. package/.claude-plugin/plugin.json +12 -0
  2. package/.mcp.json +9 -0
  3. package/README.md +355 -0
  4. package/dist/api.d.ts +21 -0
  5. package/dist/api.js +73 -0
  6. package/dist/auth.d.ts +60 -0
  7. package/dist/auth.js +246 -0
  8. package/dist/engage-memory.d.ts +63 -0
  9. package/dist/engage-memory.js +354 -0
  10. package/dist/index-dev.d.ts +2 -0
  11. package/dist/index-dev.js +17 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.js +8 -0
  14. package/dist/server.d.ts +1 -0
  15. package/dist/server.js +499 -0
  16. package/dist/skills.d.ts +11 -0
  17. package/dist/skills.js +97 -0
  18. package/dist/tools/auth.d.ts +30 -0
  19. package/dist/tools/auth.js +124 -0
  20. package/dist/tools/blueprint-commit.d.ts +174 -0
  21. package/dist/tools/blueprint-commit.js +286 -0
  22. package/dist/tools/bootstrap.d.ts +64 -0
  23. package/dist/tools/bootstrap.js +246 -0
  24. package/dist/tools/campaigns.d.ts +589 -0
  25. package/dist/tools/campaigns.js +892 -0
  26. package/dist/tools/cells.d.ts +58 -0
  27. package/dist/tools/cells.js +48 -0
  28. package/dist/tools/context.d.ts +88 -0
  29. package/dist/tools/context.js +271 -0
  30. package/dist/tools/csv-domains.d.ts +73 -0
  31. package/dist/tools/csv-domains.js +464 -0
  32. package/dist/tools/csv-linkedin.d.ts +102 -0
  33. package/dist/tools/csv-linkedin.js +712 -0
  34. package/dist/tools/direct-campaigns.d.ts +240 -0
  35. package/dist/tools/direct-campaigns.js +250 -0
  36. package/dist/tools/engage-bootstrap.d.ts +94 -0
  37. package/dist/tools/engage-bootstrap.js +205 -0
  38. package/dist/tools/engage-discovery.d.ts +78 -0
  39. package/dist/tools/engage-discovery.js +150 -0
  40. package/dist/tools/engage-memory.d.ts +181 -0
  41. package/dist/tools/engage-memory.js +143 -0
  42. package/dist/tools/engage-state.d.ts +72 -0
  43. package/dist/tools/engage-state.js +62 -0
  44. package/dist/tools/enrichment.d.ts +167 -0
  45. package/dist/tools/enrichment.js +174 -0
  46. package/dist/tools/flow-preflight.d.ts +68 -0
  47. package/dist/tools/flow-preflight.js +138 -0
  48. package/dist/tools/framework.d.ts +44 -0
  49. package/dist/tools/framework.js +153 -0
  50. package/dist/tools/interaction-mode.d.ts +27 -0
  51. package/dist/tools/interaction-mode.js +102 -0
  52. package/dist/tools/leads.d.ts +2417 -0
  53. package/dist/tools/leads.js +2307 -0
  54. package/dist/tools/linkedin.d.ts +210 -0
  55. package/dist/tools/linkedin.js +229 -0
  56. package/dist/tools/navigation.d.ts +91 -0
  57. package/dist/tools/navigation.js +381 -0
  58. package/dist/tools/one-off.d.ts +229 -0
  59. package/dist/tools/one-off.js +273 -0
  60. package/dist/tools/processing.d.ts +70 -0
  61. package/dist/tools/processing.js +56 -0
  62. package/dist/tools/prompts.d.ts +211 -0
  63. package/dist/tools/prompts.js +210 -0
  64. package/dist/tools/provider-preflight.d.ts +21 -0
  65. package/dist/tools/provider-preflight.js +59 -0
  66. package/dist/tools/readiness.d.ts +261 -0
  67. package/dist/tools/readiness.js +510 -0
  68. package/dist/tools/rows.d.ts +126 -0
  69. package/dist/tools/rows.js +105 -0
  70. package/dist/tools/rubrics.d.ts +497 -0
  71. package/dist/tools/rubrics.js +681 -0
  72. package/dist/tools/senders.d.ts +44 -0
  73. package/dist/tools/senders.js +69 -0
  74. package/dist/tools/sequencer.d.ts +127 -0
  75. package/dist/tools/sequencer.js +194 -0
  76. package/dist/tools/tables.d.ts +35 -0
  77. package/dist/tools/tables.js +36 -0
  78. package/dist/tools/verify-row.d.ts +36 -0
  79. package/dist/tools/verify-row.js +38 -0
  80. package/dist/tools/workspaces.d.ts +140 -0
  81. package/dist/tools/workspaces.js +139 -0
  82. package/dist/utils/workspace-root.d.ts +1 -0
  83. package/dist/utils/workspace-root.js +39 -0
  84. package/package.json +46 -0
  85. package/skills/building-gtm-tables/SKILL.md +216 -0
  86. package/skills/building-gtm-tables/core/auto-execute.yaml +19 -0
  87. package/skills/building-gtm-tables/core/blueprint-schema.json +72 -0
  88. package/skills/building-gtm-tables/references/brief-to-blueprint.md +334 -0
  89. package/skills/building-gtm-tables/references/column-type-catalog.md +318 -0
  90. package/skills/building-gtm-tables/references/common-blueprints.fixtures.ts +199 -0
  91. package/skills/building-gtm-tables/references/common-blueprints.md +44 -0
  92. package/skills/building-gtm-tables/references/failure-taxonomy.md +197 -0
  93. package/skills/building-gtm-tables/references/uat-seed-prompts.md +37 -0
  94. package/skills/building-gtm-tables/references/verify-loop.md +74 -0
  95. package/skills/campaign-messages/SKILL.md +173 -0
  96. package/skills/campaign-messages/flow.v1.json +75 -0
  97. package/skills/craft-message/SKILL.md +401 -0
  98. package/skills/create-campaign/ARCHITECTURE.md +232 -0
  99. package/skills/create-campaign/DISCUSS.md +296 -0
  100. package/skills/create-campaign/FLOW_ASCII.md +240 -0
  101. package/skills/create-campaign/HOST-PARITY-CHECKLIST.md +49 -0
  102. package/skills/create-campaign/README.md +142 -0
  103. package/skills/create-campaign/SKILL.md +286 -0
  104. package/skills/create-campaign/context/README.md +67 -0
  105. package/skills/create-campaign/context/_TEMPLATE.md +12 -0
  106. package/skills/create-campaign/context/context.md +35 -0
  107. package/skills/create-campaign/context/learnings.md +16 -0
  108. package/skills/create-campaign/context/registry.json +19 -0
  109. package/skills/create-campaign/core/flow.v1.json +217 -0
  110. package/skills/create-campaign/core/policy.md +191 -0
  111. package/skills/create-campaign/core/providers/apollo.json +35 -0
  112. package/skills/create-campaign/core/providers/prospeo.json +34 -0
  113. package/skills/create-campaign/core/providers/registry.json +31 -0
  114. package/skills/create-campaign/core/providers/sales-nav.json +37 -0
  115. package/skills/create-campaign/core/providers/signal-discovery.json +42 -0
  116. package/skills/create-campaign/references/brief-template.md +64 -0
  117. package/skills/create-campaign/references/campaign-quality.md +84 -0
  118. package/skills/create-campaign/references/copy-calibration-examples.md +120 -0
  119. package/skills/create-campaign/references/offer-patterns.md +108 -0
  120. package/skills/create-campaign/references/provider-selection-strategy.md +212 -0
  121. package/skills/create-campaign/references/question-examples.md +167 -0
  122. package/skills/create-campaign/references/token-fill-examples.md +81 -0
  123. package/skills/create-campaign-brief/ARCHITECTURE.md +72 -0
  124. package/skills/create-campaign-brief/DISCUSS.md +64 -0
  125. package/skills/create-campaign-brief/README.md +176 -0
  126. package/skills/create-campaign-brief/SKILL.md +537 -0
  127. package/skills/create-campaign-brief/references/brief-synthesis-rules.md +100 -0
  128. package/skills/create-campaign-brief/references/brief-template.md +220 -0
  129. package/skills/create-campaign-brief/references/campaign-idea-options.md +30 -0
  130. package/skills/create-campaign-brief/references/copy-appendix-template.md +62 -0
  131. package/skills/create-campaign-brief/references/draft-lifecycle.md +23 -0
  132. package/skills/create-campaign-brief/references/examples/MANIFEST.json +89 -0
  133. package/skills/create-campaign-brief/references/examples/briefs/clover.md +223 -0
  134. package/skills/create-campaign-brief/references/examples/briefs/galley.md +222 -0
  135. package/skills/create-campaign-brief/references/examples/briefs/gelee.md +220 -0
  136. package/skills/create-campaign-brief/references/examples/briefs/hey-digital.md +234 -0
  137. package/skills/create-campaign-brief/references/examples/briefs/persona.md +231 -0
  138. package/skills/create-campaign-brief/references/examples/briefs/revvix.md +220 -0
  139. package/skills/create-campaign-brief/references/examples/briefs/sellable-dev.md +220 -0
  140. package/skills/create-campaign-brief/references/examples/briefs/superposition.md +233 -0
  141. package/skills/create-campaign-brief/references/examples/briefs/superpower.md +219 -0
  142. package/skills/create-campaign-brief/references/examples/briefs/westpark-villas.md +220 -0
  143. package/skills/create-campaign-brief/references/icp-lock-question-bank.md +43 -0
  144. package/skills/create-campaign-brief/references/messaging-inputs.md +58 -0
  145. package/skills/create-campaign-brief/references/output-acceptance-rubric.md +62 -0
  146. package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +248 -0
  147. package/skills/create-campaign-brief/references/phase75-canonical-brief-template.md +319 -0
  148. package/skills/create-campaign-brief/references/phase75-good-brief-and-messaging-examples.md +445 -0
  149. package/skills/create-campaign-brief/references/quick-research-protocol.md +39 -0
  150. package/skills/create-campaign-brief/references/reference-sheet-protocol.md +60 -0
  151. package/skills/create-campaign-brief/references/zero-shot-iteration-rules.md +66 -0
  152. package/skills/create-campaign-v2/SKILL.md +1619 -0
  153. package/skills/create-campaign-v2/core/auto-execute.README.md +219 -0
  154. package/skills/create-campaign-v2/core/auto-execute.yaml +121 -0
  155. package/skills/create-campaign-v2/core/flow.v2.json +1643 -0
  156. package/skills/create-campaign-v2/core/policy.md +82 -0
  157. package/skills/create-campaign-v2/references/ai-tells.md +253 -0
  158. package/skills/create-campaign-v2/references/approval-gate-framing.md +346 -0
  159. package/skills/create-campaign-v2/references/draft-lifecycle.md +110 -0
  160. package/skills/create-campaign-v2/references/escalation-ladder.md +119 -0
  161. package/skills/create-campaign-v2/references/filter-leads.md +495 -0
  162. package/skills/create-campaign-v2/references/final-handoff-contract.md +176 -0
  163. package/skills/create-campaign-v2/references/gold-standard-message-examples.md +394 -0
  164. package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +314 -0
  165. package/skills/create-campaign-v2/references/gold-standard-message-validation-example.md +212 -0
  166. package/skills/create-campaign-v2/references/lead-validation-preview.md +172 -0
  167. package/skills/create-campaign-v2/references/parallel-critique-protocol.md +368 -0
  168. package/skills/create-campaign-v2/references/sample-validation-loop.md +289 -0
  169. package/skills/create-campaign-v2/references/step-13-import-leads.md +151 -0
  170. package/skills/create-campaign-v2/references/step-15-re-cascade.md +90 -0
  171. package/skills/create-campaign-v2/references/thomas-revision-filters.md +521 -0
  172. package/skills/create-campaign-v2/references/thomas-variant-selection.md +202 -0
  173. package/skills/create-campaign-v2/references/tier-routing-matrix.md +66 -0
  174. package/skills/create-campaign-v2/references/validation-criteria.md +367 -0
  175. package/skills/create-campaign-v2/references/watch-link-handoff.md +106 -0
  176. package/skills/create-campaign-v2-validation/SKILL.md +296 -0
  177. package/skills/create-post/SKILL.md +1308 -0
  178. package/skills/create-rubric/SKILL.md +251 -0
  179. package/skills/engage/SKILL.md +549 -0
  180. package/skills/engage/core/README.md +23 -0
  181. package/skills/engage/core/proven-searches.json +11 -0
  182. package/skills/engage/core/style-guide.template.md +47 -0
  183. package/skills/engage/core/tracked-people.json +10 -0
  184. package/skills/enrich-prospects/SKILL.md +97 -0
  185. package/skills/find-leads/SKILL.md +467 -0
  186. package/skills/generate-messages/SKILL.md +2361 -0
  187. package/skills/interview/SKILL.md +132 -0
  188. package/skills/interview/core/ENGAGE_STYLE_GUIDE.template.md +54 -0
  189. package/skills/interview/core/ICP.template.md +54 -0
  190. package/skills/interview/core/VOICE_PROFILE.template.md +101 -0
  191. package/skills/providers/apollo.md +520 -0
  192. package/skills/providers/prospeo.md +398 -0
  193. package/skills/providers/sales-nav.md +372 -0
  194. package/skills/providers/signal-discovery.md +495 -0
  195. package/skills/research/SKILL.md +258 -0
  196. package/skills/research/config.json +9 -0
  197. package/skills/research/override.md +13 -0
  198. package/skills/research-prospect/SKILL.md +99 -0
  199. package/skills/research-sender/SKILL.md +158 -0
  200. package/skills/workflow-sequences/SKILL.md +85 -0
@@ -0,0 +1,394 @@
1
+ # Gold-Standard Message Examples
2
+
3
+ These are the archive winners. Treat them as the **quality bar and motion
4
+ reference**, not a paste source. Your job is to write a new message that could
5
+ plausibly belong in this archive for the motion you're validating — not to
6
+ recolor an existing one.
7
+
8
+ When to preserve word-for-word:
9
+
10
+ - the archived winner is the **same company** you're drafting for (e.g.,
11
+ Superposition drafting for Superposition). Keep casing, spacing, CTA shape,
12
+ and proof ordering; swap only documented tokens.
13
+
14
+ Every other case: match the quality bar, match the motion's skeleton (opener
15
+ rhythm, proof placement, CTA tone), but write the sentences fresh from the
16
+ validated brief + sample.
17
+
18
+ Each example ends with a **Proof ranks used** line so retrieval can line up
19
+ with the proof inventory in `gold-standard-message-patterns.md`.
20
+
21
+ Do not put active validation fixtures in this file as exact company-specific
22
+ examples. The library should teach transferable winning motions, not leak the
23
+ fixture answer into Phase 84.
24
+
25
+ ## Example 1: Revvix / Spektion Event-Led Security
26
+
27
+ Use when the brief has:
28
+
29
+ - a real security event
30
+ - booth or logistics detail
31
+ - a low-pressure coffee / demo ask
32
+
33
+ Template shape:
34
+
35
+ ```text
36
+ Subject: RSAC next week
37
+
38
+ Hey {{first_name}},
39
+
40
+ So I noticed you'll be at RSAC and wanted to reach out before the week gets crazy.
41
+
42
+ Most {{team_type}} we chat with are sending thousands of "critical" CVEs to IT, and it's getting harder to prioritize the ones that matter most.
43
+
44
+ We show what's actually exploitable on your endpoints based on runtime activity, including AI tools that scanners might miss.
45
+
46
+ We'll be at the Spektion booth ESE #7 all week, happy to grab a coffee or just say hi.
47
+
48
+ Let me know if this sounds interesting.
49
+ ```
50
+
51
+ Why it works:
52
+
53
+ - concrete, time-bound trigger first
54
+ - one pain statement
55
+ - one mechanism
56
+ - one low-pressure event CTA
57
+ - no extra proof laundry list
58
+
59
+ **Proof ranks used:** rank 1 (mechanism — "actually exploitable on endpoints based on runtime activity"). Event hook carries relevance; proof is intentionally light.
60
+
61
+ If the brief has an event motion but the lead sample does not validate attendee
62
+ proof, do not fake the event hook. Borrow the brevity and single-pain structure
63
+ instead of the explicit event claim.
64
+
65
+ Preferred non-attendee variant:
66
+
67
+ ```text
68
+ Subject: RSAC next week
69
+
70
+ Hey {{first_name}},
71
+
72
+ RSAC is next week so reaching out before things get hectic.
73
+
74
+ Most {{team_type}} we chat with are sending thousands of "critical" CVEs to IT, and it's getting harder to prioritize the ones that matter most.
75
+
76
+ We show what's actually exploitable on your endpoints based on runtime activity, including AI tools that scanners might miss.
77
+
78
+ Happy to grab a coffee at the Spektion booth or send a short overview first.
79
+ ```
80
+
81
+ ## Example 2: Stack-Replacement Operator Diagnostic
82
+
83
+ Use when the brief has:
84
+
85
+ - HubSpot / Salesforce / form-routing workflow pain
86
+ - inbound or paid traffic leakage
87
+ - a lightweight overlay / no-migration promise
88
+ - credible social proof, backing, founder-proof, or a concrete diagnostic that
89
+ is strong enough to make the buyer care
90
+
91
+ Preferred expanded InMail shape:
92
+
93
+ ```text
94
+ Curious how you're handling the current stack between HubSpot/Salesforce, form routing, scheduling, and follow-up today. Most teams end up duct-taping 3-4 tools together and good leads die somewhere in that handoff.
95
+
96
+ [Product] replaces that whole chain with one lightweight AI layer. Capture, qualify, route, and book without asking the team to rip out the CRM.
97
+
98
+ [Use the strongest true thing available from the brief here: a named customer
99
+ result, a concrete diagnostic, a founder/builder credibility point, a proof
100
+ asset, or a specific offer. Do not add a PS just because the template has one.]
101
+ ```
102
+
103
+ Why it works:
104
+
105
+ - names the exact workflow/tool
106
+ - names the current stack, not just the abstract category
107
+ - says what is wrong with the stack in buyer-language terms
108
+ - identifies the loss clearly
109
+ - positions the product as a lightweight fix
110
+ - uses the strongest true proof or offer available, wherever it belongs
111
+ - sounds like one operator typed it, not like a framework assembled it
112
+
113
+ **Proof ranks used:** rank 1 (mechanism — "lightweight overlay / AI layer
114
+ replacing the stack") in body, then the strongest safe proof available from the
115
+ brief. Do not reserve proof for a PS by default. If the strongest proof is a
116
+ customer result, it can sit in the body. If the strongest asset is a teardown,
117
+ audit, report, video, or diagnostic, it should usually become the CTA. If the
118
+ strongest credibility is founder/backing/prior-company proof, a short PS can
119
+ work, but only when it makes the message more believable instead of more
120
+ templated.
121
+
122
+ **This is also the default proof-led specialist fallback exemplar.** When the
123
+ brief has no event, no active signal, and no hiring hook, default to this
124
+ decision process even if the category isn't stack-replacement: observed
125
+ current-state → what breaks → product-name-first mechanism → strongest true
126
+ proof / offer / asset. The point is not to fill a shape; it is to surface the
127
+ best reason a real buyer should reply.
128
+
129
+ For dry mode, use only the safe proof available in `brief.md`. Preserve the
130
+ logic even when the exact proof number is unavailable. Never invent a metric to
131
+ make the shape work.
132
+
133
+ ## Example 3: Superposition Exact Job-Post Template
134
+
135
+ Use when the brief has:
136
+
137
+ - founder / CEO buyer
138
+ - active hiring signal
139
+ - exact proof stack already validated
140
+
141
+ Template shape:
142
+
143
+ ```text
144
+ Hey {{firstName}},
145
+
146
+ Saw you posted for {{a role}} — I'm sure every recruiter on LinkedIn is already in your DMs.
147
+
148
+ But..
149
+
150
+ I placed the first engineering hire at Brex.
151
+
152
+ Then built an agent that helps early startups make hires they didn't think were possible.
153
+
154
+ We've placed candidates from Fortune 500 companies, SpaceX, and Apple at startups with 4-person teams.
155
+
156
+ 13 founding engineer roles filled at early startups, including:
157
+ - Newton (YC24)
158
+ - Vitable Health (YC20)
159
+ - Plastic Labs
160
+
161
+ The whole thing is outcome-based, so you only pay when someone actually starts.
162
+
163
+ Two quick options:
164
+
165
+ a) 15-min call — find the uncommonly specific {{role}} who's the exact right fit for your team
166
+
167
+ b) see why Vince at Plastic Labs calls Superposition "a no-brainer" - we scanned 43,802 candidates to find 15 that matched traits no resume would show
168
+
169
+ superposition.ai/case-studies/how-plastic-labs-hired-founding-engineer
170
+ ```
171
+
172
+ Why it works:
173
+
174
+ - exact ordering matters
175
+ - proof compounds line by line
176
+ - the CTA is part of the mechanism, not a generic ask
177
+ - freestyling makes it worse
178
+ - this is a good example of proof as stacked credibility, not just product
179
+ explanation
180
+
181
+ **Proof ranks used:** rank 5 (founder proof — "first engineering hire at Brex"), rank 2 (named social proof — Newton, Vitable, Plastic Labs, Vince quote), rank 3 (concrete outcome — "43,802 candidates to find 15"). This is proof _stacking_, only valid when every line is verifiable.
182
+
183
+ **Word-for-word preservation applies here only when the brief is Superposition
184
+ itself.** For other job-post motions, match the rhythm (acknowledge the
185
+ recruiter DMs → founder credibility → specific client proof → outcome-based
186
+ CTA) but write fresh sentences from the brief's actual proof.
187
+
188
+ ## Example 4: Galley Event / Pass / Demo
189
+
190
+ Use when the brief has:
191
+
192
+ - real event
193
+ - free pass or attendance hook
194
+ - concrete booth demo
195
+ - tactile operational pain
196
+
197
+ Template shape:
198
+
199
+ ```text
200
+ Subject: catersource booth 1517
201
+
202
+ Hey {{first_name}},
203
+
204
+ not sure if catersource is on your radar next week, but we're at a booth and I've got some free attendance passes if you want one (code: PARTNER2026).
205
+
206
+ Wanted to reach out though as we just built an AI that reads the messiest BEOs and turns them into production-ready plans in minutes. recipes, purchasing, prep, nutrition, all mapped automatically.
207
+
208
+ The part where your team spends hours rebuilding every event order by hand, that's what this replaces.. And a bit more
209
+
210
+ We're doing live demos at the booth. With the free pass you can join the conference and bring a BEO, we'll run it through right there.
211
+
212
+ So if you're around LA march 3-5, would love to have you stop by. first-look slots are filling up though so lmk if you want me to hold one.
213
+ ```
214
+
215
+ Why it works:
216
+
217
+ - pass + booth + BEO are concrete objects
218
+ - tactile pain beats abstract ops language
219
+ - casual tone matters
220
+
221
+ **Proof ranks used:** rank 1 (mechanism — "AI that reads the messiest BEOs and turns them into production-ready plans in minutes"), rank 4 (deployment / speed — "in minutes" + "we'll run it through right there"). No social proof; the concrete asset (pass + booth + BEO walk-through) carries the weight.
222
+
223
+ ## Example 5: Superpower Signal-Led Benefits
224
+
225
+ Use when the brief has:
226
+
227
+ - signal-led topic engagement
228
+ - benefits / rewards / wellness buyers
229
+ - proof-heavy preventive-health positioning
230
+
231
+ Template shape:
232
+
233
+ ```text
234
+ hey {{first name}},
235
+
236
+ saw you were active around some {{topic}} stuff recently and figured this might actually be relevant
237
+
238
+ any chance you're exploring early detection or preventive health programs at {{company}}?
239
+
240
+ we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
241
+
242
+ basically your team gets to see what's coming instead of just reacting to it
243
+
244
+ can I send over some more info?
245
+ ```
246
+
247
+ Alternative proof-led variant:
248
+
249
+ ```text
250
+ hey {{first name}},
251
+
252
+ saw you were active in some {{topic}} conversations recently and wanted to run something by you
253
+
254
+ most annual physicals test 15 biomarkers max.
255
+
256
+ there's over 100 that actually matter and the gap between those two numbers is where the expensive claims tend to sit
257
+
258
+ teams like Lyft and Notion are already exploring this. one draw, 1,000+ conditions, $199 a person.
259
+
260
+ if your claims costs have been going up and you're not sure where it's coming from... that gap may be a good place to start looking
261
+
262
+ can I send over some more info?
263
+ ```
264
+
265
+ Why it works:
266
+
267
+ - signal comes first
268
+ - all lowercase matters
269
+ - the CTA stays tiny
270
+ - this should not get polished into generic benefits copy
271
+ - the proof sentence does real work; it is not optional filler
272
+
273
+ **Proof ranks used:** rank 1 (mechanism — "1,000+ conditions from a single blood draw"), rank 3 (concrete outcome — "15 biomarkers vs 100 that matter" + "$199 a person"), rank 2 (named social proof — Lyft, Notion). Lowercase tone is load-bearing; polishing it kills the signal-led voice.
274
+
275
+ ## Example 6: Signal-Led Honest Operator
276
+
277
+ Use when the brief has:
278
+
279
+ - a real content or topic-engagement signal
280
+ - a founder/operator sender voice
281
+ - a product that can be explained simply in one or two lines
282
+ - a motion where "two options" feels natural
283
+
284
+ Template shape:
285
+
286
+ ```text
287
+ hey {{first_name}},
288
+
289
+ reaching out because it looked like you were active around some {{signal_topic}} recently.
290
+
291
+ figured this might actually be relevant.
292
+
293
+ [product] does [simple one-line mechanism].
294
+
295
+ two options:
296
+
297
+ a) [useful working-session / direct conversation option]
298
+
299
+ b) [short overview / lightweight alternate only if the brief supports it]
300
+
301
+ p.s. [short proof line]
302
+ ```
303
+
304
+ Why it works:
305
+
306
+ - the signal is first and easy to understand
307
+ - the "figured this might actually be relevant" line feels honest without
308
+ over-explaining
309
+ - the product is framed simply
310
+ - "two options" makes the CTA easy to scan
311
+ - the proof stays short and sits in the `PS`
312
+
313
+ Important constraint:
314
+
315
+ - borrow the honesty and option structure from `sellable.dev`, but do not copy
316
+ the exact Claude-terminal gimmick unless the brief explicitly supports it
317
+ and the product can really carry that move
318
+
319
+ **Proof ranks used:** rank 1 (mechanism) in the one-line product sentence, rank 2 or 5 (social proof or founder/backing) in the PS. "Two options" is the CTA shape; proof stays small and honest.
320
+
321
+ ## Example 7: Useful CTA Shapes
322
+
323
+ Use when the brief supports a useful next step but not a hard meeting ask.
324
+
325
+ From Gelee:
326
+
327
+ ```text
328
+ is this worth a look or should i send a short overview first?
329
+ ```
330
+
331
+ From Galley:
332
+
333
+ ```text
334
+ easiest way to see if it's worth a look is to try it with one of your actual menus. happy to set that up or I can send a 2-min video instead.
335
+ ```
336
+
337
+ Use these patterns to avoid generic asks like:
338
+
339
+ - worth a conversation?
340
+ - open to a call?
341
+ - worth a look?
342
+
343
+ Prefer a binary or useful CTA when the brief supports it.
344
+
345
+ CTA decision rule:
346
+
347
+ - generate single-ask and A/B options before deciding
348
+ - use A/B only when both choices are genuinely useful and supported
349
+ - for unfamiliar categories, the CTA should name the buyer-specific preview in
350
+ one short phrase, not list every screen or workflow
351
+ - do not use abstract artifact words like "setup link", "overview", or
352
+ "walkthrough" unless the message has already made what the buyer will see
353
+ concrete
354
+ - for new categories, make the CTA object the buyer-specific preview or
355
+ outcome, not the artifact itself
356
+
357
+ PS decision rule:
358
+
359
+ - PS is optional and rare
360
+ - use it only as a natural final aside that lowers commitment, makes a
361
+ new-category preview easier to picture, verifies the core claim with a wink,
362
+ or carries one short customer/result proof
363
+ - do not use PS to explain why the pitch is credible, add a second unrelated
364
+ offer, or patch weak body copy
365
+
366
+ Proof decision rule:
367
+
368
+ - metrics, interaction counts, usage counts, time-window claims, and revenue
369
+ math must pass the "so what?" test
370
+ - if the buyer can immediately understand why the number is impressive and
371
+ relevant, it can work
372
+ - if the number only proves "this is live" or "we are using it," translate it,
373
+ test a different placement, or keep it internal
374
+
375
+ ## Hard Rules From The Examples
376
+
377
+ - keep the opener to one observation or one pain, not both stacked together
378
+ - keep the body to 3 short paragraphs max
379
+ - keep proof to one tight sentence unless the canonical template clearly needs
380
+ more (Superposition is the only archive winner that stacks proof)
381
+ - when the brief supports stronger proof, choose one compelling proof element
382
+ rather than a bland generic credibility sentence
383
+ - avoid "X means you're likely..." framing; it reads synthesized
384
+ - avoid "at your stage" and "in a setup like yours"; they sound inferred rather
385
+ than observed
386
+ - prefer product-name-first mechanism lines over "We built..." when both say
387
+ the same thing
388
+ - do not use em dashes unless the chosen Primary Example already uses one
389
+ - samples in one set should feel like siblings, not three rhetorical styles
390
+ - **word-for-word preservation only when the archived winner is the same
391
+ company as the brief.** For every other case, match the quality bar and
392
+ motion shape without recoloring the exemplar's wording
393
+ - use the full archive for retrieval, but choose one primary example and at
394
+ most one narrow secondary influence when drafting the final message
@@ -0,0 +1,314 @@
1
+ # Gold-Standard Message Patterns
2
+
3
+ Use these patterns when validating or drafting messages for `create-campaign-v2`.
4
+
5
+ The priority is not "write generally good outbound." The priority is:
6
+
7
+ 1. match the quality bar of the real campaign motion
8
+ 2. sound like a human operator
9
+ 3. make the offer feel specifically relevant to the buyer
10
+
11
+ ## Gold Examples Are a Quality Bar, Not a Paste Source
12
+
13
+ Treat the archived examples as the quality bar and motion reference. Your
14
+ job is to write a new message that could plausibly belong in the archive for
15
+ the motion you're validating — not to recolor an existing one.
16
+
17
+ **Exact-template preservation applies only when the archived winner is the
18
+ same company as the brief** (e.g., Superposition drafting for Superposition).
19
+ For every other case, match the skeleton (opener rhythm, proof placement,
20
+ CTA tone) but write fresh sentences from the validated brief + sample.
21
+
22
+ ## Template Synthesis Rule
23
+
24
+ The brief usually will not hand you a full message template. So before drafting:
25
+
26
+ 1. retrieve the closest 2-4 archived winners for the motion
27
+ 2. choose one primary example to anchor the skeleton
28
+ 3. optionally borrow one narrow secondary influence for CTA shape, proof
29
+ compression, or opener rhythm
30
+ 4. extract the minimal skeleton that makes the primary example work
31
+ 5. adapt that skeleton to the validated brief and safe proof
32
+ 6. draft 3 candidates, then run the Finalizer Pass
33
+
34
+ Do not wait for the brief to contain a perfect appendix.
35
+ Do not average multiple campaign motions together.
36
+ Use the gold set to derive the skeleton, not to spot the nearest lookalike.
37
+
38
+ ## Candidates and the Finalizer Pass
39
+
40
+ Explore three candidates internally, then **combine the best pieces across
41
+ them** into the final winner. The winner does not have to match any single
42
+ candidate.
43
+
44
+ Draft shape:
45
+
46
+ - Candidate A: closest motion-aligned version — match the Primary Example's
47
+ quality bar without copying its wording
48
+ - Candidate B: strongest proof-forward version — lead with the highest-rank
49
+ proof the brief safely supports
50
+ - Candidate C: sharpest inbox-distinct opener within the same motion
51
+
52
+ Finalizer Pass:
53
+
54
+ 1. Best opener across A/B/C (most specific, most observed, least synthesized)
55
+ 2. Best proof sentence (highest rank, fully supported by the brief)
56
+ 3. Best bridge line (shortest, most buyer-native)
57
+ 4. Best CTA (useful next step, proportional to signal strength)
58
+ 5. Assemble the winner from those parts inside the chosen motion's skeleton
59
+ 6. If stitching stacks two ideas awkwardly, cut to the stronger one
60
+
61
+ If one candidate already holds the best version of every piece, the winner
62
+ may equal that candidate — name it and declare the winning axis (relevance,
63
+ distinctiveness, proof strength, coherence, inbox readability). Otherwise
64
+ name which candidate each borrowed part came from.
65
+
66
+ If the assembled winner feels overbuilt, simplify back toward the Primary
67
+ Example's skeleton.
68
+
69
+ ## Proof Inventory Rule
70
+
71
+ Before drafting, build a proof inventory from the brief and sample.
72
+
73
+ Rank usable proof in this order:
74
+
75
+ 1. exact differentiated mechanism
76
+ 2. named credibility proof or strongest safe social proof
77
+ 3. concrete outcome proof
78
+ 4. deployment simplicity or speed-to-value proof
79
+ 5. founder, backing, prior-company, capital-raised-for-motion, or
80
+ category-first proof
81
+
82
+ `founder/backing proof` can include:
83
+
84
+ - worked at meaningful companies
85
+ - backed by notable operators or investors
86
+ - raised credible capital for this motion
87
+ - first-to-do-X or technically novel proof
88
+
89
+ Use at least one compelling proof element when the brief supports it.
90
+ Do not leave the message with mechanism only if a stronger safe proof exists.
91
+
92
+ ## Token Fill Rule
93
+
94
+ Before drafting the winner, explicitly decide:
95
+
96
+ - token name
97
+ - exact source field
98
+ - allowed transformation
99
+ - fallback rule
100
+
101
+ Do not improvise tokens inside the copy itself.
102
+
103
+ ## Strategy Order
104
+
105
+ Choose the highest-specificity validated strategy available:
106
+
107
+ 1. `event-led`
108
+ 2. `signal-led`
109
+ 3. `job-post-led`
110
+ 4. `proof-led specialist fallback`
111
+
112
+ Do not drop to a lower-specificity strategy unless the stronger one is genuinely
113
+ unsupported by the brief and sample.
114
+
115
+ ## Pattern 1: Event-Led
116
+
117
+ Use when the brief has a real event motion, real logistics, or a real
118
+ time-sensitive reason to reach out.
119
+
120
+ Shape:
121
+
122
+ - concrete event hook first
123
+ - why it is relevant now
124
+ - concrete asset or logistic
125
+ - low-pressure CTA
126
+
127
+ When attendee proof is missing but the sender-side event motion is real:
128
+
129
+ - keep the event subject line
130
+ - use a sender-side line like "RSAC is next week so reaching out before things
131
+ get hectic"
132
+ - do not pretend the prospect is attending
133
+
134
+ ## Pattern 2: Signal-Led
135
+
136
+ Use when the brief or sample has a real signal:
137
+
138
+ - post engagement
139
+ - topic engagement
140
+ - visible conversation
141
+ - recent initiative that is already validated
142
+
143
+ Shape:
144
+
145
+ - mention the signal plainly
146
+ - explain why it makes this message relevant
147
+ - bring the strongest proof
148
+ - give a low-friction next step
149
+
150
+ ### Pattern 2A: Signal-Led Honest Operator
151
+
152
+ Use this subpattern when the signal is real, the sender can sound direct and
153
+ slightly unusual, and the best message should feel typed by a sharp operator
154
+ rather than polished by a sales team.
155
+
156
+ Shape:
157
+
158
+ - plain signal mention first
159
+ - one line that makes the relevance feel honest
160
+ - simple product framing
161
+ - binary options
162
+ - optional short `PS` with proof as the final line
163
+
164
+ Prefer:
165
+
166
+ - lowercase or casual casing when the motion supports it
167
+ - an honest line like "figured this might actually be relevant"
168
+ - two clean options instead of a long CTA paragraph
169
+ - direct wording over polished marketing language
170
+
171
+ Avoid:
172
+
173
+ - copying a gimmick like "from a claude code terminal" unless the brief
174
+ explicitly supports that exact move
175
+ - turning the honest-operator tone into a novelty act
176
+ - adding extra explanation before the signal
177
+
178
+ ## Pattern 3: Job-Post-Led
179
+
180
+ Use when hiring is the validated hook.
181
+
182
+ Shape:
183
+
184
+ - use the hiring observation directly
185
+ - bridge to the exact differentiated proof
186
+ - preserve the canonical template tightly
187
+
188
+ If the archived winner is already exact, preserve it line-by-line with only the
189
+ documented token substitutions.
190
+
191
+ ## Pattern 4: Proof-Led Specialist Fallback
192
+
193
+ Use only when event, signal, and hiring hooks are unavailable.
194
+
195
+ This is the fallback most likely to drift into bland copy, so keep it tight.
196
+
197
+ **Exemplar:** Example 2 in `gold-standard-message-examples.md` (Stack-Replacement
198
+ Operator Diagnostic). It is the default proof-led fallback exemplar. Its
199
+ rhythm — observed current-state → what breaks → product-name-first mechanism →
200
+ PS for credibility — generalizes across proof-led fallbacks even when the
201
+ category isn't literally stack-replacement.
202
+
203
+ Shape:
204
+
205
+ - specialist intro anchored in buyer-language workflow
206
+ - when the motion is stack-replacement, name the current tools or workflow
207
+ pieces explicitly if the brief supports them
208
+ - state what breaks in that stack in plain buyer-language
209
+ - concrete mechanism (product-name-first when the product can carry it)
210
+ - strongest proof (ideally one compelling element, not a generic credibility
211
+ sentence)
212
+ - specific low-friction deliverable or fit-check CTA
213
+
214
+ ### Pattern 4A: Stack-Replacement Operator Diagnostic
215
+
216
+ Use this subpattern when the buyer owns an operational workflow and the
217
+ product replaces a brittle chain of tools, handoffs, or manual glue.
218
+
219
+ Shape:
220
+
221
+ - direct workflow question first
222
+ - name the current stack pieces when the brief supports them
223
+ - say what breaks in the handoff in plain buyer-language
224
+ - product-name-first mechanism
225
+ - one simple operational outcome
226
+ - optional short `PS` with proof
227
+ - direct working-session CTA
228
+
229
+ Prefer:
230
+
231
+ - buyer-language workflow words from the brief
232
+ - explicit current-stack nouns like CRM, forms, routing, scheduling, follow-up,
233
+ enrichment, or point-tool names when the brief supports them
234
+ - a concrete "what's wrong with the stack" line
235
+ - concrete mechanism
236
+ - strongest safe proof, ideally one compelling proof element rather than a flat
237
+ generic proof sentence
238
+ - a useful next step
239
+ - a direct conversational CTA unless the brief explicitly says there is a real
240
+ asset, report, brief, teardown, video, or other lead magnet to lead with
241
+ - a compact opener that sounds typed, not synthesized
242
+ - product-name-first mechanism lines when the product can be named cleanly
243
+ - a short `PS` for social proof, backing, prior-company proof, or category-first
244
+ proof when that proof is real and would otherwise bloat the main body
245
+ - if a `PS` is used, keep it to the final line of the message
246
+ - short words and plain sentences a busy buyer can scan fast
247
+ - one sentence per line in the final draft when the channel is InMail or email
248
+
249
+ Avoid:
250
+
251
+ - opening with "most teams..." or "scaling X usually means..." when nothing
252
+ specific follows
253
+ - leaning on one recycled metaphor across every sample
254
+ - abstract noun subjects when a more buyer-native subject exists
255
+ - vague CTA like "worth a look?" when the brief supports a more specific ask
256
+ - synthesized management-speak like "at your stage", "in a setup like yours",
257
+ or "running X means..." when the buyer has not explicitly signaled that
258
+ - "we built X to..." when "X does Y..." is sharper and more campaign-native
259
+ - leaving out stronger safe proof like founder/backing/first-to-do-X when the
260
+ brief clearly supports it
261
+ - naming tools that are not actually supported by the brief or lead sample
262
+ - using a `PS` in the middle of the message or before the CTA
263
+ - long multi-clause sentences that make the note hard to scan
264
+ - dense paragraphs with 2-3 sentences packed together on one line
265
+
266
+ ## Subject Line Rules
267
+
268
+ Prefer:
269
+
270
+ - event or asset name
271
+ - buyer-language workflow
272
+ - concrete offer
273
+ - concrete relevant object
274
+
275
+ Avoid:
276
+
277
+ - abstract category nouns
278
+ - jargon that could fit any campaign
279
+
280
+ ## Deliverable Rules
281
+
282
+ When the offer is conversational, make the conversation useful.
283
+ Do not default to a lead magnet.
284
+ Lead magnets are opt-in, not default.
285
+
286
+ Prefer:
287
+
288
+ - "map your current form-to-CRM flow"
289
+ - "show you what we're seeing"
290
+ - "share a short overview first"
291
+ - "walk through where qualified leads are leaking"
292
+
293
+ Avoid:
294
+
295
+ - inventing a report, brief, teardown, video, or asset the brief never
296
+ mentioned
297
+ - leading with "can I send it over?" unless the brief explicitly says that
298
+ asset exists and should be the primary offer
299
+ - naked meeting asks with no value
300
+ - "worth a look?" when the brief supports a more concrete next step
301
+
302
+ ## Language Rules
303
+
304
+ - no em dashes unless the winning template clearly uses them
305
+ - if a `PS` is used, it should generally be the last line
306
+ - be precious with metaphors
307
+ - if one phrase appears in every sample, vary it or remove it
308
+ - copy should feel typed by a person, not assembled by framework
309
+ - if using an archived event-led template, preserve the winning wording tightly
310
+ unless the brief gives a concrete reason to change it
311
+ - prefer 70-110 words for straightforward InMail motions unless the archived
312
+ winner is clearly longer
313
+ - if using an archived exact-template winner, preserve its casing, spacing, CTA
314
+ shape, and proof ordering