@sellable/mcp 0.1.407 → 0.1.409

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.407",
3
+ "version": "0.1.409",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -445,24 +445,25 @@ Tokenized shape:
445
445
  Hey there
446
446
 
447
447
  Thanks for the support on my post about {{post_topic_line}}
448
-
449
- Curious, is this something you're dealing with right now?
450
448
  ```
451
449
 
452
450
  Transfer rules:
453
451
 
454
452
  - Do not hardcode a post topic. Fill `{{post_topic_line}}` from the actual
455
453
  selected sender-authored post or use a safer source-specific phrase.
454
+ - Do not add a relevance question, CTA, product line, or extra paragraph after
455
+ the thank-you line. The reply-rate lesson is the casual warm acknowledgment,
456
+ not a cold pitch appended to it.
456
457
  - Do not use "showing some love"; it reads too casual for executive/VP/director
457
458
  contacts.
458
459
  - Keep the thank-you line. The point of this motion is acknowledging real
459
- sender-owned support before asking a light relevance question. Do not flatten
460
- it back to "saw you pop up" unless the sender specifically asks for that
461
- wording.
460
+ sender-owned support without appending a cold relevance question. Do not
461
+ flatten it back to "saw you pop up" unless the sender specifically asks for
462
+ that wording.
462
463
  - Do not copy this shape into shared lanes, third-party thread sources, or cold
463
464
  fallback campaigns.
464
- - Keep the question closed and problem-oriented; do not pitch, ask for a
465
- meeting, or mention internal product vocabulary in message one.
465
+ - Do not pitch, ask for a meeting, or mention internal product vocabulary in
466
+ message one.
466
467
 
467
468
  ## Useful CTA Shapes
468
469
 
@@ -943,17 +943,34 @@ current plan.
943
943
  Before calling verify, the parent should build compact receipt objects from the
944
944
  durable receipt files and pass those compact objects to MCP. The compact receipt
945
945
  must preserve every verifier-owned field named above, including top-level ids,
946
- `createCampaignStepReceipt`, canonical filter/message/review/sequence/final
947
- proof, and at least three concrete sample messages. It should omit large raw
946
+ `createCampaignStepReceipt`, `researchSenderReceipt`, canonical
947
+ filter/message/review/sequence/final proof, and at least three concrete sample
948
+ messages. It should omit large raw
948
949
  search outputs, long post lists, full row arrays, raw provider responses, and
949
950
  debug-only narration fields. Do not pass multi-hundred-kilobyte raw receipt
950
951
  objects when a compact canonical receipt has the same proof; large raw verify
951
952
  payloads can stall local MCP bridges and make UAT ambiguous.
953
+ Use a small Node JSON compactor for non-trivial compaction. Do not build complex
954
+ inline `jq` filters inside nested quoted shell strings; quote failures are a
955
+ UAT blocker and waste the verification run. The Node compactor must preserve
956
+ every canonical verifier object under `createCampaignStepReceipt`, including
957
+ `setupPlanCall`, `createCampaignWorkflowReceipt`, `researchSenderReceipt`,
958
+ `campaignBriefReceipt`, `sourceDecisionReceipt`, `filterDecisionReceipt`,
959
+ `messageDraftingReceipt`, `reviewBatchReceipt`, `sequenceReceipt`,
960
+ `finalPausedSendProof`, and `verifyCall`.
961
+ When compacting, normalize `finalPausedSendProof.currentStep` and
962
+ `finalPausedSendProof.campaignStatus` from nested pause/navigation readbacks if
963
+ the worker receipt stored those values under `pauseCampaignResult`,
964
+ `navigationReadback`, or `navigationProof`; do not pass an empty
965
+ `finalPausedSendProof` object to verify.
952
966
  Do not print or `jq .` full receipt JSON into the terminal. For local checks,
953
967
  print only compact summaries such as file, actionId, laneKey, campaignId,
954
968
  filter status, sample count, approved count, and final status.
955
969
  Short form: Parent verify uses compact canonical receipt objects, not raw giant receipts.
956
970
  Short form: Do not dump full receipt JSON with `jq .`.
971
+ Short form: Do not use complex inline `jq` for receipt compaction; use Node.
972
+ Short form: Compact receipts must preserve `researchSenderReceipt`.
973
+ Short form: Compact receipts must preserve direct `finalPausedSendProof.currentStep` and `campaignStatus`.
957
974
  Short form: Never change planRevision/actionId/laneKey while compacting receipts.
958
975
 
959
976
  Message proof for every customer-visible lane must come from the current
@@ -962,15 +979,23 @@ packaged `generate-messages` path before completion is reported.
962
979
  Parent-thread handwritten copy or setting `currentStep` is not proof.
963
980
 
964
981
  The parent must run its own sample-quality gate before final reporting, even
965
- when worker receipts say `verdict:"passed"`. For each shared lane, normalize the
966
- reviewed sample messages by removing leading greeting/name lines, first names,
967
- and whitespace-only differences; reject shared-lane samples when the message body is identical after removing first names or when all samples share the same
968
- paragraph skeleton. Also reject final shared-lane samples with `Hey <name>,`
969
- letter punctuation, weak relevance hedges, internal workflow vocabulary,
970
- self-intros, or any non-empty `issues`. If the parent finds repeated shared-lane
971
- sample copy, report `blocked: repeated_shared_lane_sample_copy`, revise the
972
- campaign brief/template through the packaged workflow, rerun Generate Message,
973
- and verify current-revision sample messages before final completion.
982
+ when worker receipts say `verdict:"passed"`. For Post Engagers lanes, reject
983
+ any sample that adds a relevance question, CTA, product line, or extra paragraph
984
+ after `Thank you for the support on my post about ...`; blocked phrases include
985
+ `curious`, `open to`, `trying to`, `worth seeing`, `want to see`, and any
986
+ Sellable/product explanation. For each shared lane, normalize the reviewed
987
+ sample messages by removing leading greeting/name lines, first names, and
988
+ whitespace-only differences; reject shared-lane samples when the message body is
989
+ identical after removing first names or when all samples share the same paragraph
990
+ skeleton. Also reject final shared-lane samples with `Hey <name>,` letter
991
+ punctuation, weak relevance hedges, internal workflow vocabulary, self-intros,
992
+ or any non-empty `issues`. Shared lanes must also reject mechanical
993
+ product-process wording such as `sequence-prospects`, `dashboard overhead`,
994
+ `campaign map`, `campaign idea into prospects`, `prospects, filters, messages`,
995
+ `send-ready copy`, or `reviewed prospect lists`. If the parent finds repeated
996
+ shared-lane sample copy, report `blocked: repeated_shared_lane_sample_copy`,
997
+ revise the campaign brief/template through the packaged workflow, rerun Generate
998
+ Message, and verify current-revision sample messages before final completion.
974
999
  </command_backed_workflow>
975
1000
 
976
1001
  <objective>
@@ -1009,8 +1034,9 @@ and verify current-revision sample messages before final completion.
1009
1034
  Short form: Shared lanes must reject internal workflow vocabulary.
1010
1035
  Short form: revise or rerun the packaged create-campaign/generate-messages path.
1011
1036
  - **Post Engagers** first-message style: short, casual, references the
1012
- sender-authored post they engaged with, closed question, **no internal
1013
- vocabulary, no pitch, no meeting ask** in message one:
1037
+ sender-authored post they engaged with, and stops after the thank-you
1038
+ line. Use **no internal vocabulary, no pitch, no meeting ask, no product
1039
+ line, and no relevance question** in message one:
1014
1040
 
1015
1041
  ```
1016
1042
  {{first_name}}
@@ -1020,6 +1046,10 @@ and verify current-revision sample messages before final completion.
1020
1046
  Thank you for the support on my post about {{post_topic_line}}
1021
1047
  ```
1022
1048
 
1049
+ Do not add any paragraph after the thank-you line. In particular, do not
1050
+ append `curious, are you trying...`, `open to...`, `worth seeing...`, or
1051
+ Sellable/product copy to a Post Engagers first message.
1052
+
1023
1053
  - **Shared Signal Discovery** first-message style: short, casual, references
1024
1054
  the real observed signal/theme or public conversation. It may mention the
1025
1055
  engagement source only when the source evidence supports it. Do not say
@@ -1043,7 +1073,10 @@ and verify current-revision sample messages before final completion.
1043
1073
  relevant" in Shared Signal Discovery samples. Translate source/tool terms
1044
1074
  into prospect-facing business language; do not put internal workflow
1045
1075
  vocabulary such as "Codex-style workflow", "MCP", "agent workflows", or
1046
- "Claude-style agent workflows" in customer-facing message one.
1076
+ "Claude-style agent workflows" in customer-facing message one. Also avoid
1077
+ generic product-process nouns such as "dashboard", "workflow", "source",
1078
+ "send-ready copy", "reviewed prospect lists", and "sequence" unless the
1079
+ recipient's own product/category makes that exact word buyer-native.
1047
1080
  Short form: Shared Signal Discovery uses no self-intro such as "I'm building Sellable".
1048
1081
  Short form: Shared Signal Discovery uses no self-intro such as "We're building Sellable".
1049
1082
  Short form: Shared Signal Discovery uses no "I've put together".
@@ -1068,6 +1101,11 @@ and verify current-revision sample messages before final completion.
1068
1101
  as "Sellable is a GTM system" across samples; every reviewed cold sample
1069
1102
  should be specific enough to the role, company, or problem that the three
1070
1103
  sample messages do not share the same body skeleton.
1104
+ Do not use mechanical Sellable process language such as "campaign idea into
1105
+ prospects, filters, messages, and sequence setup", "sequence-prospects",
1106
+ "dashboard overhead", "campaign map", "send-ready copy", or "reviewed
1107
+ prospect lists" in final cold samples. Say the buyer problem and one plain
1108
+ outcome instead.
1071
1109
  Before Message Drafting runs, the campaign brief must already forbid
1072
1110
  self-intros, generic product summaries, opt-out shrugs, product-stack
1073
1111
  dumps, and repeated template structure. Do not let the first generation
@@ -228,12 +228,16 @@ must choose a signal-led, event-led, job-post-led, or proof-led motion from the
228
228
  current brief and row evidence instead of inheriting a preset first-message
229
229
  template.
230
230
  Post-engager first messages should thank the prospect for the support on the
231
- sender-owned post before asking the light relevance question. Prefer the gold
232
- shape `Thanks for the support on my post about {{post_topic_line}}` over
231
+ sender-owned post and then stop. Do not add a relevance question, CTA, product
232
+ line, meeting ask, or extra paragraph after the thank-you opener unless the
233
+ operator explicitly asks for a longer first message. Prefer the gold shape
234
+ `Thanks for the support on my post about {{post_topic_line}}` over
233
235
  surveillance-flavored wording like `saw you pop up`, unless the sender explicitly
234
236
  asks for that older wording.
235
237
  Short form: use the CXConnect Post-Engager Warm Reply-Rate Pattern only when the source is sender-owned Post Engagers.
236
238
  Short form: Never use that warm post-engager pattern for Shared Signal Discovery or Shared Cold Fallback.
239
+ Short form: Post-engager warm first messages stop after the thank-you line.
240
+ Short form: Do not add `curious`, `open to`, `trying to`, product copy, or a CTA after the post-engager thank-you line.
237
241
 
238
242
  ### Shared Cold Fallback quality bar
239
243
 
@@ -245,6 +249,12 @@ must read like final create-campaign/generate-messages output.
245
249
  - Ask one clear buyer problem question.
246
250
  - Keep the product line minimal and buyer-readable; do not turn the note into a
247
251
  product-stack dump.
252
+ - Do not describe Sellable as a process checklist such as "campaign idea into
253
+ prospects, filters, messages, and sequence setup"; that reads like internal
254
+ product plumbing, not a buyer reason to reply.
255
+ - Do not use awkward product-process nouns in reviewed cold samples:
256
+ `sequence-prospects`, `dashboard overhead`, `campaign map`, `send-ready copy`,
257
+ `reviewed prospect lists`, or "one campaign would look like" as a default CTA.
248
258
  - Use no self-intro such as "We're building" or "We're working on a way" in the
249
259
  reviewed samples.
250
260
  - Use no opt-out shrug such as "If this isn't relevant, ignore me."
@@ -266,6 +276,10 @@ or a founder self-intro.
266
276
  - Do not put internal workflow vocabulary in buyer-facing copy: `Codex`, `MCP`,
267
277
  `Claude-style agent workflows`, `agent workflows`, `workflow table`, `lead
268
278
  source`, or `signal discovery`.
279
+ - Do not use `Claude`, `Codex`, `MCP`, `agent`, `dashboard`, `workflow`,
280
+ `source`, `sequence`, `send-ready copy`, or `reviewed prospect list` as
281
+ buyer-facing explanation in shared evergreen samples unless the buyer's own
282
+ company/product category uses that exact word and the line still sounds human.
269
283
  - Write a concrete signal/problem bridge instead of a relevance hedge. Good
270
284
  shapes are `the AI-assisted GTM conversations keep coming back to [buyer
271
285
  problem]`, `teams trying to turn LinkedIn signal into pipeline usually hit