@sellable/mcp 0.1.265 → 0.1.267
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 +1 -1
- package/skills/create-post/SKILL.md +84 -7
- package/skills/create-post/references/hook-research-playbook.md +17 -3
- package/skills/create-post/references/post-file-contract.md +5 -0
- package/skills/create-post/references/post-validation.md +13 -0
- package/skills/create-post/references/premise-development.md +36 -0
package/package.json
CHANGED
|
@@ -34,6 +34,11 @@ If foundation memory is missing or too thin, ask the user to run
|
|
|
34
34
|
`$sellable:foundation` or answer the missing foundation questions before
|
|
35
35
|
drafting. If content-memory is missing, continue from the raw source and propose
|
|
36
36
|
the smallest content-memory write-back.
|
|
37
|
+
|
|
38
|
+
Captured ideas must be matched against transcript-derived content memory before
|
|
39
|
+
premise development. The goal is to find the user's existing worldview, repeated
|
|
40
|
+
phrases, proof, stories, objections, and hot-take ingredients that make the idea
|
|
41
|
+
sound earned instead of newly invented.
|
|
37
42
|
</command_model>
|
|
38
43
|
|
|
39
44
|
<role>
|
|
@@ -156,6 +161,23 @@ post seeds. If the cluster is weak, ask workshop questions before drafting. If
|
|
|
156
161
|
the seed is mature, use it as the source packet for premise development and
|
|
157
162
|
external LinkedIn research.
|
|
158
163
|
|
|
164
|
+
For every new captured idea, create a `Transcript Worldview Packet` before hook
|
|
165
|
+
research:
|
|
166
|
+
|
|
167
|
+
- relevant transcript index rows or content-memory clusters
|
|
168
|
+
- matched story cards, proof cards, question cards, and post seeds
|
|
169
|
+
- repeated user phrasing worth preserving
|
|
170
|
+
- worldview ingredients: what the user seems to believe from lived experience
|
|
171
|
+
- hot-take ingredients: where the user disagrees with common advice
|
|
172
|
+
- proof/story available
|
|
173
|
+
- proof/story missing
|
|
174
|
+
- private or sensitive material to avoid
|
|
175
|
+
|
|
176
|
+
If no relevant transcript/content-memory material exists, say
|
|
177
|
+
`transcript_memory_match: weak` and continue only from the raw source and core
|
|
178
|
+
memory. Do not fabricate worldview. Ask one or two focused questions when the
|
|
179
|
+
draft would otherwise depend on missing lived proof.
|
|
180
|
+
|
|
159
181
|
`writing/posts.md` is a post-writing config file, not a draft library. Treat its structure this way:
|
|
160
182
|
|
|
161
183
|
- Top scratch or `## Draft Rule Candidates` sections are candidate taste notes only.
|
|
@@ -223,12 +245,15 @@ Use when the user gives a new rough idea, voice memo transcript, freestyle note,
|
|
|
223
245
|
|
|
224
246
|
1. Call `mcp__sellable__capture_post_idea` before transformation.
|
|
225
247
|
2. Preserve the raw source exactly.
|
|
226
|
-
3.
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
248
|
+
3. Run the `Transcript Worldview Packet` match against transcript/content-memory
|
|
249
|
+
clusters before research or hook generation.
|
|
250
|
+
4. Distill only what the user actually said plus source-backed transcript
|
|
251
|
+
worldview/proof ingredients. Label anything inferred from transcripts.
|
|
252
|
+
5. Run hook research.
|
|
253
|
+
6. Develop and select a premise card.
|
|
254
|
+
7. Save hook research.
|
|
255
|
+
8. Draft and validate.
|
|
256
|
+
9. Save the draft.
|
|
232
257
|
|
|
233
258
|
## Ad Hoc Mode
|
|
234
259
|
|
|
@@ -293,6 +318,8 @@ The approved pack is capped at 20 gold standards. If adding new approved example
|
|
|
293
318
|
|
|
294
319
|
Use when the user names creators, thought leaders, profile URLs, or says to
|
|
295
320
|
write variants using a specific person's recent best content as inspiration.
|
|
321
|
+
Also use this mode when the user says "use my configured thought leaders",
|
|
322
|
+
"use my influencers", "use the tracked people list", or similar.
|
|
296
323
|
|
|
297
324
|
This mode does not clone the person's voice. It extracts public, reusable
|
|
298
325
|
mechanics from their recent posts and adapts those mechanics into the user's
|
|
@@ -301,12 +328,18 @@ voice, proof, story, and product truth.
|
|
|
301
328
|
Default workflow:
|
|
302
329
|
|
|
303
330
|
1. Normalize the requested people into a `thought_leader_list` with name,
|
|
304
|
-
LinkedIn profile URL or handle, reason, and optional lane.
|
|
331
|
+
LinkedIn profile URL or handle, reason, and optional lane. If the user asks
|
|
332
|
+
for the configured list, load it from memory-backed
|
|
333
|
+
`discovery/influencers.md` and include only rows where
|
|
334
|
+
`Include in Discovery` is not `false`. Treat the `Reason` column as the
|
|
335
|
+
person's lane/adaptation brief.
|
|
305
336
|
2. If the user gives only a name and the profile cannot be resolved from
|
|
306
337
|
tracked people or memory, ask for the profile URL or handle before running
|
|
307
338
|
person-specific research.
|
|
308
339
|
3. When the host supports background agents, launch one bounded
|
|
309
340
|
`thought-leader-worker` per person. If not, process each person sequentially.
|
|
341
|
+
Each configured person must receive full person-specific research; do not
|
|
342
|
+
collapse the configured list into generic space research.
|
|
310
343
|
4. Each worker fetches that person's recent posts with
|
|
311
344
|
`mcp__sellable__fetch_linkedin_posts`, and fetches profile/follower context
|
|
312
345
|
with `mcp__sellable__fetch_linkedin_profile` when available.
|
|
@@ -381,6 +414,12 @@ Visible Flow Trace
|
|
|
381
414
|
- raw source preserved:
|
|
382
415
|
- distilled brief:
|
|
383
416
|
- claims added or avoided:
|
|
417
|
+
- transcript/content-memory matches:
|
|
418
|
+
- worldview ingredients from transcripts:
|
|
419
|
+
- hot-take ingredients from transcripts:
|
|
420
|
+
- proof/story pulled:
|
|
421
|
+
- proof/story gaps:
|
|
422
|
+
- private/sensitive exclusions:
|
|
384
423
|
|
|
385
424
|
2. Research Search Log
|
|
386
425
|
- search window:
|
|
@@ -539,6 +578,8 @@ Quality-break rules:
|
|
|
539
578
|
3. Load the gold-standard post pack if present.
|
|
540
579
|
4. Verify auth/workspace if hook research will use Sellable search.
|
|
541
580
|
5. Capture or load the source idea.
|
|
581
|
+
6. Run a transcript/content-memory match for the source idea before hook
|
|
582
|
+
research.
|
|
542
583
|
|
|
543
584
|
If local idea capture succeeds but auth/workspace is missing, keep the idea and return a typed blocked state for draft readiness:
|
|
544
585
|
|
|
@@ -548,6 +589,35 @@ If local idea capture succeeds but auth/workspace is missing, keep the idea and
|
|
|
548
589
|
- `zero_useful_hook_results`
|
|
549
590
|
- `full_text_unavailable`
|
|
550
591
|
|
|
592
|
+
## Step 0.5: Transcript Worldview Packet
|
|
593
|
+
|
|
594
|
+
After raw capture and before hook research, match the source idea against
|
|
595
|
+
`core/transcripts/INDEX.md`, `core/content-memory/INDEX.md`, relevant cluster
|
|
596
|
+
files, story/proof/question cards, post seeds, and approved core references
|
|
597
|
+
returned by `mcp__sellable__get_engage_memory`.
|
|
598
|
+
|
|
599
|
+
The packet must answer:
|
|
600
|
+
|
|
601
|
+
```text
|
|
602
|
+
Transcript Worldview Packet
|
|
603
|
+
- source idea id:
|
|
604
|
+
- matched clusters:
|
|
605
|
+
- matched transcript references:
|
|
606
|
+
- matched cards/seeds:
|
|
607
|
+
- repeated user phrasing:
|
|
608
|
+
- worldview ingredients:
|
|
609
|
+
- hot-take ingredients:
|
|
610
|
+
- proof/story available:
|
|
611
|
+
- proof/story missing:
|
|
612
|
+
- private/sensitive exclusions:
|
|
613
|
+
- confidence: strong | medium | weak
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
Use this packet to shape premise cards, audience tension, hooks, and body
|
|
617
|
+
expression. Do not treat it as permission to add unsupported claims. If the
|
|
618
|
+
packet is weak, keep the post closer to the raw idea and ask for the missing
|
|
619
|
+
proof/story before marking a draft ready.
|
|
620
|
+
|
|
551
621
|
## Step 1: Hook Research
|
|
552
622
|
|
|
553
623
|
Use `references/hook-research-playbook.md`.
|
|
@@ -566,6 +636,9 @@ The research worker must return a compact packet only:
|
|
|
566
636
|
- audience tension snapshot: resonating ideas, visible tensions, audience wants,
|
|
567
637
|
objections, fears, and credible angles
|
|
568
638
|
- premise inputs: real scenes, observed tensions, reader value openings, and proof gaps
|
|
639
|
+
- transcript worldview packet: matched clusters, transcript references,
|
|
640
|
+
repeated phrasing, worldview ingredients, hot-take ingredients, proof/story
|
|
641
|
+
available, proof/story missing
|
|
569
642
|
- exact phrase patterns and sentence shapes
|
|
570
643
|
- post positioning breakdowns that label each meaningful line or phrase by
|
|
571
644
|
narrative job and category
|
|
@@ -619,6 +692,7 @@ Record provenance:
|
|
|
619
692
|
- lead-magnet or engagement-bait penalties
|
|
620
693
|
- story mechanism when relevant
|
|
621
694
|
- full-text match status
|
|
695
|
+
- transcript/content-memory match status and worldview packet
|
|
622
696
|
- source hook preview measurements and whether they came from full text or a search preview
|
|
623
697
|
- selected hook patterns
|
|
624
698
|
- audience tension snapshot and selected angle
|
|
@@ -651,6 +725,7 @@ The `Research Learning Report` must include:
|
|
|
651
725
|
```text
|
|
652
726
|
Research status:
|
|
653
727
|
- idea/topic:
|
|
728
|
+
- transcript worldview packet:
|
|
654
729
|
- research artifact:
|
|
655
730
|
- search window:
|
|
656
731
|
- keywords:
|
|
@@ -993,6 +1068,7 @@ mechanics as inspiration, in Christian/Sellable voice."
|
|
|
993
1068
|
Draft from:
|
|
994
1069
|
|
|
995
1070
|
- exact raw idea
|
|
1071
|
+
- transcript worldview packet
|
|
996
1072
|
- selected premise card
|
|
997
1073
|
- selected hook
|
|
998
1074
|
- approved or latest `Pre-Draft Narrative Outline`
|
|
@@ -1019,6 +1095,7 @@ Every saved draft needs a validation receipt with:
|
|
|
1019
1095
|
|
|
1020
1096
|
- source idea ID
|
|
1021
1097
|
- hook research ID
|
|
1098
|
+
- transcript worldview packet
|
|
1022
1099
|
- iteration metadata: version, priorDraftId, changeIntent, what changed,
|
|
1023
1100
|
what improved, what got worse, score, and verdict
|
|
1024
1101
|
- selected premise card
|
|
@@ -232,6 +232,8 @@ Record:
|
|
|
232
232
|
|
|
233
233
|
- real story or scene candidates from the raw idea, memory, transcript, or
|
|
234
234
|
current-session context
|
|
235
|
+
- transcript worldview packet matches: clusters, transcript references, cards,
|
|
236
|
+
repeated phrasing, worldview ingredients, and hot-take ingredients
|
|
235
237
|
- observed pattern candidates when no first-person story is available
|
|
236
238
|
- visible tension: the uncomfortable gap, cost, contradiction, or tradeoff
|
|
237
239
|
- common belief: what the audience probably believes right now
|
|
@@ -239,6 +241,7 @@ Record:
|
|
|
239
241
|
- reader value: what the reader learns, sees differently, or can do
|
|
240
242
|
- proof available: what can be safely used
|
|
241
243
|
- proof missing: what cannot be claimed without user confirmation
|
|
244
|
+
- private/sensitive transcript material to exclude
|
|
242
245
|
|
|
243
246
|
If this section is weak, say so. Do not let the hook lab proceed as if a clever
|
|
244
247
|
opening can create value that the premise does not have.
|
|
@@ -696,8 +699,12 @@ best source" tension. Do not borrow the source's dinner/community proof.
|
|
|
696
699
|
## Thought Leader Inspiration Workers
|
|
697
700
|
|
|
698
701
|
When the user supplies a list of thought leaders, creators, profile URLs, or
|
|
699
|
-
handles, run a separate inspiration analysis per person.
|
|
700
|
-
|
|
702
|
+
handles, run a separate inspiration analysis per person. Also do this when the
|
|
703
|
+
user asks for configured thought leaders, influencers, or tracked people. The
|
|
704
|
+
configured source is memory-backed `discovery/influencers.md`; include only
|
|
705
|
+
rows where `Include in Discovery` is not `false`, and treat each row's `Reason`
|
|
706
|
+
as that person's lane/adaptation brief. This is different from general search:
|
|
707
|
+
the source set is the person's own recent content.
|
|
701
708
|
|
|
702
709
|
Use one bounded background worker per person when the host supports background
|
|
703
710
|
agents. If not, process the list sequentially. Each worker must keep its output
|
|
@@ -706,7 +713,8 @@ compact and must not return a full corpus dump.
|
|
|
706
713
|
Worker steps:
|
|
707
714
|
|
|
708
715
|
1. Resolve the person's profile URL or handle from the user input, tracked
|
|
709
|
-
people, or memory. If
|
|
716
|
+
people, or memory. If the user asked for the configured list, resolve from
|
|
717
|
+
`discovery/influencers.md` first. If unresolved, ask for the URL/handle.
|
|
710
718
|
2. Fetch recent posts with `mcp__sellable__fetch_linkedin_posts`.
|
|
711
719
|
3. Fetch profile/follower context with `mcp__sellable__fetch_linkedin_profile`
|
|
712
720
|
when available.
|
|
@@ -728,6 +736,12 @@ Worker steps:
|
|
|
728
736
|
8. Create one adapted direction for the user's selected premise in
|
|
729
737
|
Christian/Sellable voice.
|
|
730
738
|
|
|
739
|
+
Each configured person must receive a full person-specific packet. Do not
|
|
740
|
+
summarize the group as a single "GTM influencers" research pass. The later
|
|
741
|
+
drafting stage should be able to compare how Alex, Zayd, Tas, Anthony, or any
|
|
742
|
+
other configured person would structurally pressure-test the same Christian
|
|
743
|
+
idea without copying their voice, proof, jokes, or persona.
|
|
744
|
+
|
|
731
745
|
Worker output:
|
|
732
746
|
|
|
733
747
|
```text
|
|
@@ -50,10 +50,13 @@ 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
|
|
53
55
|
|
|
54
56
|
Hook research files must preserve:
|
|
55
57
|
|
|
56
58
|
- source idea ID
|
|
59
|
+
- transcript/content-memory match status and transcript worldview packet
|
|
57
60
|
- keywords searched
|
|
58
61
|
- filters used
|
|
59
62
|
- source post URLs
|
|
@@ -86,6 +89,8 @@ Draft files must preserve:
|
|
|
86
89
|
|
|
87
90
|
- source idea ID
|
|
88
91
|
- hook research ID
|
|
92
|
+
- transcript worldview packet used to build the premise, worldview, and hot
|
|
93
|
+
take
|
|
89
94
|
- versioned draft ID, normally ending in `_v1`, `_v2`, `_v3`, etc.
|
|
90
95
|
- iteration metadata when there is a prior or baseline draft:
|
|
91
96
|
- `version`
|
|
@@ -6,6 +6,7 @@ Every saved draft needs a validation receipt. A draft without this receipt is no
|
|
|
6
6
|
|
|
7
7
|
- `sourceIdeaId`
|
|
8
8
|
- `hookResearchId`
|
|
9
|
+
- `transcriptWorldviewPacket`
|
|
9
10
|
- `iteration`
|
|
10
11
|
- `selectedPremiseCard`
|
|
11
12
|
- `candidateHooksConsidered`
|
|
@@ -25,6 +26,8 @@ Every saved draft needs a validation receipt. A draft without this receipt is no
|
|
|
25
26
|
step-by-step mode
|
|
26
27
|
- `proofClaimsUsed`
|
|
27
28
|
- `proofClaimSources`
|
|
29
|
+
- `worldviewSource`
|
|
30
|
+
- `hotTakeSource`
|
|
28
31
|
- `storyFilesConsulted`
|
|
29
32
|
- `goldStandardsConsulted`
|
|
30
33
|
- `voiceRulesApplied`
|
|
@@ -172,6 +175,12 @@ Record:
|
|
|
172
175
|
- `readerValue`: what the reader learns, sees differently, or can do
|
|
173
176
|
- `proofAvailable`: source-backed proof used
|
|
174
177
|
- `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
|
|
175
184
|
- `sourceMessageOutline`: source post decomposition in original order, with
|
|
176
185
|
paragraph/line/phrase branches, high-level goal of each branch, reader effect,
|
|
177
186
|
reusable move, and adaptation guard
|
|
@@ -192,6 +201,10 @@ If the draft has no specific scene or observed pattern, no visible tension, or
|
|
|
192
201
|
no reader value beyond "this is interesting," save as `needs_revision`. Do not
|
|
193
202
|
mark it `ready` because the hook passes preview limits.
|
|
194
203
|
|
|
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
|
+
|
|
195
208
|
## Pre-Draft Narrative Outline Audit
|
|
196
209
|
|
|
197
210
|
Before a draft can be `ready`, validate that the narrative outline was locked
|
|
@@ -61,10 +61,14 @@ Before writing premise cards, search the available source material:
|
|
|
61
61
|
|
|
62
62
|
- raw idea text
|
|
63
63
|
- voice memo or transcript if provided
|
|
64
|
+
- `Transcript Worldview Packet` from create-post capture
|
|
64
65
|
- `core/story-bank.md`
|
|
65
66
|
- `core/answer-bank.md`
|
|
66
67
|
- `core/proof-ledger.md`
|
|
67
68
|
- `core/wins-ledger.md`
|
|
69
|
+
- `core/transcripts/INDEX.md`
|
|
70
|
+
- `core/content-memory/INDEX.md`, relevant clusters, cards, questions, and
|
|
71
|
+
post seeds
|
|
68
72
|
- approved references and gold standards
|
|
69
73
|
- current-session user corrections or rejections
|
|
70
74
|
|
|
@@ -76,11 +80,37 @@ Look for:
|
|
|
76
80
|
- a before/after: what changed in the user's belief
|
|
77
81
|
- a specific object: Slack note, customer call, campaign table, reply, list,
|
|
78
82
|
demo, failed draft, stale idea, messy workflow
|
|
83
|
+
- repeated worldview: the user's recurring operating belief behind the idea
|
|
84
|
+
- hot-take ingredient: the specific advice, default behavior, or market cliche
|
|
85
|
+
the user is pushing against
|
|
79
86
|
|
|
80
87
|
If no real story is present, use an observed pattern only if it is traceable to
|
|
81
88
|
the raw source or memory. Mark the gap in the premise card. Do not fabricate a
|
|
82
89
|
customer, call, outcome, date, metric, or private scene.
|
|
83
90
|
|
|
91
|
+
## Worldview And Hot-Take Extraction
|
|
92
|
+
|
|
93
|
+
Before scoring premise cards, extract the user's source-backed worldview from
|
|
94
|
+
the transcript packet:
|
|
95
|
+
|
|
96
|
+
```text
|
|
97
|
+
Worldview extraction:
|
|
98
|
+
- worldview claim:
|
|
99
|
+
- source transcript/cluster/card:
|
|
100
|
+
- repeated phrase or language pattern:
|
|
101
|
+
- lived proof behind it:
|
|
102
|
+
- common advice it challenges:
|
|
103
|
+
- hot take version:
|
|
104
|
+
- public-safe version:
|
|
105
|
+
- private/sensitive material to avoid:
|
|
106
|
+
- confidence: strong | medium | weak
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
A good hot take is not just a contrarian sentence. It must trace to something
|
|
110
|
+
the user has said, seen, shipped, sold, or learned repeatedly. If the hot take
|
|
111
|
+
only exists because an outside creator framed it well, mark it as borrowed and
|
|
112
|
+
do not use it as the user's premise.
|
|
113
|
+
|
|
84
114
|
## Premise Cards
|
|
85
115
|
|
|
86
116
|
Generate 3-5 premise cards before hooks. Each card must use this shape:
|
|
@@ -121,6 +151,12 @@ proof available:
|
|
|
121
151
|
proof missing:
|
|
122
152
|
<claims that cannot be made yet>
|
|
123
153
|
|
|
154
|
+
worldview source:
|
|
155
|
+
<transcript/cluster/card/source-backed belief used>
|
|
156
|
+
|
|
157
|
+
hot take:
|
|
158
|
+
<public-safe sharp version of the user's source-backed disagreement>
|
|
159
|
+
|
|
124
160
|
best frame:
|
|
125
161
|
story | contrarian take | teardown | founder confession | future thesis | lesson
|
|
126
162
|
|