@sellable/mcp 0.1.255 → 0.1.256
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/dist/api.d.ts +3 -0
- package/dist/api.js +24 -13
- package/dist/index-dev.js +0 -0
- package/dist/index.js +0 -0
- package/dist/server.js +13 -7
- package/dist/tools/campaigns.d.ts +41 -0
- package/dist/tools/campaigns.js +22 -3
- package/dist/tools/csv-dnc.d.ts +0 -36
- package/dist/tools/csv-dnc.js +2 -94
- package/dist/tools/leads.d.ts +16 -214
- package/dist/tools/leads.js +1 -39
- package/dist/tools/registry.d.ts +506 -606
- package/dist/tools/tables.d.ts +53 -2
- package/dist/tools/tables.js +78 -0
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +0 -6
- package/skills/create-campaign-v2/references/filter-leads.md +0 -2
- package/skills/create-campaign-v2/references/lead-validation-preview.md +0 -2
- package/skills/create-campaign-v2/references/step-13-import-leads.md +1 -3
- package/skills/create-post/SKILL.md +52 -17
- package/skills/create-post/references/gold-standard-post-pack.md +11 -0
- package/skills/create-post/references/hook-research-playbook.md +57 -14
- package/skills/create-post/references/linkedin-preview-rendering.md +163 -0
- package/skills/create-post/references/post-file-contract.md +7 -0
- package/skills/create-post/references/post-validation.md +68 -15
- package/skills/find-leads/SKILL.md +0 -6
- package/skills/research/config.json +9 -0
|
@@ -63,6 +63,10 @@ Hook research files must preserve:
|
|
|
63
63
|
- source hook preview measurements, including text basis, char count including
|
|
64
64
|
newlines, physical/content line counts, longest nonblank line, blank-line
|
|
65
65
|
visual risk, and mobile/desktop preview budget status
|
|
66
|
+
- rendered preview records for every kept source hook and adapted hook block,
|
|
67
|
+
including literal mobile/desktop preview blocks, rendered line wraps, render
|
|
68
|
+
basis, CSS contract version, text widths, first-screen promise visibility,
|
|
69
|
+
core point visibility, and whether the point lands after the mobile clamp
|
|
66
70
|
- extracted hook patterns
|
|
67
71
|
- selected hook basis
|
|
68
72
|
|
|
@@ -83,6 +87,9 @@ Draft files must preserve:
|
|
|
83
87
|
- draft body
|
|
84
88
|
- validation receipt, including LinkedIn preview pass/warn/fail status and
|
|
85
89
|
compact fallback when the selected hook carries a warning
|
|
90
|
+
- rendered mobile and desktop preview blocks for the selected hook; drafts
|
|
91
|
+
cannot be ready when this rendered-preview audit is missing or fails mobile
|
|
92
|
+
visibility
|
|
86
93
|
- status: `draft`, `ready`, `needs_revision`, `published`, or `archived`
|
|
87
94
|
|
|
88
95
|
Multiple drafts for the same idea are expected. Keep the `ideaId` stable and
|
|
@@ -78,6 +78,12 @@ Each candidate should include:
|
|
|
78
78
|
- reader value implied
|
|
79
79
|
- source pattern
|
|
80
80
|
- score
|
|
81
|
+
- `renderedPreview` using `references/linkedin-preview-rendering.md`
|
|
82
|
+
- literal mobile and desktop rendered preview blocks
|
|
83
|
+
- mobile and desktop rendered line wraps
|
|
84
|
+
- first-screen promise: pain, proof, or curiosity visible by the mobile clamp
|
|
85
|
+
- whether the core point is visible in the mobile rendered preview
|
|
86
|
+
- whether the point lands after the mobile clamp
|
|
81
87
|
- char count including newlines and first-line / first-two-line preview measurements
|
|
82
88
|
- physical line count, content line count, longest nonblank line, and blank-line risk
|
|
83
89
|
- `previewBudgetStatus`: `pass`, `warn`, or `fail`
|
|
@@ -98,7 +104,7 @@ After the first draft:
|
|
|
98
104
|
6. replace generic language with concrete words only when supported
|
|
99
105
|
7. preserve the user's actual story and point
|
|
100
106
|
8. remove AI tells
|
|
101
|
-
9. re-
|
|
107
|
+
9. re-render the selected hook on mobile and desktop after edits
|
|
102
108
|
|
|
103
109
|
## Premise Value Audit
|
|
104
110
|
|
|
@@ -149,22 +155,65 @@ proof from another creator, save as `needs_revision`.
|
|
|
149
155
|
|
|
150
156
|
## LinkedIn Preview Audit
|
|
151
157
|
|
|
152
|
-
Audit the selected hook and top candidates against
|
|
153
|
-
preview
|
|
154
|
-
rendering varies by device, app version, font,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
158
|
+
Audit the selected hook and top candidates against
|
|
159
|
+
`references/linkedin-preview-rendering.md`. LinkedIn does not publish exact
|
|
160
|
+
"see more" cutoff rules, and rendering varies by device, app version, font,
|
|
161
|
+
media, and line break. This audit is a mobile-first rendered-preview safety
|
|
162
|
+
gate, not a claim about an official LinkedIn limit.
|
|
163
|
+
|
|
164
|
+
Character budgets are secondary diagnostics. They cannot be the only evidence
|
|
165
|
+
that a hook works. Every selected hook must include literal rendered mobile and
|
|
166
|
+
desktop preview blocks.
|
|
167
|
+
|
|
168
|
+
Default deterministic renderer when no authenticated LinkedIn screenshot is
|
|
169
|
+
available:
|
|
170
|
+
|
|
171
|
+
```text
|
|
172
|
+
cssContractVersion: linkedin-preview-rendering/v1
|
|
173
|
+
font size: 14px
|
|
174
|
+
line height: 21px
|
|
175
|
+
white space: pre-wrap
|
|
176
|
+
overflow wrap: break-word
|
|
177
|
+
mobile text width: 308px
|
|
178
|
+
desktop text width: 582px
|
|
179
|
+
review clamp: first 3 rendered text lines
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Use rendered gates:
|
|
183
|
+
|
|
184
|
+
- `pass`: the mobile rendered preview shows the pain, proof, or curiosity by
|
|
185
|
+
the end of the first 3 rendered lines, and the core point is understandable
|
|
186
|
+
without opening "see more".
|
|
187
|
+
- `warn`: the mobile rendered preview creates useful curiosity but the core
|
|
188
|
+
point is slightly softened by wrapping, blank-line rhythm, or one missing
|
|
189
|
+
context word. A compact fallback is required.
|
|
190
|
+
- `fail`: the hook's real point appears after the first 3 mobile rendered
|
|
191
|
+
lines, the first rendered line is generic setup, blank lines consume the
|
|
192
|
+
preview before the reader sees the point, or desktop fit is the only reason it
|
|
193
|
+
looks good.
|
|
162
194
|
|
|
163
195
|
Desktop preview usually has more room. Still record desktop fit, but never let
|
|
164
196
|
desktop fit compensate for a mobile `fail`.
|
|
165
197
|
|
|
166
198
|
Record:
|
|
167
199
|
|
|
200
|
+
- `renderedPreview`
|
|
201
|
+
- `renderBasis`: `linkedin_css_contract`, `authenticated_linkedin_screenshot`,
|
|
202
|
+
or `manual_user_source`
|
|
203
|
+
- `cssContractVersion`
|
|
204
|
+
- `mobileRenderedPreviewBlock`
|
|
205
|
+
- `desktopRenderedPreviewBlock`
|
|
206
|
+
- `mobileRenderedLines`
|
|
207
|
+
- `desktopRenderedLines`
|
|
208
|
+
- `mobileTextWidthPx`
|
|
209
|
+
- `desktopTextWidthPx`
|
|
210
|
+
- `mobileRenderedLineCount`
|
|
211
|
+
- `desktopRenderedLineCount`
|
|
212
|
+
- `corePainProofOrCuriosityVisibleMobile`
|
|
213
|
+
- `corePainProofOrCuriosityVisibleDesktop`
|
|
214
|
+
- `corePointVisibleMobile`
|
|
215
|
+
- `corePointVisibleDesktop`
|
|
216
|
+
- `pointAfterMobileClamp`
|
|
168
217
|
- `charCount`
|
|
169
218
|
- `charCountIncludingNewlines`
|
|
170
219
|
- `firstLineChars`
|
|
@@ -183,10 +232,14 @@ Record:
|
|
|
183
232
|
- `rewriteIfTruncated`
|
|
184
233
|
- `compactFallback` when `previewBudgetStatus` is `warn`
|
|
185
234
|
|
|
186
|
-
If the hook only works after
|
|
187
|
-
`ready` with `previewBudgetStatus: fail
|
|
188
|
-
`
|
|
189
|
-
|
|
235
|
+
If the hook only works after the rendered mobile clamp, rewrite it. A draft
|
|
236
|
+
cannot be `ready` with `previewBudgetStatus: fail`,
|
|
237
|
+
`mobilePreviewFit: fail`, missing `renderedPreview`,
|
|
238
|
+
`corePainProofOrCuriosityVisibleMobile: false`,
|
|
239
|
+
`corePointVisibleMobile: false`, or `pointAfterMobileClamp: true`. A draft may
|
|
240
|
+
be `ready` with `previewBudgetStatus: warn` only when the warning is explicit,
|
|
241
|
+
usually because the user prefers blank-line rhythm, and the receipt includes a
|
|
242
|
+
compact fallback.
|
|
190
243
|
|
|
191
244
|
## Simplifier / Concrete-Language Audit
|
|
192
245
|
|
|
@@ -90,7 +90,6 @@ should stay focused on source evidence.
|
|
|
90
90
|
- `mcp__sellable__search_prospeo`
|
|
91
91
|
- `mcp__sellable__search_prospeo_companies`
|
|
92
92
|
- `mcp__sellable__confirm_prospeo_company_accounts`
|
|
93
|
-
- `mcp__sellable__list_dnc_entries`
|
|
94
93
|
- `mcp__sellable__load_csv_dnc_entries`
|
|
95
94
|
- `mcp__sellable__load_csv_domains`
|
|
96
95
|
- `mcp__sellable__load_csv_linkedin_leads`
|
|
@@ -106,9 +105,6 @@ should stay focused on source evidence.
|
|
|
106
105
|
list after confirming the exact active workspace. Keep the mechanism to
|
|
107
106
|
Sellable DNC and `DNC Check`, not provider search work or Prospeo domain
|
|
108
107
|
filters.
|
|
109
|
-
- If the user asks to see the current DNC count, list names, or first page
|
|
110
|
-
before import, call `list_dnc_entries`. Report the active workspace name and
|
|
111
|
-
ID from the tool response before any DNC write.
|
|
112
108
|
- Do not infer sender identities from meeting attendance alone. Only treat someone as a sender when the source material explicitly identifies them as a sender or supplies their LinkedIn URL.
|
|
113
109
|
- Do not ask Layer 1 questions already answered by a transcript, ICP doc, or Layer 0 research.
|
|
114
110
|
- Do not include Apollo in the explorer set for this phase.
|
|
@@ -140,8 +136,6 @@ Execution flow:
|
|
|
140
136
|
DNC entries.
|
|
141
137
|
- Campaign creation already includes `DNC Check`, which checks domain/profile
|
|
142
138
|
before message generation.
|
|
143
|
-
- If the user wants the existing DNC count or first page first, call
|
|
144
|
-
`list_dnc_entries` before previewing the import.
|
|
145
139
|
3. If the user has a CSV of LinkedIn profile URLs on disk, call `load_csv_linkedin_leads` first.
|
|
146
140
|
- Preview, confirm, then review the resulting lead list before `confirm_lead_list`.
|
|
147
141
|
- Confirmed execution uploads the raw CSV file, starts the server-owned import job, and waits on lead-list readiness before returning.
|