@sellable/mcp 0.1.52 → 0.1.54
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/package.json +1 -1
- package/skills/create-campaign/SKILL.md +4 -0
- package/skills/create-campaign-v2/SKILL.md +15 -0
- package/skills/create-campaign-v2/SOUL.md +6 -0
- package/skills/create-campaign-v2/core/flow.v2.json +15 -4
- package/skills/create-campaign-v2/references/watch-link-handoff.md +6 -2
package/package.json
CHANGED
|
@@ -105,6 +105,10 @@ translate internal sourcing terms into plain language. For example, explain
|
|
|
105
105
|
"signal discovery" as "looking for LinkedIn activity from people already
|
|
106
106
|
talking about this problem."
|
|
107
107
|
|
|
108
|
+
Only promise parallel/background work when the host actually started parallel
|
|
109
|
+
branches or workers. If the host is running the flow sequentially, say the real
|
|
110
|
+
sequence instead of `kicking off two workstreams`.
|
|
111
|
+
|
|
108
112
|
Every approval gate must include artifact access after the readable inline
|
|
109
113
|
content. Show an `Open artifact:` line with the one key clickable markdown link
|
|
110
114
|
for that stage. Do not show raw filesystem paths unless links cannot be created
|
|
@@ -164,6 +164,7 @@ Validated draft directory:
|
|
|
164
164
|
**4. Tradeoff**
|
|
165
165
|
- More context, but the filter needs to cut consultants and creators.
|
|
166
166
|
```
|
|
167
|
+
|
|
167
168
|
- Do not treat the active Sellable workspace as the campaign subject. The
|
|
168
169
|
workspace only tells you where the campaign will be saved. Before buyer, CTA,
|
|
169
170
|
proof, or source questions, identify two things:
|
|
@@ -487,6 +488,20 @@ should test for this campaign. Those can run in parallel and usually take
|
|
|
487
488
|
basis (`brief.md`, `lead-review.md`, `lead-sample.json`). Approval waits for
|
|
488
489
|
both `lead-filter.md` and `message-validation.md`, then reconciles that the
|
|
489
490
|
selected message basis rows still pass the final filter.
|
|
491
|
+
- Parallel means real parallel execution, not just optimistic progress copy.
|
|
492
|
+
After lead review:
|
|
493
|
+
- If the host exposes Task/subagent workers and host policy allows them for
|
|
494
|
+
this user request, launch two disjoint workers: one owns `lead-filter.md`
|
|
495
|
+
and optional `rubric.json`; the other owns `message-prep.md`,
|
|
496
|
+
`message-validation.md`, and `message-review.md`.
|
|
497
|
+
- If only parallel tool batching is available, batch only independent tool
|
|
498
|
+
reads/lookups. Do not pretend whole artifact-writing stages are running in
|
|
499
|
+
the background.
|
|
500
|
+
- If real parallel execution is not available or not allowed, run the same DAG
|
|
501
|
+
sequentially and use honest copy: `I’ll tighten the filter first, then draft
|
|
502
|
+
the message from the same sample.`
|
|
503
|
+
- Never say `kicking off two workstreams`, `in parallel`, or `background`
|
|
504
|
+
unless parallel branches were actually launched.
|
|
490
505
|
- Never run a downstream stage until the active `flow.v2.json` step's
|
|
491
506
|
`requiredArtifacts` exist.
|
|
492
507
|
- Never call a tool outside the active step's `allowedTools`, and never call a
|
|
@@ -95,6 +95,12 @@ Every customer-facing update should answer one of these:
|
|
|
95
95
|
- What will the user see next?
|
|
96
96
|
- What is protected until approval?
|
|
97
97
|
|
|
98
|
+
Only promise parallel work when parallel work actually started. If the host
|
|
99
|
+
cannot or should not launch background branches, say the real sequence:
|
|
100
|
+
`I’ll tighten the filter first, then draft the message from the same sample.`
|
|
101
|
+
Do not say `kicking off two workstreams`, `in parallel`, or `background` as
|
|
102
|
+
aspirational copy.
|
|
103
|
+
|
|
98
104
|
Before a brief approval, the user should see a slim approval brief in chat. The
|
|
99
105
|
rich current brief exists in `brief.md`; the chat view is the decision surface,
|
|
100
106
|
not the full working memo. `brief-v1.md` is an internal first-draft snapshot, not
|
|
@@ -407,13 +407,13 @@
|
|
|
407
407
|
"action": "render_post_lead_parallel_progress",
|
|
408
408
|
"requiredVisibleContent": [
|
|
409
409
|
"Lead source is set",
|
|
410
|
-
"kicking off two workstreams",
|
|
411
410
|
"Tighten the fit filter",
|
|
412
411
|
"Draft the first message",
|
|
413
412
|
"approved brief and real sample leads",
|
|
414
|
-
"parallel"
|
|
413
|
+
"parallel only if real parallel branches were launched"
|
|
415
414
|
],
|
|
416
|
-
"timeEstimate": "~2-3 min"
|
|
415
|
+
"timeEstimate": "~2-3 min",
|
|
416
|
+
"chatRenderRule": "If real parallel workers/branches were actually launched, say: 'I’m kicking off two workstreams now' and list the two branches. If not, do not mention parallel/background work; say: 'I’ll tighten the filter first, then draft the first message from the same approved brief and sample leads.' Never claim parallelism unless the host actually started parallel execution."
|
|
417
417
|
},
|
|
418
418
|
{
|
|
419
419
|
"action": "ask_continue_revise_or_confirm_only_if_needed",
|
|
@@ -973,7 +973,18 @@
|
|
|
973
973
|
},
|
|
974
974
|
{
|
|
975
975
|
"action": "surface_watch_link",
|
|
976
|
-
"requires": ["create_campaign_succeeded", "save_rubrics_succeeded"]
|
|
976
|
+
"requires": ["create_campaign_succeeded", "save_rubrics_succeeded"],
|
|
977
|
+
"reference": "references/watch-link-handoff.md",
|
|
978
|
+
"requiredVisibleContent": [
|
|
979
|
+
"Campaign created",
|
|
980
|
+
"approved brief",
|
|
981
|
+
"Open this to watch",
|
|
982
|
+
"lead sourcing",
|
|
983
|
+
"rubric scoring",
|
|
984
|
+
"messaging populate live",
|
|
985
|
+
"Watch link:"
|
|
986
|
+
],
|
|
987
|
+
"watchUrlSource": "create_campaign.watchUrl"
|
|
977
988
|
}
|
|
978
989
|
],
|
|
979
990
|
"allowedTools": [
|
|
@@ -37,14 +37,18 @@ between the two calls. Never print the link if either call fails.
|
|
|
37
37
|
After both tool calls succeed, print exactly one user-facing block. The block
|
|
38
38
|
must contain:
|
|
39
39
|
|
|
40
|
+
- a plain confirmation that the campaign was created and the approved brief was
|
|
41
|
+
saved
|
|
40
42
|
- a one-line orientation sentence: `Open this to watch lead sourcing, rubric
|
|
41
|
-
scoring, and messaging populate live.`
|
|
43
|
+
scoring, and messaging populate live.`
|
|
42
44
|
- the `watchUrl` captured from the `create_campaign` response
|
|
43
45
|
|
|
44
46
|
Example skeleton:
|
|
45
47
|
|
|
46
48
|
```text
|
|
47
|
-
Campaign
|
|
49
|
+
Campaign created. I saved the approved brief too.
|
|
50
|
+
|
|
51
|
+
Open this to watch lead sourcing, rubric scoring, and messaging populate live.
|
|
48
52
|
|
|
49
53
|
Watch link: {watchUrl}
|
|
50
54
|
```
|