@sellable/mcp 0.1.10 → 0.1.11

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/README.md CHANGED
@@ -83,14 +83,14 @@ The token is provided when you generate it. Use `list_workspaces` +
83
83
  For customer/package installs, use the public installer:
84
84
 
85
85
  ```bash
86
- npx -y @sellable/install@0.1.10 --host codex --token skt_live_your_token_here --workspace-id your_workspace_id
86
+ npx -y @sellable/install@0.1.11 --host codex --token skt_live_your_token_here --workspace-id your_workspace_id
87
87
  ```
88
88
 
89
89
  If you already have `~/.sellable/config.json`, rerun/verify without rewriting
90
90
  auth:
91
91
 
92
92
  ```bash
93
- npx -y @sellable/install@0.1.10 --host codex
93
+ npx -y @sellable/install@0.1.11 --host codex
94
94
  sellable --verify-only --host codex
95
95
  ```
96
96
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -99,7 +99,8 @@ Validated draft directory:
99
99
 
100
100
  $sellable:create-campaign
101
101
 
102
- After that, I’ll ask the 4 setup questions and start the campaign brief.
102
+ After that, I’ll confirm who we’re launching for, then ask the setup questions
103
+ and start the campaign brief.
103
104
  ```
104
105
 
105
106
  If they decline, tell them to switch to Plan/collaboration mode and rerun
@@ -111,16 +112,37 @@ Validated draft directory:
111
112
  question panel", "campaign brief", "lead sourcing", and "approval" instead of
112
113
  `request_user_input`, Default mode, MCP namespaces, plugin caches, prompt
113
114
  loading, runbooks, local skill files, or skill versions.
114
- - Before the first intake gate, use this customer-facing shape:
115
+ - Do not treat the active Sellable workspace as the campaign subject. The
116
+ workspace only tells you where the campaign will be saved. Before buyer, CTA,
117
+ proof, or source questions, identify and confirm who the campaign is launching
118
+ for.
119
+ - If the user supplied a LinkedIn profile, website, domain, company name, or
120
+ sender name in the invocation, do one lightweight lookup first:
121
+ - LinkedIn profile: call `fetch_linkedin_profile`.
122
+ - Website/domain/company: call `fetch_company` when possible, otherwise one
123
+ web lookup.
124
+ - Workspace sender id or known sender: call `get_sender` or `enrich_sender`.
125
+ Then summarize what you found in one or two lines and ask the user to confirm
126
+ the launch identity before continuing.
127
+ - If the user did not provide the launch identity, make the first quick question
128
+ panel an identity gate. Ask who we are launching for, with options like:
129
+ 1. `Use one of my connected Sellable senders`
130
+ 2. `I’ll paste a LinkedIn profile`
131
+ 3. `I’ll paste a company website/domain`
132
+ 4. `Other / custom`
133
+ After that answer, do the lightweight lookup, confirm the company/sender
134
+ context, then ask the campaign setup questions. The setup questions should use
135
+ the confirmed company context so they do not feel generic. If identity is
136
+ still unavailable, use neutral/custom intake options instead of guessed
137
+ vertical-specific options.
138
+ - Before the identity gate, use this customer-facing shape:
115
139
 
116
140
  ```text
117
141
  I’m ready to build the campaign in {workspace}.
118
142
 
119
- First I’ll ask 4 quick setup questions:
120
- 1. who you want to target
121
- 2. what you want them to do
122
- 3. what proof or offer we should use
123
- 4. where we should source leads
143
+ First I need to confirm who were launching for. If you give me a LinkedIn
144
+ profile or company website, I’ll use that to understand the company, then I’ll
145
+ confirm it with you before we pick the target, offer, proof, and lead source.
124
146
 
125
147
  Then I’ll turn that into a campaign brief for you to approve before anything is created.
126
148
  ```
@@ -133,16 +155,17 @@ Validated draft directory:
133
155
  one lightweight identity lookup, then use the structured question gate. If the user
134
156
  supplied a company website/domain, call exactly one of `fetch_company`,
135
157
  `WebFetch`, or `WebSearch` to identify what the company actually does before
136
- generating intake options. If the user supplied a LinkedIn profile URL, call
137
- `fetch_linkedin_profile` before generating intake options. Do not infer the
138
- product category from the company name alone. If no domain, website, or
139
- LinkedIn profile is supplied, use neutral/custom intake options rather than
140
- guessed vertical-specific options. Before the first structured question gate,
141
- do not run sender research, `list_senders`, source discovery, Sales Nav, Prospeo,
158
+ generating setup options. If the user supplied a LinkedIn profile URL, call
159
+ `fetch_linkedin_profile` before generating setup options. Do not infer the
160
+ product category from the company name alone. If no domain, website, LinkedIn
161
+ profile, or sender identity is supplied, the first structured question gate
162
+ must ask for the launch identity before buyer/offer/source. Before that first
163
+ structured question gate, do not run source discovery, Sales Nav, Prospeo,
142
164
  Signals, Bash, Read, Write, Edit, Glob, Grep, full company research, or
143
165
  draft-directory inspection/creation. Do draft-directory setup only after the
144
- founder answers. The first intake packet must ask buyer, offer/CTA, proof, and
145
- lead source, and all four questions must include an `Other / custom` option.
166
+ founder answers. After launch identity is confirmed, the setup packet must ask
167
+ buyer, offer/CTA, proof, and lead source, and all four questions must include
168
+ an `Other / custom` option.
146
169
  - After the founder answers the first strategy/source packet, explain the next
147
170
  stage only: campaign brief creation and brief approval. Use this shape:
148
171
 
@@ -28,13 +28,14 @@ approval. Hide implementation details unless they are needed to unblock setup.
28
28
  The customer believes Sellable is helping them launch a campaign. Keep every
29
29
  turn anchored to that:
30
30
 
31
- 1. Understand the campaign.
32
- 2. Turn it into a campaign brief.
33
- 3. Find likely responders.
34
- 4. Filter for fit.
35
- 5. Draft messages.
36
- 6. Ask for approval.
37
- 7. Create the campaign.
31
+ 1. Confirm who the campaign is launching for.
32
+ 2. Understand the company and offer.
33
+ 3. Turn that into a campaign brief.
34
+ 4. Find likely responders.
35
+ 5. Filter for fit.
36
+ 6. Draft messages.
37
+ 7. Ask for approval.
38
+ 8. Create the campaign.
38
39
 
39
40
  ## Progress Updates
40
41
 
@@ -97,8 +97,8 @@
97
97
  "onEnter": [
98
98
  {
99
99
  "action": "resolve_company_identity_before_strategy_packet",
100
- "optional": true,
101
- "when": "user_supplied_company_domain_website_or_linkedin_profile",
100
+ "optional": false,
101
+ "when": "before_founder_strategy_source_packet",
102
102
  "allowedTools": [
103
103
  "fetch_company",
104
104
  "fetch_linkedin_profile",
@@ -107,7 +107,7 @@
107
107
  ],
108
108
  "maxCalls": 1,
109
109
  "mustNotInferFromNameOnly": true,
110
- "fallback": "use neutral/custom intake options when identity is unavailable"
110
+ "fallback": "ask identity gate first; use neutral/custom intake options only when identity remains unavailable"
111
111
  },
112
112
  {
113
113
  "action": "render_post_intake_progress_preamble",
@@ -161,6 +161,8 @@
161
161
  "get_subskill_prompt",
162
162
  "get_auth_status",
163
163
  "get_active_workspace",
164
+ "list_senders",
165
+ "get_sender",
164
166
  "enrich_sender",
165
167
  "complete_sender_research",
166
168
  "fetch_company",