@sellable/mcp 0.1.254 → 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.
@@ -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-check LinkedIn preview fit after edits
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 conservative LinkedIn
153
- preview budgets. LinkedIn does not publish exact "see more" cutoff rules, and
154
- rendering varies by device, app version, font, media, and line break. This audit
155
- is a mobile-first safety gate, not a claim about an official LinkedIn limit.
156
-
157
- Use:
158
-
159
- - `pass`: hook is <= 110 chars including newlines, every nonblank line is <= 45 chars, and the hook's core point lands before likely truncation.
160
- - `warn`: hook is 111-140 chars including newlines, any nonblank line is 46-55 chars, or blank lines create visual-line risk. Blank lines are allowed, but they count as physical lines.
161
- - `fail`: hook is > 140 chars including newlines, any nonblank line is > 55 chars, or the hook's point depends on text after likely truncation.
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 likely truncation, rewrite it. A draft cannot be
187
- `ready` with `previewBudgetStatus: fail`. A draft may be `ready` with
188
- `previewBudgetStatus: warn` only when the warning is explicit, usually because
189
- the user prefers blank-line rhythm, and the receipt includes a compact fallback.
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
 
@@ -0,0 +1,9 @@
1
+ {
2
+ "parallelMode": "wide",
3
+ "agentCount": 6,
4
+ "maxToolCallsPerAgent": 2,
5
+ "senderMaxAgents": 2,
6
+ "senderMaxToolCallsPerAgent": 3,
7
+ "progressMode": true,
8
+ "debugMode": true
9
+ }