@sellable/mcp 0.1.18 → 0.1.19
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.
|
|
86
|
+
npx -y @sellable/install@0.1.19 --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.
|
|
93
|
+
npx -y @sellable/install@0.1.19 --host codex
|
|
94
94
|
sellable --verify-only --host codex
|
|
95
95
|
```
|
|
96
96
|
|
package/package.json
CHANGED
|
@@ -318,7 +318,8 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
|
|
|
318
318
|
strategic choice or the user has not already made the direction obvious. The
|
|
319
319
|
user-facing choice should be approve/revise language, not "looks good".
|
|
320
320
|
Approval options should refer to what the user just read, e.g. `Approve this
|
|
321
|
-
|
|
321
|
+
brief`, `Revise target`, `Revise offer/proof`, and `Other / custom`.
|
|
322
|
+
|
|
322
323
|
- After the brief is approved or auto-confirmed, show the next progress line:
|
|
323
324
|
`Cool. Now I'm going to find people who are both a good fit and likely to
|
|
324
325
|
reply on LinkedIn. I'll compare source paths by expected volume, likely
|
|
@@ -517,6 +518,17 @@ Required behavior:
|
|
|
517
518
|
keyword lanes; it does not mean 492 prospects. The source decision must name
|
|
518
519
|
the actual posts we would use, show why they won, and estimate usable engagers
|
|
519
520
|
from those posts after headline/sample filtering
|
|
521
|
+
- user-facing source logic must use numbers, not vibes. Never write a percentage
|
|
522
|
+
such as `73% match` without the numerator, denominator, and sample basis, e.g.
|
|
523
|
+
`8 of 11 sampled engagers fit the ICP (73%)`. If the sample is small, say it is
|
|
524
|
+
directional. If an estimate depends on assumptions, show the math: `5 selected
|
|
525
|
+
posts x ~40-80 reachable engagers/post x 25-40% expected fit = ~50-160 likely
|
|
526
|
+
usable leads`.
|
|
527
|
+
- source progress updates should expose the confidence-building numbers as soon
|
|
528
|
+
as they exist: keyword lanes searched, timeframe used, post results by lane,
|
|
529
|
+
finalist posts reviewed, engagers fetched, sampled engagers, sampled fits,
|
|
530
|
+
estimated usable leads, and what is still unknown. Do not wait until the final
|
|
531
|
+
approval packet to show those numbers.
|
|
520
532
|
- Signals source decisions should prefer fresh posts. Default to posts from the
|
|
521
533
|
last 30 days, prefer the last 7-14 days when quality is comparable, and call
|
|
522
534
|
out any older post as a deliberate tradeoff. Do not hide post age inside the
|
|
@@ -545,12 +557,14 @@ Required behavior:
|
|
|
545
557
|
- validation status: `confirmed`, `rejected`, or `unclear`
|
|
546
558
|
- confidence
|
|
547
559
|
- provider path used
|
|
560
|
+
- search lanes tested, with keyword/filter names and the timeframe used
|
|
561
|
+
- post/result counts by lane for discovery sources
|
|
548
562
|
- supplied source type when applicable (`normal-discovery`,
|
|
549
563
|
`supplied-linkedin-profiles`, `supplied-domains`, or `existing-lead-list`)
|
|
550
564
|
- row/domain counts, invalid counts, duplicate counts, and sample method for
|
|
551
565
|
supplied sources
|
|
552
566
|
- preview count
|
|
553
|
-
- ICP match rate
|
|
567
|
+
- ICP match rate with numerator/denominator and sample basis; never percent-only
|
|
554
568
|
- volume comparison
|
|
555
569
|
- expected LinkedIn funnel: likely connection acceptance range, likely reply
|
|
556
570
|
range, and whether the estimate is sample-backed, historical, founder-supplied,
|
|
@@ -560,6 +574,11 @@ Required behavior:
|
|
|
560
574
|
sampled engager count per selected post, sampled fit count per selected post,
|
|
561
575
|
estimated usable engagers per selected post, and why each selected post is
|
|
562
576
|
better than discarded posts
|
|
577
|
+
- for Signals-first paths: total raw post results by lane, number of finalist
|
|
578
|
+
posts reviewed, number of selected posts, total engagers fetched, deduped
|
|
579
|
+
sampled people count, sampled fit count, and the estimated likely usable people
|
|
580
|
+
range. Explicitly distinguish `posts found`, `engagers sampled`, and `usable
|
|
581
|
+
people estimated`.
|
|
563
582
|
- source decision: best path, why it won, pros, cons/tradeoffs, and discarded
|
|
564
583
|
source paths with the reason each lost
|
|
565
584
|
- repeated false-positive patterns
|
|
@@ -571,6 +590,7 @@ For normal LinkedIn discovery, `lead-review.md` must include these
|
|
|
571
590
|
customer-visible sections with literal headings:
|
|
572
591
|
|
|
573
592
|
- `## Source Decision`
|
|
593
|
+
- `## Evidence Snapshot`
|
|
574
594
|
- `## Selected Signal Posts` for Signals-first campaigns
|
|
575
595
|
- `## Expected LinkedIn Funnel`
|
|
576
596
|
- `## Sample Leads` for Signals-first campaigns
|
|
@@ -591,6 +611,17 @@ table with one row per selected or finalist post:
|
|
|
591
611
|
- estimated usable leads
|
|
592
612
|
- why use / why discard
|
|
593
613
|
|
|
614
|
+
`## Evidence Snapshot` must include a compact numbers-first table:
|
|
615
|
+
|
|
616
|
+
- source lane / keyword or filter
|
|
617
|
+
- timeframe searched
|
|
618
|
+
- raw results found
|
|
619
|
+
- finalist posts or preview rows reviewed
|
|
620
|
+
- sampled people
|
|
621
|
+
- sampled fits, shown as `n/N (%)`
|
|
622
|
+
- estimated usable people
|
|
623
|
+
- confidence note (`sample-backed`, `directional`, or `needs more sample`)
|
|
624
|
+
|
|
594
625
|
For Signals-first campaigns, `## Sample Leads` must group representative sample
|
|
595
626
|
rows by source post when possible, so the user can see not just that the search
|
|
596
627
|
found posts, but which posts produce believable prospects.
|
|
@@ -602,10 +633,10 @@ directional range and label it `directional`, not definitive.
|
|
|
602
633
|
|
|
603
634
|
When showing `lead-review.md` to the user, render the customer-visible sections
|
|
604
635
|
inline. Do not compress it to a short summary or artifact links only. The
|
|
605
|
-
visible response must include `## Source Decision`, `##
|
|
606
|
-
Funnel`, `## Pros`, `## Tradeoffs`, and `## Discarded
|
|
607
|
-
Signals-first campaigns it must also include `## Selected Signal
|
|
608
|
-
`## Sample Leads`.
|
|
636
|
+
visible response must include `## Source Decision`, `## Evidence Snapshot`,
|
|
637
|
+
`## Expected LinkedIn Funnel`, `## Pros`, `## Tradeoffs`, and `## Discarded
|
|
638
|
+
Paths`. For Signals-first campaigns it must also include `## Selected Signal
|
|
639
|
+
Posts` and `## Sample Leads`.
|
|
609
640
|
|
|
610
641
|
For supplied profile CSVs and existing lead lists, `lead-review.md` must not
|
|
611
642
|
describe a generic TAM estimate or pretend the rows came from Sales Nav/Prospeo
|
|
@@ -79,6 +79,23 @@ Before a brief approval, the user should see:
|
|
|
79
79
|
- risks / assumptions
|
|
80
80
|
- what happens after approval
|
|
81
81
|
|
|
82
|
+
For lead-source decisions, confidence comes from concrete counts. Do not say
|
|
83
|
+
"strong sample", "73% match", or "meaningful concentration" without showing the
|
|
84
|
+
sample size and what was counted. Prefer:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
I searched 4 signal lanes over the last 30 days. The best 5 posts produced 62
|
|
88
|
+
sampled engagers; 31 looked like real ICP fits, so I’d treat this as directional
|
|
89
|
+
50% sample fit, not a guaranteed audience. That gives us roughly 150-300 likely
|
|
90
|
+
usable people if the remaining engagers behave similarly.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Avoid:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
The sample passed roughly 73% headline fit.
|
|
97
|
+
```
|
|
98
|
+
|
|
82
99
|
Good:
|
|
83
100
|
|
|
84
101
|
```text
|
|
@@ -277,6 +277,10 @@
|
|
|
277
277
|
"likely reply rate",
|
|
278
278
|
"signal quality",
|
|
279
279
|
"tradeoffs",
|
|
280
|
+
"search lanes",
|
|
281
|
+
"timeframe",
|
|
282
|
+
"sample size",
|
|
283
|
+
"estimated usable leads",
|
|
280
284
|
"source decision + sample",
|
|
281
285
|
"before anything goes live"
|
|
282
286
|
],
|
|
@@ -362,6 +366,7 @@
|
|
|
362
366
|
"artifact": "lead-review.md",
|
|
363
367
|
"renderInlineSections": [
|
|
364
368
|
"## Source Decision",
|
|
369
|
+
"## Evidence Snapshot",
|
|
365
370
|
"## Selected Signal Posts",
|
|
366
371
|
"## Expected LinkedIn Funnel",
|
|
367
372
|
"## Sample Leads",
|
|
@@ -377,9 +382,21 @@
|
|
|
377
382
|
"engagement or estimated engagers",
|
|
378
383
|
"sampled engagers",
|
|
379
384
|
"sampled fits",
|
|
385
|
+
"sampled fits as n/N",
|
|
380
386
|
"estimated usable leads",
|
|
381
387
|
"why use or discard"
|
|
382
388
|
],
|
|
389
|
+
"evidenceSnapshotRequiredFields": [
|
|
390
|
+
"source lane or keyword",
|
|
391
|
+
"timeframe searched",
|
|
392
|
+
"raw results found",
|
|
393
|
+
"finalist posts or preview rows reviewed",
|
|
394
|
+
"sampled people",
|
|
395
|
+
"sampled fits as n/N (%)",
|
|
396
|
+
"estimated usable people",
|
|
397
|
+
"confidence note"
|
|
398
|
+
],
|
|
399
|
+
"forbidPercentOnlyFitRates": true,
|
|
383
400
|
"doNotCompressToSummaryOnly": true,
|
|
384
401
|
"doNotRenderArtifactLinksOnly": true
|
|
385
402
|
},
|