@sellable/install 0.1.114 → 0.1.115
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/bin/sellable-install.mjs +20 -27
- package/package.json +1 -1
- package/skill-templates/create-campaign.md +31 -32
package/bin/sellable-install.mjs
CHANGED
|
@@ -179,15 +179,11 @@ function printCreateCommandHint() {
|
|
|
179
179
|
console.log("");
|
|
180
180
|
printAgentBox("Using Claude Code?", "claude", [
|
|
181
181
|
{ label: "Campaign", command: "/sellable:create-campaign" },
|
|
182
|
-
{ label: "Identity", command: "/sellable:interview" },
|
|
183
|
-
{ label: "Voice", command: "/sellable:load-voice" },
|
|
184
182
|
]);
|
|
185
183
|
console.log("");
|
|
186
184
|
console.log("");
|
|
187
185
|
printAgentBox("Using Codex?", "codex", [
|
|
188
186
|
{ label: "Campaign", command: "$sellable:create-campaign" },
|
|
189
|
-
{ label: "Identity", command: "$sellable:interview" },
|
|
190
|
-
{ label: "Voice", command: "$sellable:load-voice" },
|
|
191
187
|
]);
|
|
192
188
|
console.log("");
|
|
193
189
|
console.log(` ${"─".repeat(63)}`);
|
|
@@ -646,9 +642,10 @@ data, compare sources by source volume, sampled ICP fit, activity/warmth
|
|
|
646
642
|
signals, cleanup risk, and confidence basis. If a user asks for a forecast,
|
|
647
643
|
label it explicitly as not estimated from this run.
|
|
648
644
|
|
|
649
|
-
Before any provider prompt, search, source scout, or signal-discovery call,
|
|
650
|
-
|
|
651
|
-
authorizes scouting/search only. The gate
|
|
645
|
+
Before any provider prompt, search, source scout, or signal-discovery call, show
|
|
646
|
+
one source-plan gate and ask for approval. The plan must be visible before the
|
|
647
|
+
question, and this first approval authorizes scouting/search only. The gate
|
|
648
|
+
should say:
|
|
652
649
|
|
|
653
650
|
- given this campaign, the viable source options
|
|
654
651
|
- the recommended first lane
|
|
@@ -665,6 +662,10 @@ why. Do not call \`search_signals\`, \`search_sales_nav\`, \`search_prospeo\`,
|
|
|
665
662
|
\`fetch_post_engagers\`, or provider-scoped subagents until the user approves this
|
|
666
663
|
source plan or explicitly chooses a different source.
|
|
667
664
|
|
|
665
|
+
If the user already answered a provider approval such as "Approve Prospeo plan",
|
|
666
|
+
that answer satisfies the source-plan gate. Persist the approved provider and
|
|
667
|
+
run the scouting/search next; do not ask a second source-plan approval question.
|
|
668
|
+
|
|
668
669
|
For hiring-led campaigns, do not default to Sales Nav just because the target is
|
|
669
670
|
a role search. Prospeo is the primary lane when the brief asks for companies
|
|
670
671
|
actively hiring specific roles, open-role signals, account/contact coverage, or
|
|
@@ -990,21 +991,16 @@ updates.
|
|
|
990
991
|
load post-lead registries/prompts before asking add filters vs skip filters.
|
|
991
992
|
Once the user answers, launch the message scout from the same campaign/table
|
|
992
993
|
basis. If filters are approved, also launch the filter scout. Do not queue
|
|
993
|
-
workflow cells, attach a sequence, or start until
|
|
994
|
-
|
|
995
|
-
default Use Template path gate only Generate Message cells, sender setup,
|
|
996
|
-
sequence attach, and launch. When filters are approved, immediately
|
|
994
|
+
workflow cells, attach a sequence, or start until saved filters and the
|
|
995
|
+
message template/token rules are approved. When filters are chosen, immediately
|
|
997
996
|
call \`mcp__sellable__update_campaign({ campaignId, enableICPFilters: true, currentStep: "create-icp-rubric", watchNarration })\`
|
|
998
997
|
so the watched app moves to Filter Rules while rubrics are drafted/saved.
|
|
999
|
-
After rubrics save,
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
Messages/message review and wait for message approval before Settings.
|
|
1006
|
-
Product Generate Message cells must not run before that template/token
|
|
1007
|
-
approval.
|
|
998
|
+
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
999
|
+
move to Filter Leads and wait there for the background message recommendation.
|
|
1000
|
+
If filters are skipped, move to Messages/message review. Queue the bounded
|
|
1001
|
+
review-batch \`enrichCellId\` cells only after message approval. Move to
|
|
1002
|
+
Messages only after at least one review row passes and one generated message
|
|
1003
|
+
is ready.
|
|
1008
1004
|
Do not ask the user to approve the brief before shell creation unless they
|
|
1009
1005
|
explicitly requested a no-write draft; the shell itself is the review surface.
|
|
1010
1006
|
6. The main thread owns watch navigation. Call
|
|
@@ -1012,9 +1008,10 @@ updates.
|
|
|
1012
1008
|
visible work so the user can watch progress in the app: \`create-offer\` for
|
|
1013
1009
|
the brief, \`pick-provider\` or the selected provider step while sourcing,
|
|
1014
1010
|
\`filter-choice\` after the review batch, \`create-icp-rubric\` as soon
|
|
1015
|
-
as filters are
|
|
1016
|
-
|
|
1017
|
-
|
|
1011
|
+
as filters are chosen and while saved filters await approval,
|
|
1012
|
+
\`apply-icp-rubric\` after filter approval and message approval while bounded
|
|
1013
|
+
enrichment/filter scoring runs, \`validate-sample\` only as a recovery/legacy
|
|
1014
|
+
observation state,
|
|
1018
1015
|
\`auto-execute-messaging\` after at least one row passes and review-batch
|
|
1019
1016
|
messages are being generated or reviewed, \`awaiting-user-greenlight\` only
|
|
1020
1017
|
after generated review-batch messages are approved, \`settings\` for sender
|
|
@@ -2218,8 +2215,6 @@ function printNextSteps(installedHosts, authReused) {
|
|
|
2218
2215
|
if (hasClaude) {
|
|
2219
2216
|
printAgentBox("Using Claude Code?", "claude", [
|
|
2220
2217
|
{ label: "Campaign", command: "/sellable:create-campaign" },
|
|
2221
|
-
{ label: "Identity", command: "/sellable:interview" },
|
|
2222
|
-
{ label: "Voice", command: "/sellable:load-voice" },
|
|
2223
2218
|
]);
|
|
2224
2219
|
console.log("");
|
|
2225
2220
|
console.log("");
|
|
@@ -2227,8 +2222,6 @@ function printNextSteps(installedHosts, authReused) {
|
|
|
2227
2222
|
if (hasCodex) {
|
|
2228
2223
|
printAgentBox("Using Codex?", "codex", [
|
|
2229
2224
|
{ label: "Campaign", command: "$sellable:create-campaign" },
|
|
2230
|
-
{ label: "Identity", command: "$sellable:interview" },
|
|
2231
|
-
{ label: "Voice", command: "$sellable:load-voice" },
|
|
2232
2225
|
]);
|
|
2233
2226
|
console.log("");
|
|
2234
2227
|
}
|
package/package.json
CHANGED
|
@@ -72,10 +72,10 @@ not create, link, or surface local draft files unless the user explicitly asks
|
|
|
72
72
|
for them. Resume, gating, and handoff read campaign state first. The
|
|
73
73
|
watchable campaign exists after the short brief; lead import is bounded to the
|
|
74
74
|
first review batch. After that, the user chooses whether to use filters or skip.
|
|
75
|
-
When filters are chosen, save rubrics,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
When filters are chosen, save rubrics, get filter approval, then wait for
|
|
76
|
+
message-template approval before enrichment/filtering or Generate Message cells.
|
|
77
|
+
Use Template is the default message path; AI Generated is only an explicit
|
|
78
|
+
opt-out.
|
|
79
79
|
|
|
80
80
|
## Opening Turn Contract
|
|
81
81
|
|
|
@@ -124,9 +124,10 @@ data, compare sources by source volume, sampled ICP fit, activity/warmth
|
|
|
124
124
|
signals, cleanup risk, and confidence basis. If a user asks for a forecast,
|
|
125
125
|
label it explicitly as not estimated from this run.
|
|
126
126
|
|
|
127
|
-
Before any provider prompt, search, source scout, or signal-discovery call,
|
|
128
|
-
|
|
129
|
-
authorizes scouting/search only. The gate
|
|
127
|
+
Before any provider prompt, search, source scout, or signal-discovery call, show
|
|
128
|
+
one source-plan gate and ask for approval. The plan must be visible before the
|
|
129
|
+
question, and this first approval authorizes scouting/search only. The gate
|
|
130
|
+
should say:
|
|
130
131
|
|
|
131
132
|
- given this campaign, the viable source options
|
|
132
133
|
- the recommended first lane
|
|
@@ -143,6 +144,10 @@ why. Do not call `search_signals`, `search_sales_nav`, `search_prospeo`,
|
|
|
143
144
|
`fetch_post_engagers`, or provider-scoped subagents until the user approves this
|
|
144
145
|
source plan or explicitly chooses a different source.
|
|
145
146
|
|
|
147
|
+
If the user already answered a provider approval such as "Approve Prospeo plan",
|
|
148
|
+
that answer satisfies the source-plan gate. Persist the approved provider and
|
|
149
|
+
run the scouting/search next; do not ask a second source-plan approval question.
|
|
150
|
+
|
|
146
151
|
For hiring-led campaigns, do not default to Sales Nav just because the target is
|
|
147
152
|
a role search. Prospeo is the primary lane when the brief asks for companies
|
|
148
153
|
actively hiring specific roles, open-role signals, account/contact coverage, or
|
|
@@ -222,13 +227,13 @@ post-lead work, but do not load that registry or any deep filter/message prompt
|
|
|
222
227
|
before the filter-choice question. After `confirm_lead_list`, ask add filters
|
|
223
228
|
vs skip filters immediately. Once the user answers, launch the message scout
|
|
224
229
|
from the same campaign/table basis. If the user chooses filters, also launch the
|
|
225
|
-
filter-leads scout, move to Filter Rules, save rubrics, then
|
|
226
|
-
|
|
227
|
-
filters, move to Messages/message
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
230
|
+
filter-leads scout, move to Filter Rules, save rubrics, then ask for filter
|
|
231
|
+
approval. After approval, keep the browser on Filter Leads while the message
|
|
232
|
+
recommendation is reviewed. If the user skips filters, move to Messages/message
|
|
233
|
+
review. Enrichment/filtering and Generate Message cells wait for message
|
|
234
|
+
approval. AI Generated is an explicit opt-out from the template path. If the
|
|
235
|
+
post-lead agents are absent, the main thread still orchestrates the same
|
|
236
|
+
branches from compact MCP context.
|
|
232
237
|
|
|
233
238
|
Use rendered Markdown for user review surfaces, not fenced code blocks. Keep
|
|
234
239
|
lines short, use indexed section labels and bullets, and translate internal
|
|
@@ -650,23 +655,16 @@ updates.
|
|
|
650
655
|
5. Create the campaign shell early with the v1 brief so the user can open the
|
|
651
656
|
watch link and see useful setup state immediately. Import only the first
|
|
652
657
|
bounded review batch after the source is attached to the campaign; do not
|
|
653
|
-
queue workflow cells, attach a sequence, or start until
|
|
654
|
-
|
|
655
|
-
on the default Use Template path gate only Generate Message cells, sender
|
|
656
|
-
setup, sequence attach, and launch. When filters are approved, immediately
|
|
658
|
+
queue workflow cells, attach a sequence, or start until saved filters and the
|
|
659
|
+
message template/token rules are approved. When filters are chosen, immediately
|
|
657
660
|
call `mcp__sellable__update_campaign({ campaignId, enableICPFilters: true, currentStep: "create-icp-rubric", watchNarration })`
|
|
658
661
|
so the watched app moves to Filter Rules while rubrics are drafted/saved.
|
|
659
|
-
After rubrics save,
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
Messages
|
|
664
|
-
|
|
665
|
-
enrichment/filtering after rubrics are saved, without waiting for template
|
|
666
|
-
approval. Move to Messages only after at least one review row passes and
|
|
667
|
-
Generate Message cells are running or ready.
|
|
668
|
-
Product Generate Message cells must not run before that template/token
|
|
669
|
-
approval.
|
|
662
|
+
After rubrics save, keep Filter Rules visible for approval; after approval,
|
|
663
|
+
move to Filter Leads and wait there for the background message recommendation.
|
|
664
|
+
If filters are skipped, move to Messages/message review. Queue the bounded
|
|
665
|
+
review-batch `enrichCellId` cells only after message approval. Move to
|
|
666
|
+
Messages only after at least one review row passes and one generated message
|
|
667
|
+
is ready.
|
|
670
668
|
Do not ask the user to approve the brief before shell creation unless they
|
|
671
669
|
explicitly requested a no-write draft; the shell itself is the review surface.
|
|
672
670
|
6. The main thread owns watch navigation. Call
|
|
@@ -674,9 +672,10 @@ updates.
|
|
|
674
672
|
visible work so the user can watch progress in the app: `create-offer` for
|
|
675
673
|
the brief, `pick-provider` or the selected provider step while sourcing,
|
|
676
674
|
`filter-choice` after the review batch, `create-icp-rubric` as soon
|
|
677
|
-
as filters are
|
|
678
|
-
|
|
679
|
-
|
|
675
|
+
as filters are chosen and while saved filters await approval,
|
|
676
|
+
`apply-icp-rubric` after filter approval and message approval while bounded
|
|
677
|
+
enrichment/filter scoring runs, `validate-sample` only as a recovery/legacy
|
|
678
|
+
observation state,
|
|
680
679
|
`auto-execute-messaging` after at least one row passes and review-batch
|
|
681
680
|
messages are being generated or reviewed, `awaiting-user-greenlight` only
|
|
682
681
|
after generated review-batch messages are approved, `settings` for sender
|