@sellable/mcp 0.1.126 → 0.1.127
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/agents/post-find-leads-message-scout.md +10 -0
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +1 -0
- package/skills/create-campaign-v2/SKILL.md +6 -5
- package/skills/create-campaign-v2/references/message-review-safety-gate.md +16 -9
- package/skills/generate-messages/SKILL.md +12 -0
|
@@ -80,6 +80,9 @@ Quality bar:
|
|
|
80
80
|
|
|
81
81
|
- Do not synthesize a lightweight message from general knowledge. The artifact
|
|
82
82
|
must prove the embedded message-review safety-gate workflow ran.
|
|
83
|
+
- There is no generate-message fast mode in this path. The embedded gate is the
|
|
84
|
+
same campaign-launch quality contract used by the parent-thread compatibility
|
|
85
|
+
path, not a lower-quality shortcut.
|
|
83
86
|
- Message generation can start before `lead-filter.md`, but message review
|
|
84
87
|
cannot start until the parent verifies the selected basis rows still pass the
|
|
85
88
|
final filter.
|
|
@@ -128,6 +131,13 @@ Quality gates:
|
|
|
128
131
|
`[insert]`, or `[generated]`.
|
|
129
132
|
- Optional row-specific personalization must be grounded in a row field or
|
|
130
133
|
omitted entirely.
|
|
134
|
+
- Engagement-source personalization is a special case, not the default opener.
|
|
135
|
+
Do not write `saw you {{engagement_context}} on {{post_context}}`, `saw you
|
|
136
|
+
reacted to`, `saw you engaging with`, or equivalent source-citation copy as a
|
|
137
|
+
default hook. Only refer to the prospect's engagement when the line is
|
|
138
|
+
self-aware and low-certainty, for example `not sure if this is too specific,
|
|
139
|
+
but the [topic] thread felt close enough to send`. Otherwise omit the
|
|
140
|
+
engagement signal and use role/company/problem context.
|
|
131
141
|
- Subjects should be short, buyer-relevant, and specific. Avoid `quick
|
|
132
142
|
question`, `demo`, `founder call`, sender names, and generic `outbound`.
|
|
133
143
|
- If the message is plausible but not ready to send, set `Recommendation:
|
package/package.json
CHANGED
|
@@ -561,6 +561,7 @@ updates.
|
|
|
561
561
|
Do not load the full long-form `generate-messages` subskill in this
|
|
562
562
|
create-campaign path; if the safety gate cannot safely approve the draft,
|
|
563
563
|
route to revise messaging with the concrete failure.
|
|
564
|
+
This compatibility path is not a generate-message fast mode.
|
|
564
565
|
Do not synthesize `message-validation.md` from the brief, lead review, or
|
|
565
566
|
general knowledge.
|
|
566
567
|
5. Create the campaign shell early with the v1 brief so the user can open the
|
|
@@ -1248,11 +1248,12 @@ mcp__sellable__get_subskill_asset({ subskillName: "create-campaign-v2", assetPat
|
|
|
1248
1248
|
```
|
|
1249
1249
|
|
|
1250
1250
|
Do not load the full long-form `generate-messages` subskill in
|
|
1251
|
-
`create-campaign-v2`. The safety-gate asset is a parent-thread
|
|
1252
|
-
that cannot launch `post-find-leads-message-scout`, not
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1251
|
+
`create-campaign-v2`. The safety-gate asset is a parent-thread compatibility
|
|
1252
|
+
path for hosts that cannot launch `post-find-leads-message-scout`, not a
|
|
1253
|
+
generate-message fast-mode prompt and not the preferred route. If the safety gate
|
|
1254
|
+
is missing a needed campaign-specific rule or the draft fails quality gates, stop
|
|
1255
|
+
at `revise-messaging` with the exact failure instead of pulling the long prompt
|
|
1256
|
+
into the main thread.
|
|
1256
1257
|
|
|
1257
1258
|
Do NOT proceed to Step 4 (message review gate) unless `message-validation.md`
|
|
1258
1259
|
contains the safety-gate required sections, a raw sendable Selected Winner, and an
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
Use this reference for `create-campaign-v2` message review only in two cases:
|
|
4
4
|
when these rules are embedded inside the `post-find-leads-message-scout` agent
|
|
5
5
|
prompt, or when the host cannot launch that agent and the parent thread needs a
|
|
6
|
-
|
|
7
|
-
to prove a truthful first-send message, rendered
|
|
8
|
-
decision without loading the full long-form
|
|
9
|
-
main Claude/Codex thread.
|
|
6
|
+
self-contained safety gate. It is the campaign-launch subset of
|
|
7
|
+
`generate-messages`: enough to prove a truthful first-send message, rendered
|
|
8
|
+
token examples, and an approval decision without loading the full long-form
|
|
9
|
+
message-generation prompt into the main Claude/Codex thread.
|
|
10
10
|
|
|
11
11
|
In a normal installed Claude/Codex session, the message scout owns these rules.
|
|
12
|
-
The parent-thread asset is a compatibility
|
|
13
|
-
the full `generate-messages` subskill in this flow. If
|
|
14
|
-
a needed campaign-specific rule or the draft fails
|
|
15
|
-
`revise-messaging` with the exact missing rule/failure
|
|
16
|
-
long prompt into the main thread.
|
|
12
|
+
The parent-thread asset is a compatibility safety path, not a fast-mode prompt
|
|
13
|
+
or a shortcut. Do not load the full `generate-messages` subskill in this flow. If
|
|
14
|
+
the safety gate is missing a needed campaign-specific rule or the draft fails
|
|
15
|
+
quality gates, stop at `revise-messaging` with the exact missing rule/failure
|
|
16
|
+
instead of pulling the long prompt into the main thread.
|
|
17
17
|
|
|
18
18
|
## Required Workflow
|
|
19
19
|
|
|
@@ -71,6 +71,13 @@ the full framework.
|
|
|
71
71
|
`[insert]`, `[generated]`, or any instruction for a later model to fill.
|
|
72
72
|
- Optional row-specific personalization must be grounded in a row field or
|
|
73
73
|
omitted entirely. Never use generic filler like "your work" or "your team."
|
|
74
|
+
- Engagement-source personalization is a special case, not the default opener.
|
|
75
|
+
Do not write `saw you {{engagement_context}} on {{post_context}}`, `saw you
|
|
76
|
+
reacted to`, `saw you engaging with`, or equivalent source-citation copy as a
|
|
77
|
+
default hook. Only refer to the prospect's engagement when the line is
|
|
78
|
+
self-aware and low-certainty, for example `not sure if this is too specific,
|
|
79
|
+
but the [topic] thread felt close enough to send`. Otherwise omit the
|
|
80
|
+
engagement signal and use role/company/problem context.
|
|
74
81
|
- Subject lines should be short, buyer-relevant, and specific. Avoid
|
|
75
82
|
`quick question`, `demo`, `founder call`, sender names, and generic `outbound`.
|
|
76
83
|
- If the message is plausible but not ready to send, set
|
|
@@ -1411,6 +1411,13 @@ about`, or `clearly relevant` are BLOCKED. Source-y phrases such as
|
|
|
1411
1411
|
context instead: `not sure if this is relevant, but if [topic] is part
|
|
1412
1412
|
of what you're testing...`, `this may be too specific, but [topic] felt
|
|
1413
1413
|
close enough to send`, or a similarly natural line.
|
|
1414
|
+
- **Engagement reference is opt-in, not the default opener:** do not
|
|
1415
|
+
default to `{{first_name}}, saw you {{engagement_context}} on
|
|
1416
|
+
{{post_context}}`, `saw you reacted to...`, or equivalent retrieval-log
|
|
1417
|
+
copy. That reads like surveillance unless the line is self-aware about
|
|
1418
|
+
the weak inference and uses low-certainty language. If that sounds
|
|
1419
|
+
awkward, omit the engagement source and open from role, company, problem,
|
|
1420
|
+
or the approved offer.
|
|
1414
1421
|
- **No internal-metric flex:** internal process details are not proof by
|
|
1415
1422
|
default. Compute time, token/cache details, model names, number of
|
|
1416
1423
|
agents, orchestration internals, or `~5 min of compute per message`
|
|
@@ -1764,6 +1771,11 @@ Rules:
|
|
|
1764
1771
|
- `"Saw you around [topic]."`
|
|
1765
1772
|
- `"Saw you engaging with [topic]."`
|
|
1766
1773
|
- 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. Follow Superpower's `"saw you were active around some [topic] stuff recently and figured this might actually be relevant"` shape only when it reads like a real human note rather than a retrieval flex.
|
|
1774
|
+
- tokenized engagement-source opener shape is BLOCKED by default:
|
|
1775
|
+
`{{first_name}}, saw you {{engagement_context}} on {{post_context}}` reads
|
|
1776
|
+
like surveillance unless the filled line is explicitly self-aware and
|
|
1777
|
+
low-certainty. Prefer `not sure if this is too specific, but the [topic]
|
|
1778
|
+
thread felt close enough to send` or omit the engagement reference entirely.
|
|
1767
1779
|
- if no per-lead signal exists, a category-level opener is acceptable as a fallback, but the Findings section must flag: `"Category-level opener used because lead-sample.json carries no per-lead signal. Real sends should surface signals in lead-sample.json before using this template."`
|
|
1768
1780
|
- this pushes the real fix upstream to find-leads, where the sample payload should include signals when they exist
|
|
1769
1781
|
|