@sellable/mcp 0.1.267 → 0.1.269

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.
@@ -50,38 +50,19 @@ Idea files must preserve:
50
50
  - `updatedAt`
51
51
  - exact raw source between raw-source markers
52
52
  - optional distilled brief that does not add new claims
53
- - transcript worldview packet when create-post has mined relevant
54
- transcript/content-memory material for this idea
55
53
 
56
54
  Hook research files must preserve:
57
55
 
58
56
  - source idea ID
59
- - transcript/content-memory match status and transcript worldview packet
60
57
  - keywords searched
61
58
  - filters used
62
59
  - source post URLs
63
60
  - author/profile URLs
64
61
  - engagement totals
65
- - author follower counts when available, target follower band, follower-band
66
- fit, engagement per 1k followers, weighted engagement per 1k followers,
67
- reach-adjusted score, and normalization confidence notes when reach
68
- normalization was used
69
62
  - full-text availability
70
63
  - source hook preview measurements, including text basis, char count including
71
64
  newlines, physical/content line counts, longest nonblank line, blank-line
72
65
  visual risk, and mobile/desktop preview budget status
73
- - audience tension snapshot and selected angle
74
- - rendered preview records for kept source hooks and adapted hook blocks,
75
- including literal mobile/desktop preview blocks and whether the first-screen
76
- promise is visible
77
- - thought leader inspiration packets when the user supplied creators, including
78
- worker status, profile URL/handle, recent posts reviewed, weighted winners,
79
- follower-adjusted signal when available, allowed mechanics to adapt, and
80
- forbidden borrowing
81
- - source-message outlines for keeper posts, preserving source paragraph order
82
- and branching each paragraph, line, or phrase into high-level goal, reader
83
- effect, reusable move, and adaptation guard without reproducing the full
84
- outside source post
85
66
  - extracted hook patterns
86
67
  - selected hook basis
87
68
 
@@ -89,8 +70,6 @@ Draft files must preserve:
89
70
 
90
71
  - source idea ID
91
72
  - hook research ID
92
- - transcript worldview packet used to build the premise, worldview, and hot
93
- take
94
73
  - versioned draft ID, normally ending in `_v1`, `_v2`, `_v3`, etc.
95
74
  - iteration metadata when there is a prior or baseline draft:
96
75
  - `version`
@@ -102,23 +81,8 @@ Draft files must preserve:
102
81
  - score fields for hook, proof, voice, specificity, skimmability, and publish confidence
103
82
  - `verdict`: `baseline`, `keep`, `revise`, `reject`, `publish_candidate`, or a similarly explicit state
104
83
  - draft body
105
- - source-message outline for any outside post being adapted, when the draft's
106
- body shape was learned from a specific source post
107
- - thought leader inspiration lab when used, including the selected inspiration
108
- adapter, variants considered, Christian/Sellable voice layer, and
109
- copying/voice-clone risk
110
- - pre-draft narrative outline: hierarchical `I.`, `A.`, `i.` outline covering
111
- hook debt, thesis, reader, core mechanism, definitions, proof claims,
112
- working body patterns adapted, narrative beats, mobile scan path, body
113
- promise, concrete examples, abstractions to remove, and draft risks
114
84
  - validation receipt, including LinkedIn preview pass/warn/fail status and
115
85
  compact fallback when the selected hook carries a warning
116
- - visible flow trace when the user asked for whole-flow, debug, or step-by-step
117
- mode, including checkpoint statuses, quality break, downstream effect, and
118
- whether the trace was shown before saving
119
- - rendered mobile and desktop preview blocks for the selected hook; drafts
120
- cannot be ready when this rendered-preview audit is missing or fails mobile
121
- visibility
122
86
  - status: `draft`, `ready`, `needs_revision`, `published`, or `archived`
123
87
 
124
88
  Multiple drafts for the same idea are expected. Keep the `ideaId` stable and
@@ -6,37 +6,18 @@ Every saved draft needs a validation receipt. A draft without this receipt is no
6
6
 
7
7
  - `sourceIdeaId`
8
8
  - `hookResearchId`
9
- - `transcriptWorldviewPacket`
10
9
  - `iteration`
11
10
  - `selectedPremiseCard`
12
11
  - `candidateHooksConsidered`
13
12
  - `selectedHook`
14
13
  - `selectedHookWhy`
15
- - `sourceMessageOutline`
16
- - `preDraftNarrativeOutline`
17
- - `preDraftStructureBrief` as a legacy compatibility alias when older drafts or
18
- downstream readers still expect it
19
- - `selectedSourceTemplate`
20
- - `postPositioningBreakdown`
21
- - `viralPostOutline`
22
- - `hookToBodyPromiseMap`
23
- - `bodyExpressionCandidates`
24
- - `combinedBodyPlan`
25
- - `visibleFlowTrace` when the user asked for whole-flow, debug, or
26
- step-by-step mode
27
14
  - `proofClaimsUsed`
28
15
  - `proofClaimSources`
29
- - `worldviewSource`
30
- - `hotTakeSource`
31
16
  - `storyFilesConsulted`
32
17
  - `goldStandardsConsulted`
33
18
  - `voiceRulesApplied`
34
- - `audienceTensionAudit`
35
- - `thoughtLeaderInspirationLab`
19
+ - `marketBeliefAudit`
36
20
  - `premiseValueAudit`
37
- - `mobileScanabilityAudit`
38
- - `templateAdaptationAudit`
39
- - `abstractionToConcreteRewriteAudit`
40
21
  - `linkedinPreviewAudit`
41
22
  - `simplifierConcreteLanguageAudit`
42
23
  - `antiAiAudit`
@@ -93,13 +74,9 @@ Each candidate should include:
93
74
 
94
75
  - hook text
95
76
  - selected premise
96
- - selected source template or no-template rationale
97
77
  - premise tension opened
98
78
  - reader value implied
99
79
  - source pattern
100
- - hook-to-body promise
101
- - see-more tension
102
- - curiosity debt
103
80
  - score
104
81
  - char count including newlines and first-line / first-two-line preview measurements
105
82
  - physical line count, content line count, longest nonblank line, and blank-line risk
@@ -114,50 +91,14 @@ Each candidate should include:
114
91
  After the first draft:
115
92
 
116
93
  1. remove unsupported claims
117
- 2. verify the draft is anchored to the selected audience tension and credible angle
94
+ 2. verify the draft is anchored to the selected market belief and controversy
118
95
  3. verify the real story/scene, tension, and reader value are visible early
119
- 4. verify the body repays the selected hook's curiosity debt
120
- 5. verify the final post follows the selected positioning sequence or explains
121
- why it departed from the template
122
- 6. tighten the hook
123
- 7. simplify abstract phrasing
124
- 8. replace generic language with concrete words only when supported
125
- 9. preserve the user's actual story and point
126
- 10. remove AI tells
127
- 11. re-check LinkedIn preview fit after edits
128
-
129
- ## Visible Flow Trace Audit
130
-
131
- When the user asks to see the whole flow, run the process step by step, validate
132
- that it is working, or debug a bad output, the validation receipt must preserve a
133
- `visibleFlowTrace`.
134
-
135
- Record:
136
-
137
- - `mode`: visible_whole_flow_debug
138
- - `checkpointStatuses`: each checkpoint marked `pass`, `weak`, `fail`, or
139
- `blocked`
140
- - `checkpointOutputs`: the concrete output shown to the user for each
141
- checkpoint
142
- - `qualityBreak`: the first checkpoint that made the draft weak, if any
143
- - `downstreamEffect`: how that break affected the hook, premise, body, or ready
144
- status
145
- - `userVisibleBeforeSave`: yes | no
146
- - `draftSavedDespiteWeakness`: yes | no
147
- - `reasonDraftSaved`: why a `needs_revision` draft was still worth saving, if
148
- it was saved
149
-
150
- Save as `needs_revision` when:
151
-
152
- - the trace was not shown before draft prose in visible debug mode
153
- - the body-expression lab was summarized after the fact instead of generating
154
- real candidates before prose
155
- - a weak premise, missing proof, or wrong source template produced a bad body
156
- - the final response claims the workflow worked only because artifacts were
157
- saved
158
-
159
- Do not mark a run successful unless the visible trace, final draft, and saved
160
- receipt all agree on the same quality state.
96
+ 4. tighten the hook
97
+ 5. simplify abstract phrasing
98
+ 6. replace generic language with concrete words only when supported
99
+ 7. preserve the user's actual story and point
100
+ 8. remove AI tells
101
+ 9. re-check LinkedIn preview fit after edits
161
102
 
162
103
  ## Premise Value Audit
163
104
 
@@ -175,223 +116,55 @@ Record:
175
116
  - `readerValue`: what the reader learns, sees differently, or can do
176
117
  - `proofAvailable`: source-backed proof used
177
118
  - `proofMissing`: claims intentionally avoided or requiring user input
178
- - `transcriptWorldviewPacket`: clusters, transcript references, cards, repeated
179
- phrasing, worldview ingredients, hot-take ingredients, proof/story available,
180
- proof/story missing, private exclusions, and confidence
181
- - `worldviewSource`: the source-backed belief that makes the post feel earned
182
- - `hotTakeSource`: the source-backed disagreement or operating lesson behind
183
- the hook/premise
184
- - `sourceMessageOutline`: source post decomposition in original order, with
185
- paragraph/line/phrase branches, high-level goal of each branch, reader effect,
186
- reusable move, and adaptation guard
187
- - `preDraftNarrativeOutline`: hierarchical `I.`, `A.`, `i.` outline showing
188
- hook debt, thesis, operating model, working body patterns adapted, narrative
189
- beats, scan path, proof claims, and abstractions to remove
190
- - `preDraftStructureBrief`: legacy compatibility alias only; the canonical
191
- artifact is `preDraftNarrativeOutline`
192
119
  - `premiseQualityGates`: pass/fail for `specific_scene_or_pattern`,
193
120
  `clear_reader`, `visible_tension`, `reader_value`, `credible_speaker`,
194
- `proof_safety`, `audience_tension`, and `pre_draft_narrative_outline`
121
+ `proof_safety`, and `market_heat`
195
122
  - `bodyOutline`: how the body delivers the premise before prose
196
- - `viralPostOutline`: the selected narrative structure, including beat jobs
197
- - `hookToBodyPromiseMap`: how the body repays the hook's open loop
198
- - `combinedBodyPlan`: which body-expression lines were kept, rewritten, or cut
199
123
 
200
124
  If the draft has no specific scene or observed pattern, no visible tension, or
201
125
  no reader value beyond "this is interesting," save as `needs_revision`. Do not
202
126
  mark it `ready` because the hook passes preview limits.
203
127
 
204
- Save as `needs_revision` when the post claims a worldview or hot take but the
205
- receipt cannot trace it to raw source, transcript/content-memory, core memory,
206
- or a current user answer.
207
-
208
- ## Pre-Draft Narrative Outline Audit
209
-
210
- Before a draft can be `ready`, validate that the narrative outline was locked
211
- before the body was written.
212
-
213
- Record:
214
-
215
- - `hook`: selected hook plus mobile/desktop rendered preview verdict
216
- - `thesis`: one sentence the post defends
217
- - `readerBeingTaught`: specific reader and why the post is written for them
218
- - `coreEquationOrMechanism`: the operating idea being taught
219
- - `keyDefinitions`: concrete definitions and examples for terms the reader
220
- could misunderstand
221
- - `proofClaims`: claims, sources, and public-safety status
222
- - `sourceTemplateOrNoTemplateRationale`
223
- - `workingBodyPatternsAdapted`: body pattern name, beat order, why it worked,
224
- what gets borrowed, and what must not be copied
225
- - `hierarchicalNarrativeBeats`: `I.`, `A.`, `i.` outline of the final post's
226
- argument, examples, proof, and line/section shapes
227
- - `mobileScanPath`: what a skimmer understands from the hook, separators,
228
- section labels, numbers, and close
229
- - `sectionOutline`: legacy summary of section order plus the job of each
230
- section; do not substitute this for `hierarchicalNarrativeBeats`
231
- - `bodyPromiseAfterSeeMore`: what the body immediately repays
232
- - `abstractionsToRemove`: abstract phrases and their concrete replacements
233
- - `userCorrectionsApplied`: user corrections applied to the outline before
234
- prose
235
-
236
- Save as `needs_revision` when the draft was written before the narrative
237
- outline, when the outline is a flat checklist instead of hierarchical
238
- `I.`, `A.`, `i.` notation, when the outline does not match the final prose, when
239
- working body patterns are unnamed or vaguely borrowed, when the mobile scan path
240
- is unclear, or when key terms are left abstract.
241
-
242
- ## Mobile Scanability Audit
243
-
244
- A LinkedIn post must still teach the main idea when a reader scans it.
245
-
246
- Record:
247
-
248
- - `scanVisibleFrom`: hook, separators, numbered labels, ranges/numbers, example
249
- prompts, and close
250
- - `readerGetsWithoutReadingEveryWord`: the specific takeaway a skimmer gets
251
- - `sectionSeparators`: present | absent | not_needed
252
- - `sectionLabels`: concrete | abstract | missing
253
- - `numbersOrProofVisible`: yes | no
254
- - `mobileLineLengthRisk`: pass | warn | fail
255
- - `skimVerdict`: pass | needs_revision
256
-
257
- Save as `needs_revision` when a skimmer cannot understand the thesis, hierarchy,
258
- or practical next action.
259
-
260
- ## Abstraction-To-Concrete Rewrite Audit
261
-
262
- Record every meaningful abstraction found in the draft and the concrete
263
- replacement. Do not merely say "made concrete."
264
-
265
- Use this format:
266
-
267
- ```text
268
- abstractionToConcreteRewriteAudit:
269
- 1.
270
- original:
271
- issue:
272
- replacement:
273
- source:
274
- kept_or_cut:
275
- ```
276
-
277
- Common abstractions to flag:
278
-
279
- - vague nouns such as `signal`, `market`, `attention`, `system`, `quality`,
280
- `context`, `machine`, or `workflow` when the sentence does not name the actual
281
- source, action, number, or object
282
- - broad persona labels used as lead sources
283
- - "warm" without explaining what made the source warm
284
- - "offer" without explaining why the recipient would believe or want it
285
- - "learning" without naming what metric changes the next decision
286
-
287
- Do not make language concrete by inventing facts. If the concrete replacement
288
- requires missing proof, ask the user or save as `needs_revision`.
289
-
290
- ## Template Adaptation Audit
291
-
292
- Before a draft can be `ready`, validate that source posts were converted into
293
- templates rather than copied.
294
-
295
- Record:
296
-
297
- - `selectedSourceTemplate`: source, template name, and why it fits
298
- - `positioningSequenceBorrowed`: category sequence being adapted
299
- - `viralPostOutlineBorrowed`: beat sequence being adapted
300
- - `lineShapesBorrowed`: reusable line shapes, not copied wording
301
- - `userStoryInputsUsed`: source-backed user facts filling the template
302
- - `userProofInputsUsed`: source-backed user proof filling the template
303
- - `forbiddenBorrowingAvoided`: source proof, jokes, personal context, status,
304
- phrases, or examples not used
305
- - `hookToBodyRepayment`: whether the body answers the hook's curiosity debt
306
- - `bodyExpressionCandidatesReviewed`: which variants were tested and what won
307
- - `copyingRisk`: pass | needs_revision | blocked
308
-
309
- Save as `needs_revision` when the draft copies outside wording, borrows outside
310
- proof, keeps a source template's status without equivalent user authority, or
311
- uses a hook whose promised body payoff is not delivered.
312
-
313
- ## Audience Tension Audit
128
+ ## Market Belief Audit
314
129
 
315
130
  Before a draft can be `ready`, validate that it is not merely an internally
316
- coherent idea. It must be anchored to the saved research's audience tension
317
- snapshot.
131
+ coherent idea. It must be anchored to the saved research's market belief map.
318
132
 
319
133
  Record:
320
134
 
321
135
  - `resonatingIdea`: the current-space idea this draft enters
322
- - `visibleAudienceTension`: the contradiction, tradeoff, cost, or unfinished
323
- question readers are reacting to
136
+ - `implicitBelief`: the belief the audience likely already holds
324
137
  - `audienceWant`: what the audience wants permission, leverage, proof, or a new
325
138
  category for
326
- - `audienceObjectionOrFear`: what skepticism, frustration, or risk gives the post tension
327
- - `selectedAngle`: the claim the post is testing
139
+ - `audienceResentmentOrFear`: what frustration or risk gives the post tension
140
+ - `selectedControversy`: the claim the post is testing
328
141
  - `credibleWhyUs`: why the user can credibly say this from raw idea, memory,
329
142
  story, proof, or product mechanism
330
143
  - `engagementReason`: why someone would react, comment, repost, or argue
331
144
  - `unsupportedHypeRemoved`: unsupported claims removed during finalizer
332
145
 
333
- If `selectedAngle` is missing, if the audience tension is only a generic label
334
- like "founders want growth," or if `credibleWhyUs` depends on borrowed proof
335
- from another creator, save as `needs_revision`.
336
-
337
- ## Thought Leader Inspiration Audit
338
-
339
- When the user supplied thought leaders or creators, validate that inspiration
340
- was used as structural adaptation, not persona cloning.
341
-
342
- Record:
343
-
344
- - `thoughtLeaderList`: names and profile URLs or handles
345
- - `workerPackets`: one packet per person, or `not_available` with reason
346
- - `weightedWinners`: best posts used, with follower-adjusted signal when
347
- available
348
- - `normalizationConfidence`: high | medium | low
349
- - `inspirationAdapters`: hook/body mechanics selected for adaptation
350
- - `voiceLayer`: must be `Christian/Sellable`
351
- - `forbiddenBorrowingAvoided`: source wording, proof, jokes, personal stories,
352
- status, and persona markers avoided
353
- - `variantsConsidered`: adapted variants generated from the selected premise
354
- - `selectedVariant`: winning adapter and why
355
- - `copyingOrVoiceCloneRisk`: pass | needs_revision | blocked
356
-
357
- Save as `needs_revision` when a draft imitates a living person's voice, borrows
358
- their proof/status, copies outside wording, or lets a creator with a giant
359
- audience win without any follower-adjusted or confidence-adjusted signal.
146
+ If `selectedControversy` is missing, if the audience belief is only a generic
147
+ label like "founders want growth," or if `credibleWhyUs` depends on borrowed
148
+ proof from another creator, save as `needs_revision`.
360
149
 
361
150
  ## LinkedIn Preview Audit
362
151
 
363
- Audit the selected hook and top candidates against the rendered-preview
364
- contract. LinkedIn does not publish exact "see more" cutoff rules, and rendering
365
- varies by device, app version, font, media, line break, and whether the post has
366
- media attached. This audit is a mobile-first safety gate, not a claim about an
367
- official LinkedIn limit.
368
-
369
- Treat character counts as diagnostics only. The gate is the literal rendered
370
- mobile and desktop visible block from `references/linkedin-preview-rendering.md`
371
- or an authenticated LinkedIn screenshot.
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.
372
156
 
373
157
  Use:
374
158
 
375
- - `pass`: the rendered mobile preview shows the pain, proof, or curiosity by the
376
- end of the first 3 rendered lines, and either the core point is visible or a
377
- specific intentional open loop is visible with immediate body payoff planned
378
- - `warn`: the rendered mobile preview creates useful curiosity but wrapping,
379
- blank-line rhythm, media risk, or one missing context word weakens it; include
380
- a compact fallback
381
- - `fail`: the hook's real point appears after the rendered mobile review clamp,
382
- the visible open loop is vague, blank lines consume the preview before the
383
- point, or desktop fit is the only reason it looks good
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.
384
162
 
385
163
  Desktop preview usually has more room. Still record desktop fit, but never let
386
164
  desktop fit compensate for a mobile `fail`.
387
165
 
388
166
  Record:
389
167
 
390
- - `renderedPreview`
391
- - `renderedPreviewBasis`: `linkedin_css_contract` |
392
- `authenticated_linkedin_screenshot` | `manual_user_source`
393
- - literal mobile visible block
394
- - literal desktop visible block
395
168
  - `charCount`
396
169
  - `charCountIncludingNewlines`
397
170
  - `firstLineChars`
@@ -411,11 +184,9 @@ Record:
411
184
  - `compactFallback` when `previewBudgetStatus` is `warn`
412
185
 
413
186
  If the hook only works after likely truncation, rewrite it. A draft cannot be
414
- `ready` with `previewBudgetStatus: fail`, with no rendered preview block, or
415
- with only a character-count claim. A draft may be `ready` with
187
+ `ready` with `previewBudgetStatus: fail`. A draft may be `ready` with
416
188
  `previewBudgetStatus: warn` only when the warning is explicit, usually because
417
- the user prefers blank-line rhythm, separators, or a deliberate open loop, and
418
- the receipt includes a compact fallback.
189
+ the user prefers blank-line rhythm, and the receipt includes a compact fallback.
419
190
 
420
191
  ## Simplifier / Concrete-Language Audit
421
192
 
@@ -488,9 +259,7 @@ If the necessary proof or story is missing, ask the user or return blocked/retry
488
259
 
489
260
  Use:
490
261
 
491
- - `ready` only when proof, voice, anti-AI, concrete-language, pre-draft
492
- structure, mobile-scanability, hook-to-body repayment, and
493
- template-adaptation gates pass
262
+ - `ready` only when proof, voice, anti-AI, and concrete-language gates pass
494
263
  - `needs_revision` when a draft exists but a gate failed
495
264
  - `blocked` when required context is missing
496
265
  - `retry-needed` when a tool/package/search failure blocked the pipeline