@sellable/mcp 0.1.430 → 0.1.432
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/dist/tools/setup-evergreen-campaigns.js +1 -1
- package/package.json +1 -1
- package/skills/create-campaign-v2/references/ai-tells.md +4 -4
- package/skills/create-campaign-v2/references/gold-standard-message-examples.md +2 -2
- package/skills/create-campaign-v2/references/sellable-cleanup-rules.md +1 -1
- package/skills/create-evergreen-campaigns/SKILL.md +37 -21
- package/skills/generate-messages/SKILL.md +42 -31
|
@@ -23,7 +23,7 @@ export const setupEvergreenCampaignsToolDefinitions = [
|
|
|
23
23
|
handoffMode: {
|
|
24
24
|
type: "string",
|
|
25
25
|
enum: ["create_campaign_goals"],
|
|
26
|
-
description: 'plan mode only. When set to "create_campaign_goals", returns concise per-lane `$sellable:create-campaign` goal prompts and required inputs for
|
|
26
|
+
description: 'plan mode only. When set to "create_campaign_goals", returns concise per-lane `$sellable:create-campaign` goal prompts and required inputs for simplified worker handoffs without changing verification behavior.',
|
|
27
27
|
},
|
|
28
28
|
yolo: {
|
|
29
29
|
type: "boolean",
|
package/package.json
CHANGED
|
@@ -56,10 +56,10 @@ this felt too on the nose to ignore"` shapes only when the source was an
|
|
|
56
56
|
explicit lead-magnet comment, reply, or opt-in.
|
|
57
57
|
|
|
58
58
|
Shared evergreen exception: for Shared Signal Discovery and other shared
|
|
59
|
-
evergreen lanes,
|
|
60
|
-
|
|
61
|
-
conversations` as openers; require a concrete signal/problem bridge or omit
|
|
62
|
-
source line.
|
|
59
|
+
evergreen lanes, `hope this is relevant` is allowed when it stays topic-level
|
|
60
|
+
and does not pretend engagement. Reject `might be interested` and `saw you in a
|
|
61
|
+
few conversations` as openers; require a concrete signal/problem bridge or omit
|
|
62
|
+
the source line.
|
|
63
63
|
|
|
64
64
|
**Severity:** REJECT
|
|
65
65
|
|
|
@@ -203,7 +203,7 @@ Why it works:
|
|
|
203
203
|
**Proof ranks used:** rank 1 (mechanism - 1,000+ conditions from one blood
|
|
204
204
|
draw), rank 3 (risk before claims).
|
|
205
205
|
|
|
206
|
-
Do not use the Superpower weak-signal hedge pattern for Shared Evergreen Signal Discovery
|
|
206
|
+
Do not use the Superpower weak-signal hedge pattern for Shared Evergreen Signal Discovery when it opens with `might be interested` or `saw you in a few conversations`. `Hope this is relevant` is allowed when it stays topic-level and does not pretend engagement. Use the safe pattern below when a concrete signal/problem bridge is stronger.
|
|
207
207
|
|
|
208
208
|
### Shared Evergreen Signal Discovery Safe Pattern
|
|
209
209
|
|
|
@@ -222,7 +222,7 @@ Curious if LinkedIn outbound is a channel you're trying to make more reliable th
|
|
|
222
222
|
|
|
223
223
|
Why it works:
|
|
224
224
|
|
|
225
|
-
- no low-confidence relevance hedge
|
|
225
|
+
- no blocked low-confidence relevance hedge
|
|
226
226
|
- no `I'm building` or founder-only first person
|
|
227
227
|
- no internal workflow vocabulary such as Codex, MCP, agent workflows, workflow
|
|
228
228
|
table, lead source, or signal discovery
|
|
@@ -74,7 +74,7 @@ Revise or reject the sample when any of these happen.
|
|
|
74
74
|
- **actions are implied, not stated** — e.g. "runs that chain as AI agents" when a clearer version would name the specific actions (verb + object, one per line)
|
|
75
75
|
- **category-level opener used when a per-lead signal exists** — if `lead-sample.json` carries any per-lead signal (post, hire, visible tool, topic engagement), the opener must reference it. Category-level openers of shape `"Most [category] teams still do X by hand"` are only acceptable when zero per-lead signal is in the sample. When a category-level opener is used as fallback, Findings must flag it explicitly
|
|
76
76
|
- **mind-reading from engagement signals** — a topic engagement, post, public activity, role, company, or hiring trigger does not prove buyer intent. Reject phrases like `"AI-GTM stack is clearly on your mind"`, `"you're clearly focused on..."`, `"obviously relevant"`, or `"already thinking about..."` unless that exact priority is explicitly present in `lead-sample.json`. Translate to low-certainty buyer context or omit the signal from copy.
|
|
77
|
-
- **source-y signal narration** — reject `"saw you on..."`, `"saw you engaging with..."`, `"you commented on..."`, `"your LinkedIn activity..."`, `"you might not remember the thread..."`, `"found you through [source] and your role looked close..."`, or any line that makes the recipient feel watched unless the chosen archived motion is intentionally self-aware about the signal. For sender-owned LinkedIn post sources, a light first-person acknowledgment is allowed when row data proves a reaction/comment: `"appreciate you showing some love on my post about [topic]"` or `"thanks for showing support on my [topic] post"`. Do not name a comment unless comment text is present. Follow the acknowledgment with a soft relevance bridge before broad pain/product copy, e.g. `"figured this might be relevant if LinkedIn is becoming more of a GTM channel for [company]"`. For third-party LinkedIn-post-sourced campaigns, a topic-level bridge is allowed when it explains why the note exists and stays apologetically uncertain: `"saw you in a few conversations about [topic], so may be off, but this seemed relevant."`, `"saw you in a few conversations around [topic], so hope this is relevant."`, or `"found you in a thread about [topic], so may be off, but this seemed relevant."` Shared evergreen signal exception:
|
|
77
|
+
- **source-y signal narration** — reject `"saw you on..."`, `"saw you engaging with..."`, `"you commented on..."`, `"your LinkedIn activity..."`, `"you might not remember the thread..."`, `"found you through [source] and your role looked close..."`, or any line that makes the recipient feel watched unless the chosen archived motion is intentionally self-aware about the signal. For sender-owned LinkedIn post sources, a light first-person acknowledgment is allowed when row data proves a reaction/comment: `"appreciate you showing some love on my post about [topic]"` or `"thanks for showing support on my [topic] post"`. Do not name a comment unless comment text is present. Follow the acknowledgment with a soft relevance bridge before broad pain/product copy, e.g. `"figured this might be relevant if LinkedIn is becoming more of a GTM channel for [company]"`. For third-party LinkedIn-post-sourced campaigns, a topic-level bridge is allowed when it explains why the note exists and stays apologetically uncertain: `"saw you in a few conversations about [topic], so may be off, but this seemed relevant."`, `"saw you in a few conversations around [topic], so hope this is relevant."`, or `"found you in a thread about [topic], so may be off, but this seemed relevant."` Shared evergreen signal exception: `hope this is relevant` is allowed when it stays topic-level and avoids false warm engagement, but `might be interested` and `saw you in a few conversations` are blocked for Shared Signal Discovery and other shared evergreen lanes; use a concrete signal/problem bridge or omit the source line. Reserve `"raise your hand"` language for explicit lead-magnet comments, replies, or opt-ins. Translate the signal into natural buyer context or omit it.
|
|
78
78
|
- **sender-owned source rendered as third-party** — hard fail when the source post is sender-owned and the draft says `"found you in a thread"`, `"saw you in a thread"`, `"saw you in conversations"`, or `"saw you in a few conversations"` as if the post were third-party. For sender-owned sources, the copy must either use a light first-person acknowledgment plus a soft relevance bridge, or omit the source line. If multiple senders may send the campaign, or the final sender/source-owner match is ambiguous, do not assume a specific `my post` voice or name a specific sender; omit the sender-owned source line until row-level sender ownership is proven. Neutral low-certainty thread/source language is only for truly third-party sources.
|
|
79
79
|
- **fake line-to-line continuity** — reject line stacks where the source acknowledgment, relevance bridge, product line, and CTA do not actually build on each other. Each line must make the next line feel earned. If two adjacent lines could be swapped, deleted, or joined with `"anyway"` without changing the meaning, the transition is fake. In sender-owned post campaigns, the chain should be: support on my post -> why this topic may matter for the company -> what the product/problem does about that same topic -> low-friction next step.
|
|
80
80
|
- **assumptive title-fit opener** — reject `"Your [role] role at [company] looked close to this problem"` or `"looked close to this outbound campaign problem"`. This asserts fit from title/company. Keep the apologetic uncertainty instead: `"may be off, but if [workflow] is relevant to what you're working on..."`.
|
|
@@ -43,7 +43,8 @@ In automation or `--yolo` customer-visible setup, use this path before the
|
|
|
43
43
|
long-form contract below:
|
|
44
44
|
|
|
45
45
|
1. Resolve the active workspace and explicit sender scopes, then call
|
|
46
|
-
`setup_evergreen_campaigns({ mode:"plan", yolo:true,
|
|
46
|
+
`setup_evergreen_campaigns({ mode:"plan", yolo:true,
|
|
47
|
+
handoffMode:"create_campaign_goals", postEngagerSenderIds,
|
|
47
48
|
sharedSenderIds })`. If the user did not name senders but
|
|
48
49
|
`get_campaign_waterfall` returns an active managed evergreen/prod waterfall
|
|
49
50
|
for the workspace, derive exact sender scopes from the waterfall `senderRefs`
|
|
@@ -60,12 +61,23 @@ long-form contract below:
|
|
|
60
61
|
If shell execution is unavailable and no visible/durable thread surface is
|
|
61
62
|
callable, return `blocked: missing_visible_or_durable_lane_worker_runtime`
|
|
62
63
|
before mutation.
|
|
63
|
-
4. Write one compact prompt file per selected lane
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
4. Write one compact prompt file per selected lane using the matching
|
|
65
|
+
`createCampaignGoals[].goalPrompt`, plus only the receipt path and canonical
|
|
66
|
+
receipt requirement. Do not paste the full evergreen skill, lane packet,
|
|
67
|
+
receipt schema, repair history, or verifier checklist into the worker prompt.
|
|
68
|
+
The worker goal is simple: run `$sellable:create-campaign` normally for that
|
|
69
|
+
campaign goal, use the evergreen-selected provider/source only as internal
|
|
70
|
+
sourcing metadata, and write the receipt. The parent does not create campaign
|
|
71
|
+
shells.
|
|
66
72
|
5. Collect fresh durable receipts, verify with the original planRevision and
|
|
67
73
|
selectedActionIds, then run the idempotency plan and show sample messages.
|
|
68
74
|
|
|
75
|
+
Critical separation: evergreen owns lane/source selection; `$sellable:create-campaign`
|
|
76
|
+
owns the customer-visible campaign brief and message strategy. Provider names
|
|
77
|
+
such as Signal Discovery, lane keys, source lists, receipt fields, workflow
|
|
78
|
+
mechanics, repair notes, hard-block checklists, and approved-message scaffolding
|
|
79
|
+
must never be pasted into `campaignBrief` or generated customer-facing messages.
|
|
80
|
+
|
|
69
81
|
Do not keep reasoning, re-reading prompts, or restating this workflow instead of
|
|
70
82
|
dispatching workers. If the first worker cannot be launched after at most one
|
|
71
83
|
short planning pass, return `blocked: worker_dispatch_deadline_exceeded` before
|
|
@@ -1220,7 +1232,7 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1220
1232
|
Short form: Do not pass the warm template into Shared Signal Discovery or Shared Cold Fallback.
|
|
1221
1233
|
Short form: Shared lanes must reject generic product-summary samples.
|
|
1222
1234
|
Short form: Shared lanes must reject three nearly identical samples.
|
|
1223
|
-
Short form: Shared lanes must reject low-confidence relevance hedges.
|
|
1235
|
+
Short form: Shared lanes must reject low-confidence relevance hedges except "hope this is relevant".
|
|
1224
1236
|
Short form: Shared lanes must reject internal workflow vocabulary.
|
|
1225
1237
|
Short form: revise or rerun the packaged create-campaign/generate-messages path.
|
|
1226
1238
|
- **Post Engagers** first-message style: short, casual, references the
|
|
@@ -1259,9 +1271,11 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1259
1271
|
product summaries, or repeated structure are bad. If the first generated
|
|
1260
1272
|
batch violates these rules, rerun, but record that as a repaired UAT path
|
|
1261
1273
|
rather than the desired zero-shot path.
|
|
1262
|
-
Do not use low-confidence relevance hedges such as "
|
|
1263
|
-
|
|
1264
|
-
|
|
1274
|
+
Do not use low-confidence relevance hedges such as "might be interested"
|
|
1275
|
+
or "saw you in a few conversations" in Shared Signal Discovery samples.
|
|
1276
|
+
"Hope this is relevant" is allowed when it stays topic-level and does not
|
|
1277
|
+
pretend engagement. Translate source/tool terms into prospect-facing
|
|
1278
|
+
business language; do not put internal workflow
|
|
1265
1279
|
vocabulary such as "Codex-style workflow", "MCP", "agent workflows",
|
|
1266
1280
|
"Claude Code", or "Claude-style agent workflows" in customer-facing
|
|
1267
1281
|
message one. Also avoid generic product-process nouns such as "dashboard",
|
|
@@ -1273,7 +1287,7 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1273
1287
|
Short form: Shared Signal Discovery uses no self-intro such as "I'm building Sellable".
|
|
1274
1288
|
Short form: Shared Signal Discovery uses no self-intro such as "We're building Sellable".
|
|
1275
1289
|
Short form: Shared Signal Discovery uses no "I've put together".
|
|
1276
|
-
Short form: no low-confidence relevance hedge such as "hope this is relevant".
|
|
1290
|
+
Short form: no low-confidence relevance hedge such as "might be interested" or "saw you in a few conversations"; "hope this is relevant" is allowed.
|
|
1277
1291
|
Short form: no internal workflow vocabulary such as "Codex-style workflow", "MCP", "agent workflows", "Claude Code", or "Claude-style agent workflows".
|
|
1278
1292
|
- **Shared Cold Fallback** first-message style: cold, direct, and cohesive.
|
|
1279
1293
|
It must not pretend there was engagement, must not say "saw you pop up",
|
|
@@ -1289,11 +1303,13 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1289
1303
|
Sellable/Codex/Claude-Code feature summary
|
|
1290
1304
|
across prospects. This is a single-message cold path unless the approved
|
|
1291
1305
|
create-campaign message workflow proves a better delivery format.
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
sample
|
|
1306
|
+
"Hope this is relevant" is allowed when it does not pretend engagement and
|
|
1307
|
+
immediately ties to a concrete buyer problem. Do not open with "might be
|
|
1308
|
+
interested" or "saw you in a few conversations". Do not use a repeated
|
|
1309
|
+
product-definition paragraph such as "Sellable is a GTM system" across
|
|
1310
|
+
samples; every reviewed cold sample should be specific enough to the role,
|
|
1311
|
+
company, or problem that the three sample messages do not share the same
|
|
1312
|
+
body skeleton.
|
|
1297
1313
|
Do not use mechanical Sellable process language such as "campaign idea into
|
|
1298
1314
|
prospects, filters, messages, and sequence setup", "sequence-prospects",
|
|
1299
1315
|
"dashboard overhead", "campaign map", "send-ready copy", or "reviewed
|
|
@@ -1310,7 +1326,7 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1310
1326
|
Short form: Shared Cold Fallback uses no "I've put together".
|
|
1311
1327
|
Short form: Shared Cold Fallback uses no opt-out shrug such as "If this isn't relevant, ignore me".
|
|
1312
1328
|
Short form: Shared Cold Fallback uses no product-stack dump.
|
|
1313
|
-
Short form:
|
|
1329
|
+
Short form: "hope this is relevant" is allowed; "might be interested" and "saw you in a few conversations" are not.
|
|
1314
1330
|
Short form: no repeated product-definition paragraph such as "Sellable is a GTM system".
|
|
1315
1331
|
- Customer-visible evergreen lanes must enable ICP filtering before Message
|
|
1316
1332
|
Drafting. This applies to Post Engagers, Shared Signal Discovery, and
|
|
@@ -1399,12 +1415,12 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1399
1415
|
or a product-stack dump that repeats the same
|
|
1400
1416
|
Sellable/Codex/Claude-Code feature summary across prospects. For all
|
|
1401
1417
|
shared lanes, reject generic product-summary samples, repeated
|
|
1402
|
-
near-identical samples, low-confidence relevance hedges such as "
|
|
1403
|
-
|
|
1404
|
-
`issues`, and any preserved Post
|
|
1405
|
-
create-campaign/generate-messages
|
|
1406
|
-
approve or final-report samples
|
|
1407
|
-
`issues`.
|
|
1418
|
+
near-identical samples, low-confidence relevance hedges such as "might be
|
|
1419
|
+
interested" or "saw you in a few conversations", internal workflow
|
|
1420
|
+
vocabulary, any sample with non-empty `issues`, and any preserved Post
|
|
1421
|
+
Engagers opener; revise or rerun the packaged create-campaign/generate-messages
|
|
1422
|
+
path before reporting completion. Do not approve or final-report samples
|
|
1423
|
+
with `verdict:"passed"` and non-empty `issues`.
|
|
1408
1424
|
- The first review batch exists and at least 3 review rows have generated
|
|
1409
1425
|
messages from the approved brief. If fewer than 3 usable rows exist, report
|
|
1410
1426
|
the actual count and why.
|
|
@@ -269,7 +269,7 @@ must be safer than the legacy weak-signal examples. These lanes are reused by
|
|
|
269
269
|
multiple senders, so the first line cannot sound like a scraped-activity excuse
|
|
270
270
|
or a founder self-intro.
|
|
271
271
|
|
|
272
|
-
- `
|
|
272
|
+
- `might be interested` and `saw you in a few conversations` are blocked openers for shared evergreen lanes. `hope this is relevant` is allowed when it stays topic-level and does not pretend engagement.
|
|
273
273
|
- do not write first-person singular founder language such as `I'm building`,
|
|
274
274
|
`I've mapped`, `my company`, or `my team` unless exactly one sender can
|
|
275
275
|
credibly say it and the lane is not shared.
|
|
@@ -280,8 +280,8 @@ or a founder self-intro.
|
|
|
280
280
|
`source`, `sequence`, `send-ready copy`, or `reviewed prospect list` as
|
|
281
281
|
buyer-facing explanation in shared evergreen samples unless the buyer's own
|
|
282
282
|
company/product category uses that exact word and the line still sounds human.
|
|
283
|
-
- Write a concrete signal/problem bridge instead of a relevance hedge.
|
|
284
|
-
shapes are `the AI-assisted GTM conversations keep coming back to [buyer
|
|
283
|
+
- Write a concrete signal/problem bridge instead of a rejected relevance hedge.
|
|
284
|
+
Good shapes are `the AI-assisted GTM conversations keep coming back to [buyer
|
|
285
285
|
problem]`, `teams trying to turn LinkedIn signal into pipeline usually hit
|
|
286
286
|
[problem]`, or `when [observable business moment] is live, [buyer workflow]
|
|
287
287
|
gets harder to run consistently`.
|
|
@@ -290,10 +290,11 @@ or a founder self-intro.
|
|
|
290
290
|
- Shared evergreen lanes must pass this gate before `confirmed`, before saving a
|
|
291
291
|
reusable template, and before any route-proof approval.
|
|
292
292
|
|
|
293
|
-
Short form: shared evergreen copy
|
|
293
|
+
Short form: shared evergreen copy may use `hope this is relevant` when it avoids false engagement claims.
|
|
294
294
|
Short form: shared evergreen copy cannot use `might be interested`.
|
|
295
|
+
Short form: shared evergreen copy cannot use `saw you in a few conversations`.
|
|
295
296
|
Short form: shared evergreen copy cannot use `I'm building`.
|
|
296
|
-
Short form: write a concrete signal/problem bridge instead of a relevance hedge.
|
|
297
|
+
Short form: write a concrete signal/problem bridge instead of a rejected relevance hedge.
|
|
297
298
|
|
|
298
299
|
### Rich Personalization Contract
|
|
299
300
|
|
|
@@ -313,12 +314,13 @@ conditional good/bad fill reference.
|
|
|
313
314
|
`[PERSONALIZATION_LINE — Intent: write one short sentence that anchors the
|
|
314
315
|
note to why this might matter now. DO: connect one observable role/company/
|
|
315
316
|
activity signal to the buyer problem or offer with a permissioned bridge. For
|
|
316
|
-
shared evergreen lanes, do not use `
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
off, but this seemed relevant" can be considered when the
|
|
321
|
-
awkward. DON'T: recap their resume, list companies,
|
|
317
|
+
shared evergreen lanes, do not use `might be interested` or `saw you in a few
|
|
318
|
+
conversations`; `hope this is relevant` is allowed when it stays topic-level and
|
|
319
|
+
avoids false engagement claims. Use a concrete signal/problem bridge instead of
|
|
320
|
+
rejected relevance hedges. Low-certainty language like "hope this is relevant
|
|
321
|
+
if..." or "so may be off, but this seemed relevant" can be considered when the
|
|
322
|
+
source is otherwise awkward. DON'T: recap their resume, list companies,
|
|
323
|
+
compliment their
|
|
322
324
|
background, name a product their company sells, use source-citation phrasing, or
|
|
323
325
|
use generic nouns like "your work".
|
|
324
326
|
FALLBACK: if unsupported, omit the entire line.]`
|
|
@@ -479,7 +481,7 @@ artifact.**
|
|
|
479
481
|
|
|
480
482
|
Safer shapes:
|
|
481
483
|
|
|
482
|
-
- `hope this is relevant if {{signal_topic}} is part of the plan`
|
|
484
|
+
- `hope this is relevant if {{signal_topic}} is part of the plan`
|
|
483
485
|
- `saw you might be interested in {{signal_topic}}, so hope this is relevant` for non-evergreen weak-signal campaigns only
|
|
484
486
|
- `saw you in a few conversations around {{signal_topic}}, so hope this is relevant` for non-evergreen weak-signal campaigns only
|
|
485
487
|
- `saw you in a few conversations about {{signal_topic}}, so may be off, but this seemed relevant`
|
|
@@ -550,17 +552,20 @@ artifact.**
|
|
|
550
552
|
Signal Discovery. `saw you commented on {{post_context}}` and `your LinkedIn
|
|
551
553
|
activity around...` are not acceptable. Reserve `raise your hand` phrasing
|
|
552
554
|
for explicit lead-magnet comments, replies, or opt-ins. For ordinary shared
|
|
553
|
-
evergreen thread discovery, either
|
|
554
|
-
|
|
555
|
+
evergreen thread discovery, either use `hope this is relevant` without
|
|
556
|
+
source-mechanics narration, translate the topic into a concrete buyer/problem
|
|
557
|
+
bridge, or omit the source line.
|
|
555
558
|
|
|
556
559
|
Keep the apologetic nature, but aim it at uncertainty, not surveillance.
|
|
557
560
|
Good for non-evergreen weak-signal campaigns: `saw you in a few
|
|
558
561
|
conversations about outbound, so may be off, but this seemed relevant`, `may
|
|
559
562
|
be off, but if outbound is relevant to what you're working on...`, or `hope
|
|
560
|
-
this is relevant if...`. For shared evergreen lanes,
|
|
561
|
-
|
|
562
|
-
`
|
|
563
|
-
|
|
563
|
+
this is relevant if...`. For shared evergreen lanes, `hope this is relevant`
|
|
564
|
+
is allowed when it stays topic-level and avoids false engagement claims, but
|
|
565
|
+
`might be interested` and `saw you in a few conversations` are not enough;
|
|
566
|
+
use a concrete signal/problem bridge or omit the source line. Bad: `your role
|
|
567
|
+
at {{company}} looked close...`, because it asserts fit from a title and
|
|
568
|
+
tells the buyer about themselves.
|
|
564
569
|
|
|
565
570
|
Block wordier source narration such as `you might not remember the thread,
|
|
566
571
|
but I found you through a {{signal_topic}} discussion and your
|
|
@@ -1558,9 +1563,9 @@ Before `confirmed`, run the selected winner against these gates:
|
|
|
1558
1563
|
`hope this is relevant if...`, `saw you might be interested in...`,
|
|
1559
1564
|
`saw you in a few conversations around...`, `figured this might matter if...`,
|
|
1560
1565
|
or `if you've ever wanted...`. Exception: for Shared Signal Discovery and
|
|
1561
|
-
other shared evergreen lanes, `
|
|
1562
|
-
|
|
1563
|
-
|
|
1566
|
+
other shared evergreen lanes, `might be interested` and `saw you in a few
|
|
1567
|
+
conversations` are blocked; `hope this is relevant` is allowed when it stays
|
|
1568
|
+
topic-level and avoids false engagement claims.
|
|
1564
1569
|
- **Buyer-first opener:** after the greeting, the first substantive line
|
|
1565
1570
|
should usually enter the buyer's world: a real signal, current-state
|
|
1566
1571
|
pain, buyer-owned priority, or useful artifact. Sender-origin can come
|
|
@@ -1862,9 +1867,10 @@ about`, or `clearly relevant` are BLOCKED. Source-y phrases such as
|
|
|
1862
1867
|
in a few conversations around [topic], so hope this is relevant`, `found you
|
|
1863
1868
|
in a few conversations about [topic], so may be off, but this seemed
|
|
1864
1869
|
relevant`, `figured this might matter if [workflow] is live at [company]`, or
|
|
1865
|
-
a similarly natural line. For shared evergreen lanes, skip the `
|
|
1866
|
-
|
|
1867
|
-
|
|
1870
|
+
a similarly natural line. For shared evergreen lanes, skip the `might be
|
|
1871
|
+
interested` / `saw you in a few conversations` versions and use `hope this is
|
|
1872
|
+
relevant` only when it stays topic-level and avoids false engagement claims,
|
|
1873
|
+
or use the concrete bridge version. Longer source-recap forms such as `you
|
|
1868
1874
|
might not remember the thread,
|
|
1869
1875
|
but I found you through a [topic] discussion...` are BLOCKED; they narrate
|
|
1870
1876
|
the scrape path instead of creating buyer relevance.
|
|
@@ -2010,7 +2016,7 @@ matters to the buyer, why this might be relevant, or the operator-reality that
|
|
|
2010
2016
|
led to it. Acceptable openers:
|
|
2011
2017
|
|
|
2012
2018
|
- `Hey {{first_name}}, [one plain sentence about what we built].`
|
|
2013
|
-
- `Hey {{first_name}}, hope this is relevant if [buyer context] is still on your plate.`
|
|
2019
|
+
- `Hey {{first_name}}, hope this is relevant if [buyer context] is still on your plate.`
|
|
2014
2020
|
- `Hey {{first_name}}, saw you might be interested in [topic], so hope this is relevant.` Not for shared evergreen lanes.
|
|
2015
2021
|
- `Hey {{first_name}}, saw you in a few conversations around [topic], so hope this is relevant.` Not for shared evergreen lanes.
|
|
2016
2022
|
- `Hey {{first_name}}, found you in a thread about [topic], so may be off, but this seemed relevant.`
|
|
@@ -2273,7 +2279,7 @@ Rules:
|
|
|
2273
2279
|
- if `lead-sample.json` carries **any** per-lead signal for this lead — a recent post, a recent hire, a visible tool in the headline, a topic engagement, a public initiative — the **message must reference it specifically**. Category-level copy is rejected.
|
|
2274
2280
|
- default placement is **Block 3**, not Block 1. Keep Block 1 substance-first unless the archived motion clearly earns a signal-led opener without falling into source-citation / talk-at phrasing.
|
|
2275
2281
|
- acceptable signal use by default:
|
|
2276
|
-
- `"Hope this is relevant if [topic] is part of the plan."`
|
|
2282
|
+
- `"Hope this is relevant if [topic] is part of the plan."`
|
|
2277
2283
|
- `"Saw you might be interested in [topic], so hope this is relevant."` Non-evergreen weak-signal only; blocked for shared evergreen lanes.
|
|
2278
2284
|
- `"Saw you in a few conversations around [topic], so hope this is relevant."` Non-evergreen weak-signal only; blocked for shared evergreen lanes.
|
|
2279
2285
|
- `"Saw you in a few conversations about [topic], so may be off, but this seemed relevant."`
|
|
@@ -2293,8 +2299,11 @@ Rules:
|
|
|
2293
2299
|
- `"Saw you raise your hand for [topic], so figured this was worth sending."`
|
|
2294
2300
|
- `"Figured this was worth sending."`
|
|
2295
2301
|
- signal-led opener shape is a **special case**, not the default. Use it only when the archived motion truly depends on it and the line can stay natural. For LinkedIn-post-sourced campaigns, prefer `"saw you in a few conversations around [topic], so hope this is relevant"` or `"found you in a thread about [topic], so may be off, but this seemed relevant"` when referencing the source makes the outreach feel less random. Avoid activity-log phrasing such as `"you commented on..."`, `"you reacted to..."`, or `"your LinkedIn activity..."` unless the approved motion is the deliberately self-aware raise-hand line for an explicit lead-magnet comment, reply, or opt-in.
|
|
2296
|
-
- For Shared Evergreen Signal Discovery, do not use the
|
|
2297
|
-
|
|
2302
|
+
- For Shared Evergreen Signal Discovery, do not use the `might be interested` or
|
|
2303
|
+
`saw you in a few conversations` weak signal-led opener shapes above. `Hope
|
|
2304
|
+
this is relevant` is allowed when it stays topic-level and avoids false
|
|
2305
|
+
engagement claims. Translate the source into a concrete problem bridge when
|
|
2306
|
+
that is stronger, e.g.
|
|
2298
2307
|
`"The AI-assisted GTM conversations keep coming back to one problem: turning
|
|
2299
2308
|
good LinkedIn signal into review-ready pipeline without another dashboard."`
|
|
2300
2309
|
Then connect the product in buyer language.
|
|
@@ -2306,9 +2315,11 @@ Rules:
|
|
|
2306
2315
|
this is relevant`, `saw you in a few conversations around [topic], so hope this
|
|
2307
2316
|
is relevant`, `saw you in a few conversations about [topic], so may be off,
|
|
2308
2317
|
but this seemed relevant`, or `found you in a thread about [topic], so may be
|
|
2309
|
-
off, but this seemed relevant`. For shared evergreen lanes,
|
|
2310
|
-
|
|
2311
|
-
|
|
2318
|
+
off, but this seemed relevant`. For shared evergreen lanes, `might be
|
|
2319
|
+
interested` and `saw you in a few conversations` weak signal bridges are
|
|
2320
|
+
blocked; `hope this is relevant` is allowed when it stays topic-level and avoids
|
|
2321
|
+
false engagement claims. Use a concrete signal/problem bridge when it is
|
|
2322
|
+
stronger. Use the self-aware raise-hand shapes only when
|
|
2312
2323
|
the source was an explicit lead-magnet comment, reply, or opt-in: `saw you raise
|
|
2313
2324
|
your hand for [topic], so figured this was (hopefully) worth sending` or `saw you
|
|
2314
2325
|
raise your hand for [topic] (creepy to reach out based on that, i know) - but
|