@sellable/mcp 0.1.212 → 0.1.214
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 +7 -7
- package/agents/post-find-leads-message-scout.md +176 -134
- package/dist/engage-memory.js +0 -5
- package/dist/identity-memory.js +0 -4
- package/dist/tools/engage-memory.js +2 -2
- package/dist/tools/leads.js +7 -3
- package/dist/tools/prompts.js +18 -12
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +11 -12
- 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 +41 -28
- package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +27 -36
- package/skills/create-campaign-v2/SKILL.md +16 -9
- package/skills/create-campaign-v2/core/auto-execute.README.md +11 -11
- package/skills/create-campaign-v2/core/auto-execute.yaml +4 -4
- package/skills/create-campaign-v2/core/flow.v2.json +1 -1
- package/skills/create-campaign-v2/references/ai-tells.md +54 -19
- package/skills/create-campaign-v2/references/approval-gate-framing.md +10 -10
- package/skills/create-campaign-v2/references/escalation-ladder.md +3 -3
- package/skills/create-campaign-v2/references/final-handoff-contract.md +3 -3
- package/skills/create-campaign-v2/references/gold-standard-message-examples.md +295 -226
- package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +48 -9
- package/skills/create-campaign-v2/references/gold-standard-message-validation-example.md +4 -4
- package/skills/create-campaign-v2/references/lead-validation-preview.md +1 -1
- package/skills/create-campaign-v2/references/parallel-critique-protocol.md +10 -10
- package/skills/create-campaign-v2/references/sample-validation-loop.md +3 -3
- package/skills/create-campaign-v2/references/{thomas-revision-filters.md → sellable-cleanup-rules.md} +29 -19
- package/skills/create-campaign-v2/references/step-15-re-cascade.md +1 -1
- package/skills/create-campaign-v2/references/thomas-variant-selection.md +1 -1
- package/skills/create-campaign-v2/references/validation-criteria.md +24 -18
- package/skills/create-campaign-v2-tail/SKILL.md +7 -7
- package/skills/create-campaign-v2-validation/SKILL.md +23 -7
- 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 +305 -147
- 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 +21 -25
- package/skills/research/SKILL.md +1 -1
- package/skills/research/config.json +9 -0
package/package.json
CHANGED
|
@@ -66,8 +66,8 @@ allowed-tools:
|
|
|
66
66
|
|
|
67
67
|
Use this as the customer-facing public wrapper for Sellable campaign creation.
|
|
68
68
|
It bootstraps auth and host capabilities, then loads the internal
|
|
69
|
-
|
|
70
|
-
this wrapper thin;
|
|
69
|
+
the internal campaign workflow prompt and `core/flow.v2.json` through MCP. Keep
|
|
70
|
+
this wrapper thin; the packaged workflow is the operational source of truth.
|
|
71
71
|
|
|
72
72
|
CampaignOffer state and the watch link are the customer-facing source of truth.
|
|
73
73
|
Disk artifacts are optional debug/UAT diagnostics; normal customer runs should
|
|
@@ -722,7 +722,7 @@ updates.
|
|
|
722
722
|
No other lines. No "all set", no "signed in", no other acknowledgement.
|
|
723
723
|
|
|
724
724
|
After the user pastes the LinkedIn profile URL or handle, proceed with the
|
|
725
|
-
identity-first campaign setup in the
|
|
725
|
+
identity-first campaign setup in the internal workflow prompt. Normalize handles
|
|
726
726
|
to a full profile URL, resolve it with `fetch_linkedin_profile`, and mark
|
|
727
727
|
the client/company research gate with `complete_sender_research` when that
|
|
728
728
|
protocol is required.
|
|
@@ -760,11 +760,10 @@ updates.
|
|
|
760
760
|
Drafting whenever the host exposes it
|
|
761
761
|
and the current host policy allows agent launch. The worker must load the
|
|
762
762
|
full `mcp__sellable__get_subskill_prompt({ subskillName: "generate-messages" })`
|
|
763
|
-
prompt, every
|
|
764
|
-
`mcp__sellable__get_subskill_asset`, and before returning
|
|
763
|
+
prompt, every required message asset named by `generate-messages` Mode 0
|
|
764
|
+
through `mcp__sellable__get_subskill_asset`, and before returning
|
|
765
765
|
`mcp__sellable__get_subskill_prompt({ subskillName: "create-campaign-v2-validation" })`
|
|
766
|
-
|
|
767
|
-
`mcp__sellable__get_subskill_asset` as the internal validation gate.
|
|
766
|
+
as the final internal validation gate.
|
|
768
767
|
In Codex, YOLO/autonomous mode counts as campaign-scoped permission to use
|
|
769
768
|
this single Message Drafting background agent. If the user has not enabled
|
|
770
769
|
YOLO and has not explicitly asked for background agents, subagents, parallel
|
|
@@ -776,7 +775,7 @@ updates.
|
|
|
776
775
|
silently fall back to parent-thread message drafting; parent fallback is
|
|
777
776
|
allowed only when the user explicitly says to continue without a background
|
|
778
777
|
agent.
|
|
779
|
-
Do not use any alternate
|
|
778
|
+
Do not use any alternate, examples-only, or local-artifact message prompt. Message review and
|
|
780
779
|
message QA require Message Drafting output:
|
|
781
780
|
do not draft from a checklist, local markdown artifact, or parent-thread
|
|
782
781
|
intuition. Use campaign state, campaign brief content, selected source state, and
|
|
@@ -785,10 +784,10 @@ updates.
|
|
|
785
784
|
synthesize local validation artifacts from general knowledge. The handoff to
|
|
786
785
|
Message Drafting should pass lean basis only, not hashes, counts, or a long
|
|
787
786
|
row-id list; the branch loads current brief/context, the full
|
|
788
|
-
`generate-messages` prompt, all
|
|
789
|
-
`create-campaign-v2-validation
|
|
790
|
-
not render fallback sample, concerns, or a
|
|
791
|
-
path.
|
|
787
|
+
`generate-messages` prompt, all required message assets, and
|
|
788
|
+
`create-campaign-v2-validation`. The message recommendation handoff is
|
|
789
|
+
labeled Markdown, not raw JSON. Do not render fallback sample, concerns, or a
|
|
790
|
+
QA receipt on the normal happy path.
|
|
792
791
|
6. Create the campaign shell early with the v1 brief so the user can open the
|
|
793
792
|
watch link and see useful setup state immediately. Materialize the approved
|
|
794
793
|
source list, copy confirmed rows into the campaign, and internally process the
|
|
@@ -4,7 +4,7 @@ This log captures what has worked in real campaigns.
|
|
|
4
4
|
|
|
5
5
|
Entries should be short, specific, and based on observed outcomes.
|
|
6
6
|
|
|
7
|
-
**Cross-skill learnings** that would help other skills (engage, create-post) should ALSO be written to
|
|
7
|
+
**Cross-skill learnings** that would help other skills (engage, create-post) should ALSO be written to `~/.sellable/insights/cross-skill.md` so the entire system learns.
|
|
8
8
|
|
|
9
9
|
## Log
|
|
10
10
|
|
|
@@ -41,8 +41,8 @@ Example: "In a 15-minute call, we will audit your top 10 accounts and show where
|
|
|
41
41
|
- **Bridge to:** [How it connects to their pain]
|
|
42
42
|
- **Avoid:** [Generic phrases to skip - "best-in-class", "industry-leading", etc.]
|
|
43
43
|
- **Voice:** [Reference core memory / composed engage memory first. Use legacy writing memory only as fallback.]
|
|
44
|
-
- **Outbound rules:** [Reference
|
|
45
|
-
- **Proof boundaries:** [Reference
|
|
44
|
+
- **Outbound rules:** [Reference `~/.sellable/configs/writing/outbound.md` if loaded -- observation -> relevance -> ask]
|
|
45
|
+
- **Proof boundaries:** [Reference `~/.sellable/configs/core/proof-ledger.md` and `~/.sellable/configs/core/wins-ledger.md` if loaded. Do not upgrade or invent claims.]
|
|
46
46
|
|
|
47
47
|
## Do NOT Target
|
|
48
48
|
|
|
@@ -15,7 +15,7 @@ assistant message directly from the `result.result` stream-json payload —
|
|
|
15
15
|
it does not read a file off disk.
|
|
16
16
|
|
|
17
17
|
If you find yourself emitting a TodoWrite step like "Write brief.md v1
|
|
18
|
-
to disk" or "Save brief to
|
|
18
|
+
to disk" or "Save brief to ~/.sellable/..." — DELETE that step and return
|
|
19
19
|
the brief inline instead. The tools `Write`, `Edit`, and `Bash` are
|
|
20
20
|
intentionally not in the Phase 83 harness allowlist; attempting them
|
|
21
21
|
will cause a ToolSearch loop that deadlocks the turn.
|
|
@@ -37,7 +37,7 @@ offer is, why it should work, and what must be true before we launch. Do not
|
|
|
37
37
|
prescribe message structure, opener order, or final copy here.]
|
|
38
38
|
|
|
39
39
|
Draft path:
|
|
40
|
-
|
|
40
|
+
`~/.sellable/create-campaign-brief/drafts/{workspace-slug}/{campaign-slug}/brief.md`
|
|
41
41
|
|
|
42
42
|
## Product
|
|
43
43
|
|
|
@@ -58,7 +58,7 @@ _Personalization: References their previous exit or current venture by name + th
|
|
|
58
58
|
|
|
59
59
|
Hi {{first_name}}, let me know if i'm off, but {{seems_like_you}}.
|
|
60
60
|
|
|
61
|
-
saw you
|
|
61
|
+
saw you in a few conversations around {{signal_topic}}, so hope this is relevant.
|
|
62
62
|
|
|
63
63
|
we work with about 30 exited founders right now (yc, techstars, sequoia backed) handling their entire linkedin with ai + human review.
|
|
64
64
|
|
|
@@ -131,7 +131,7 @@ is this worth a look or should i send a short overview?
|
|
|
131
131
|
|
|
132
132
|
Hi sarah, let me know if i'm off, but seems like you started building something new in the pharma space after the Benchling exit.
|
|
133
133
|
|
|
134
|
-
saw you
|
|
134
|
+
saw you in a few conversations around founder-led growth, so hope this is relevant.
|
|
135
135
|
|
|
136
136
|
we work with about 30 exited founders right now (yc, techstars, sequoia backed) handling their entire linkedin with ai + human review.
|
|
137
137
|
|
|
@@ -35,70 +35,82 @@ 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}},
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
saw you in a few conversations around {{topic}}, so hope this is relevant.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
if preventive health is anywhere near the benefits plan at {{company}}, Superpower helps the team spot risk earlier.
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
it screens for 1,000+ conditions from a single blood draw and surfaces risks before they become claims.
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
basically your team gets to see what's coming instead of only reacting to it.
|
|
47
|
+
|
|
48
|
+
should i send over the short version?
|
|
47
49
|
|
|
48
50
|
**VARIANT 2 — Subject: jeff/{{first name}} intro**
|
|
49
51
|
|
|
50
|
-
hey {{first name}}
|
|
52
|
+
hey {{first name}},
|
|
53
|
+
|
|
54
|
+
saw you in a few conversations around {{topic}}, so hope this is relevant.
|
|
51
55
|
|
|
52
56
|
most annual physicals test 15 biomarkers max.
|
|
53
57
|
|
|
54
|
-
|
|
58
|
+
Superpower looks at 100+ biomarkers and screens for 1,000+ conditions from one draw.
|
|
55
59
|
|
|
56
|
-
teams like Lyft and Notion are already exploring this
|
|
60
|
+
teams like Lyft and Notion are already exploring this at $199 a person.
|
|
57
61
|
|
|
58
|
-
if
|
|
62
|
+
if preventive health is nowhere near your lane, ignore me.
|
|
59
63
|
|
|
60
|
-
|
|
64
|
+
should i send over the short version?
|
|
61
65
|
|
|
62
66
|
## Examples
|
|
63
67
|
|
|
64
68
|
**Example 1 (Variant 1 — self-insured health plans):**
|
|
65
69
|
Subject: susana/prab intro
|
|
66
70
|
|
|
67
|
-
hey susana,
|
|
71
|
+
hey susana,
|
|
72
|
+
|
|
73
|
+
saw you in a few conversations around self-insured health plans, so hope this is relevant.
|
|
68
74
|
|
|
69
|
-
|
|
75
|
+
if preventive health is anywhere near the benefits plan at Quantum Health, Superpower helps the team spot risk earlier.
|
|
70
76
|
|
|
71
|
-
|
|
77
|
+
it screens for 1,000+ conditions from a single blood draw and surfaces risks before they become claims.
|
|
72
78
|
|
|
73
|
-
basically your team gets to see what's coming instead of
|
|
79
|
+
basically your team gets to see what's coming instead of only reacting to it.
|
|
74
80
|
|
|
75
|
-
|
|
81
|
+
should i send over the short version?
|
|
76
82
|
|
|
77
83
|
**Example 2 (Variant 2 — employee wellness programs):**
|
|
78
84
|
Subject: lisa/prab intro
|
|
79
85
|
|
|
80
|
-
hey lisa
|
|
86
|
+
hey lisa,
|
|
87
|
+
|
|
88
|
+
saw you in a few conversations around employee wellness programs, so hope this is relevant.
|
|
81
89
|
|
|
82
90
|
most annual physicals test 15 biomarkers max.
|
|
83
91
|
|
|
84
|
-
|
|
92
|
+
Superpower looks at 100+ biomarkers and screens for 1,000+ conditions from one draw.
|
|
93
|
+
|
|
94
|
+
teams like Lyft and Notion are already exploring this at $199 a person.
|
|
85
95
|
|
|
86
|
-
|
|
96
|
+
if preventive health is nowhere near your lane, ignore me.
|
|
87
97
|
|
|
88
|
-
|
|
98
|
+
should i send over the short version?
|
|
89
99
|
|
|
90
100
|
**Example 3 (Variant 1 — employee wellness programs):**
|
|
91
101
|
Subject: princess/prab intro
|
|
92
102
|
|
|
93
|
-
hey princess,
|
|
103
|
+
hey princess,
|
|
104
|
+
|
|
105
|
+
saw you in a few conversations around employee wellness programs, so hope this is relevant.
|
|
94
106
|
|
|
95
|
-
|
|
107
|
+
if preventive health is anywhere near the benefits plan at Marriott, Superpower helps the team spot risk earlier.
|
|
96
108
|
|
|
97
|
-
|
|
109
|
+
it screens for 1,000+ conditions from a single blood draw and surfaces risks before they become claims.
|
|
98
110
|
|
|
99
|
-
basically your team gets to see what's coming instead of
|
|
111
|
+
basically your team gets to see what's coming instead of only reacting to it.
|
|
100
112
|
|
|
101
|
-
|
|
113
|
+
should i send over the short version?
|
|
102
114
|
|
|
103
115
|
## Social Proof
|
|
104
116
|
|
|
@@ -112,7 +124,8 @@ Teams like Lyft and Notion are exploring Superpower's early detection platform.
|
|
|
112
124
|
- **ICP filtering:** All prospects filtered against ICP criteria before entering send queue
|
|
113
125
|
- **Positioning:** Early detection tool for claims prevention, not a wellness benefit
|
|
114
126
|
- **Tone:** All lowercase, casual, peer-to-peer - building relationship before asking
|
|
115
|
-
- **Two approved variants:** Testing
|
|
127
|
+
- **Two approved variants:** Testing a low-certainty signal bridge vs. proof-led
|
|
128
|
+
benefits mechanism
|
|
116
129
|
|
|
117
130
|
### Rubric Markdown
|
|
118
131
|
|
|
@@ -212,8 +225,8 @@ Teams like Lyft and Notion are already using early detection screening. One bloo
|
|
|
212
225
|
|
|
213
226
|
**Subject: Prab/{{first_name}} intro**
|
|
214
227
|
|
|
215
|
-
Hey {{first_name}},
|
|
228
|
+
Hey {{first_name}},
|
|
216
229
|
|
|
217
|
-
|
|
230
|
+
hope this is relevant if preventive health is anywhere near the benefits plan at {{company}}.
|
|
218
231
|
|
|
219
|
-
|
|
232
|
+
Superpower screens for 1,000+ conditions from a single blood draw and surfaces risks before they become claims.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Active Runtime Message Pack
|
|
2
2
|
|
|
3
3
|
This is the narrow message inspiration pack for `create-campaign-brief`.
|
|
4
4
|
|
|
@@ -14,7 +14,8 @@ Included as primary gold examples:
|
|
|
14
14
|
- `Galley`
|
|
15
15
|
- `Clover`
|
|
16
16
|
- `Persona`
|
|
17
|
-
- `Superpower`
|
|
17
|
+
- `Superpower` — domain-language reference only; use the cleaned low-certainty
|
|
18
|
+
opener, not retired engagement-source phrasing
|
|
18
19
|
|
|
19
20
|
Not included in runtime inspiration:
|
|
20
21
|
|
|
@@ -33,6 +34,9 @@ Not included in runtime inspiration:
|
|
|
33
34
|
|
|
34
35
|
- Feed only endorsed examples into generation.
|
|
35
36
|
- 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.
|
|
36
40
|
- Default to one approved message in the generated brief unless the ICP is genuinely broad.
|
|
37
41
|
- A/B CTA is optional. Use it only when the second option is truly strong.
|
|
38
42
|
- If there is a great low-friction proof asset or case study, that is often the best Option B.
|
|
@@ -134,22 +138,26 @@ b) I send you our B2B Ads Arsenal — ad templates, playbooks, and case studies
|
|
|
134
138
|
|
|
135
139
|
Why included:
|
|
136
140
|
|
|
137
|
-
- strongest
|
|
138
|
-
-
|
|
139
|
-
- why it works: the
|
|
140
|
-
|
|
141
|
-
|
|
141
|
+
- strongest signal-led honest-operator foodservice motion
|
|
142
|
+
- concrete buyer pain before product category
|
|
143
|
+
- why it works: the source bridge is low-certainty, the mechanism connects real
|
|
144
|
+
operating objects, and the CTA names a useful conversation instead of asking
|
|
145
|
+
for a generic call
|
|
142
146
|
|
|
143
147
|
```md
|
|
144
|
-
|
|
148
|
+
Hey Mohamed,
|
|
149
|
+
|
|
150
|
+
Found you in a thread about food cost margins, so may be off, but this seemed relevant.
|
|
145
151
|
|
|
146
|
-
|
|
152
|
+
Bulk costing gets messy when recipes, portions, and vendor prices live apart.
|
|
147
153
|
|
|
148
|
-
|
|
154
|
+
Galley is a Culinary Resource Planning platform for foodservice teams.
|
|
149
155
|
|
|
150
|
-
|
|
156
|
+
It keeps recipes, ingredient costs, and menu margins connected - where purchasing and production can work from the same numbers.
|
|
151
157
|
|
|
152
|
-
|
|
158
|
+
Open to a quick call on recipe costing and margin visibility?
|
|
159
|
+
|
|
160
|
+
P.S. 2,400+ kitchens already use Galley - with a 4.9 average rating :)
|
|
153
161
|
```
|
|
154
162
|
|
|
155
163
|
### Clover
|
|
@@ -213,36 +221,19 @@ Why included:
|
|
|
213
221
|
|
|
214
222
|
- simple language in a hard domain
|
|
215
223
|
- useful plain-language healthcare constraint example
|
|
216
|
-
- why it works: it
|
|
217
|
-
|
|
218
|
-
call
|
|
224
|
+
- why it works: it uses a low-certainty signal bridge, explains the mechanism
|
|
225
|
+
in plain language, and keeps the ask tiny instead of forcing a call
|
|
219
226
|
|
|
220
227
|
```md
|
|
221
228
|
Hey {{first_name}},
|
|
222
229
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
have you ever looked into early detection or preventive health programs for {{company}}?
|
|
226
|
-
|
|
227
|
-
we screen for 1,000+ conditions from a single blood draw and surface risks before they ever become claims.
|
|
228
|
-
|
|
229
|
-
basically your team gets to see what's coming instead of just reacting to it
|
|
230
|
-
|
|
231
|
-
can I send over some more info?
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
Locked production variant from the same Superpower campaign:
|
|
235
|
-
|
|
236
|
-
```md
|
|
237
|
-
subject: {{company}} + 1,000 biomarkers + 24/7 care team
|
|
238
|
-
|
|
239
|
-
hey {{first_name}},
|
|
230
|
+
saw you in a few conversations around {{topic}}, so hope this is relevant.
|
|
240
231
|
|
|
241
|
-
|
|
232
|
+
if preventive health is anywhere near the benefits plan at {{company}}, Superpower helps the team spot risk earlier.
|
|
242
233
|
|
|
243
|
-
|
|
234
|
+
it screens for 1,000+ conditions from a single blood draw and surfaces risks before they become claims.
|
|
244
235
|
|
|
245
|
-
|
|
236
|
+
basically your team gets to see what's coming instead of only reacting to it.
|
|
246
237
|
|
|
247
|
-
|
|
238
|
+
should i send over the short version?
|
|
248
239
|
```
|
|
@@ -4,9 +4,9 @@ description: compact JSON-gated shell-first Sellable campaign flow through sourc
|
|
|
4
4
|
visibility: internal
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Create Campaign
|
|
7
|
+
# Create Campaign Workflow
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Fast entry point. Run the active state machine in `core/flow.v2.json`;
|
|
10
10
|
load deeper references only at the stage that needs them.
|
|
11
11
|
Load the compact flow for exact gates:
|
|
12
12
|
|
|
@@ -27,6 +27,10 @@ handoff read campaign state first: `campaignId`, `watchUrl`, `campaignBrief`,
|
|
|
27
27
|
`leadScoringRubrics`, `approvedMessageTemplate`, `senderIds`,
|
|
28
28
|
`sequenceTemplate`, and running state. Local draft files are debug-only.
|
|
29
29
|
|
|
30
|
+
There is no normal approval-packet, commit-gate, or atomic-mint path in the
|
|
31
|
+
active flow. Legacy packet/mint artifacts stay in
|
|
32
|
+
`create-campaign-v2-validation` and rehearsal material only.
|
|
33
|
+
|
|
30
34
|
## Normal Flow
|
|
31
35
|
|
|
32
36
|
1. Bootstrap and tell the user the active Sellable workspace.
|
|
@@ -305,7 +309,7 @@ background.
|
|
|
305
309
|
|
|
306
310
|
Codex: YOLO counts as permission for this one post-import worker. If no
|
|
307
311
|
permission, ask once after filter choice. Use generic `gpt-5.5` / `xhigh`
|
|
308
|
-
Message Drafting if needed.
|
|
312
|
+
Message Drafting if needed.
|
|
309
313
|
|
|
310
314
|
If the user critiques or edits the template before `approve-message`, route the
|
|
311
315
|
feedback back to Message Drafting with current `messageDraftRecommendation`,
|
|
@@ -318,18 +322,21 @@ and validation before approval also belong to Message Drafting, but validation
|
|
|
318
322
|
is an internal gate. Do not render `renderedFallbackSample`, `concerns`, or a
|
|
319
323
|
full `qaReceipt` in the normal happy path.
|
|
320
324
|
|
|
321
|
-
|
|
325
|
+
Run `post-find-leads-message-scout` as Message Draft Builder when exposed. It
|
|
326
|
+
must load:
|
|
322
327
|
|
|
323
328
|
```text
|
|
324
329
|
get_subskill_prompt({ subskillName: "generate-messages" })
|
|
325
|
-
get_subskill_asset(...) for every asset
|
|
330
|
+
get_subskill_asset(...) for every required message asset named by generate-messages Mode 0
|
|
326
331
|
get_subskill_prompt({ subskillName: "create-campaign-v2-validation" })
|
|
327
332
|
```
|
|
328
333
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
fallback.
|
|
334
|
+
After candidate generation/revision and before returning `ready`, Message Draft
|
|
335
|
+
Builder must load `create-campaign-v2-validation` through MCP as the final gate.
|
|
336
|
+
No alternate, examples-only, or local-artifact prompt. If the agent cannot
|
|
337
|
+
launch, the parent fallback runs the same gate from live state. Render review
|
|
338
|
+
only after `messageDraftRecommendation` proves current campaign/table basis.
|
|
339
|
+
Handoff: labeled Markdown, not raw JSON.
|
|
333
340
|
|
|
334
341
|
## Hard Gates
|
|
335
342
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This file narrates `auto-execute.yaml`. The YAML is the source of truth; this
|
|
4
4
|
README explains intent, tuning guidance, and how each knob affects the
|
|
5
|
-
|
|
5
|
+
autonomous tail.
|
|
6
6
|
|
|
7
7
|
## When this file is loaded
|
|
8
8
|
|
|
@@ -24,7 +24,7 @@ into the campaign).
|
|
|
24
24
|
confirmed source rows into the campaign. The tail MUST NOT exceed this cap
|
|
25
25
|
before the message template is approved and at least one generated passing
|
|
26
26
|
message is reviewed.
|
|
27
|
-
- **`provider`** — Inherited from the
|
|
27
|
+
- **`provider`** — Inherited from the approved source decision (saved in
|
|
28
28
|
the committed brief / campaign metadata). Present here so the tail can
|
|
29
29
|
narrate which provider it's running against; it does NOT override the
|
|
30
30
|
committed provider.
|
|
@@ -54,8 +54,8 @@ into the campaign).
|
|
|
54
54
|
proceeds.
|
|
55
55
|
Default `strict` because live campaign state shouldn't ship messages
|
|
56
56
|
with unresolved templating.
|
|
57
|
-
- **`critique.enabled`** —
|
|
58
|
-
critique pass.
|
|
57
|
+
- **`critique.enabled`** — Feature flag for the optional message
|
|
58
|
+
critique pass. The plain campaign tail reads the flag but never flips it; it
|
|
59
59
|
stays false by default. Only flip to `true` after dry-running the
|
|
60
60
|
critique protocol against a real sample and confirming the token
|
|
61
61
|
contract still holds on the rewritten output. See
|
|
@@ -77,7 +77,7 @@ into the campaign).
|
|
|
77
77
|
voice). Each critic returns structured JSON the synthesis step can
|
|
78
78
|
merge. Do NOT add free-form critics; stay on the three groups.
|
|
79
79
|
- **`critique.synthesis.enforceFinalizerPass`** — When `true`, the
|
|
80
|
-
synthesizer re-runs the
|
|
80
|
+
synthesizer re-runs the offline-validation finalizer pass on its rewrite.
|
|
81
81
|
This is the last guardrail against critic-introduced token drift.
|
|
82
82
|
Default stays `true`.
|
|
83
83
|
- **`critique.opus.enabled`** — Flag gating Opus refinement
|
|
@@ -154,20 +154,20 @@ logs and adjust:
|
|
|
154
154
|
conditions that short-circuit the tail.
|
|
155
155
|
- `references/final-handoff-contract.md` — the dual greenlight channel
|
|
156
156
|
that takes Step 16 into a running campaign.
|
|
157
|
-
- `references/parallel-critique-protocol.md` —
|
|
157
|
+
- `references/parallel-critique-protocol.md` — optional Step 15
|
|
158
158
|
critique protocol: bounded sample, parallel critics, synthesis,
|
|
159
159
|
budget caps, and token-contract enforcement.
|
|
160
|
-
- `references/thomas-variant-selection.md` —
|
|
160
|
+
- `references/thomas-variant-selection.md` — rules for
|
|
161
161
|
which rows earn an Opus refinement rewrite.
|
|
162
|
-
- `references/
|
|
162
|
+
- `references/sellable-cleanup-rules.md` — the positive-target and
|
|
163
163
|
automatic-revision filters that gate any critique rewrite.
|
|
164
164
|
|
|
165
165
|
## Flipping `messaging.critique.enabled` to true (dry-run protocol)
|
|
166
166
|
|
|
167
167
|
The critique flag stays `false` by default because an enabled critique
|
|
168
168
|
pass invents new tokens + costs ~$2 per sample pass — both of which
|
|
169
|
-
can silently degrade a live campaign if the protocol isn't solid.
|
|
170
|
-
|
|
169
|
+
can silently degrade a live campaign if the protocol isn't solid. Flipping
|
|
170
|
+
the default requires dry-run
|
|
171
171
|
evidence.
|
|
172
172
|
|
|
173
173
|
### Required evidence before flipping default
|
|
@@ -186,7 +186,7 @@ evidence.
|
|
|
186
186
|
re-evaluate per archetype.
|
|
187
187
|
|
|
188
188
|
3. **Token contract finalizer passes on every synthesis output.** The
|
|
189
|
-
finalizer pass (
|
|
189
|
+
finalizer pass (offline-validation token contract) is the last guardrail
|
|
190
190
|
against critic-introduced token drift. If any synthesis output
|
|
191
191
|
fails the finalizer in dry-run, the protocol is not safe to flip.
|
|
192
192
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Autonomous tail configuration for create-campaign-v2
|
|
1
|
+
# Autonomous tail configuration for create-campaign-v2
|
|
2
2
|
#
|
|
3
3
|
# This file controls the shell-first review-batch tail that runs AFTER the
|
|
4
4
|
# campaign shell already has the approved source, saved rubrics, and approved
|
|
@@ -43,7 +43,7 @@ messaging:
|
|
|
43
43
|
# relaxed = warn but allow. Default is strict for live campaign state.
|
|
44
44
|
tokenContract: strict
|
|
45
45
|
critique:
|
|
46
|
-
# Feature flag for the message critique pass
|
|
46
|
+
# Feature flag for the optional message critique pass.
|
|
47
47
|
# Stays false by default. Flip to true only after the critique
|
|
48
48
|
# protocol has been dry-run against a real sample.
|
|
49
49
|
enabled: false
|
|
@@ -82,8 +82,8 @@ messaging:
|
|
|
82
82
|
# being persisted — synthesis never ships a message that invents
|
|
83
83
|
# tokens, proof, or personalization.
|
|
84
84
|
model: synthesizer
|
|
85
|
-
# When true, the synthesis step is required to re-run the
|
|
86
|
-
#
|
|
85
|
+
# When true, the synthesis step is required to re-run the
|
|
86
|
+
# offline-validation finalizer pass on its output. The finalizer is the last
|
|
87
87
|
# guardrail against critic-introduced token drift.
|
|
88
88
|
enforceFinalizerPass: true
|
|
89
89
|
opus:
|