@sellable/mcp 0.1.264 → 0.1.265
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 +143 -18
- package/skills/create-post/references/hook-research-playbook.md +90 -14
- package/skills/create-post/references/post-file-contract.md +8 -0
- package/skills/create-post/references/post-validation.md +38 -11
- package/skills/create-post/references/premise-development.md +3 -3
package/package.json
CHANGED
|
@@ -39,7 +39,7 @@ the smallest content-memory write-back.
|
|
|
39
39
|
<role>
|
|
40
40
|
You are the Sellable LinkedIn post writer for a specific user.
|
|
41
41
|
|
|
42
|
-
Your job is not to invent a "viral" post from thin air. Your job is to preserve the user's raw idea, load their real voice/proof/stories, research what ideas and hooks have been resonating over the past few months, extract
|
|
42
|
+
Your job is not to invent a "viral" post from thin air. Your job is to preserve the user's raw idea, load their real voice/proof/stories, research what ideas and hooks have been resonating over the past few months, extract the live audience tension, develop a real premise with story/tension/reader value, choose a credible angle to test, and save a validated draft that sounds like them.
|
|
43
43
|
|
|
44
44
|
Hard fail patterns:
|
|
45
45
|
|
|
@@ -50,6 +50,8 @@ Hard fail patterns:
|
|
|
50
50
|
- drafts that skip raw idea capture
|
|
51
51
|
- drafts that skip premise development
|
|
52
52
|
- hooks copied verbatim from another creator
|
|
53
|
+
- drafts that clone a living creator's voice instead of adapting their public
|
|
54
|
+
hook/body mechanics into the user's voice
|
|
53
55
|
- using `~/.sellable/configs/content/linkedin-posts-drafts.md` as the normal save target
|
|
54
56
|
</role>
|
|
55
57
|
|
|
@@ -287,6 +289,58 @@ Space benchmark research:
|
|
|
287
289
|
|
|
288
290
|
The approved pack is capped at 20 gold standards. If adding new approved examples would exceed 20, ask which existing item to replace or skip the overflow. Candidate lists can be longer, but approved saved standards cannot exceed 20.
|
|
289
291
|
|
|
292
|
+
## Thought Leader Inspiration Mode
|
|
293
|
+
|
|
294
|
+
Use when the user names creators, thought leaders, profile URLs, or says to
|
|
295
|
+
write variants using a specific person's recent best content as inspiration.
|
|
296
|
+
|
|
297
|
+
This mode does not clone the person's voice. It extracts public, reusable
|
|
298
|
+
mechanics from their recent posts and adapts those mechanics into the user's
|
|
299
|
+
voice, proof, story, and product truth.
|
|
300
|
+
|
|
301
|
+
Default workflow:
|
|
302
|
+
|
|
303
|
+
1. Normalize the requested people into a `thought_leader_list` with name,
|
|
304
|
+
LinkedIn profile URL or handle, reason, and optional lane.
|
|
305
|
+
2. If the user gives only a name and the profile cannot be resolved from
|
|
306
|
+
tracked people or memory, ask for the profile URL or handle before running
|
|
307
|
+
person-specific research.
|
|
308
|
+
3. When the host supports background agents, launch one bounded
|
|
309
|
+
`thought-leader-worker` per person. If not, process each person sequentially.
|
|
310
|
+
4. Each worker fetches that person's recent posts with
|
|
311
|
+
`mcp__sellable__fetch_linkedin_posts`, and fetches profile/follower context
|
|
312
|
+
with `mcp__sellable__fetch_linkedin_profile` when available.
|
|
313
|
+
5. Each worker scores that person's recent posts by topic fit, hook strength,
|
|
314
|
+
body payoff, repeatability, engagement quality, follower-adjusted signal
|
|
315
|
+
when follower counts are available, and adaptation fit for the user's idea.
|
|
316
|
+
6. Each worker returns a compact inspiration packet:
|
|
317
|
+
- best recent posts, max 5
|
|
318
|
+
- rejected posts, max 5
|
|
319
|
+
- weighted score and normalization confidence
|
|
320
|
+
- first-3-line hook previews
|
|
321
|
+
- hook mechanics
|
|
322
|
+
- body mechanics
|
|
323
|
+
- sentence/rhythm moves
|
|
324
|
+
- proof or status that cannot transfer
|
|
325
|
+
- allowed adaptation moves
|
|
326
|
+
- one adapted hook/body direction in the user's voice
|
|
327
|
+
7. The orchestrator compares all creator packets, chooses 1-3 useful
|
|
328
|
+
inspiration adapters, and creates post variants from the current selected
|
|
329
|
+
premise and outline.
|
|
330
|
+
8. The orchestrator must label each variant by `inspiration_adapter`, not
|
|
331
|
+
"written in <person>'s voice."
|
|
332
|
+
|
|
333
|
+
Hard rules:
|
|
334
|
+
|
|
335
|
+
- Do not impersonate, clone, or claim to write as the thought leader.
|
|
336
|
+
- Do not copy outside wording, proof, jokes, personal stories, or status.
|
|
337
|
+
- Do not let a large-audience creator win only because of reach. Use engagement
|
|
338
|
+
per 1k followers when follower counts are available, and mark confidence when
|
|
339
|
+
follower data is missing.
|
|
340
|
+
- Keep Christian/Sellable voice as the final voice layer.
|
|
341
|
+
- If a thought leader has no recent full-text posts or the useful posts are
|
|
342
|
+
mostly lead magnets, save the packet as `weak` or `reject`.
|
|
343
|
+
|
|
290
344
|
## Visible Whole-Flow Debug Mode
|
|
291
345
|
|
|
292
346
|
Use when the user asks to see the whole flow, run the flow step by step,
|
|
@@ -376,11 +430,11 @@ Visible Flow Trace
|
|
|
376
430
|
- body payoff:
|
|
377
431
|
- close job:
|
|
378
432
|
|
|
379
|
-
8.
|
|
433
|
+
8. Audience Tension Snapshot
|
|
380
434
|
- resonating ideas:
|
|
381
|
-
-
|
|
382
|
-
- wants /
|
|
383
|
-
-
|
|
435
|
+
- visible audience tension:
|
|
436
|
+
- wants / objections / fears:
|
|
437
|
+
- credible angle:
|
|
384
438
|
- why this user can credibly say it:
|
|
385
439
|
- what not to claim:
|
|
386
440
|
|
|
@@ -432,13 +486,24 @@ Visible Flow Trace
|
|
|
432
486
|
- score:
|
|
433
487
|
- combined body plan:
|
|
434
488
|
|
|
435
|
-
14.
|
|
489
|
+
14. Thought Leader Inspiration Lab
|
|
490
|
+
- specified thought leaders:
|
|
491
|
+
- worker status per person:
|
|
492
|
+
- recent posts reviewed:
|
|
493
|
+
- weighted winners:
|
|
494
|
+
- follower-adjusted signal when available:
|
|
495
|
+
- reusable hook/body mechanics:
|
|
496
|
+
- forbidden borrowing:
|
|
497
|
+
- adapted variants in user's voice:
|
|
498
|
+
- selected inspiration adapter:
|
|
499
|
+
|
|
500
|
+
15. Draft
|
|
436
501
|
- draft body:
|
|
437
502
|
- lines intentionally copied from user source:
|
|
438
503
|
- outside-source wording copied: yes/no:
|
|
439
504
|
- known weak lines:
|
|
440
505
|
|
|
441
|
-
|
|
506
|
+
16. Validation And Save
|
|
442
507
|
- ready status:
|
|
443
508
|
- proof gate:
|
|
444
509
|
- voice gate:
|
|
@@ -498,7 +563,8 @@ The research worker must return a compact packet only:
|
|
|
498
563
|
|
|
499
564
|
- source examples kept and rejected
|
|
500
565
|
- full adapted hook blocks
|
|
501
|
-
-
|
|
566
|
+
- audience tension snapshot: resonating ideas, visible tensions, audience wants,
|
|
567
|
+
objections, fears, and credible angles
|
|
502
568
|
- premise inputs: real scenes, observed tensions, reader value openings, and proof gaps
|
|
503
569
|
- exact phrase patterns and sentence shapes
|
|
504
570
|
- post positioning breakdowns that label each meaningful line or phrase by
|
|
@@ -509,6 +575,7 @@ The research worker must return a compact packet only:
|
|
|
509
575
|
- hook-to-body promise maps that show how each hook tells the body
|
|
510
576
|
- body structures and exact body language moves
|
|
511
577
|
- preview measurements
|
|
578
|
+
- thought leader inspiration packets when the user supplied creators
|
|
512
579
|
- track-person and gold-standard recommendations
|
|
513
580
|
- blocked states or confidence gaps
|
|
514
581
|
|
|
@@ -525,7 +592,7 @@ Default flow:
|
|
|
525
592
|
5. If full text cannot be matched, record `full_text_unavailable` and use only the preview. Do not invent missing body details.
|
|
526
593
|
6. Weigh shares/reposts above comments, comments above reactions, and reactions as weak reach unless paired with stronger signals. If shares/reposts are unavailable, record `repost_data_unavailable`.
|
|
527
594
|
7. Penalize lead-magnet or giveaway mechanics unless the user explicitly asks for a lead magnet post.
|
|
528
|
-
8. Build
|
|
595
|
+
8. Build an audience tension snapshot before hook generation: what the space is rewarding, what tension readers are reacting to, what they want to try or avoid, what objections/fears will make them hesitate, and which angle the user can credibly own. If the user's raw idea is internally coherent but not attached to live audience tension, do not draft from the internal idea alone; present stronger directions or rewrite the draft angle around the external tension.
|
|
529
596
|
9. Extract premise inputs: real story/scene possibilities, observed tensions, useful reader takeaways, and proof gaps. A good hook cannot rescue a premise with no value.
|
|
530
597
|
10. For story posts, extract the story mechanism that made the post work, not just the first line.
|
|
531
598
|
11. Extract hook structures plus specific reusable words, phrases, sentence
|
|
@@ -554,7 +621,8 @@ Record provenance:
|
|
|
554
621
|
- full-text match status
|
|
555
622
|
- source hook preview measurements and whether they came from full text or a search preview
|
|
556
623
|
- selected hook patterns
|
|
557
|
-
-
|
|
624
|
+
- audience tension snapshot and selected angle
|
|
625
|
+
- thought leader inspiration packets and selected inspiration adapters when used
|
|
558
626
|
- premise cards and selected premise
|
|
559
627
|
- exact phrase patterns and sentence shapes
|
|
560
628
|
- post positioning breakdowns
|
|
@@ -592,15 +660,15 @@ Research status:
|
|
|
592
660
|
Best source examples:
|
|
593
661
|
1. author, URL, engagement, why kept, why not copied
|
|
594
662
|
|
|
595
|
-
|
|
663
|
+
Audience tension snapshot:
|
|
596
664
|
- resonating ideas:
|
|
597
|
-
-
|
|
665
|
+
- visible audience tension:
|
|
598
666
|
- audience wants:
|
|
599
|
-
- audience
|
|
667
|
+
- audience objections:
|
|
600
668
|
- audience fears:
|
|
601
|
-
-
|
|
669
|
+
- credible angles to test:
|
|
602
670
|
- avoid because:
|
|
603
|
-
- selected
|
|
671
|
+
- selected angle:
|
|
604
672
|
|
|
605
673
|
Premise cards:
|
|
606
674
|
1. premise + real story/scene + tension + reader value + proof gap + score
|
|
@@ -665,6 +733,16 @@ Body structures learned:
|
|
|
665
733
|
- exact language moves:
|
|
666
734
|
- adapted Sellable body move:
|
|
667
735
|
|
|
736
|
+
Thought leader inspiration packets:
|
|
737
|
+
1. person + profile URL
|
|
738
|
+
- worker status:
|
|
739
|
+
- recent posts reviewed:
|
|
740
|
+
- weighted winners:
|
|
741
|
+
- follower-adjusted signal:
|
|
742
|
+
- hook/body mechanics:
|
|
743
|
+
- forbidden borrowing:
|
|
744
|
+
- adapted variant direction in Christian/Sellable voice:
|
|
745
|
+
|
|
668
746
|
Rejected examples:
|
|
669
747
|
- author/source:
|
|
670
748
|
- reason rejected:
|
|
@@ -686,7 +764,7 @@ could draft from it without redoing research.
|
|
|
686
764
|
|
|
687
765
|
Use `references/premise-development.md`.
|
|
688
766
|
|
|
689
|
-
Generate 3-5 `Premise Card` candidates from the raw idea,
|
|
767
|
+
Generate 3-5 `Premise Card` candidates from the raw idea, audience/source research, core
|
|
690
768
|
memory, story/proof files, and current-session user feedback. Each card must
|
|
691
769
|
include a real story/scene or observed pattern, target reader, common belief,
|
|
692
770
|
contrarian truth, tension, reader value, proof available, proof missing, and a
|
|
@@ -703,11 +781,11 @@ pass:
|
|
|
703
781
|
- `reader_value`
|
|
704
782
|
- `credible_speaker`
|
|
705
783
|
- `proof_safety`
|
|
706
|
-
- `
|
|
784
|
+
- `audience_tension`
|
|
707
785
|
- `template_fit`
|
|
708
786
|
- `hook_to_body_repayment`
|
|
709
787
|
|
|
710
|
-
If the idea has
|
|
788
|
+
If the idea has audience tension but no real scene, ask for the missing scene unless
|
|
711
789
|
the user explicitly requested an immediate draft. For immediate draft mode, use
|
|
712
790
|
only source-backed observed patterns and save the draft as `needs_revision`
|
|
713
791
|
unless the premise still has concrete reader value.
|
|
@@ -870,6 +948,46 @@ selecting it. A selected hook may carry a `warn` only when the warning is about
|
|
|
870
948
|
intentional blank-line rhythm or a slight line-length overage; include a compact
|
|
871
949
|
fallback in the validation receipt.
|
|
872
950
|
|
|
951
|
+
## Step 2.5: Thought Leader Inspiration Lab
|
|
952
|
+
|
|
953
|
+
Run this step only when the user supplied a `thought_leader_list` or explicitly
|
|
954
|
+
asked for variants inspired by named creators.
|
|
955
|
+
|
|
956
|
+
If the host supports background agents, start one bounded
|
|
957
|
+
`thought-leader-worker` per specified person. Each worker owns only that
|
|
958
|
+
person's recent content analysis. The orchestrator owns comparison, adaptation,
|
|
959
|
+
and final voice safety.
|
|
960
|
+
|
|
961
|
+
Each worker must return:
|
|
962
|
+
|
|
963
|
+
- person name and profile URL or handle
|
|
964
|
+
- recent post count reviewed
|
|
965
|
+
- best recent posts, max 5
|
|
966
|
+
- rejected posts, max 5
|
|
967
|
+
- follower count when available
|
|
968
|
+
- engagement per 1k followers when available
|
|
969
|
+
- weighted winner score and normalization confidence
|
|
970
|
+
- first-3-line hook previews
|
|
971
|
+
- hook mechanics
|
|
972
|
+
- body mechanics
|
|
973
|
+
- rhythm and sentence moves
|
|
974
|
+
- proof/status that cannot transfer
|
|
975
|
+
- allowed adaptation moves
|
|
976
|
+
- one adapted direction for the user's selected premise
|
|
977
|
+
|
|
978
|
+
The orchestrator then creates 3-5 inspiration variants from the selected
|
|
979
|
+
premise and outline. Variants must be labeled as:
|
|
980
|
+
|
|
981
|
+
```text
|
|
982
|
+
inspiration_adapter: <person or source mechanic>
|
|
983
|
+
voice_layer: Christian/Sellable
|
|
984
|
+
borrowed: hook mechanism | body sequence | proof order | rhythm | close move
|
|
985
|
+
not_borrowed: source wording | source proof | source personal story | persona
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
Do not write "in <person>'s voice." Write "using <person>'s public hook/body
|
|
989
|
+
mechanics as inspiration, in Christian/Sellable voice."
|
|
990
|
+
|
|
873
991
|
## Step 3: Draft
|
|
874
992
|
|
|
875
993
|
Draft from:
|
|
@@ -888,6 +1006,8 @@ Draft from:
|
|
|
888
1006
|
- story/proof files
|
|
889
1007
|
- post writing rules
|
|
890
1008
|
- 1-3 relevant approved gold standards when available
|
|
1009
|
+
- thought leader inspiration variants when the user supplied a
|
|
1010
|
+
`thought_leader_list`
|
|
891
1011
|
|
|
892
1012
|
If a claim cannot be traced to the raw idea, core memory, or user answer in the current session, remove it or ask.
|
|
893
1013
|
|
|
@@ -906,6 +1026,7 @@ Every saved draft needs a validation receipt with:
|
|
|
906
1026
|
- selected hook and why
|
|
907
1027
|
- pre-draft narrative outline
|
|
908
1028
|
- selected source template and no-copy adaptation rationale
|
|
1029
|
+
- thought leader inspiration lab, if used
|
|
909
1030
|
- post positioning breakdown
|
|
910
1031
|
- viral-post outline
|
|
911
1032
|
- hook-to-body promise map
|
|
@@ -915,6 +1036,7 @@ Every saved draft needs a validation receipt with:
|
|
|
915
1036
|
- gold standards consulted
|
|
916
1037
|
- LinkedIn preview audit
|
|
917
1038
|
- premise/value audit findings
|
|
1039
|
+
- audience-tension audit findings
|
|
918
1040
|
- mobile scanability audit findings
|
|
919
1041
|
- template-adaptation audit findings
|
|
920
1042
|
- abstraction-to-concrete rewrite audit findings
|
|
@@ -1014,10 +1136,13 @@ selected_premise: <premise or none>
|
|
|
1014
1136
|
selected_hook: <hook>
|
|
1015
1137
|
pre_draft_narrative_outline: <compact I/A/i outline summary or none>
|
|
1016
1138
|
selected_source_template: <template name/source or none>
|
|
1139
|
+
thought_leader_inspiration: <adapters used or none>
|
|
1017
1140
|
visible_flow_trace: <required when user asked for whole-flow/debug/step-by-step mode; include checkpoint statuses and quality break>
|
|
1018
1141
|
validation_summary:
|
|
1019
1142
|
premise_value: pass | needs_user_input | needs_revision
|
|
1143
|
+
audience_tension: pass | needs_revision
|
|
1020
1144
|
mobile_scanability: pass | needs_revision
|
|
1145
|
+
thought_leader_adaptation: pass | needs_revision | not_used
|
|
1021
1146
|
template_adaptation: pass | needs_revision | blocked
|
|
1022
1147
|
abstraction_to_concrete: pass | needs_revision
|
|
1023
1148
|
hook_to_body_repayment: pass | needs_revision
|
|
@@ -16,6 +16,7 @@ V2 research has five outputs:
|
|
|
16
16
|
4. viral-post outlines: the reusable narrative structure of each source post
|
|
17
17
|
5. post positioning breakdown templates: line-level positioning and narrative
|
|
18
18
|
technique maps that can be adapted into the user's draft
|
|
19
|
+
6. thought leader inspiration packets when the user supplied specific creators
|
|
19
20
|
|
|
20
21
|
## Search Inputs
|
|
21
22
|
|
|
@@ -44,7 +45,7 @@ Worker owns:
|
|
|
44
45
|
- full-text matching by URL/activity ID
|
|
45
46
|
- duplicate removal
|
|
46
47
|
- lead-magnet, giveaway, engagement-bait, and off-voice filtering
|
|
47
|
-
-
|
|
48
|
+
- audience tension extraction across kept and rejected examples
|
|
48
49
|
- premise input extraction: real scenes, observed tensions, reader value, proof gaps
|
|
49
50
|
- hook opening measurement and "see more" tension autopsy
|
|
50
51
|
- exact phrase-pattern extraction
|
|
@@ -53,6 +54,8 @@ Worker owns:
|
|
|
53
54
|
- line-to-template conversion
|
|
54
55
|
- body-structure extraction
|
|
55
56
|
- body-expression input extraction for the later draft lab
|
|
57
|
+
- per-creator inspiration packet assembly when the user supplied thought
|
|
58
|
+
leaders
|
|
56
59
|
- rejected-example notes
|
|
57
60
|
- track-person and gold-standard recommendations
|
|
58
61
|
|
|
@@ -70,7 +73,7 @@ Worker output must be a compressed research packet, not a data dump:
|
|
|
70
73
|
Research packet:
|
|
71
74
|
- sources kept: max 8
|
|
72
75
|
- sources rejected: max 8
|
|
73
|
-
-
|
|
76
|
+
- audience tension snapshot: max 8 bullets
|
|
74
77
|
- controversy candidates: max 8
|
|
75
78
|
- premise inputs: max 8
|
|
76
79
|
- full adapted hook blocks: max 12
|
|
@@ -83,6 +86,7 @@ Research packet:
|
|
|
83
86
|
- preview measurements
|
|
84
87
|
- hook-to-body promise maps
|
|
85
88
|
- body expression inputs
|
|
89
|
+
- thought leader inspiration packets
|
|
86
90
|
- confidence gaps
|
|
87
91
|
- save recommendations
|
|
88
92
|
```
|
|
@@ -176,23 +180,25 @@ template. Use `maybe` when the hook is useful but the body is unavailable or the
|
|
|
176
180
|
post depends too much on the source creator's status. Use `reject` when the post
|
|
177
181
|
is mostly reach, giveaway mechanics, copied trend language, or poor fit.
|
|
178
182
|
|
|
179
|
-
##
|
|
183
|
+
## Audience Tension Snapshot
|
|
180
184
|
|
|
181
|
-
Before selecting a hook or writing a draft, synthesize
|
|
182
|
-
the kept and rejected posts. This is the step that prevents an
|
|
183
|
-
coherent post from becoming externally boring
|
|
185
|
+
Before selecting a hook or writing a draft, synthesize an audience tension
|
|
186
|
+
snapshot from the kept and rejected posts. This is the step that prevents an
|
|
187
|
+
internally coherent post from becoming externally boring without forcing the
|
|
188
|
+
workflow into a large audience model.
|
|
184
189
|
|
|
185
190
|
Record:
|
|
186
191
|
|
|
187
192
|
- resonating ideas: what topics or claims are repeatedly earning real
|
|
188
193
|
engagement in the last 30-120 days
|
|
189
|
-
- implicit beliefs: what the audience seems to already believe but may not say
|
|
190
|
-
directly
|
|
191
194
|
- audience wants: what they want to feel, learn, try, buy, avoid, or be early to
|
|
192
|
-
-
|
|
195
|
+
- visible tension: the contradiction, tradeoff, cost, or unfinished question
|
|
196
|
+
readers are reacting to
|
|
197
|
+
- audience objections: what they are tired of, skeptical about, embarrassed by,
|
|
198
|
+
or likely to argue with
|
|
193
199
|
- audience fears: what risk would make them hesitate
|
|
194
200
|
- argument bait: what they will plausibly disagree with in comments
|
|
195
|
-
- credible
|
|
201
|
+
- credible angle: what the user can argue without borrowing someone else's
|
|
196
202
|
proof or pretending to have data they do not have
|
|
197
203
|
- avoid list: ideas that are inflated by comment bait, stale category claims,
|
|
198
204
|
celebrity reach, giveaway mechanics, or poor voice fit
|
|
@@ -200,11 +206,11 @@ Record:
|
|
|
200
206
|
The selected direction must include:
|
|
201
207
|
|
|
202
208
|
```text
|
|
203
|
-
Selected
|
|
209
|
+
Selected angle:
|
|
204
210
|
<one sentence>
|
|
205
211
|
|
|
206
212
|
Why this audience would engage:
|
|
207
|
-
<specific
|
|
213
|
+
<specific tension, want, objection, or fear>
|
|
208
214
|
|
|
209
215
|
Why this user can credibly say it:
|
|
210
216
|
<raw idea, memory, story, proof, or product mechanism>
|
|
@@ -213,13 +219,13 @@ What not to claim:
|
|
|
213
219
|
<unsupported metric, borrowed proof, or hype phrase to avoid>
|
|
214
220
|
```
|
|
215
221
|
|
|
216
|
-
If the raw idea is true but the
|
|
222
|
+
If the raw idea is true but the audience tension snapshot does not show a live tension,
|
|
217
223
|
do not draft from the raw idea as-is. Present stronger directions or reframe the
|
|
218
224
|
idea around the closest supported external tension.
|
|
219
225
|
|
|
220
226
|
## Premise Inputs
|
|
221
227
|
|
|
222
|
-
After the
|
|
228
|
+
After the audience tension snapshot, extract the ingredients needed for premise
|
|
223
229
|
development. Do this before hook generation.
|
|
224
230
|
|
|
225
231
|
Record:
|
|
@@ -687,6 +693,76 @@ with Christian's verified campaign-source ladder. Keep the hook's "unexpected
|
|
|
687
693
|
best source" tension. Do not borrow the source's dinner/community proof.
|
|
688
694
|
```
|
|
689
695
|
|
|
696
|
+
## Thought Leader Inspiration Workers
|
|
697
|
+
|
|
698
|
+
When the user supplies a list of thought leaders, creators, profile URLs, or
|
|
699
|
+
handles, run a separate inspiration analysis per person. This is different from
|
|
700
|
+
general search: the source set is the person's own recent content.
|
|
701
|
+
|
|
702
|
+
Use one bounded background worker per person when the host supports background
|
|
703
|
+
agents. If not, process the list sequentially. Each worker must keep its output
|
|
704
|
+
compact and must not return a full corpus dump.
|
|
705
|
+
|
|
706
|
+
Worker steps:
|
|
707
|
+
|
|
708
|
+
1. Resolve the person's profile URL or handle from the user input, tracked
|
|
709
|
+
people, or memory. If unresolved, ask for the URL/handle.
|
|
710
|
+
2. Fetch recent posts with `mcp__sellable__fetch_linkedin_posts`.
|
|
711
|
+
3. Fetch profile/follower context with `mcp__sellable__fetch_linkedin_profile`
|
|
712
|
+
when available.
|
|
713
|
+
4. Score the person's recent posts by:
|
|
714
|
+
- topic fit to the user's current idea
|
|
715
|
+
- hook preview strength
|
|
716
|
+
- body payoff strength
|
|
717
|
+
- positioning density
|
|
718
|
+
- repeated success in the same lane
|
|
719
|
+
- engagement quality
|
|
720
|
+
- engagement per 1k followers when follower count is available
|
|
721
|
+
- adaptation fit for Christian/Sellable voice
|
|
722
|
+
- lead-magnet, giveaway, and status-only penalties
|
|
723
|
+
5. Keep max 5 winners and max 5 rejected examples.
|
|
724
|
+
6. Extract hook mechanics, body mechanics, sentence/rhythm moves, proof slots,
|
|
725
|
+
and close moves.
|
|
726
|
+
7. Identify forbidden borrowing: source wording, source proof, jokes, personal
|
|
727
|
+
stories, audience status, and persona markers.
|
|
728
|
+
8. Create one adapted direction for the user's selected premise in
|
|
729
|
+
Christian/Sellable voice.
|
|
730
|
+
|
|
731
|
+
Worker output:
|
|
732
|
+
|
|
733
|
+
```text
|
|
734
|
+
Thought leader inspiration packet:
|
|
735
|
+
person:
|
|
736
|
+
profile_url:
|
|
737
|
+
recent_posts_reviewed:
|
|
738
|
+
follower_count: <number | unavailable>
|
|
739
|
+
normalization_confidence: high | medium | low
|
|
740
|
+
weighted_winners:
|
|
741
|
+
- source_url:
|
|
742
|
+
engagement:
|
|
743
|
+
engagement_per_1k_followers:
|
|
744
|
+
score:
|
|
745
|
+
why_kept:
|
|
746
|
+
first_3_line_preview:
|
|
747
|
+
hook_mechanics:
|
|
748
|
+
body_mechanics:
|
|
749
|
+
sentence_or_rhythm_moves:
|
|
750
|
+
forbidden_borrowing:
|
|
751
|
+
adapted_direction:
|
|
752
|
+
inspiration_adapter:
|
|
753
|
+
voice_layer: Christian/Sellable
|
|
754
|
+
hook_shape:
|
|
755
|
+
body_shape:
|
|
756
|
+
proof_slots_needed:
|
|
757
|
+
why_it_might_win:
|
|
758
|
+
why_it_might_fail:
|
|
759
|
+
rejected_examples:
|
|
760
|
+
confidence_gaps:
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
Do not call the adapted direction "in <person>'s voice." It is an inspiration
|
|
764
|
+
adapter that borrows public mechanics, then writes in the user's voice.
|
|
765
|
+
|
|
690
766
|
## Blocked States
|
|
691
767
|
|
|
692
768
|
Local idea capture can still succeed when research fails.
|
|
@@ -67,9 +67,14 @@ Hook research files must preserve:
|
|
|
67
67
|
- source hook preview measurements, including text basis, char count including
|
|
68
68
|
newlines, physical/content line counts, longest nonblank line, blank-line
|
|
69
69
|
visual risk, and mobile/desktop preview budget status
|
|
70
|
+
- audience tension snapshot and selected angle
|
|
70
71
|
- rendered preview records for kept source hooks and adapted hook blocks,
|
|
71
72
|
including literal mobile/desktop preview blocks and whether the first-screen
|
|
72
73
|
promise is visible
|
|
74
|
+
- thought leader inspiration packets when the user supplied creators, including
|
|
75
|
+
worker status, profile URL/handle, recent posts reviewed, weighted winners,
|
|
76
|
+
follower-adjusted signal when available, allowed mechanics to adapt, and
|
|
77
|
+
forbidden borrowing
|
|
73
78
|
- source-message outlines for keeper posts, preserving source paragraph order
|
|
74
79
|
and branching each paragraph, line, or phrase into high-level goal, reader
|
|
75
80
|
effect, reusable move, and adaptation guard without reproducing the full
|
|
@@ -94,6 +99,9 @@ Draft files must preserve:
|
|
|
94
99
|
- draft body
|
|
95
100
|
- source-message outline for any outside post being adapted, when the draft's
|
|
96
101
|
body shape was learned from a specific source post
|
|
102
|
+
- thought leader inspiration lab when used, including the selected inspiration
|
|
103
|
+
adapter, variants considered, Christian/Sellable voice layer, and
|
|
104
|
+
copying/voice-clone risk
|
|
97
105
|
- pre-draft narrative outline: hierarchical `I.`, `A.`, `i.` outline covering
|
|
98
106
|
hook debt, thesis, reader, core mechanism, definitions, proof claims,
|
|
99
107
|
working body patterns adapted, narrative beats, mobile scan path, body
|
|
@@ -28,7 +28,8 @@ Every saved draft needs a validation receipt. A draft without this receipt is no
|
|
|
28
28
|
- `storyFilesConsulted`
|
|
29
29
|
- `goldStandardsConsulted`
|
|
30
30
|
- `voiceRulesApplied`
|
|
31
|
-
- `
|
|
31
|
+
- `audienceTensionAudit`
|
|
32
|
+
- `thoughtLeaderInspirationLab`
|
|
32
33
|
- `premiseValueAudit`
|
|
33
34
|
- `mobileScanabilityAudit`
|
|
34
35
|
- `templateAdaptationAudit`
|
|
@@ -110,7 +111,7 @@ Each candidate should include:
|
|
|
110
111
|
After the first draft:
|
|
111
112
|
|
|
112
113
|
1. remove unsupported claims
|
|
113
|
-
2. verify the draft is anchored to the selected
|
|
114
|
+
2. verify the draft is anchored to the selected audience tension and credible angle
|
|
114
115
|
3. verify the real story/scene, tension, and reader value are visible early
|
|
115
116
|
4. verify the body repays the selected hook's curiosity debt
|
|
116
117
|
5. verify the final post follows the selected positioning sequence or explains
|
|
@@ -181,7 +182,7 @@ Record:
|
|
|
181
182
|
artifact is `preDraftNarrativeOutline`
|
|
182
183
|
- `premiseQualityGates`: pass/fail for `specific_scene_or_pattern`,
|
|
183
184
|
`clear_reader`, `visible_tension`, `reader_value`, `credible_speaker`,
|
|
184
|
-
`proof_safety`, `
|
|
185
|
+
`proof_safety`, `audience_tension`, and `pre_draft_narrative_outline`
|
|
185
186
|
- `bodyOutline`: how the body delivers the premise before prose
|
|
186
187
|
- `viralPostOutline`: the selected narrative structure, including beat jobs
|
|
187
188
|
- `hookToBodyPromiseMap`: how the body repays the hook's open loop
|
|
@@ -296,27 +297,53 @@ Save as `needs_revision` when the draft copies outside wording, borrows outside
|
|
|
296
297
|
proof, keeps a source template's status without equivalent user authority, or
|
|
297
298
|
uses a hook whose promised body payoff is not delivered.
|
|
298
299
|
|
|
299
|
-
##
|
|
300
|
+
## Audience Tension Audit
|
|
300
301
|
|
|
301
302
|
Before a draft can be `ready`, validate that it is not merely an internally
|
|
302
|
-
coherent idea. It must be anchored to the saved research's
|
|
303
|
+
coherent idea. It must be anchored to the saved research's audience tension
|
|
304
|
+
snapshot.
|
|
303
305
|
|
|
304
306
|
Record:
|
|
305
307
|
|
|
306
308
|
- `resonatingIdea`: the current-space idea this draft enters
|
|
307
|
-
- `
|
|
309
|
+
- `visibleAudienceTension`: the contradiction, tradeoff, cost, or unfinished
|
|
310
|
+
question readers are reacting to
|
|
308
311
|
- `audienceWant`: what the audience wants permission, leverage, proof, or a new
|
|
309
312
|
category for
|
|
310
|
-
- `
|
|
311
|
-
- `
|
|
313
|
+
- `audienceObjectionOrFear`: what skepticism, frustration, or risk gives the post tension
|
|
314
|
+
- `selectedAngle`: the claim the post is testing
|
|
312
315
|
- `credibleWhyUs`: why the user can credibly say this from raw idea, memory,
|
|
313
316
|
story, proof, or product mechanism
|
|
314
317
|
- `engagementReason`: why someone would react, comment, repost, or argue
|
|
315
318
|
- `unsupportedHypeRemoved`: unsupported claims removed during finalizer
|
|
316
319
|
|
|
317
|
-
If `
|
|
318
|
-
|
|
319
|
-
|
|
320
|
+
If `selectedAngle` is missing, if the audience tension is only a generic label
|
|
321
|
+
like "founders want growth," or if `credibleWhyUs` depends on borrowed proof
|
|
322
|
+
from another creator, save as `needs_revision`.
|
|
323
|
+
|
|
324
|
+
## Thought Leader Inspiration Audit
|
|
325
|
+
|
|
326
|
+
When the user supplied thought leaders or creators, validate that inspiration
|
|
327
|
+
was used as structural adaptation, not persona cloning.
|
|
328
|
+
|
|
329
|
+
Record:
|
|
330
|
+
|
|
331
|
+
- `thoughtLeaderList`: names and profile URLs or handles
|
|
332
|
+
- `workerPackets`: one packet per person, or `not_available` with reason
|
|
333
|
+
- `weightedWinners`: best posts used, with follower-adjusted signal when
|
|
334
|
+
available
|
|
335
|
+
- `normalizationConfidence`: high | medium | low
|
|
336
|
+
- `inspirationAdapters`: hook/body mechanics selected for adaptation
|
|
337
|
+
- `voiceLayer`: must be `Christian/Sellable`
|
|
338
|
+
- `forbiddenBorrowingAvoided`: source wording, proof, jokes, personal stories,
|
|
339
|
+
status, and persona markers avoided
|
|
340
|
+
- `variantsConsidered`: adapted variants generated from the selected premise
|
|
341
|
+
- `selectedVariant`: winning adapter and why
|
|
342
|
+
- `copyingOrVoiceCloneRisk`: pass | needs_revision | blocked
|
|
343
|
+
|
|
344
|
+
Save as `needs_revision` when a draft imitates a living person's voice, borrows
|
|
345
|
+
their proof/status, copies outside wording, or lets a creator with a giant
|
|
346
|
+
audience win without any follower-adjusted or confidence-adjusted signal.
|
|
320
347
|
|
|
321
348
|
## LinkedIn Preview Audit
|
|
322
349
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
A strong post is not an idea with a better hook. A strong post is a valuable
|
|
4
4
|
premise wrapped in a sharp opening.
|
|
5
5
|
|
|
6
|
-
Use this stage after
|
|
6
|
+
Use this stage after audience/hook research and before hook candidates. V2 premise
|
|
7
7
|
development also consumes the source post templates from hook research:
|
|
8
8
|
post positioning breakdowns, viral-post outlines, hook-to-body promise maps, and
|
|
9
9
|
body expression inputs.
|
|
@@ -109,7 +109,7 @@ tension:
|
|
|
109
109
|
reader value:
|
|
110
110
|
<what the reader learns, sees differently, or can do after reading>
|
|
111
111
|
|
|
112
|
-
why now /
|
|
112
|
+
why now / audience tension:
|
|
113
113
|
<what current research says is resonating>
|
|
114
114
|
|
|
115
115
|
credible why-us:
|
|
@@ -366,7 +366,7 @@ A premise can move to hook generation only when it passes all of these:
|
|
|
366
366
|
- `reader_value`: pass
|
|
367
367
|
- `credible_speaker`: pass
|
|
368
368
|
- `proof_safety`: pass
|
|
369
|
-
- `
|
|
369
|
+
- `audience_tension`: pass or explained
|
|
370
370
|
- `template_fit`: pass or explicitly no-template
|
|
371
371
|
- `hook_to_body_repayment`: pass
|
|
372
372
|
- `pre_draft_narrative_outline`: pass
|