@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.264",
3
+ "version": "0.1.265",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -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 what the audience implicitly believes/wants/resents/fears, develop a real premise with story/tension/reader value, choose a credible controversial angle to test, and save a validated draft that sounds like them.
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. Market Belief Map
433
+ 8. Audience Tension Snapshot
380
434
  - resonating ideas:
381
- - implicit beliefs:
382
- - wants / resentments / fears:
383
- - selected controversy:
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. Draft
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
- 15. Validation And Save
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
- - market belief map: resonating ideas, implicit beliefs, audience wants, resentments, fears, and credible controversy angles
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 a market belief map before hook generation: what the space is rewarding, what the audience implicitly believes, what they want permission to say, what they resent or fear, what they will argue with, and which controversial angle the user can credibly own. If the user's raw idea is internally coherent but not attached to a live market tension, do not draft from the internal idea alone; present stronger directions or rewrite the draft angle around the external tension.
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
- - market belief map and selected controversy
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
- Market belief map:
663
+ Audience tension snapshot:
596
664
  - resonating ideas:
597
- - implicit beliefs:
665
+ - visible audience tension:
598
666
  - audience wants:
599
- - audience resentments:
667
+ - audience objections:
600
668
  - audience fears:
601
- - controversial angles to test:
669
+ - credible angles to test:
602
670
  - avoid because:
603
- - selected controversy:
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, market research, core
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
- - `market_heat`
784
+ - `audience_tension`
707
785
  - `template_fit`
708
786
  - `hook_to_body_repayment`
709
787
 
710
- If the idea has market heat but no real scene, ask for the missing scene unless
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
- - market belief mapping across kept and rejected examples
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
- - market belief map: max 8 bullets
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
- ## Market Belief Map
183
+ ## Audience Tension Snapshot
180
184
 
181
- Before selecting a hook or writing a draft, synthesize a market belief map from
182
- the kept and rejected posts. This is the step that prevents an internally
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
- - audience resentments: what they are tired of, embarrassed by, or angry about
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 controversy: what the user can argue without borrowing someone else's
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 controversy:
209
+ Selected angle:
204
210
  <one sentence>
205
211
 
206
212
  Why this audience would engage:
207
- <specific belief/want/resentment/fear>
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 market belief map does not show a live tension,
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 market belief map, extract the ingredients needed for premise
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
- - `marketBeliefAudit`
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 market belief and controversy
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`, `market_heat`, and `pre_draft_narrative_outline`
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
- ## Market Belief Audit
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 market belief map.
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
- - `implicitBelief`: the belief the audience likely already holds
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
- - `audienceResentmentOrFear`: what frustration or risk gives the post tension
311
- - `selectedControversy`: the claim the post is testing
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 `selectedControversy` is missing, if the audience belief is only a generic
318
- label like "founders want growth," or if `credibleWhyUs` depends on borrowed
319
- proof from another creator, save as `needs_revision`.
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 market/hook research and before hook candidates. V2 premise
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 / market heat:
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
- - `market_heat`: pass or explained
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