@sellable/install 0.1.287 → 0.1.288

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.
@@ -1005,6 +1005,7 @@ const CREATE_CAMPAIGN_ALLOWED_TOOLS = [
1005
1005
  "mcp__sellable__wait_for_campaign_processing",
1006
1006
  "mcp__sellable__resolve_campaign_fill_route",
1007
1007
  "mcp__sellable__get_campaign_refill_state",
1008
+ "mcp__sellable__get_refill_target_plan",
1008
1009
  "mcp__sellable__fill_campaign_horizon",
1009
1010
  "mcp__sellable__start_campaign_message_preparation",
1010
1011
  "mcp__sellable__get_campaign_message_preparation_status",
@@ -1064,6 +1065,7 @@ const REFILL_SENDS_ALLOWED_TOOLS = [
1064
1065
  "mcp__sellable__get_campaign_waterfall",
1065
1066
  "mcp__sellable__resolve_campaign_fill_route",
1066
1067
  "mcp__sellable__get_campaign_refill_state",
1068
+ "mcp__sellable__get_refill_target_plan",
1067
1069
  "mcp__sellable__fill_campaign_horizon",
1068
1070
  "mcp__sellable__get_campaign",
1069
1071
  "mcp__sellable__get_campaign_context",
@@ -1989,10 +1991,11 @@ Desktop, then start a new thread.
1989
1991
 
1990
1992
  1. Call \`mcp__sellable__get_auth_status({})\`.
1991
1993
  2. Normalize invocation arguments with \`mcp__sellable__refill_sends({ yolo, senders, senderIds, senderNames, untilDate })\` when the host exposes typed MCP tools.
1992
- 3. Load the canonical prompt via
1994
+ 3. Call \`mcp__sellable__get_refill_target_plan({ senders, senderIds, senderNames, untilDate })\` before any mutation. If the returned target is already complete, stop with the no-op receipt. If ready rows cover the target but scheduled rows do not, run only the read-only scheduler settle/re-read loop.
1995
+ 4. Load the canonical prompt via
1993
1996
  \`mcp__sellable__get_subskill_prompt({ subskillName: "refill-sends" })\`,
1994
1997
  then load \`mcp__sellable__get_subskill_prompt({ subskillName: "refill-sends-workflow" })\`.
1995
- 4. Follow the canonical prompt exactly. Do not launch, start, archive, delete,
1998
+ 5. Follow the canonical prompt exactly. Do not launch, start, archive, delete,
1996
1999
  or write scheduler rows as part of refill sends.
1997
2000
 
1998
2001
  ## MCP Prompt Fallback
@@ -30,6 +30,7 @@ export const REQUIRED_SELLABLE_MCP_TOOLS = [
30
30
  "attach_recommended_sequence",
31
31
  "resolve_campaign_fill_route",
32
32
  "get_campaign_refill_state",
33
+ "get_refill_target_plan",
33
34
  "refill_sends",
34
35
  "setup_evergreen_campaigns",
35
36
  "start_campaign_message_preparation",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.287",
3
+ "version": "0.1.288",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -49,6 +49,7 @@ allowed-tools:
49
49
  - mcp__sellable__wait_for_campaign_processing
50
50
  - mcp__sellable__resolve_campaign_fill_route
51
51
  - mcp__sellable__get_campaign_refill_state
52
+ - mcp__sellable__get_refill_target_plan
52
53
  - mcp__sellable__fill_campaign_horizon
53
54
  - mcp__sellable__start_campaign_message_preparation
54
55
  - mcp__sellable__get_campaign_message_preparation_status
@@ -1330,21 +1330,35 @@ Message, and verify current-revision sample messages before final completion.
1330
1330
  Short form: Shared lanes must reject internal workflow vocabulary.
1331
1331
  Short form: revise or rerun the packaged create-campaign/generate-messages path.
1332
1332
  - **Post Engagers** first-message style: short, casual, references the
1333
- sender-authored post they engaged with, and stops after the thank-you
1334
- line. Use **no internal vocabulary, no pitch, no meeting ask, no product
1335
- line, and no relevance question** in message one:
1333
+ sender-authored post they engaged with, includes the post URL as a concrete
1334
+ reminder, uses an easy buyer-function/category line, and ends with one
1335
+ row-custom closed question. Use **no internal vocabulary, no meeting ask,
1336
+ no proof block, no feature-stack category, and no generic static question**
1337
+ in message one:
1336
1338
 
1337
1339
  ```
1338
1340
  {{first_name}}
1339
1341
 
1340
1342
  Hey there
1341
1343
 
1342
- Thank you for the support on my post about {{post_topic_line}}
1344
+ Saw you pop up on my post about {{post_topic_line}}
1345
+
1346
+ This one
1347
+ {{post_url}}
1348
+
1349
+ Looks like you lead {{plain_buyer_function}} at {{company_name}}, right?
1350
+
1351
+ {{custom_closed_question}}
1343
1352
  ```
1344
1353
 
1345
- Do not add any paragraph after the thank-you line. In particular, do not
1346
- append `curious, are you trying...`, `open to...`, `worth seeing...`, or
1347
- Sellable/product copy to a Post Engagers first message.
1354
+ `{{custom_closed_question}}` must be specific to the post topic, buyer
1355
+ function, company context, and current offer category. The category should
1356
+ be easy to understand, for example `LinkedIn outbound`, `customer success`,
1357
+ `CX operations`, `support`, `sales`, or `growth`; do not use feature-heavy
1358
+ phrasing like `manual research + follow-up process`, `lead filters`, or
1359
+ `sequence setup`. Do not add any paragraph after the custom closed question.
1360
+ In particular, do not append `open to...`, `worth seeing...`, a meeting ask,
1361
+ proof block, or Sellable/product copy to a Post Engagers first message.
1348
1362
 
1349
1363
  - **Shared Signal Discovery** first-message style: short, casual, starts
1350
1364
  from the real public business theme or buyer problem supported by the row.
@@ -4,6 +4,7 @@ description: Plan regular campaign and evergreen campaign send refill work throu
4
4
  visibility: public
5
5
  allowed-tools:
6
6
  - mcp__sellable__refill_sends
7
+ - mcp__sellable__get_refill_target_plan
7
8
  - mcp__sellable__get_auth_status
8
9
  - mcp__sellable__start_cli_login
9
10
  - mcp__sellable__wait_for_cli_login
@@ -102,11 +103,23 @@ get_subskill_prompt({ subskillName: "refill-sends-workflow" })
102
103
  ```
103
104
 
104
105
  Then follow that workflow exactly. The default path is read-only research:
105
- resolve the route, identify the sender-relevant campaign that most recently had
106
- scheduler-owned sends, read refill state for that target, report the next safe
107
- step using campaign names first, and stop before mutation unless the user has
108
- explicitly approved the exact workspace, campaign/table/source ids, caps/dates,
109
- approval mode, expected side effects, and stop/rollback condition.
106
+ compute the refill target plan first, resolve the route, identify the
107
+ sender-relevant campaign that most recently had scheduler-owned sends, read
108
+ refill state for that target, report the next safe step using campaign names
109
+ first, and stop before mutation unless the user has explicitly approved the
110
+ exact workspace, campaign/table/source ids, caps/dates, approval mode, expected
111
+ side effects, and stop/rollback condition.
112
+
113
+ Immediately after loading the internal workflow, call
114
+ `get_refill_target_plan`. The target plan is the canonical first fact receipt:
115
+ selected sender-local days, gross scheduled-send target, scheduler-owned
116
+ scheduled coverage across active enrolled campaigns, ready buffer, remaining
117
+ scheduled gap, remaining ready-or-scheduled gap, `targetShapeRevision`, and
118
+ `stateRevision`. If the target plan is complete, report that the selected target
119
+ is already filled and no-op without asking for approval. If the ready buffer
120
+ covers the target but scheduled coverage is still short, run only a bounded
121
+ read-only scheduler settle/reread loop and report
122
+ `awaiting_scheduler_after_ready_buffer` if it does not settle.
110
123
 
111
124
  If the plain route's managed waterfall targets are stale, for example skipped
112
125
  targets show archived/completed shared slots or the returned targets do not cover
@@ -147,7 +160,10 @@ packet. It does not authorize starting unrelated, archived, completed, draft, or
147
160
  direct campaigns, separate launch/send actions, archive or delete cleanup,
148
161
  direct scheduler writes, sender reassignment, or campaigns outside those
149
162
  selected for the eligible sender set. Stop and re-plan if the route, sender set,
150
- ids, caps, blockers, or side-effect class drift before mutation.
163
+ ids, caps, blockers, action class, or side-effect class drift before mutation.
164
+ Scheduled counts increasing toward the approved target are expected progress:
165
+ they change `stateRevision`, not `targetShapeRevision`, and do not require a
166
+ second approval.
151
167
 
152
168
  In `--yolo`, continue as far as the rendered packet safely allows. After each
153
169
  apply/prep/start result, reread state, settle processing when needed, and move to
@@ -162,7 +178,8 @@ saturation, not merely prepared/approved/ready rows. Maintain a horizon
162
178
  saturation ledger per selected sender: selected send days, gross capacity,
163
179
  future scheduler-owned scheduled cells with non-null `scheduledFor`,
164
180
  ready-to-schedule buffer, remaining scheduled gap, remaining ready-or-scheduled
165
- gap, and the next MCP primitive that can reduce the gap. After every
181
+ gap, `targetShapeRevision`, `stateRevision`, and the next MCP primitive that can
182
+ reduce the gap. After every
166
183
  apply/prep/start result, wait for processing, reread refill state, recompute the
167
184
  ledger, then keep applying safe bounded actions until the scheduled count fills
168
185
  the horizon or a concrete blocker/timeout is proven. If ready rows cover the