@sellable/mcp 0.1.954 → 0.1.956

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.
@@ -73,6 +73,7 @@ export interface CampaignDetail {
73
73
  export interface CampaignAutomationSettings {
74
74
  autoApproveFollowups: boolean | null;
75
75
  enableFollowUps: boolean | null;
76
+ autoApproveReplies: boolean | null;
76
77
  }
77
78
  export interface CampaignMessagesPreviewInput {
78
79
  campaignId: string;
@@ -171,6 +172,7 @@ export interface UpdateCampaignInput {
171
172
  messageApproach?: "conversation" | "message_test";
172
173
  autoApproveFollowups?: boolean;
173
174
  enableFollowUps?: boolean;
175
+ autoApproveReplies?: boolean;
174
176
  senderIds?: string[];
175
177
  rubric?: unknown[];
176
178
  }
@@ -270,6 +272,7 @@ export declare const campaignToolDefinitions: ({
270
272
  useMessagingTemplate?: undefined;
271
273
  autoApproveFollowups?: undefined;
272
274
  enableFollowUps?: undefined;
275
+ autoApproveReplies?: undefined;
273
276
  rubric?: undefined;
274
277
  flowVersion?: undefined;
275
278
  };
@@ -320,6 +323,7 @@ export declare const campaignToolDefinitions: ({
320
323
  useMessagingTemplate?: undefined;
321
324
  autoApproveFollowups?: undefined;
322
325
  enableFollowUps?: undefined;
326
+ autoApproveReplies?: undefined;
323
327
  rubric?: undefined;
324
328
  flowVersion?: undefined;
325
329
  };
@@ -372,6 +376,7 @@ export declare const campaignToolDefinitions: ({
372
376
  useMessagingTemplate?: undefined;
373
377
  autoApproveFollowups?: undefined;
374
378
  enableFollowUps?: undefined;
379
+ autoApproveReplies?: undefined;
375
380
  rubric?: undefined;
376
381
  flowVersion?: undefined;
377
382
  };
@@ -420,6 +425,7 @@ export declare const campaignToolDefinitions: ({
420
425
  useMessagingTemplate?: undefined;
421
426
  autoApproveFollowups?: undefined;
422
427
  enableFollowUps?: undefined;
428
+ autoApproveReplies?: undefined;
423
429
  rubric?: undefined;
424
430
  flowVersion?: undefined;
425
431
  };
@@ -468,6 +474,7 @@ export declare const campaignToolDefinitions: ({
468
474
  useMessagingTemplate?: undefined;
469
475
  autoApproveFollowups?: undefined;
470
476
  enableFollowUps?: undefined;
477
+ autoApproveReplies?: undefined;
471
478
  rubric?: undefined;
472
479
  flowVersion?: undefined;
473
480
  };
@@ -559,6 +566,7 @@ export declare const campaignToolDefinitions: ({
559
566
  useMessagingTemplate?: undefined;
560
567
  autoApproveFollowups?: undefined;
561
568
  enableFollowUps?: undefined;
569
+ autoApproveReplies?: undefined;
562
570
  rubric?: undefined;
563
571
  flowVersion?: undefined;
564
572
  };
@@ -769,6 +777,7 @@ export declare const campaignToolDefinitions: ({
769
777
  useMessagingTemplate?: undefined;
770
778
  autoApproveFollowups?: undefined;
771
779
  enableFollowUps?: undefined;
780
+ autoApproveReplies?: undefined;
772
781
  rubric?: undefined;
773
782
  flowVersion?: undefined;
774
783
  };
@@ -997,6 +1006,10 @@ export declare const campaignToolDefinitions: ({
997
1006
  type: string;
998
1007
  description: string;
999
1008
  };
1009
+ autoApproveReplies: {
1010
+ type: string;
1011
+ description: string;
1012
+ };
1000
1013
  senderIds: {
1001
1014
  type: string;
1002
1015
  items: {
@@ -1073,6 +1086,7 @@ export declare const campaignToolDefinitions: ({
1073
1086
  useMessagingTemplate?: undefined;
1074
1087
  autoApproveFollowups?: undefined;
1075
1088
  enableFollowUps?: undefined;
1089
+ autoApproveReplies?: undefined;
1076
1090
  rubric?: undefined;
1077
1091
  flowVersion?: undefined;
1078
1092
  };
@@ -1124,6 +1138,7 @@ export declare const campaignToolDefinitions: ({
1124
1138
  useMessagingTemplate?: undefined;
1125
1139
  autoApproveFollowups?: undefined;
1126
1140
  enableFollowUps?: undefined;
1141
+ autoApproveReplies?: undefined;
1127
1142
  rubric?: undefined;
1128
1143
  flowVersion?: undefined;
1129
1144
  };
@@ -587,6 +587,10 @@ export const campaignToolDefinitions = [
587
587
  type: "boolean",
588
588
  description: "Whether the campaign follow-up sweeper may draft follow-ups. Keep true when enabling autoApproveFollowups unless the user explicitly requests drafting suppression.",
589
589
  },
590
+ autoApproveReplies: {
591
+ type: "boolean",
592
+ description: "Whether drafted replies to prospects who answered are sent without the customer reviewing them. Set it only when the customer asks for automatic replies, and tell them replies will go out without their review. Default is off: every reply waits for the customer in the inbox.",
593
+ },
590
594
  senderIds: {
591
595
  type: "array",
592
596
  items: { type: "string" },
@@ -712,6 +716,9 @@ function readCampaignAutomationSettings(source) {
712
716
  enableFollowUps: typeof source.enableFollowUps === "boolean"
713
717
  ? source.enableFollowUps
714
718
  : null,
719
+ autoApproveReplies: typeof source.autoApproveReplies === "boolean"
720
+ ? source.autoApproveReplies
721
+ : null,
715
722
  };
716
723
  }
717
724
  function normalizeCellValue(cell) {
@@ -1127,7 +1134,8 @@ export async function updateCampaign(campaignId, input) {
1127
1134
  const { campaignId: _ignore, workspaceId, interactionMode, flowVersion: _flowVersion, senderIds, currentStep, ...updates } = input;
1128
1135
  const hasSenderIds = Object.prototype.hasOwnProperty.call(input, "senderIds");
1129
1136
  const hasAutomationSettings = Object.prototype.hasOwnProperty.call(input, "autoApproveFollowups") ||
1130
- Object.prototype.hasOwnProperty.call(input, "enableFollowUps");
1137
+ Object.prototype.hasOwnProperty.call(input, "enableFollowUps") ||
1138
+ Object.prototype.hasOwnProperty.call(input, "autoApproveReplies");
1131
1139
  const requestOptions = workspaceId ? { workspaceId } : undefined;
1132
1140
  if (!hasSenderIds && currentStep !== undefined) {
1133
1141
  updates.currentStep = currentStep;
@@ -1,6 +1,6 @@
1
1
  export declare const customerProgramToolDefinitions: readonly [{
2
2
  readonly name: "customer_program";
3
- readonly description: "Observe the home workspace campaign relationship stage, read prior complete daily or weekly campaign results, and retain campaign context. Scheduled stage_delivery grants native posting only when delivery.deliverNow is true; false means stay silent and reconcile. Save only newly learned campaign context or customer work/report preferences; campaign creation and editing stay in the create-campaign workflow. When the customer says where they are or wants updates at their own morning, call set_preferences with preferences.timezone (IANA, e.g. Europe/London); messages then go out at 08:00 and 09:00 their time on their working days. The customer gets one message a day.";
3
+ readonly description: "Observe the home workspace campaign relationship stage, read prior complete daily or weekly campaign results, and retain campaign context. Scheduled stage_delivery grants native posting only when delivery.deliverNow is true; false means stay silent and reconcile. Save only newly learned campaign context or customer work/report preferences; campaign creation and editing stay in the create-campaign workflow. When the customer says where they are or wants updates at their own morning, call set_preferences with preferences.timezone (IANA, e.g. Europe/London); messages then go out at 08:00 and 09:00 their time on their working days. The customer gets one message a day. Some changes are made only in the Sellable web app at https://app.sellable.dev; when asked for one, give the exact link and say what to click: card, invoices and the plan (owner only): /settings?tab=billing; Slack channels, and restarting, stopping or removing the agent: /sellable-agent/connection; adding or reconnecting LinkedIn, daily limits and sending hours: /linkedin-accounts; reply settings for one campaign: /campaign-builder/{campaignId}/settings. Do everything else yourself with your tools.";
4
4
  readonly inputSchema: {
5
5
  readonly type: "object";
6
6
  readonly properties: {
@@ -2,7 +2,7 @@ import { getApi, SellableApiError } from "../api.js";
2
2
  export const customerProgramToolDefinitions = [
3
3
  {
4
4
  name: "customer_program",
5
- description: "Observe the home workspace campaign relationship stage, read prior complete daily or weekly campaign results, and retain campaign context. Scheduled stage_delivery grants native posting only when delivery.deliverNow is true; false means stay silent and reconcile. Save only newly learned campaign context or customer work/report preferences; campaign creation and editing stay in the create-campaign workflow. When the customer says where they are or wants updates at their own morning, call set_preferences with preferences.timezone (IANA, e.g. Europe/London); messages then go out at 08:00 and 09:00 their time on their working days. The customer gets one message a day.",
5
+ description: "Observe the home workspace campaign relationship stage, read prior complete daily or weekly campaign results, and retain campaign context. Scheduled stage_delivery grants native posting only when delivery.deliverNow is true; false means stay silent and reconcile. Save only newly learned campaign context or customer work/report preferences; campaign creation and editing stay in the create-campaign workflow. When the customer says where they are or wants updates at their own morning, call set_preferences with preferences.timezone (IANA, e.g. Europe/London); messages then go out at 08:00 and 09:00 their time on their working days. The customer gets one message a day. Some changes are made only in the Sellable web app at https://app.sellable.dev; when asked for one, give the exact link and say what to click: card, invoices and the plan (owner only): /settings?tab=billing; Slack channels, and restarting, stopping or removing the agent: /sellable-agent/connection; adding or reconnecting LinkedIn, daily limits and sending hours: /linkedin-accounts; reply settings for one campaign: /campaign-builder/{campaignId}/settings. Do everything else yourself with your tools.",
6
6
  inputSchema: {
7
7
  type: "object",
8
8
  properties: {
@@ -2351,6 +2351,7 @@ export declare const allTools: ({
2351
2351
  useMessagingTemplate?: undefined;
2352
2352
  autoApproveFollowups?: undefined;
2353
2353
  enableFollowUps?: undefined;
2354
+ autoApproveReplies?: undefined;
2354
2355
  rubric?: undefined;
2355
2356
  flowVersion?: undefined;
2356
2357
  };
@@ -2401,6 +2402,7 @@ export declare const allTools: ({
2401
2402
  useMessagingTemplate?: undefined;
2402
2403
  autoApproveFollowups?: undefined;
2403
2404
  enableFollowUps?: undefined;
2405
+ autoApproveReplies?: undefined;
2404
2406
  rubric?: undefined;
2405
2407
  flowVersion?: undefined;
2406
2408
  };
@@ -2453,6 +2455,7 @@ export declare const allTools: ({
2453
2455
  useMessagingTemplate?: undefined;
2454
2456
  autoApproveFollowups?: undefined;
2455
2457
  enableFollowUps?: undefined;
2458
+ autoApproveReplies?: undefined;
2456
2459
  rubric?: undefined;
2457
2460
  flowVersion?: undefined;
2458
2461
  };
@@ -2501,6 +2504,7 @@ export declare const allTools: ({
2501
2504
  useMessagingTemplate?: undefined;
2502
2505
  autoApproveFollowups?: undefined;
2503
2506
  enableFollowUps?: undefined;
2507
+ autoApproveReplies?: undefined;
2504
2508
  rubric?: undefined;
2505
2509
  flowVersion?: undefined;
2506
2510
  };
@@ -2549,6 +2553,7 @@ export declare const allTools: ({
2549
2553
  useMessagingTemplate?: undefined;
2550
2554
  autoApproveFollowups?: undefined;
2551
2555
  enableFollowUps?: undefined;
2556
+ autoApproveReplies?: undefined;
2552
2557
  rubric?: undefined;
2553
2558
  flowVersion?: undefined;
2554
2559
  };
@@ -2640,6 +2645,7 @@ export declare const allTools: ({
2640
2645
  useMessagingTemplate?: undefined;
2641
2646
  autoApproveFollowups?: undefined;
2642
2647
  enableFollowUps?: undefined;
2648
+ autoApproveReplies?: undefined;
2643
2649
  rubric?: undefined;
2644
2650
  flowVersion?: undefined;
2645
2651
  };
@@ -2850,6 +2856,7 @@ export declare const allTools: ({
2850
2856
  useMessagingTemplate?: undefined;
2851
2857
  autoApproveFollowups?: undefined;
2852
2858
  enableFollowUps?: undefined;
2859
+ autoApproveReplies?: undefined;
2853
2860
  rubric?: undefined;
2854
2861
  flowVersion?: undefined;
2855
2862
  };
@@ -3078,6 +3085,10 @@ export declare const allTools: ({
3078
3085
  type: string;
3079
3086
  description: string;
3080
3087
  };
3088
+ autoApproveReplies: {
3089
+ type: string;
3090
+ description: string;
3091
+ };
3081
3092
  senderIds: {
3082
3093
  type: string;
3083
3094
  items: {
@@ -3154,6 +3165,7 @@ export declare const allTools: ({
3154
3165
  useMessagingTemplate?: undefined;
3155
3166
  autoApproveFollowups?: undefined;
3156
3167
  enableFollowUps?: undefined;
3168
+ autoApproveReplies?: undefined;
3157
3169
  rubric?: undefined;
3158
3170
  flowVersion?: undefined;
3159
3171
  };
@@ -3205,6 +3217,7 @@ export declare const allTools: ({
3205
3217
  useMessagingTemplate?: undefined;
3206
3218
  autoApproveFollowups?: undefined;
3207
3219
  enableFollowUps?: undefined;
3220
+ autoApproveReplies?: undefined;
3208
3221
  rubric?: undefined;
3209
3222
  flowVersion?: undefined;
3210
3223
  };
@@ -8709,7 +8722,7 @@ export declare const allTools: ({
8709
8722
  };
8710
8723
  } | {
8711
8724
  readonly name: "customer_program";
8712
- readonly description: "Observe the home workspace campaign relationship stage, read prior complete daily or weekly campaign results, and retain campaign context. Scheduled stage_delivery grants native posting only when delivery.deliverNow is true; false means stay silent and reconcile. Save only newly learned campaign context or customer work/report preferences; campaign creation and editing stay in the create-campaign workflow. When the customer says where they are or wants updates at their own morning, call set_preferences with preferences.timezone (IANA, e.g. Europe/London); messages then go out at 08:00 and 09:00 their time on their working days. The customer gets one message a day.";
8725
+ readonly description: "Observe the home workspace campaign relationship stage, read prior complete daily or weekly campaign results, and retain campaign context. Scheduled stage_delivery grants native posting only when delivery.deliverNow is true; false means stay silent and reconcile. Save only newly learned campaign context or customer work/report preferences; campaign creation and editing stay in the create-campaign workflow. When the customer says where they are or wants updates at their own morning, call set_preferences with preferences.timezone (IANA, e.g. Europe/London); messages then go out at 08:00 and 09:00 their time on their working days. The customer gets one message a day. Some changes are made only in the Sellable web app at https://app.sellable.dev; when asked for one, give the exact link and say what to click: card, invoices and the plan (owner only): /settings?tab=billing; Slack channels, and restarting, stopping or removing the agent: /sellable-agent/connection; adding or reconnecting LinkedIn, daily limits and sending hours: /linkedin-accounts; reply settings for one campaign: /campaign-builder/{campaignId}/settings. Do everything else yourself with your tools.";
8713
8726
  readonly inputSchema: {
8714
8727
  readonly type: "object";
8715
8728
  readonly properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.954",
3
+ "version": "0.1.956",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code, Codex, and Hermes campaign workflows",
6
6
  "main": "dist/index.js",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: campaign-daily-results
3
- description: Post the one daily message: yesterday's numbers, who accepted and who replied by name, what Sellable did, and the one next step that gets more sent.
3
+ description: "Post the one daily message with yesterday's numbers, who accepted and who replied by name, what Sellable did, and the one next step that gets more sent."
4
4
  visibility: public
5
5
  allowed-tools:
6
6
  - mcp__sellable__get_auth_status
@@ -13,6 +13,27 @@ Give the customer one concise snapshot of the prior complete day from their
13
13
  existing campaigns. This is a read-only results workflow. It does not create,
14
14
  edit, launch or refill campaigns, and it does not send or draft replies.
15
15
 
16
+ ## Writing to the customer
17
+
18
+ Everything you write to the customer (Slack messages, questions, progress
19
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
20
+ English at about 80%:
21
+
22
+ - One idea per sentence. One instruction per sentence.
23
+ - An instruction has at most 20 words; any other sentence at most 25.
24
+ - Active voice: say who does the action ("I added 60 people").
25
+ - Simple tenses only: present, simple past, and "will".
26
+ - Common words with one meaning. Use the same word for the same thing every time.
27
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
28
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
29
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
30
+
31
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
32
+ and quoted prospect text exactly as written. This rule is for text to the
33
+ customer only. Messages written for prospects (openers, replies, follow-ups,
34
+ comments, posts) follow the campaign's and the sender's own voice rules, never
35
+ this one.
36
+
16
37
  ## Read the snapshot
17
38
 
18
39
  1. Call `get_auth_status`, then call `customer_program` with
@@ -19,6 +19,27 @@ is one continuous workflow: understand current workspace state, choose one
19
19
  useful next step, use the existing campaign owner, observe the result, and save
20
20
  the exact wait or outcome.
21
21
 
22
+ ## Writing to the customer
23
+
24
+ Everything you write to the customer (Slack messages, questions, progress
25
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
26
+ English at about 80%:
27
+
28
+ - One idea per sentence. One instruction per sentence.
29
+ - An instruction has at most 20 words; any other sentence at most 25.
30
+ - Active voice: say who does the action ("I added 60 people").
31
+ - Simple tenses only: present, simple past, and "will".
32
+ - Common words with one meaning. Use the same word for the same thing every time.
33
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
34
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
35
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
36
+
37
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
38
+ and quoted prospect text exactly as written. This rule is for text to the
39
+ customer only. Messages written for prospects (openers, replies, follow-ups,
40
+ comments, posts) follow the campaign's and the sender's own voice rules, never
41
+ this one.
42
+
22
43
  ## Run the review
23
44
 
24
45
  1. Call `get_auth_status`, then obtain a fenced `customer_program` review claim
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: campaign-weekly-review
3
- description: Post Monday's one message: last week's numbers against the week before, who accepted and who replied by name, and the one next step that gets more sent.
3
+ description: "Post Monday's one message with last week's numbers against the week before, who accepted and who replied by name, and the one next step that gets more sent."
4
4
  visibility: public
5
5
  allowed-tools:
6
6
  - mcp__sellable__get_auth_status
@@ -18,6 +18,27 @@ Give the customer one useful review of the prior complete local Monday through
18
18
  Sunday, compared with the equal complete week before it. Use existing campaign
19
19
  truth and keep the recommendation inside the same continuous campaign program.
20
20
 
21
+ ## Writing to the customer
22
+
23
+ Everything you write to the customer (Slack messages, questions, progress
24
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
25
+ English at about 80%:
26
+
27
+ - One idea per sentence. One instruction per sentence.
28
+ - An instruction has at most 20 words; any other sentence at most 25.
29
+ - Active voice: say who does the action ("I added 60 people").
30
+ - Simple tenses only: present, simple past, and "will".
31
+ - Common words with one meaning. Use the same word for the same thing every time.
32
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
33
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
34
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
35
+
36
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
37
+ and quoted prospect text exactly as written. This rule is for text to the
38
+ customer only. Messages written for prospects (openers, replies, follow-ups,
39
+ comments, posts) follow the campaign's and the sender's own voice rules, never
40
+ this one.
41
+
21
42
  ## Read the review
22
43
 
23
44
  1. Call `get_auth_status`, then call `customer_program` with
@@ -77,6 +77,27 @@ Use this workflow when the user asks to create an A/B campaign test, split a
77
77
  campaign into variants, duplicate a campaign for copy testing, or compare two
78
78
  campaign-message approaches from the same source list.
79
79
 
80
+ ## Writing to the customer
81
+
82
+ Everything you write to the customer (Slack messages, questions, progress
83
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
84
+ English at about 80%:
85
+
86
+ - One idea per sentence. One instruction per sentence.
87
+ - An instruction has at most 20 words; any other sentence at most 25.
88
+ - Active voice: say who does the action ("I added 60 people").
89
+ - Simple tenses only: present, simple past, and "will".
90
+ - Common words with one meaning. Use the same word for the same thing every time.
91
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
92
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
93
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
94
+
95
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
96
+ and quoted prospect text exactly as written. This rule is for text to the
97
+ customer only. Messages written for prospects (openers, replies, follow-ups,
98
+ comments, posts) follow the campaign's and the sender's own voice rules, never
99
+ this one.
100
+
80
101
  ## Opening Contract
81
102
 
82
103
  Start by identifying the campaign idea and the one variable being tested.
@@ -91,6 +91,8 @@ It bootstraps auth and host capabilities, then loads the internal
91
91
  the internal campaign workflow prompt and `core/flow.v2.json` through MCP. Keep
92
92
  this wrapper thin; the packaged workflow is the operational source of truth.
93
93
 
94
+ **Writing to the customer:** ASD-STE100 at about 80% (short active sentences, one idea each, instructions start with the verb). Never for prospect messages.
95
+
94
96
  ## Direct Manual-Copy Campaign Routing
95
97
 
96
98
  Route a bounded one-off request to the direct campaign tools when the user
@@ -19,6 +19,27 @@ This is Phase 83 of the brief-first create-campaign path. The runnable command
19
19
  is `create-campaign-brief`. Do not introduce or ask for a public
20
20
  `create-campaign-v2` command in this phase.
21
21
 
22
+ ## Writing to the customer
23
+
24
+ Everything you write to the customer (Slack messages, questions, progress
25
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
26
+ English at about 80%:
27
+
28
+ - One idea per sentence. One instruction per sentence.
29
+ - An instruction has at most 20 words; any other sentence at most 25.
30
+ - Active voice: say who does the action ("I added 60 people").
31
+ - Simple tenses only: present, simple past, and "will".
32
+ - Common words with one meaning. Use the same word for the same thing every time.
33
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
34
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
35
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
36
+
37
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
38
+ and quoted prospect text exactly as written. This rule is for text to the
39
+ customer only. Messages written for prospects (openers, replies, follow-ups,
40
+ comments, posts) follow the campaign's and the sender's own voice rules, never
41
+ this one.
42
+
22
43
  ## Required Inputs
23
44
 
24
45
  Start from:
@@ -28,6 +28,8 @@ There is no normal approval-packet, commit-gate, or atomic-mint path in the
28
28
  active flow. Legacy packet/mint artifacts stay in
29
29
  `create-campaign-v2-validation` and rehearsal material only.
30
30
 
31
+ **Writing to the customer.** Every line you write to the customer follows ASD-STE100 Simplified Technical English at about 80%: one idea per sentence, instructions of at most 20 words and other sentences of at most 25, active voice, simple tenses, one word for one thing, no idioms, and an instruction starts with its verb. Product words, contractions and quoted prospect text are fine. Never apply it to messages written for prospects.
32
+
31
33
  ## Normal Flow
32
34
 
33
35
  1. Bootstrap and show the active Sellable workspace.
@@ -21,6 +21,27 @@ draft files. Resume, gating, and handoff read campaign state first.
21
21
  selectedLeadListId remains the source list; workflowTableId is the campaign
22
22
  table.
23
23
 
24
+ ## Writing to the customer
25
+
26
+ Everything you write to the customer (Slack messages, questions, progress
27
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
28
+ English at about 80%:
29
+
30
+ - One idea per sentence. One instruction per sentence.
31
+ - An instruction has at most 20 words; any other sentence at most 25.
32
+ - Active voice: say who does the action ("I added 60 people").
33
+ - Simple tenses only: present, simple past, and "will".
34
+ - Common words with one meaning. Use the same word for the same thing every time.
35
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
36
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
37
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
38
+
39
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
40
+ and quoted prospect text exactly as written. This rule is for text to the
41
+ customer only. Messages written for prospects (openers, replies, follow-ups,
42
+ comments, posts) follow the campaign's and the sender's own voice rules, never
43
+ this one.
44
+
24
45
  ## MANDATORY TOOL ORDER (read this BEFORE any tail step)
25
46
 
26
47
  Every tail run MUST call these tools in this exact order. The tail is
@@ -14,6 +14,27 @@ producing duplicates. This skill never launches campaigns; customer-visible
14
14
  completion stops at paused send review.
15
15
  </role>
16
16
 
17
+ ## Writing to the customer
18
+
19
+ Everything you write to the customer (Slack messages, questions, progress
20
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
21
+ English at about 80%:
22
+
23
+ - One idea per sentence. One instruction per sentence.
24
+ - An instruction has at most 20 words; any other sentence at most 25.
25
+ - Active voice: say who does the action ("I added 60 people").
26
+ - Simple tenses only: present, simple past, and "will".
27
+ - Common words with one meaning. Use the same word for the same thing every time.
28
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
29
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
30
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
31
+
32
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
33
+ and quoted prospect text exactly as written. This rule is for text to the
34
+ customer only. Messages written for prospects (openers, replies, follow-ups,
35
+ comments, posts) follow the campaign's and the sender's own voice rules, never
36
+ this one.
37
+
17
38
  ## Invocation Mode Gate
18
39
 
19
40
  Before any setup plan, classify the invocation mode.
@@ -37,6 +37,27 @@ Create and save a comprehensive lead scoring rubric that:
37
37
 
38
38
  <tools>
39
39
 
40
+ ## Writing to the customer
41
+
42
+ Everything you write to the customer (Slack messages, questions, progress
43
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
44
+ English at about 80%:
45
+
46
+ - One idea per sentence. One instruction per sentence.
47
+ - An instruction has at most 20 words; any other sentence at most 25.
48
+ - Active voice: say who does the action ("I added 60 people").
49
+ - Simple tenses only: present, simple past, and "will".
50
+ - Common words with one meaning. Use the same word for the same thing every time.
51
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
52
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
53
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
54
+
55
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
56
+ and quoted prospect text exactly as written. This rule is for text to the
57
+ customer only. Messages written for prospects (openers, replies, follow-ups,
58
+ comments, posts) follow the campaign's and the sender's own voice rules, never
59
+ this one.
60
+
40
61
  ## Campaign Context
41
62
 
42
63
  - `mcp__sellable__get_campaign` - Get campaign brief and positioning
@@ -37,6 +37,27 @@ Use this public command when the user asks to find or source prospects, build a
37
37
  watch the list fill in real time, review leads, or export the list.
38
38
  It works without an existing campaign.
39
39
 
40
+ ## Writing to the customer
41
+
42
+ Everything you write to the customer (Slack messages, questions, progress
43
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
44
+ English at about 80%:
45
+
46
+ - One idea per sentence. One instruction per sentence.
47
+ - An instruction has at most 20 words; any other sentence at most 25.
48
+ - Active voice: say who does the action ("I added 60 people").
49
+ - Simple tenses only: present, simple past, and "will".
50
+ - Common words with one meaning. Use the same word for the same thing every time.
51
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
52
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
53
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
54
+
55
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
56
+ and quoted prospect text exactly as written. This rule is for text to the
57
+ customer only. Messages written for prospects (openers, replies, follow-ups,
58
+ comments, posts) follow the campaign's and the sender's own voice rules, never
59
+ this one.
60
+
40
61
  ## Load the canonical workflow
41
62
 
42
63
  1. Call `mcp__sellable__get_auth_status({})` and complete login/workspace setup
@@ -10,6 +10,27 @@ This is the canonical campaignless workflow. The durable identity invariant is
10
10
  `runId = leadListId`. Resume from product state with `get_find_leads_run`; never
11
11
  reconstruct progress from chat memory.
12
12
 
13
+ ## Writing to the customer
14
+
15
+ Everything you write to the customer (Slack messages, questions, progress
16
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
17
+ English at about 80%:
18
+
19
+ - One idea per sentence. One instruction per sentence.
20
+ - An instruction has at most 20 words; any other sentence at most 25.
21
+ - Active voice: say who does the action ("I added 60 people").
22
+ - Simple tenses only: present, simple past, and "will".
23
+ - Common words with one meaning. Use the same word for the same thing every time.
24
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
25
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
26
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
27
+
28
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
29
+ and quoted prospect text exactly as written. This rule is for text to the
30
+ customer only. Messages written for prospects (openers, replies, follow-ups,
31
+ comments, posts) follow the campaign's and the sender's own voice rules, never
32
+ this one.
33
+
13
34
  ## Prerequisites and recovery
14
35
 
15
36
  - Call `get_auth_status`. If login is required, use `start_cli_login` and
@@ -14,6 +14,27 @@ use Sellable Admin, inspect sibling workspaces, query production directly, or
14
14
  write to Slack yourself. In a scheduled Hermes run, return the final reminder
15
15
  as the run reply; the Hermes gateway owns delivery.
16
16
 
17
+ ## Writing to the customer
18
+
19
+ Everything you write to the customer (Slack messages, questions, progress
20
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
21
+ English at about 80%:
22
+
23
+ - One idea per sentence. One instruction per sentence.
24
+ - An instruction has at most 20 words; any other sentence at most 25.
25
+ - Active voice: say who does the action ("I added 60 people").
26
+ - Simple tenses only: present, simple past, and "will".
27
+ - Common words with one meaning. Use the same word for the same thing every time.
28
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
29
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
30
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
31
+
32
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
33
+ and quoted prospect text exactly as written. This rule is for text to the
34
+ customer only. Messages written for prospects (openers, replies, follow-ups,
35
+ comments, posts) follow the campaign's and the sender's own voice rules, never
36
+ this one.
37
+
17
38
  ## Outcomes
18
39
 
19
40
  Work toward these milestones in order, asking for only the smallest useful next
@@ -48,3 +48,24 @@ Do not create campaigns here. Use `$sellable:create-campaign`.
48
48
  Do not move identity, proof, stories, answer-bank entries, transcript archives,
49
49
  or anti-AI rules into `~/.sellable/content/**`.
50
50
  </boundaries>
51
+
52
+ ## Writing to the customer
53
+
54
+ Everything you write to the customer (Slack messages, questions, progress
55
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
56
+ English at about 80%:
57
+
58
+ - One idea per sentence. One instruction per sentence.
59
+ - An instruction has at most 20 words; any other sentence at most 25.
60
+ - Active voice: say who does the action ("I added 60 people").
61
+ - Simple tenses only: present, simple past, and "will".
62
+ - Common words with one meaning. Use the same word for the same thing every time.
63
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
64
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
65
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
66
+
67
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
68
+ and quoted prospect text exactly as written. This rule is for text to the
69
+ customer only. Messages written for prospects (openers, replies, follow-ups,
70
+ comments, posts) follow the campaign's and the sender's own voice rules, never
71
+ this one.
@@ -80,6 +80,27 @@ for stories and proof.
80
80
  <modes>
81
81
  Choose the lightest mode that can produce useful memory.
82
82
 
83
+ ## Writing to the customer
84
+
85
+ Everything you write to the customer (Slack messages, questions, progress
86
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
87
+ English at about 80%:
88
+
89
+ - One idea per sentence. One instruction per sentence.
90
+ - An instruction has at most 20 words; any other sentence at most 25.
91
+ - Active voice: say who does the action ("I added 60 people").
92
+ - Simple tenses only: present, simple past, and "will".
93
+ - Common words with one meaning. Use the same word for the same thing every time.
94
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
95
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
96
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
97
+
98
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
99
+ and quoted prospect text exactly as written. This rule is for text to the
100
+ customer only. Messages written for prospects (openers, replies, follow-ups,
101
+ comments, posts) follow the campaign's and the sender's own voice rules, never
102
+ this one.
103
+
83
104
  ## Quick Mode
84
105
 
85
106
  Use quick mode when source material is strong or the user wants a fast pass.
@@ -36,6 +36,27 @@ Host commands:
36
36
  - Claude Code: `/sellable:refill-sends`
37
37
  - Codex: `$sellable:refill-sends`
38
38
 
39
+ ## Writing to the customer
40
+
41
+ Everything you write to the customer (Slack messages, questions, progress
42
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
43
+ English at about 80%:
44
+
45
+ - One idea per sentence. One instruction per sentence.
46
+ - An instruction has at most 20 words; any other sentence at most 25.
47
+ - Active voice: say who does the action ("I added 60 people").
48
+ - Simple tenses only: present, simple past, and "will".
49
+ - Common words with one meaning. Use the same word for the same thing every time.
50
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
51
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
52
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
53
+
54
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
55
+ and quoted prospect text exactly as written. This rule is for text to the
56
+ customer only. Messages written for prospects (openers, replies, follow-ups,
57
+ comments, posts) follow the campaign's and the sender's own voice rules, never
58
+ this one.
59
+
39
60
  ## Scheduled customer-program entry
40
61
 
41
62
  A scheduled invocation is one downstream action of the existing customer
@@ -19,6 +19,27 @@ executes it through its existing owner, returns a before/after receipt, and then
19
19
  forces a fresh two-lane observation. That authority is the only thing that
20
20
  changes product state, and it will refuse anything you invent.
21
21
 
22
+ ## Writing to the customer
23
+
24
+ Everything you write to the customer (Slack messages, questions, progress
25
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
26
+ English at about 80%:
27
+
28
+ - One idea per sentence. One instruction per sentence.
29
+ - An instruction has at most 20 words; any other sentence at most 25.
30
+ - Active voice: say who does the action ("I added 60 people").
31
+ - Simple tenses only: present, simple past, and "will".
32
+ - Common words with one meaning. Use the same word for the same thing every time.
33
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
34
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
35
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
36
+
37
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
38
+ and quoted prospect text exactly as written. This rule is for text to the
39
+ customer only. Messages written for prospects (openers, replies, follow-ups,
40
+ comments, posts) follow the campaign's and the sender's own voice rules, never
41
+ this one.
42
+
22
43
  ## What you are given, and what you may read
23
44
 
24
45
  Your input packet carries exactly this and nothing more:
@@ -99,3 +99,24 @@ Sender Engagement Refresh — {date}
99
99
  Follow with fill-send-horizon to prepare messages for the new leads.
100
100
  ```
101
101
  </output>
102
+
103
+ ## Writing to the customer
104
+
105
+ Everything you write to the customer (Slack messages, questions, progress
106
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
107
+ English at about 80%:
108
+
109
+ - One idea per sentence. One instruction per sentence.
110
+ - An instruction has at most 20 words; any other sentence at most 25.
111
+ - Active voice: say who does the action ("I added 60 people").
112
+ - Simple tenses only: present, simple past, and "will".
113
+ - Common words with one meaning. Use the same word for the same thing every time.
114
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
115
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
116
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
117
+
118
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
119
+ and quoted prospect text exactly as written. This rule is for text to the
120
+ customer only. Messages written for prospects (openers, replies, follow-ups,
121
+ comments, posts) follow the campaign's and the sender's own voice rules, never
122
+ this one.
@@ -10,6 +10,27 @@ allowed-tools: mcp__sellable__fetch_linkedin_profile mcp__sellable__fetch_compan
10
10
  Use this subskill when creating campaigns and you need sender/company research.
11
11
  This protocol is standalone and does not depend on the generic `research` subskill.
12
12
 
13
+ ## Writing to the customer
14
+
15
+ Everything you write to the customer (Slack messages, questions, progress
16
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
17
+ English at about 80%:
18
+
19
+ - One idea per sentence. One instruction per sentence.
20
+ - An instruction has at most 20 words; any other sentence at most 25.
21
+ - Active voice: say who does the action ("I added 60 people").
22
+ - Simple tenses only: present, simple past, and "will".
23
+ - Common words with one meaning. Use the same word for the same thing every time.
24
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
25
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
26
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
27
+
28
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
29
+ and quoted prospect text exactly as written. This rule is for text to the
30
+ customer only. Messages written for prospects (openers, replies, follow-ups,
31
+ comments, posts) follow the campaign's and the sender's own voice rules, never
32
+ this one.
33
+
13
34
  ## Core Idea — Don't Wait, Fan Out
14
35
 
15
36
  Old protocol: call `enrich_sender` → wait for partial → maybe spawn 2-3 subagents → wait.
@@ -51,3 +51,24 @@ _Sellable handled all {N} touches automatically this week — your pipeline kept
51
51
  - Every number must trace to a tool result from this run. If a metric is unavailable, drop the line rather than estimate.
52
52
  - Post at most once per week per workspace: if a digest for this week was already posted (check the channel's recent messages when possible), update/skip rather than duplicate.
53
53
  </safety>
54
+
55
+ ## Writing to the customer
56
+
57
+ Everything you write to the customer (Slack messages, questions, progress
58
+ notes, summaries, the campaign brief) follows ASD-STE100 Simplified Technical
59
+ English at about 80%:
60
+
61
+ - One idea per sentence. One instruction per sentence.
62
+ - An instruction has at most 20 words; any other sentence at most 25.
63
+ - Active voice: say who does the action ("I added 60 people").
64
+ - Simple tenses only: present, simple past, and "will".
65
+ - Common words with one meaning. Use the same word for the same thing every time.
66
+ - No idioms, slang or phrasal verbs where one verb works: "start", not "kick off".
67
+ - An instruction starts with its verb: "Reply to Priya.", "Connect your LinkedIn."
68
+ - Keep small words such as "the", "a" and "to". Use a list for more than two items.
69
+
70
+ Relaxed for Slack: product words (invite, InMail, campaign, sender), contractions,
71
+ and quoted prospect text exactly as written. This rule is for text to the
72
+ customer only. Messages written for prospects (openers, replies, follow-ups,
73
+ comments, posts) follow the campaign's and the sender's own voice rules, never
74
+ this one.