@sellable/mcp 0.1.50 → 0.1.51

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.50",
3
+ "version": "0.1.51",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -98,6 +98,11 @@ fits as n/N, estimated good-fit range after cleanup, expected reply-rate range,
98
98
  and confidence basis. Never show a percent like "73% match" without the
99
99
  numerator, denominator, and sample basis.
100
100
 
101
+ Use rendered Markdown for campaign brief and lead-source chat, not fenced code
102
+ blocks. Keep lines short, use indexed section labels, and translate internal
103
+ sourcing terms into plain language. For example, explain "signal discovery" as
104
+ "looking for LinkedIn activity from people already talking about this problem."
105
+
101
106
  Every approval gate must include artifact access after the readable inline
102
107
  content. Show an `Open artifact:` line with the one key clickable markdown link
103
108
  for that stage. Do not show raw filesystem paths unless links cannot be created
@@ -318,39 +318,63 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
318
318
  persistence in this preamble.
319
319
 
320
320
  - Before asking for brief approval, render a slim approval brief in the chat and
321
- keep the rich current brief in `brief.md`. Do not ask the user to
321
+ keep the rich current brief in `brief.md`. Use rendered Markdown directly:
322
+ `##` heading, bold field labels, numbered section labels, and short bullets.
323
+ Do not wrap the user-facing approval view in a fenced code block because that
324
+ creates horizontal scrolling in Claude Code and Codex. Do not ask the user to
322
325
  approve a one-paragraph direction, a risk note, or hidden artifact they cannot
323
326
  inspect. The chat approval view should be skimmable in under 45 seconds; full
324
327
  reasoning, source notes, and robustness stay in the artifacts. Include these
325
- sections, with 1-2 short lines each:
328
+ sections, with short wrapped lines:
326
329
 
327
330
  ```text
328
- Campaign brief
331
+ ## Campaign brief
329
332
 
330
- Target:
331
- ... (include concrete role/title names, not just a broad persona)
333
+ **Decision:** ... (one sentence)
332
334
 
333
- Core pain:
334
- ...
335
+ **1. Target**
336
+ - ... (include concrete role/title names, not just a broad persona)
337
+ - ...
335
338
 
336
- Offer / CTA:
337
- ...
339
+ **2. Pain**
340
+ - ...
341
+ - ...
338
342
 
339
- Proof:
340
- ...
343
+ **3. Offer**
344
+ - ...
345
+ - ...
341
346
 
342
- Lead plan:
343
- ...
347
+ **4. Proof**
348
+ - ...
349
+ - ...
344
350
 
345
- Message angle:
346
- ...
351
+ **5. Lead plan**
352
+ I’ll look for people who are already showing signs this problem matters:
353
+ - people talking about ...
354
+ - people with roles like ...
355
+ - companies likely to feel ...
347
356
 
348
- Risks:
349
- ...
357
+ If that pool is too small or noisy, I’ll switch to broader LinkedIn title and
358
+ company filters.
350
359
 
351
- After approval:
352
- I’ll find good-fit LinkedIn leads, show you the source decision and sample, then
353
- draft the first message for review before anything goes live.
360
+ **6. Risks**
361
+ - ...
362
+ - ...
363
+
364
+ **7. After approval**
365
+ I’ll find good-fit LinkedIn leads, show the source decision and sample, then
366
+ draft the first message for review. Nothing goes live without approval.
367
+ ```
368
+
369
+ In the `Lead plan` section, do not expose internal provider shorthand as the
370
+ explanation. Avoid bare phrases like `signal discovery`, `founder-led GTM`,
371
+ `RevOps`, `outbound systems`, or `pipeline architecture` unless they are
372
+ translated into what the user can understand. For example:
373
+
374
+ ```text
375
+ I’ll start by looking for LinkedIn activity from founders and revenue leaders
376
+ who are talking about pipeline problems, CRM handoffs, outbound tooling, or
377
+ messy sales processes.
354
378
  ```
355
379
 
356
380
  Do not paste the full rich brief into chat for approval unless the user asks.
@@ -714,7 +738,9 @@ range, and estimate basis. If exact performance data is unavailable, use a
714
738
  directional range and label it `directional`, not definitive.
715
739
 
716
740
  When showing `lead-review.md` to the user, render a slim decision summary in
717
- chat, not the full evidence table. The visible response must include:
741
+ chat, not the full evidence table. Use rendered Markdown directly with short
742
+ bullet lines; do not use fenced code blocks for the user-facing lead review.
743
+ The visible response must include:
718
744
 
719
745
  - `Lead source decision`
720
746
  - `Chosen source`
@@ -733,13 +759,13 @@ unless links cannot be created or the user asks.
733
759
  Use this chat shape for the quick-number bullets:
734
760
 
735
761
  ```text
736
- Quick numbers:
737
- - Signals / AI outbound posts: 249 posts found. Sampled 40 engagers; 18/40
762
+ **1. Quick numbers**
763
+ - **Signals / AI outbound posts:** 249 posts found. Sampled 40 engagers; 18/40
738
764
  looked usable. Estimate: 100-250 good warm fits. Expected reply: 6-12%.
739
- - Sales Nav / active SaaS founders + GTM leaders: 27,454 active profiles before
765
+ - **Sales Nav / active SaaS founders + GTM leaders:** 27,454 active profiles before
740
766
  filtering. First 25 had 12 strong/probable fits. Estimate: 300-800 good fits
741
767
  after title/company cleanup. Expected reply: 4-9%.
742
- - Prospeo / domain-filtered agencies: 1,000+ likely contacts if we need scale,
768
+ - **Prospeo / domain-filtered agencies:** 1,000+ likely contacts if we need scale,
743
769
  but weaker LinkedIn activity. Estimate: 500-1,000 contacts. Expected reply:
744
770
  2-5%.
745
771
  ```
@@ -122,17 +122,17 @@ sampled engagers; 31 looked like real ICP fits, so I’d treat this as direction
122
122
  usable people if the remaining engagers behave similarly.
123
123
  ```
124
124
 
125
- Lead review chat should be short and numeric. It must include bullet-pointed
126
- provider/source-angle estimates, one bullet per angle, so the sourcing logic is
127
- easy to scan:
125
+ Lead review chat should be short and numeric. It must use rendered Markdown,
126
+ not a fenced code block, and include bullet-pointed provider/source-angle
127
+ estimates, one bullet per angle, so the sourcing logic is easy to scan:
128
128
 
129
129
  ```text
130
- Quick numbers:
131
- - Signals / AI outbound posts: 249 posts found. Sampled 40 engagers; 18/40
130
+ **1. Quick numbers**
131
+ - **Signals / AI outbound posts:** 249 posts found. Sampled 40 engagers; 18/40
132
132
  looked usable. Estimate: 100-250 good warm fits.
133
- - Sales Nav / active SaaS founders + GTM leaders: 27,454 active profiles before
133
+ - **Sales Nav / active SaaS founders + GTM leaders:** 27,454 active profiles before
134
134
  filtering. First 25 had 12 strong/probable fits. Estimate: 300-800 good fits.
135
- - Sales Nav / agencies + GTM consultants: smaller but higher intent. Estimate:
135
+ - **Sales Nav / agencies + GTM consultants:** Smaller but higher intent. Estimate:
136
136
  150-400 good fits.
137
137
  ```
138
138
 
@@ -227,6 +227,7 @@
227
227
  "minimumVisibleBriefDetail": "slim_approval_brief_before_question",
228
228
  "requiredArtifactLinks": ["brief.md"],
229
229
  "artifactLinkTiming": "before_approval_question",
230
+ "chatRenderRule": "Show the brief as rendered Markdown, never as a fenced code block. Use ## Campaign brief, a one-sentence bold Decision, indexed bold section labels, and short bullets. In Lead plan, translate provider shorthand into plain user-facing language about who will be searched for and why; do not rely on bare terms like signal discovery, RevOps, outbound systems, or pipeline architecture.",
230
231
  "avoidQuestionWhenOnlyUsefulAnswerIs": "looks good"
231
232
  },
232
233
  {
@@ -400,7 +401,7 @@
400
401
  "forbidPercentOnlyFitRates": true,
401
402
  "requiredArtifactLinks": ["lead-review.md"],
402
403
  "artifactLinkTiming": "before_next_step_or_revision_question",
403
- "chatRenderRule": "Show a slim decision summary only: chosen source, why it won, bullet-pointed Quick numbers with one provider/source angle per bullet, raw volume, sampled fit rate as n/N, estimated good-fit range after cleanup, expected connection acceptance range, expected reply rate range, 3-5 representative sample leads, and one tradeoff. Keep evidence tables, selected posts, discarded paths, full sample rows, and lead-sample.json details in lead-review.md. Do not show plain filesystem paths unless links cannot be created."
404
+ "chatRenderRule": "Show a slim rendered-Markdown decision summary only, never a fenced code block. Use indexed sections and short bullets: chosen source, why it won, bullet-pointed Quick numbers with one provider/source angle per bullet, raw volume, sampled fit rate as n/N, estimated good-fit range after cleanup, expected connection acceptance range, expected reply rate range, 3-5 representative sample leads, and one tradeoff. Keep evidence tables, selected posts, discarded paths, full sample rows, and lead-sample.json details in lead-review.md. Do not show plain filesystem paths unless links cannot be created."
404
405
  },
405
406
  {
406
407
  "action": "render_post_lead_parallel_progress",
@@ -133,7 +133,9 @@ directional range and label it `directional`, not definitive.
133
133
 
134
134
  `## Evidence Snapshot` and the visible lead-review chat must break estimates out
135
135
  by provider/source angle. Do not collapse everything into one raw count. Use
136
- one row or bullet per angle, for example:
136
+ one row or bullet per angle. The visible chat version should be rendered
137
+ Markdown with indexed sections and short bullets, not a fenced code block. For
138
+ example:
137
139
 
138
140
  - `Signals / AI outbound posts`
139
141
  - `Sales Nav / active SaaS founders + GTM leaders`