@sellable/install 0.1.113 → 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 +32 -32
- package/package.json +1 -1
- package/skill-templates/create-campaign.md +31 -31
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,29 +991,32 @@ 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
|
-
on the default Use Template path, and the approved message set is synced into
|
|
996
|
-
the campaign brief. 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
|
-
Messages
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
\`
|
|
1012
|
-
|
|
1013
|
-
\`
|
|
1014
|
-
|
|
1015
|
-
|
|
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.
|
|
1004
|
+
Do not ask the user to approve the brief before shell creation unless they
|
|
1005
|
+
explicitly requested a no-write draft; the shell itself is the review surface.
|
|
1006
|
+
6. The main thread owns watch navigation. Call
|
|
1007
|
+
\`mcp__sellable__update_campaign({ campaignId, currentStep })\` before major
|
|
1008
|
+
visible work so the user can watch progress in the app: \`create-offer\` for
|
|
1009
|
+
the brief, \`pick-provider\` or the selected provider step while sourcing,
|
|
1010
|
+
\`filter-choice\` after the review batch, \`create-icp-rubric\` as soon
|
|
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,
|
|
1015
|
+
\`auto-execute-messaging\` after at least one row passes and review-batch
|
|
1016
|
+
messages are being generated or reviewed, \`awaiting-user-greenlight\` only
|
|
1017
|
+
after generated review-batch messages are approved, \`settings\` for sender
|
|
1018
|
+
selection, \`sequence\` after sender attach, and \`send\` once the recommended
|
|
1019
|
+
sequence is attached. Do not advance the step backward.
|
|
1016
1020
|
7. Keep \`selectedLeadListId\` as the source list and \`workflowTableId\` as the
|
|
1017
1021
|
campaign table. Do not use disk files as the post-mint source of truth.
|
|
1018
1022
|
8. Do not ask the user to run another command.
|
|
@@ -2211,8 +2215,6 @@ function printNextSteps(installedHosts, authReused) {
|
|
|
2211
2215
|
if (hasClaude) {
|
|
2212
2216
|
printAgentBox("Using Claude Code?", "claude", [
|
|
2213
2217
|
{ label: "Campaign", command: "/sellable:create-campaign" },
|
|
2214
|
-
{ label: "Identity", command: "/sellable:interview" },
|
|
2215
|
-
{ label: "Voice", command: "/sellable:load-voice" },
|
|
2216
2218
|
]);
|
|
2217
2219
|
console.log("");
|
|
2218
2220
|
console.log("");
|
|
@@ -2220,8 +2222,6 @@ function printNextSteps(installedHosts, authReused) {
|
|
|
2220
2222
|
if (hasCodex) {
|
|
2221
2223
|
printAgentBox("Using Codex?", "codex", [
|
|
2222
2224
|
{ label: "Campaign", command: "$sellable:create-campaign" },
|
|
2223
|
-
{ label: "Identity", command: "$sellable:interview" },
|
|
2224
|
-
{ label: "Voice", command: "$sellable:load-voice" },
|
|
2225
2225
|
]);
|
|
2226
2226
|
console.log("");
|
|
2227
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,12 +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
|
-
|
|
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.
|
|
231
237
|
|
|
232
238
|
Use rendered Markdown for user review surfaces, not fenced code blocks. Keep
|
|
233
239
|
lines short, use indexed section labels and bullets, and translate internal
|
|
@@ -649,23 +655,16 @@ updates.
|
|
|
649
655
|
5. Create the campaign shell early with the v1 brief so the user can open the
|
|
650
656
|
watch link and see useful setup state immediately. Import only the first
|
|
651
657
|
bounded review batch after the source is attached to the campaign; do not
|
|
652
|
-
queue workflow cells, attach a sequence, or start until
|
|
653
|
-
|
|
654
|
-
are approved on the default Use Template path, and the approved message set
|
|
655
|
-
is synced into the campaign brief. 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
|
|
656
660
|
call `mcp__sellable__update_campaign({ campaignId, enableICPFilters: true, currentStep: "create-icp-rubric", watchNarration })`
|
|
657
661
|
so the watched app moves to Filter Rules while rubrics are drafted/saved.
|
|
658
|
-
After rubrics save,
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
Messages
|
|
663
|
-
|
|
664
|
-
`enrichCellId` cells to kick off enrichment/filtering. Move to Messages only
|
|
665
|
-
after at least one review row passes and Generate Message cells are running or
|
|
666
|
-
ready.
|
|
667
|
-
Product Generate Message cells must not run before that template/token
|
|
668
|
-
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.
|
|
669
668
|
Do not ask the user to approve the brief before shell creation unless they
|
|
670
669
|
explicitly requested a no-write draft; the shell itself is the review surface.
|
|
671
670
|
6. The main thread owns watch navigation. Call
|
|
@@ -673,9 +672,10 @@ updates.
|
|
|
673
672
|
visible work so the user can watch progress in the app: `create-offer` for
|
|
674
673
|
the brief, `pick-provider` or the selected provider step while sourcing,
|
|
675
674
|
`filter-choice` after the review batch, `create-icp-rubric` as soon
|
|
676
|
-
as filters are
|
|
677
|
-
|
|
678
|
-
|
|
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,
|
|
679
679
|
`auto-execute-messaging` after at least one row passes and review-batch
|
|
680
680
|
messages are being generated or reviewed, `awaiting-user-greenlight` only
|
|
681
681
|
after generated review-batch messages are approved, `settings` for sender
|