@sellable/mcp 0.1.49 → 0.1.50

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.49",
3
+ "version": "0.1.50",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -92,8 +92,11 @@ clear business decisions, tradeoffs, and approval gates. Use product language:
92
92
  When explaining lead-source decisions, show the concrete counts behind the
93
93
  logic: lanes searched, timeframe, raw result counts, finalist posts or preview
94
94
  rows, sampled people, sampled fits as n/N (%), estimated usable people, and the
95
- confidence basis. Never show a percent like "73% match" without the numerator,
96
- denominator, and sample basis.
95
+ confidence basis. Break estimates out by provider/source angle in bullet form
96
+ instead of showing only one raw total. Each angle should show raw pool, sampled
97
+ fits as n/N, estimated good-fit range after cleanup, expected reply-rate range,
98
+ and confidence basis. Never show a percent like "73% match" without the
99
+ numerator, denominator, and sample basis.
97
100
 
98
101
  Every approval gate must include artifact access after the readable inline
99
102
  content. Show an `Open artifact:` line with the one key clickable markdown link
@@ -691,12 +691,17 @@ table with one row per selected or finalist post:
691
691
  `## Evidence Snapshot` must include a compact numbers-first table:
692
692
 
693
693
  - source lane / keyword or filter
694
+ - provider/source angle label, e.g. `Signals / AI outbound posts`,
695
+ `Sales Nav / active SaaS founders + GTM leaders`, or
696
+ `Prospeo / domain-filtered agencies`
694
697
  - timeframe searched
695
698
  - raw results found
696
699
  - finalist posts or preview rows reviewed
697
700
  - sampled people
698
701
  - sampled fits, shown as `n/N (%)`
699
702
  - estimated usable people
703
+ - estimated good-fit range after cleanup
704
+ - expected reply-rate range
700
705
  - confidence note (`sample-backed`, `directional`, or `needs more sample`)
701
706
 
702
707
  For Signals-first campaigns, `## Sample Leads` must group representative sample
@@ -714,8 +719,9 @@ chat, not the full evidence table. The visible response must include:
714
719
  - `Lead source decision`
715
720
  - `Chosen source`
716
721
  - `Why it won`
717
- - `Key numbers` with raw volume, sampled fit rate as `n/N`, estimated usable
718
- leads, expected connection acceptance range, and expected reply rate range
722
+ - `Quick numbers` as bullet points, with one provider/source angle per bullet.
723
+ Each bullet must include raw volume, sampled fit rate as `n/N`, estimated
724
+ good-fit range after cleanup, and expected reply-rate range when available.
719
725
  - `Sample leads` with 3-5 representative `Name — Title, Company` rows
720
726
  - `Tradeoff`
721
727
  - `Open artifact: lead-review.md`
@@ -724,6 +730,20 @@ Keep `## Evidence Snapshot`, selected posts, discarded paths, full sample rows,
724
730
  and `lead-sample.json` details in artifacts. Do not show raw filesystem paths
725
731
  unless links cannot be created or the user asks.
726
732
 
733
+ Use this chat shape for the quick-number bullets:
734
+
735
+ ```text
736
+ Quick numbers:
737
+ - Signals / AI outbound posts: 249 posts found. Sampled 40 engagers; 18/40
738
+ 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
740
+ filtering. First 25 had 12 strong/probable fits. Estimate: 300-800 good fits
741
+ after title/company cleanup. Expected reply: 4-9%.
742
+ - Prospeo / domain-filtered agencies: 1,000+ likely contacts if we need scale,
743
+ but weaker LinkedIn activity. Estimate: 500-1,000 contacts. Expected reply:
744
+ 2-5%.
745
+ ```
746
+
727
747
  After the lead source is set, use this progress copy before the parallel
728
748
  filter/message work:
729
749
 
@@ -122,10 +122,23 @@ 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: chosen source, why it won, raw
126
- volume, sampled fit rate as `n/N`, estimated good fits, expected connection
127
- acceptance, expected reply rate, 3-5 sample leads, and one tradeoff. Full tables
128
- belong in `lead-review.md`.
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:
128
+
129
+ ```text
130
+ Quick numbers:
131
+ - Signals / AI outbound posts: 249 posts found. Sampled 40 engagers; 18/40
132
+ looked usable. Estimate: 100-250 good warm fits.
133
+ - Sales Nav / active SaaS founders + GTM leaders: 27,454 active profiles before
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:
136
+ 150-400 good fits.
137
+ ```
138
+
139
+ Then show chosen source, why it won, expected connection acceptance, expected
140
+ reply rate, 3-5 sample leads, and one tradeoff. Full tables belong in
141
+ `lead-review.md`.
129
142
 
130
143
  Lead filter chat should always show what changed: keep, exclude, why, expected
131
144
  impact, and `Open artifact: lead-filter.md`.
@@ -385,6 +385,7 @@
385
385
  "why use or discard"
386
386
  ],
387
387
  "evidenceSnapshotRequiredFields": [
388
+ "provider/source angle label",
388
389
  "source lane or keyword",
389
390
  "timeframe searched",
390
391
  "raw results found",
@@ -392,12 +393,14 @@
392
393
  "sampled people",
393
394
  "sampled fits as n/N (%)",
394
395
  "estimated usable people",
396
+ "estimated good-fit range after cleanup",
397
+ "expected reply-rate range",
395
398
  "confidence note"
396
399
  ],
397
400
  "forbidPercentOnlyFitRates": true,
398
401
  "requiredArtifactLinks": ["lead-review.md"],
399
402
  "artifactLinkTiming": "before_next_step_or_revision_question",
400
- "chatRenderRule": "Show a slim decision summary only: chosen source, why it won, raw volume, sampled fit rate as n/N, estimated usable leads, 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."
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."
401
404
  },
402
405
  {
403
406
  "action": "render_post_lead_parallel_progress",
@@ -131,6 +131,18 @@ usable leads after filtering, likely connection acceptance range, likely reply
131
131
  range, and estimate basis. If exact performance data is unavailable, use a
132
132
  directional range and label it `directional`, not definitive.
133
133
 
134
+ `## Evidence Snapshot` and the visible lead-review chat must break estimates out
135
+ by provider/source angle. Do not collapse everything into one raw count. Use
136
+ one row or bullet per angle, for example:
137
+
138
+ - `Signals / AI outbound posts`
139
+ - `Sales Nav / active SaaS founders + GTM leaders`
140
+ - `Sales Nav / agencies + GTM consultants`
141
+ - `Prospeo / domain-filtered agencies`
142
+
143
+ Each angle must show raw pool, sampled fits as `n/N`, estimated good-fit range
144
+ after cleanup, expected reply-rate range, and confidence basis.
145
+
134
146
  `lead-sample.json` must include enough structured lead data for downstream
135
147
  filtering:
136
148