@sellable/mcp 0.1.204 → 0.1.206
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/README.md +11 -10
- package/agents/post-find-leads-filter-scout.md +2 -2
- package/agents/post-find-leads-message-scout.md +14 -7
- package/agents/registry.json +17 -17
- package/agents/source-scout-linkedin-engagement.md +2 -2
- package/agents/source-scout-prospeo-contact.md +3 -3
- package/agents/source-scout-sales-nav.md +3 -3
- package/dist/engage-memory.js +5 -0
- package/dist/identity-memory.js +4 -0
- package/dist/tools/engage-memory.js +2 -2
- package/dist/tools/leads.js +7 -11
- package/dist/tools/prompts.js +6 -6
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +24 -11
- package/skills/create-campaign/context/learnings.md +1 -1
- package/skills/create-campaign/references/brief-template.md +2 -2
- package/skills/create-campaign-brief/references/brief-template.md +2 -2
- package/skills/create-campaign-brief/references/draft-lifecycle.md +1 -1
- package/skills/create-campaign-brief/references/examples/briefs/gelee.md +2 -2
- package/skills/create-campaign-brief/references/examples/briefs/superpower.md +28 -41
- package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +9 -12
- package/skills/create-campaign-v2/SKILL.md +27 -21
- package/skills/create-campaign-v2/SOUL.md +12 -9
- package/skills/create-campaign-v2/core/flow.v2.json +1 -1
- package/skills/create-campaign-v2/references/approval-gate-framing.md +3 -3
- package/skills/create-campaign-v2/references/gold-standard-message-examples.md +16 -30
- package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +1 -1
- package/skills/create-campaign-v2/references/step-13-import-leads.md +2 -2
- package/skills/create-campaign-v2/references/thomas-revision-filters.md +1 -6
- package/skills/create-campaign-v2/references/validation-criteria.md +5 -8
- package/skills/create-campaign-v2/references/watch-guide-narration.md +2 -2
- package/skills/create-campaign-v2-tail/SKILL.md +9 -9
- package/skills/create-campaign-v2-validation/SKILL.md +1 -1
- package/skills/create-post/SKILL.md +27 -27
- package/skills/engage/SKILL.md +12 -12
- package/skills/engage/core/README.md +14 -14
- package/skills/find-leads/SKILL.md +1 -1
- package/skills/generate-messages/SKILL.md +54 -104
- package/skills/interview/SKILL.md +24 -24
- package/skills/interview/references/legacy-linkedin-interview.md +12 -12
- package/skills/interview/references/reference-curation.md +4 -4
- package/skills/interview/references/voice-capture-method.md +1 -1
- package/skills/load-voice/SKILL.md +25 -21
- package/skills/providers/signal-discovery.md +2 -2
- package/skills/research/SKILL.md +1 -1
- package/skills/create-campaign-v2/references/gold-standard-runtime-message-pack.md +0 -252
- package/skills/research/config.json +0 -9
|
@@ -35,82 +35,70 @@ Signal-based outreach using peer-to-peer tone. Positioning Superpower as early d
|
|
|
35
35
|
|
|
36
36
|
**VARIANT 1 — Subject: jeff/{{first name}} intro**
|
|
37
37
|
|
|
38
|
-
hey {{first name}},
|
|
38
|
+
hey {{first name}}, saw you were active around some {{topic}} stuff recently and figured this might actually be relevant
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
any chance you're exploring early detection or preventive health programs at {{company}}?
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
basically your team gets to see what's coming instead of just reacting to it
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
should i send over the short version?
|
|
46
|
+
can I send over some more info?
|
|
49
47
|
|
|
50
48
|
**VARIANT 2 — Subject: jeff/{{first name}} intro**
|
|
51
49
|
|
|
52
|
-
hey {{first name}}
|
|
53
|
-
|
|
54
|
-
saw you in a few conversations around {{topic}}, so hope this is relevant.
|
|
50
|
+
hey {{first name}}. saw you were active in some {{topic}} conversations recently and wanted to run something by you
|
|
55
51
|
|
|
56
52
|
most annual physicals test 15 biomarkers max.
|
|
57
53
|
|
|
58
|
-
|
|
54
|
+
there's over 100 that actually matter and the gap between those two numbers is where the expensive claims tend to sit
|
|
59
55
|
|
|
60
|
-
teams like Lyft and Notion are already exploring this
|
|
56
|
+
teams like Lyft and Notion are already exploring this. one draw, 1,000+ conditions, $199 a person.
|
|
61
57
|
|
|
62
|
-
if
|
|
58
|
+
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
|
|
63
59
|
|
|
64
|
-
|
|
60
|
+
can I send over some more info?
|
|
65
61
|
|
|
66
62
|
## Examples
|
|
67
63
|
|
|
68
64
|
**Example 1 (Variant 1 — self-insured health plans):**
|
|
69
65
|
Subject: susana/prab intro
|
|
70
66
|
|
|
71
|
-
hey susana,
|
|
72
|
-
|
|
73
|
-
saw you in a few conversations around self-insured health plans, so hope this is relevant.
|
|
67
|
+
hey susana, saw you were active around self-insured health plan content recently and figured this might actually be relevant
|
|
74
68
|
|
|
75
|
-
|
|
69
|
+
any chance you're exploring preventive health programs at Quantum Health?
|
|
76
70
|
|
|
77
|
-
|
|
71
|
+
we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
|
|
78
72
|
|
|
79
|
-
basically your team gets to see what's coming instead of
|
|
73
|
+
basically your team gets to see what's coming instead of just reacting to it
|
|
80
74
|
|
|
81
|
-
|
|
75
|
+
can I send over some more info?
|
|
82
76
|
|
|
83
77
|
**Example 2 (Variant 2 — employee wellness programs):**
|
|
84
78
|
Subject: lisa/prab intro
|
|
85
79
|
|
|
86
|
-
hey lisa
|
|
87
|
-
|
|
88
|
-
saw you in a few conversations around employee wellness programs, so hope this is relevant.
|
|
80
|
+
hey lisa. saw you were active in some employee wellness programs conversations recently and wanted to run something by you
|
|
89
81
|
|
|
90
82
|
most annual physicals test 15 biomarkers max.
|
|
91
83
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
teams like Lyft and Notion are already exploring this at $199 a person.
|
|
84
|
+
there's over 100 that actually matter and the gap is driving the surprise expensive claims every year
|
|
95
85
|
|
|
96
|
-
|
|
86
|
+
teams like Lyft and Notion are already exploring this. one test, 1,000+ conditions, $199 a person
|
|
97
87
|
|
|
98
|
-
|
|
88
|
+
can I send over some more info?
|
|
99
89
|
|
|
100
90
|
**Example 3 (Variant 1 — employee wellness programs):**
|
|
101
91
|
Subject: princess/prab intro
|
|
102
92
|
|
|
103
|
-
hey princess,
|
|
104
|
-
|
|
105
|
-
saw you in a few conversations around employee wellness programs, so hope this is relevant.
|
|
93
|
+
hey princess, saw you were active around employee wellness programs content recently and figured this might actually be relevant
|
|
106
94
|
|
|
107
|
-
|
|
95
|
+
any chance you're exploring preventive health programs at Marriott?
|
|
108
96
|
|
|
109
|
-
|
|
97
|
+
we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
|
|
110
98
|
|
|
111
|
-
basically your team gets to see what's coming instead of
|
|
99
|
+
basically your team gets to see what's coming instead of just reacting to it
|
|
112
100
|
|
|
113
|
-
|
|
101
|
+
can I send over some more info?
|
|
114
102
|
|
|
115
103
|
## Social Proof
|
|
116
104
|
|
|
@@ -124,8 +112,7 @@ Teams like Lyft and Notion are exploring Superpower's early detection platform.
|
|
|
124
112
|
- **ICP filtering:** All prospects filtered against ICP criteria before entering send queue
|
|
125
113
|
- **Positioning:** Early detection tool for claims prevention, not a wellness benefit
|
|
126
114
|
- **Tone:** All lowercase, casual, peer-to-peer - building relationship before asking
|
|
127
|
-
- **Two approved variants:** Testing
|
|
128
|
-
benefits mechanism
|
|
115
|
+
- **Two approved variants:** Testing different hooks (exploratory vs. problem-aware)
|
|
129
116
|
|
|
130
117
|
### Rubric Markdown
|
|
131
118
|
|
|
@@ -225,8 +212,8 @@ Teams like Lyft and Notion are already using early detection screening. One bloo
|
|
|
225
212
|
|
|
226
213
|
**Subject: Prab/{{first_name}} intro**
|
|
227
214
|
|
|
228
|
-
Hey {{first_name}},
|
|
215
|
+
Hey {{first_name}}, not sure if you've looked into this but felt it may be relevant to your work.
|
|
229
216
|
|
|
230
|
-
|
|
217
|
+
have you ever looked into early detection or preventive health programs for {{company}}?
|
|
231
218
|
|
|
232
|
-
|
|
219
|
+
we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
|
|
@@ -14,8 +14,7 @@ Included as primary gold examples:
|
|
|
14
14
|
- `Galley`
|
|
15
15
|
- `Clover`
|
|
16
16
|
- `Persona`
|
|
17
|
-
- `Superpower`
|
|
18
|
-
opener, not retired engagement-source phrasing
|
|
17
|
+
- `Superpower`
|
|
19
18
|
|
|
20
19
|
Not included in runtime inspiration:
|
|
21
20
|
|
|
@@ -34,9 +33,6 @@ Not included in runtime inspiration:
|
|
|
34
33
|
|
|
35
34
|
- Feed only endorsed examples into generation.
|
|
36
35
|
- Keep bad lines only if they are explicitly labeled `BAD` and paired with a `BETTER` version.
|
|
37
|
-
- Treat sellable.dev, Hey Digital, Persona, Galley, and Clover as the primary
|
|
38
|
-
line-level quality anchors. Superpower is useful for benefits/healthcare
|
|
39
|
-
mechanism language, but it must not outrank those examples on opener style.
|
|
40
36
|
- Default to one approved message in the generated brief unless the ICP is genuinely broad.
|
|
41
37
|
- A/B CTA is optional. Use it only when the second option is truly strong.
|
|
42
38
|
- If there is a great low-friction proof asset or case study, that is often the best Option B.
|
|
@@ -217,21 +213,22 @@ Why included:
|
|
|
217
213
|
|
|
218
214
|
- simple language in a hard domain
|
|
219
215
|
- useful plain-language healthcare constraint example
|
|
220
|
-
- why it works: it
|
|
221
|
-
in plain language, and keeps the ask tiny instead of forcing a
|
|
216
|
+
- why it works: it asks about the buyer's existing benefits priority, explains
|
|
217
|
+
the mechanism in plain language, and keeps the ask tiny instead of forcing a
|
|
218
|
+
call
|
|
222
219
|
|
|
223
220
|
```md
|
|
224
221
|
Hey {{first_name}},
|
|
225
222
|
|
|
226
|
-
|
|
223
|
+
not sure if you've looked into this but felt it may be relevant to your work.
|
|
227
224
|
|
|
228
|
-
|
|
225
|
+
have you ever looked into early detection or preventive health programs for {{company}}?
|
|
229
226
|
|
|
230
|
-
|
|
227
|
+
we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
|
|
231
228
|
|
|
232
|
-
basically your team gets to see what's coming instead of
|
|
229
|
+
basically your team gets to see what's coming instead of just reacting to it
|
|
233
230
|
|
|
234
|
-
|
|
231
|
+
can I send over some more info?
|
|
235
232
|
```
|
|
236
233
|
|
|
237
234
|
Locked production variant from the same Superpower campaign:
|
|
@@ -38,7 +38,7 @@ Legacy commit-gate/atomic-mint is only in create-campaign-v2-validation.
|
|
|
38
38
|
3. Research the client/company and current offer enough to draft a concrete brief.
|
|
39
39
|
4. Create the watchable campaign shell with `create_campaign` and the v1 brief.
|
|
40
40
|
5. Surface the direct watch link once before brief approval.
|
|
41
|
-
6.
|
|
41
|
+
6. Approve the Find Buyers Plan, then approve Start Import.
|
|
42
42
|
7. Materialize the approved source list and confirm 15 campaign-table rows for
|
|
43
43
|
filter/message setup; do not present that as source sampling.
|
|
44
44
|
8. Ask whether to use filters or skip them.
|
|
@@ -143,7 +143,7 @@ Use the host-native structured question gate (`request_user_input` or
|
|
|
143
143
|
AskUserQuestion) only for bounded choices:
|
|
144
144
|
|
|
145
145
|
- target, offer, credibility, and prospect-source setup choices after research
|
|
146
|
-
-
|
|
146
|
+
- Find Buyers Plan, Start Import, or source revision
|
|
147
147
|
- use filters vs skip filters
|
|
148
148
|
- approve message vs revise message
|
|
149
149
|
- sender/sequence/launch choices at Settings
|
|
@@ -230,7 +230,7 @@ move to Prospeo. Prospeo is the terminal fallback;
|
|
|
230
230
|
if it also falls below 10%, tighten the ICP/source direction instead of
|
|
231
231
|
inventing another provider.
|
|
232
232
|
|
|
233
|
-
After scouting, show a second approval gate for
|
|
233
|
+
After scouting, show a second approval gate for Start Import.
|
|
234
234
|
For LinkedIn engagement (`signal-discovery` internally), use plain language:
|
|
235
235
|
selected posts, people we can check, likely prospects, what the first
|
|
236
236
|
review will inspect, cleanup risk, and fallback. Label the approval like
|
|
@@ -241,7 +241,7 @@ Prospeo, name the specific search/import path and source lead count. Do not call
|
|
|
241
241
|
`import_leads` or `confirm_lead_list` until this gate is approved.
|
|
242
242
|
|
|
243
243
|
For Sales Nav and Prospeo, do not ask to import only the internal 15-row
|
|
244
|
-
campaign-table execution slice at the
|
|
244
|
+
campaign-table execution slice at the Start Import gate. First-page samples are
|
|
245
245
|
source math: sampled fit, projected good-fit prospects, and whether the path
|
|
246
246
|
clears the target. Once it clears, ask approval for a source list with
|
|
247
247
|
`targetLeadCount` around 1,000 contacts by default. After that,
|
|
@@ -249,8 +249,8 @@ clears the target. Once it clears, ask approval for a source list with
|
|
|
249
249
|
confirmed source rows into the campaign table and returns the initial
|
|
250
250
|
campaign-table execution slice row ids for filter and message setup.
|
|
251
251
|
|
|
252
|
-
After the user approves this
|
|
253
|
-
Source Recommendation again or ask another
|
|
252
|
+
After the user approves this Start Import gate, do not show the
|
|
253
|
+
Source Recommendation again or ask another Start Import question.
|
|
254
254
|
Acknowledge once, then call `import_leads` immediately with the approved source
|
|
255
255
|
math. For Sales Nav/Prospeo, pass `targetLeadCount` as the approved source-list
|
|
256
256
|
export count, not the campaign execution-slice size. For Signal Discovery, pass
|
|
@@ -261,7 +261,7 @@ After `import_leads`, poll `wait_for_lead_list_ready` until ready, failed, or
|
|
|
261
261
|
cancelled. Rows appearing is not enough for `confirm_lead_list`; use
|
|
262
262
|
`allowPartialSourceList: true` only when the user explicitly asks to continue early.
|
|
263
263
|
|
|
264
|
-
For LinkedIn engagement, the
|
|
264
|
+
For LinkedIn engagement, the Start Import approval uses `## Source
|
|
265
265
|
Recommendation`, plain language, selected posts, people to check, likely
|
|
266
266
|
prospects, cleanup risk, fallback, and the first 15-lead review.
|
|
267
267
|
|
|
@@ -279,21 +279,21 @@ Supplied profile CSVs, company/domain CSVs, pasted domains, and existing
|
|
|
279
279
|
Sellable lead lists are supported, but keep provider mechanics out of the first
|
|
280
280
|
customer-facing source-choice labels.
|
|
281
281
|
|
|
282
|
-
##
|
|
282
|
+
## Prospect Setup Workstreams
|
|
283
283
|
|
|
284
284
|
After `confirm_lead_list` copies a non-empty confirmed source into the campaign
|
|
285
285
|
and records the compact review batch, ask the filter-choice question
|
|
286
286
|
immediately. Do not call
|
|
287
287
|
`get_post_find_leads_scout_registry`, load filter/message subskill prompts, or
|
|
288
|
-
spawn
|
|
288
|
+
spawn Prospect Filters / Message Drafting before that question. The only customer-facing work
|
|
289
289
|
before the question should be a short campaign setup summary and the choice:
|
|
290
290
|
add filters, skip filters, or revise source. Do not include another watch link
|
|
291
291
|
in this summary; the existing app view updates through campaign state.
|
|
292
292
|
|
|
293
|
-
If the user chooses filters, load the
|
|
294
|
-
filtering and start
|
|
295
|
-
|
|
296
|
-
|
|
293
|
+
If the user chooses filters, load the prospect-setup registry/reference needed
|
|
294
|
+
for filtering and start Prospect Filters. Also start Message Drafting from the
|
|
295
|
+
same campaign/table basis once filter-choice is known. If filters are skipped,
|
|
296
|
+
move the watched app to Messages and run Message Drafting there.
|
|
297
297
|
Debug markdown/json artifacts are optional only.
|
|
298
298
|
|
|
299
299
|
When the user chooses filters, immediately call
|
|
@@ -303,23 +303,29 @@ visible so the user can approve saved criteria. Only after approval should
|
|
|
303
303
|
`update_campaign` move to `apply-icp-rubric` / Filter Leads and show
|
|
304
304
|
`Filters saved + waiting for message approval` until the template is approved. Do not
|
|
305
305
|
queue enrichment/filtering/Generate Message cells until message approval. Tell
|
|
306
|
-
the user
|
|
306
|
+
the user Message Drafting is preparing the template in the background.
|
|
307
307
|
|
|
308
|
-
|
|
308
|
+
Prospect Filters persists production rubrics with `save_rubrics` when filters
|
|
309
309
|
are enabled. It must not require `brief.md`, `lead-review.md`, or
|
|
310
310
|
`lead-sample.json`.
|
|
311
311
|
|
|
312
|
-
Run `post-find-leads-message-scout` as
|
|
313
|
-
|
|
312
|
+
Run compatibility agent `post-find-leads-message-scout` as Message Drafting
|
|
313
|
+
when allowed. Keep the long prompt and refs there.
|
|
314
|
+
|
|
315
|
+
Codex: YOLO counts as campaign bg-agent permission. If no permission, ask once
|
|
316
|
+
after filter choice. Use generic `gpt-5.5` / `xhigh` if needed. Never draft in
|
|
317
|
+
parent silently.
|
|
318
|
+
|
|
319
|
+
Load:
|
|
314
320
|
|
|
315
321
|
```text
|
|
316
322
|
get_subskill_prompt({ subskillName: "generate-messages" })
|
|
317
323
|
```
|
|
318
324
|
|
|
319
|
-
Do not use any alternate or examples-only message prompt.
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
325
|
+
Do not use any alternate or examples-only message prompt. Do not render message
|
|
326
|
+
review until `messageDraftRecommendation` proves current campaign/table basis
|
|
327
|
+
and shows whether it came from a background branch or an explicitly approved
|
|
328
|
+
inline fallback.
|
|
323
329
|
|
|
324
330
|
## Hard Gates
|
|
325
331
|
|
|
@@ -256,8 +256,7 @@ Customer-facing source-plan copy must avoid "lane", "provider",
|
|
|
256
256
|
"pilot volume", "workflow pain", and "ICP". Use "buyers" for the target market,
|
|
257
257
|
"people to check" for raw reactions/comments, "prospects" after fit looks
|
|
258
258
|
usable, and "leads" for campaign rows. Second, after the source evidence exists, show
|
|
259
|
-
counts, samples, fit math, cleanup risk, and ask for
|
|
260
|
-
import.
|
|
259
|
+
counts, samples, fit math, cleanup risk, and ask for Start Import approval.
|
|
261
260
|
|
|
262
261
|
For LinkedIn engagement, the second gate is not "approve source" in the abstract.
|
|
263
262
|
It is a concrete scrape approval: show a compact `## Source Recommendation`
|
|
@@ -301,14 +300,15 @@ scout loads only its matching provider prompt. If source work is sequential,
|
|
|
301
300
|
keep the output numeric but do not claim the source scout was parallel or
|
|
302
301
|
surface install status to the customer.
|
|
303
302
|
|
|
304
|
-
For
|
|
303
|
+
For prospect setup work, call `get_post_find_leads_scout_registry` after
|
|
305
304
|
the user chooses filters, not before the filter-choice question. After
|
|
306
305
|
`confirm_lead_list` copies source rows and records the first review/process
|
|
307
306
|
sample, ask add-filters vs skip-filters
|
|
308
|
-
immediately. Once the user answers, start
|
|
309
|
-
message
|
|
310
|
-
filters, also start
|
|
311
|
-
|
|
307
|
+
immediately. Once the user answers, start Message Drafting via
|
|
308
|
+
`post-find-leads-message-scout` from the same campaign/table basis. If the user
|
|
309
|
+
chooses filters, also start Prospect Filters via
|
|
310
|
+
`post-find-leads-filter-scout`, move the browser to Filter Rules, save rubrics,
|
|
311
|
+
then ask for filter approval. After approval, keep the
|
|
312
312
|
browser on Filter Leads and show `Filters saved + waiting for message approval`
|
|
313
313
|
while the message recommendation is reviewed. If the user skips filters, move
|
|
314
314
|
the browser to Messages/message review. The join gate is saved-filter approval or
|
|
@@ -316,8 +316,11 @@ a resolved skip-filter choice, plus a message recommendation grounded in the sam
|
|
|
316
316
|
campaign/table basis. Enrichment, filtering, and Generate Message cells wait for
|
|
317
317
|
template approval on the Use Template path.
|
|
318
318
|
|
|
319
|
-
Only promise parallel
|
|
320
|
-
host cannot or should not launch background branches,
|
|
319
|
+
Only promise parallel prospect setup work when parallel work actually started. If the
|
|
320
|
+
host cannot or should not launch background branches, do not silently move the
|
|
321
|
+
long message prompt into the parent thread. In Codex, ask once for permission to
|
|
322
|
+
use background Message Drafting. If the user declines or asks to continue
|
|
323
|
+
without background agents, say the real sequence:
|
|
321
324
|
|
|
322
325
|
```text
|
|
323
326
|
I’ll tighten the filter first, then run message generation from the same sample.
|