@sellable/mcp 0.1.268 → 0.1.271
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
|
@@ -55,8 +55,8 @@ Hard fail patterns:
|
|
|
55
55
|
- drafts that skip raw idea capture
|
|
56
56
|
- drafts that skip premise development
|
|
57
57
|
- hooks copied verbatim from another creator
|
|
58
|
-
- drafts that
|
|
59
|
-
|
|
58
|
+
- final drafts that claim to be authored by a living creator, copy outside
|
|
59
|
+
wording, or borrow another creator's personal proof/status as the user's proof
|
|
60
60
|
- using `~/.sellable/configs/content/linkedin-posts-drafts.md` as the normal save target
|
|
61
61
|
</role>
|
|
62
62
|
|
|
@@ -234,7 +234,7 @@ Use when the user gives an existing idea ID.
|
|
|
234
234
|
1. Call `mcp__sellable__get_post_idea({ ideaId })`.
|
|
235
235
|
2. Treat the idea's raw source as immutable source material.
|
|
236
236
|
3. Run hook research.
|
|
237
|
-
4. Run the configured thought-leader
|
|
237
|
+
4. Run the configured thought-leader voice variant lab unless the user explicitly
|
|
238
238
|
says to skip thought leaders or use only a named subset.
|
|
239
239
|
5. Develop and select a premise card.
|
|
240
240
|
6. Save hook research.
|
|
@@ -252,7 +252,7 @@ Use when the user gives a new rough idea, voice memo transcript, freestyle note,
|
|
|
252
252
|
4. Distill only what the user actually said plus source-backed transcript
|
|
253
253
|
worldview/proof ingredients. Label anything inferred from transcripts.
|
|
254
254
|
5. Run hook research.
|
|
255
|
-
6. Run the configured thought-leader
|
|
255
|
+
6. Run the configured thought-leader voice variant lab unless the user explicitly
|
|
256
256
|
says to skip thought leaders or use only a named subset.
|
|
257
257
|
7. Develop and select a premise card.
|
|
258
258
|
8. Save hook research.
|
|
@@ -318,7 +318,7 @@ Space benchmark research:
|
|
|
318
318
|
|
|
319
319
|
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.
|
|
320
320
|
|
|
321
|
-
## Thought Leader
|
|
321
|
+
## Thought Leader Voice Variant Mode
|
|
322
322
|
|
|
323
323
|
Use when the user names creators, thought leaders, profile URLs, or says to
|
|
324
324
|
write variants using a specific person's recent best content as inspiration.
|
|
@@ -329,9 +329,41 @@ the configured active influencer list after the Transcript Worldview Packet and
|
|
|
329
329
|
general hook research, unless the user explicitly says to skip thought leaders,
|
|
330
330
|
skip external inspiration, or use only a named subset.
|
|
331
331
|
|
|
332
|
-
This mode
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
This mode is a role-play variant lab for internal synthesis. Each background
|
|
333
|
+
worker should assume that creator's public LinkedIn lens, taste, hook style,
|
|
334
|
+
rhythm, and editorial instincts, then draft the post the creator would likely
|
|
335
|
+
write from the user's idea and context. The worker may write in a voice-inspired
|
|
336
|
+
style for the private variant, but it must not claim the creator authored it,
|
|
337
|
+
copy source wording, copy personal proof, or invent facts about the user.
|
|
338
|
+
|
|
339
|
+
The final orchestrator does not publish a collage of creator personas. It takes
|
|
340
|
+
the best hooks, pressure, structure, rhythm, and proof moves from the role-played
|
|
341
|
+
variants, then synthesizes the most compelling post for Christian/Sellable.
|
|
342
|
+
|
|
343
|
+
Target fast flow:
|
|
344
|
+
|
|
345
|
+
```text
|
|
346
|
+
+----------------------+ +----------------------+ +----------------------+
|
|
347
|
+
| Raw idea + memory | ---> | Active influencers | ---> | Parallel workers |
|
|
348
|
+
| 3-5 min | | 1 min | | 6-10 min wall clock |
|
|
349
|
+
+----------------------+ +----------------------+ +----------+-----------+
|
|
350
|
+
|
|
|
351
|
+
v
|
|
352
|
+
+----------------------+ +----------------------+ +----------------------+
|
|
353
|
+
| Save compact draft | <--- | Final synthesis | <--- | Voice-modeled posts |
|
|
354
|
+
| 1 min | | 3-5 min | | representative length|
|
|
355
|
+
+----------------------+ +----------------------+ +----------------------+
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
Default output budget:
|
|
359
|
+
|
|
360
|
+
- main orchestrator receipt: 300-700 words
|
|
361
|
+
- each influencer worker: representative-length post plus compact notes
|
|
362
|
+
- each influencer post variant: match that creator's normal length, rhythm,
|
|
363
|
+
vocabulary, formatting, and close for this kind of idea
|
|
364
|
+
- final synthesized post: normal LinkedIn post length unless the user asks short
|
|
365
|
+
- do not return long research reports unless the user explicitly asks for them;
|
|
366
|
+
spend tokens on the actual voice-modeled post
|
|
335
367
|
|
|
336
368
|
Default workflow:
|
|
337
369
|
|
|
@@ -345,42 +377,63 @@ Default workflow:
|
|
|
345
377
|
tracked people or memory, ask for the profile URL or handle before running
|
|
346
378
|
person-specific research.
|
|
347
379
|
3. When the host supports background agents, launch one bounded
|
|
348
|
-
`
|
|
349
|
-
Each configured person must receive
|
|
350
|
-
collapse the configured list into generic space research.
|
|
380
|
+
`influencer-voice-worker` per person. If not, process each person
|
|
381
|
+
sequentially. Each configured person must receive a person-specific voice
|
|
382
|
+
variant; do not collapse the configured list into generic space research.
|
|
351
383
|
4. Each worker fetches that person's recent posts with
|
|
352
384
|
`mcp__sellable__fetch_linkedin_posts`, and fetches profile/follower context
|
|
353
385
|
with `mcp__sellable__fetch_linkedin_profile` when available.
|
|
354
|
-
5. Each worker
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
-
|
|
362
|
-
-
|
|
363
|
-
-
|
|
364
|
-
-
|
|
365
|
-
-
|
|
366
|
-
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
386
|
+
5. Each worker samples enough recent posts to understand the person's current
|
|
387
|
+
public voice. Score internally for topic fit, hook strength, body payoff,
|
|
388
|
+
repeated patterns, engagement quality, and follower-adjusted signal when
|
|
389
|
+
follower counts are available. Do not return the full scoring table.
|
|
390
|
+
6. Each worker must build a `voice_model` before drafting:
|
|
391
|
+
- representative length range for similar posts
|
|
392
|
+
- average paragraph/line length and spacing rhythm
|
|
393
|
+
- hook posture and opening moves
|
|
394
|
+
- common vocabulary, recurring phrases, and taboo phrases
|
|
395
|
+
- proof style: story, numbers, teardown, checklist, confession, challenge
|
|
396
|
+
- formatting: bullets, numbering, questions, equations, parentheticals
|
|
397
|
+
- close style: command, reflection, CTA, punchline, open loop
|
|
398
|
+
- factual boundaries: what must come from Christian/Sellable context
|
|
399
|
+
7. Each worker writes the complete post that this creator would likely write
|
|
400
|
+
from the user's idea and context. Match the inferred length/rhythm/style; do
|
|
401
|
+
not compress to a generic short draft.
|
|
402
|
+
8. Each worker returns a compact voice variant:
|
|
403
|
+
- person and profile URL
|
|
404
|
+
- worker status
|
|
405
|
+
- recent post count sampled
|
|
406
|
+
- voice model, max 8 bullets
|
|
407
|
+
- complete post variant in that creator's inferred voice and representative
|
|
408
|
+
length
|
|
409
|
+
- hook options, max 3
|
|
410
|
+
- what to steal for the final Christian/Sellable post, max 5 bullets
|
|
411
|
+
- what to drop or avoid, max 5 bullets
|
|
412
|
+
- proof gaps and factual risks
|
|
413
|
+
- source URLs sampled, max 3
|
|
414
|
+
9. The orchestrator compares all creator variants, chooses the strongest hooks,
|
|
415
|
+
structures, proof moves, and rhythm, then writes one synthesized final post.
|
|
416
|
+
10. The orchestrator must label worker outputs as `voice_variant_from: <person>`
|
|
417
|
+
and final synthesis as `final_voice: Christian/Sellable`.
|
|
418
|
+
11. In the final user-visible response, include a compact
|
|
419
|
+
`BACKGROUND_AGENT_DRAFT_REVIEW` section before the final post whenever this
|
|
420
|
+
lab ran. It must review every active person's private variant, state the
|
|
421
|
+
strongest move, what to drop, and what was selected for synthesis. Do not
|
|
422
|
+
hide this behind a boolean receipt when the user is validating the workflow.
|
|
373
423
|
|
|
374
424
|
Hard rules:
|
|
375
425
|
|
|
376
|
-
-
|
|
426
|
+
- The role-play variant is internal synthesis material, not a claim of authorship
|
|
427
|
+
by the creator.
|
|
377
428
|
- Do not copy outside wording, proof, jokes, personal stories, or status.
|
|
429
|
+
- Do not invent user proof just because it would fit the creator's style.
|
|
378
430
|
- Do not let a large-audience creator win only because of reach. Use engagement
|
|
379
431
|
per 1k followers when follower counts are available, and mark confidence when
|
|
380
432
|
follower data is missing.
|
|
381
|
-
- Keep Christian/Sellable
|
|
433
|
+
- Keep Christian/Sellable truth and proof as the final factual layer.
|
|
382
434
|
- If a thought leader has no recent full-text posts or the useful posts are
|
|
383
|
-
mostly lead magnets,
|
|
435
|
+
mostly lead magnets, return a weak variant and explain what could still be
|
|
436
|
+
useful.
|
|
384
437
|
|
|
385
438
|
## Visible Whole-Flow Debug Mode
|
|
386
439
|
|
|
@@ -533,16 +586,16 @@ Visible Flow Trace
|
|
|
533
586
|
- score:
|
|
534
587
|
- combined body plan:
|
|
535
588
|
|
|
536
|
-
14. Thought Leader
|
|
589
|
+
14. Thought Leader Voice Variant Lab
|
|
537
590
|
- specified thought leaders:
|
|
538
591
|
- worker status per person:
|
|
539
|
-
- recent posts
|
|
540
|
-
-
|
|
592
|
+
- recent posts sampled:
|
|
593
|
+
- voice model:
|
|
594
|
+
- complete voice variants:
|
|
541
595
|
- follower-adjusted signal when available:
|
|
542
|
-
-
|
|
543
|
-
-
|
|
544
|
-
-
|
|
545
|
-
- selected inspiration adapter:
|
|
596
|
+
- hook/body moves worth stealing:
|
|
597
|
+
- proof gaps and factual risks:
|
|
598
|
+
- selected synthesis ingredients:
|
|
546
599
|
|
|
547
600
|
15. Draft
|
|
548
601
|
- draft body:
|
|
@@ -656,7 +709,7 @@ The research worker must return a compact packet only:
|
|
|
656
709
|
- hook-to-body promise maps that show how each hook tells the body
|
|
657
710
|
- body structures and exact body language moves
|
|
658
711
|
- preview measurements
|
|
659
|
-
- thought leader
|
|
712
|
+
- thought leader voice variants from the configured active influencer list
|
|
660
713
|
unless the user explicitly opted out or supplied a named subset
|
|
661
714
|
- track-person and gold-standard recommendations
|
|
662
715
|
- blocked states or confidence gaps
|
|
@@ -705,7 +758,7 @@ Record provenance:
|
|
|
705
758
|
- source hook preview measurements and whether they came from full text or a search preview
|
|
706
759
|
- selected hook patterns
|
|
707
760
|
- audience tension snapshot and selected angle
|
|
708
|
-
- thought leader
|
|
761
|
+
- thought leader voice variants and selected synthesis ingredients from the
|
|
709
762
|
configured active influencer list unless explicitly skipped
|
|
710
763
|
- premise cards and selected premise
|
|
711
764
|
- exact phrase patterns and sentence shapes
|
|
@@ -818,15 +871,14 @@ Body structures learned:
|
|
|
818
871
|
- exact language moves:
|
|
819
872
|
- adapted Sellable body move:
|
|
820
873
|
|
|
821
|
-
Thought leader
|
|
874
|
+
Thought leader voice variants:
|
|
822
875
|
1. person + profile URL
|
|
823
876
|
- worker status:
|
|
824
|
-
- recent posts
|
|
825
|
-
-
|
|
826
|
-
-
|
|
827
|
-
-
|
|
828
|
-
-
|
|
829
|
-
- adapted variant direction in Christian/Sellable voice:
|
|
877
|
+
- recent posts sampled:
|
|
878
|
+
- voice model:
|
|
879
|
+
- full role-played post variant:
|
|
880
|
+
- steal/drop notes:
|
|
881
|
+
- factual risk:
|
|
830
882
|
|
|
831
883
|
Rejected examples:
|
|
832
884
|
- author/source:
|
|
@@ -1033,7 +1085,7 @@ selecting it. A selected hook may carry a `warn` only when the warning is about
|
|
|
1033
1085
|
intentional blank-line rhythm or a slight line-length overage; include a compact
|
|
1034
1086
|
fallback in the validation receipt.
|
|
1035
1087
|
|
|
1036
|
-
## Step 2.5: Thought Leader
|
|
1088
|
+
## Step 2.5: Thought Leader Voice Variant Lab
|
|
1037
1089
|
|
|
1038
1090
|
Run this step by default for draft-producing create-post flows using the
|
|
1039
1091
|
configured active people in `discovery/influencers.md`. Skip it only when the
|
|
@@ -1041,40 +1093,104 @@ user explicitly says to skip thought leaders, skip external inspiration, or use
|
|
|
1041
1093
|
only general hook research. If the user supplied a `thought_leader_list`, use
|
|
1042
1094
|
that named subset instead of the full configured list.
|
|
1043
1095
|
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1096
|
+
This is a draft-readiness gate, not an optional research note. Before final
|
|
1097
|
+
prose, resolve the active configured influencer list, record the expected person
|
|
1098
|
+
count, and produce one voice variant for every active person. A draft
|
|
1099
|
+
cannot be `ready` when the configured list was not loaded, when an active person
|
|
1100
|
+
is missing a variant, or when the lab is summarized as generic hook research. If
|
|
1101
|
+
a profile fetch or post fetch succeeds but produces weak material, keep a
|
|
1102
|
+
`weak` variant with the attempted fetches and confidence gaps. If a profile URL
|
|
1103
|
+
cannot be resolved or the research tool fails, return `retry-needed` or save
|
|
1104
|
+
only `needs_revision` unless the user explicitly opted out of the lab.
|
|
1105
|
+
|
|
1106
|
+
When the host supports background agents, fire one bounded
|
|
1107
|
+
`influencer-voice-worker` per specified person. This is the default execution
|
|
1108
|
+
mode. Do not process the configured influencer list sequentially just to keep
|
|
1109
|
+
the main orchestrator simple. Sequential processing is allowed only when the
|
|
1110
|
+
host has no background-agent mechanism; record that fallback in the receipt.
|
|
1111
|
+
Each worker owns only that person's voice role-play variant. The orchestrator
|
|
1112
|
+
owns comparison, synthesis, factual safety, and final Christian/Sellable proof.
|
|
1048
1113
|
|
|
1049
1114
|
Each worker must return:
|
|
1050
1115
|
|
|
1051
1116
|
- person name and profile URL or handle
|
|
1052
|
-
-
|
|
1053
|
-
-
|
|
1054
|
-
- rejected posts, max 5
|
|
1117
|
+
- worker status
|
|
1118
|
+
- recent post count sampled
|
|
1055
1119
|
- follower count when available
|
|
1056
|
-
-
|
|
1057
|
-
-
|
|
1058
|
-
|
|
1059
|
-
-
|
|
1060
|
-
|
|
1061
|
-
-
|
|
1062
|
-
-
|
|
1063
|
-
-
|
|
1064
|
-
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1120
|
+
- normalization confidence
|
|
1121
|
+
- voice model, max 8 bullets, including representative length, rhythm,
|
|
1122
|
+
vocabulary, formatting, proof style, and close style
|
|
1123
|
+
- complete role-played post variant in the creator's inferred voice and
|
|
1124
|
+
representative length
|
|
1125
|
+
- hook options, max 3
|
|
1126
|
+
- best lines or moves worth stealing, max 5 bullets
|
|
1127
|
+
- what to drop or avoid, max 5 bullets
|
|
1128
|
+
- proof gaps and factual risks
|
|
1129
|
+
- source URLs sampled, max 3
|
|
1130
|
+
|
|
1131
|
+
Do not return full research tables, long post autopsies, or full source text
|
|
1132
|
+
unless the user explicitly asks for the research report. The normal worker job is
|
|
1133
|
+
to draft the variant.
|
|
1134
|
+
|
|
1135
|
+
The orchestrator then synthesizes the final post from the voice variants.
|
|
1136
|
+
Variant labels must be:
|
|
1068
1137
|
|
|
1069
1138
|
```text
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1139
|
+
voice_variant_from: <person>
|
|
1140
|
+
role_play_basis: public posts sampled + configured Reason lane
|
|
1141
|
+
post_variant: <complete variant>
|
|
1142
|
+
steal_for_final: hook | structure | proof order | rhythm | close move
|
|
1143
|
+
drop_for_final: copied wording | borrowed personal proof | fake user fact
|
|
1074
1144
|
```
|
|
1075
1145
|
|
|
1076
|
-
|
|
1077
|
-
|
|
1146
|
+
It is acceptable for the worker to write the private variant "in <person>'s
|
|
1147
|
+
voice" for synthesis. It is not acceptable to publish the variant as that
|
|
1148
|
+
person, copy their wording, or borrow their personal proof/status. The final
|
|
1149
|
+
draft should be the most compelling synthesis, grounded in Christian/Sellable
|
|
1150
|
+
context.
|
|
1151
|
+
|
|
1152
|
+
Before drafting, record:
|
|
1153
|
+
|
|
1154
|
+
- `activeInfluencerSource`: `discovery/influencers.md` or named subset
|
|
1155
|
+
- `expectedActiveInfluencerCount`
|
|
1156
|
+
- `actualVoiceVariantCount`
|
|
1157
|
+
- `missingVoiceVariants`
|
|
1158
|
+
- `weakVoiceVariants`
|
|
1159
|
+
- `selectedSynthesisIngredients`
|
|
1160
|
+
- `voiceVariantsGeneratedBeforeFinalProse: yes | no`
|
|
1161
|
+
- `workerExecutionMode: background_agents | sequential_fallback`
|
|
1162
|
+
- `backgroundWorkerIds` or worker labels when available
|
|
1163
|
+
|
|
1164
|
+
If `actualVoiceVariantCount` is lower than
|
|
1165
|
+
`expectedActiveInfluencerCount`, do not save the draft as `ready`.
|
|
1166
|
+
|
|
1167
|
+
When returning the completed draft, show the synthesis review in this shape
|
|
1168
|
+
before the final post:
|
|
1169
|
+
|
|
1170
|
+
```text
|
|
1171
|
+
BACKGROUND_AGENT_DRAFT_REVIEW
|
|
1172
|
+
workerExecutionMode: background_agents | sequential_fallback
|
|
1173
|
+
expectedActiveInfluencerCount: <number>
|
|
1174
|
+
actualVoiceVariantCount: <number>
|
|
1175
|
+
|
|
1176
|
+
1. <person>
|
|
1177
|
+
- worker_status:
|
|
1178
|
+
- draft_review:
|
|
1179
|
+
- strongest_move:
|
|
1180
|
+
- weakness_or_drop:
|
|
1181
|
+
- synthesis_decision:
|
|
1182
|
+
|
|
1183
|
+
SYNTHESIS_INGREDIENTS
|
|
1184
|
+
- hook:
|
|
1185
|
+
- structure:
|
|
1186
|
+
- rhythm:
|
|
1187
|
+
- proof_order:
|
|
1188
|
+
- close:
|
|
1189
|
+
- dropped:
|
|
1190
|
+
```
|
|
1191
|
+
|
|
1192
|
+
The review must cover every active configured person, not only the winning
|
|
1193
|
+
variant. Then return `FINAL_POST` in Christian/Sellable voice.
|
|
1078
1194
|
|
|
1079
1195
|
## Step 3: Draft
|
|
1080
1196
|
|
|
@@ -1095,11 +1211,16 @@ Draft from:
|
|
|
1095
1211
|
- story/proof files
|
|
1096
1212
|
- post writing rules
|
|
1097
1213
|
- 1-3 relevant approved gold standards when available
|
|
1098
|
-
- thought leader
|
|
1214
|
+
- thought leader voice variants from the configured active influencer
|
|
1099
1215
|
list or supplied named subset
|
|
1100
1216
|
|
|
1101
1217
|
If a claim cannot be traced to the raw idea, core memory, or user answer in the current session, remove it or ask.
|
|
1102
1218
|
|
|
1219
|
+
Do not write final draft prose until the Thought Leader Voice Variant Lab has
|
|
1220
|
+
either completed for every active configured influencer or the validation
|
|
1221
|
+
receipt has an explicit user opt-out reason. A light source-research summary
|
|
1222
|
+
does not satisfy this gate.
|
|
1223
|
+
|
|
1103
1224
|
## Step 4: Validation
|
|
1104
1225
|
|
|
1105
1226
|
Use `references/post-validation.md`.
|
|
@@ -1116,7 +1237,8 @@ Every saved draft needs a validation receipt with:
|
|
|
1116
1237
|
- selected hook and why
|
|
1117
1238
|
- pre-draft narrative outline
|
|
1118
1239
|
- selected source template and no-copy adaptation rationale
|
|
1119
|
-
- thought leader
|
|
1240
|
+
- thought leader voice variant lab, including skipped/opt-out reason when
|
|
1241
|
+
omitted and expected-vs-actual variant counts for the active configured list
|
|
1120
1242
|
- post positioning breakdown
|
|
1121
1243
|
- viral-post outline
|
|
1122
1244
|
- hook-to-body promise map
|
|
@@ -1226,7 +1348,9 @@ selected_premise: <premise or none>
|
|
|
1226
1348
|
selected_hook: <hook>
|
|
1227
1349
|
pre_draft_narrative_outline: <compact I/A/i outline summary or none>
|
|
1228
1350
|
selected_source_template: <template name/source or none>
|
|
1229
|
-
|
|
1351
|
+
thought_leader_voice_variants: <variants and synthesis ingredients used or none>
|
|
1352
|
+
background_agent_draft_review: <per-person review and synthesis decision when the lab ran>
|
|
1353
|
+
final_post: <complete final post in Christian/Sellable voice>
|
|
1230
1354
|
visible_flow_trace: <required when user asked for whole-flow/debug/step-by-step mode; include checkpoint statuses and quality break>
|
|
1231
1355
|
validation_summary:
|
|
1232
1356
|
premise_value: pass | needs_user_input | needs_revision
|
|
@@ -7,7 +7,7 @@ readers click "see more," decompose each post into a reusable narrative and
|
|
|
7
7
|
positioning template, and then adapt those templates to the user's real story
|
|
8
8
|
without copying source wording.
|
|
9
9
|
|
|
10
|
-
V2 research has
|
|
10
|
+
V2 research has six outputs:
|
|
11
11
|
|
|
12
12
|
1. weighted source winners: the best recent posts to learn from
|
|
13
13
|
2. hook autopsies: exact preview measurements, open loops, and tension created
|
|
@@ -16,7 +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
|
|
19
|
+
6. thought leader voice variants from the configured active influencer
|
|
20
20
|
list, unless the user explicitly skipped thought leaders or supplied a
|
|
21
21
|
named subset
|
|
22
22
|
|
|
@@ -56,7 +56,7 @@ Worker owns:
|
|
|
56
56
|
- line-to-template conversion
|
|
57
57
|
- body-structure extraction
|
|
58
58
|
- body-expression input extraction for the later draft lab
|
|
59
|
-
- per-creator
|
|
59
|
+
- per-creator voice variant assembly when the user supplied thought
|
|
60
60
|
leaders
|
|
61
61
|
- rejected-example notes
|
|
62
62
|
- track-person and gold-standard recommendations
|
|
@@ -88,7 +88,7 @@ Research packet:
|
|
|
88
88
|
- preview measurements
|
|
89
89
|
- hook-to-body promise maps
|
|
90
90
|
- body expression inputs
|
|
91
|
-
- thought leader
|
|
91
|
+
- thought leader voice variants
|
|
92
92
|
- confidence gaps
|
|
93
93
|
- save recommendations
|
|
94
94
|
```
|
|
@@ -698,9 +698,9 @@ with Christian's verified campaign-source ladder. Keep the hook's "unexpected
|
|
|
698
698
|
best source" tension. Do not borrow the source's dinner/community proof.
|
|
699
699
|
```
|
|
700
700
|
|
|
701
|
-
## Thought Leader
|
|
701
|
+
## Thought Leader Voice Variant Workers
|
|
702
702
|
|
|
703
|
-
Run a separate
|
|
703
|
+
Run a separate voice-variant worker per person for the configured active
|
|
704
704
|
thought-leader list by default during draft-producing create-post flows, unless
|
|
705
705
|
the user explicitly says to skip thought leaders, skip external inspiration, or
|
|
706
706
|
use only a named subset. Also do this when the user supplies a list of thought
|
|
@@ -710,9 +710,31 @@ memory-backed `discovery/influencers.md`; include only rows where
|
|
|
710
710
|
person's lane/adaptation brief. This is different from general search: the
|
|
711
711
|
source set is the person's own recent content.
|
|
712
712
|
|
|
713
|
+
This is a hard drafting dependency. General hook research, space benchmark
|
|
714
|
+
research, or a single combined "influencer takeaways" paragraph does not satisfy
|
|
715
|
+
the thought-leader step. The research artifact must record the active
|
|
716
|
+
configured list, expected active person count, actual voice variant count,
|
|
717
|
+
missing variants, weak variants, and selected synthesis ingredients. Ready
|
|
718
|
+
drafts require one voice variant per active configured person unless the user
|
|
719
|
+
explicitly opted out or supplied a smaller named subset.
|
|
720
|
+
|
|
713
721
|
Use one bounded background worker per person when the host supports background
|
|
714
|
-
agents.
|
|
715
|
-
|
|
722
|
+
agents. This is required for Codex/Claude hosts that expose background agents or
|
|
723
|
+
Task workers. If the host does not expose a worker mechanism, process the list
|
|
724
|
+
sequentially and record `workerExecutionMode: sequential_fallback` plus the
|
|
725
|
+
reason. Each worker must keep its output compact and must not return a full
|
|
726
|
+
corpus dump or long research report.
|
|
727
|
+
|
|
728
|
+
Runtime budget:
|
|
729
|
+
|
|
730
|
+
```text
|
|
731
|
+
per worker target: representative-length post + compact notes
|
|
732
|
+
post variant target: match the creator's normal length for this type of idea
|
|
733
|
+
source samples returned: max 3 URLs
|
|
734
|
+
hook options returned: max 3
|
|
735
|
+
steal/drop notes: max 5 bullets each
|
|
736
|
+
normal wall-clock: one background wave, 6-10 minutes total for 6-10 people
|
|
737
|
+
```
|
|
716
738
|
|
|
717
739
|
Worker steps:
|
|
718
740
|
|
|
@@ -722,7 +744,7 @@ Worker steps:
|
|
|
722
744
|
2. Fetch recent posts with `mcp__sellable__fetch_linkedin_posts`.
|
|
723
745
|
3. Fetch profile/follower context with `mcp__sellable__fetch_linkedin_profile`
|
|
724
746
|
when available.
|
|
725
|
-
4.
|
|
747
|
+
4. Sample and score the person's recent posts internally by:
|
|
726
748
|
- topic fit to the user's current idea
|
|
727
749
|
- hook preview strength
|
|
728
750
|
- body payoff strength
|
|
@@ -732,54 +754,61 @@ Worker steps:
|
|
|
732
754
|
- engagement per 1k followers when follower count is available
|
|
733
755
|
- adaptation fit for Christian/Sellable voice
|
|
734
756
|
- lead-magnet, giveaway, and status-only penalties
|
|
735
|
-
5.
|
|
736
|
-
|
|
737
|
-
and
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
757
|
+
5. Build a `voice_model` before drafting. It must infer:
|
|
758
|
+
- representative post length range for similar ideas
|
|
759
|
+
- paragraph and line rhythm
|
|
760
|
+
- hook posture and opening moves
|
|
761
|
+
- vocabulary and recurring phrases
|
|
762
|
+
- formatting habits: bullets, numbering, equations, parentheticals, spacing
|
|
763
|
+
- proof style: story, metric, teardown, confession, field guide, challenge
|
|
764
|
+
- close style: command, reflection, CTA, punchline, or open loop
|
|
765
|
+
- factual boundaries that must come from Christian/Sellable
|
|
766
|
+
6. Assume and role-play the person's public LinkedIn voice for a private
|
|
767
|
+
synthesis variant. This means adopting their likely length, vocabulary,
|
|
768
|
+
hook tension, pacing, section shape, directness, humor level, proof style,
|
|
769
|
+
formatting, and editorial instincts.
|
|
770
|
+
7. Write the complete post that this creator would likely write from the user's
|
|
771
|
+
selected premise and context. Do not compress it into a short generic draft.
|
|
772
|
+
8. Identify what the final synthesis should steal and what it must drop.
|
|
773
|
+
9. Keep factual claims grounded in the user's context. Do not invent user proof.
|
|
774
|
+
|
|
775
|
+
Each configured person must receive a full person-specific variant. Do not
|
|
744
776
|
summarize the group as a single "GTM influencers" research pass. The later
|
|
745
777
|
drafting stage should be able to compare how Alex, Zayd, Tas, Anthony, or any
|
|
746
|
-
other configured person would
|
|
747
|
-
|
|
778
|
+
other configured person would actually write the same Christian idea, then
|
|
779
|
+
combine the strongest pieces.
|
|
780
|
+
|
|
781
|
+
If a person's recent posts are weak or off-topic, still return a packet with
|
|
782
|
+
`worker_status: weak`, the reviewed post count, a weaker voice variant if
|
|
783
|
+
possible, confidence gaps, and a clear reason the person should not strongly
|
|
784
|
+
influence the final synthesis. If the profile or posts cannot be fetched because
|
|
785
|
+
of a tool failure, record `worker_status: retry_needed` and do not allow a
|
|
786
|
+
`ready` draft.
|
|
748
787
|
|
|
749
788
|
Worker output:
|
|
750
789
|
|
|
751
790
|
```text
|
|
752
|
-
Thought leader
|
|
791
|
+
Thought leader voice variant:
|
|
753
792
|
person:
|
|
754
793
|
profile_url:
|
|
755
|
-
|
|
794
|
+
worker_id_or_label:
|
|
795
|
+
worker_status: pass | weak | retry_needed | blocked
|
|
796
|
+
recent_posts_sampled:
|
|
756
797
|
follower_count: <number | unavailable>
|
|
757
798
|
normalization_confidence: high | medium | low
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
first_3_line_preview:
|
|
765
|
-
hook_mechanics:
|
|
766
|
-
body_mechanics:
|
|
767
|
-
sentence_or_rhythm_moves:
|
|
768
|
-
forbidden_borrowing:
|
|
769
|
-
adapted_direction:
|
|
770
|
-
inspiration_adapter:
|
|
771
|
-
voice_layer: Christian/Sellable
|
|
772
|
-
hook_shape:
|
|
773
|
-
body_shape:
|
|
774
|
-
proof_slots_needed:
|
|
775
|
-
why_it_might_win:
|
|
776
|
-
why_it_might_fail:
|
|
777
|
-
rejected_examples:
|
|
799
|
+
voice_model: [max 8 bullets covering length, rhythm, vocabulary, formatting, proof style, close]
|
|
800
|
+
hook_options: [max 3]
|
|
801
|
+
post_variant: <complete post in the creator's inferred voice and representative length>
|
|
802
|
+
steal_for_final: [max 5 bullets]
|
|
803
|
+
drop_for_final: [max 5 bullets]
|
|
804
|
+
source_urls_sampled: [max 3]
|
|
778
805
|
confidence_gaps:
|
|
779
806
|
```
|
|
780
807
|
|
|
781
|
-
|
|
782
|
-
|
|
808
|
+
The worker may call the private draft "in <person>'s voice" because that is the
|
|
809
|
+
role-play job. The orchestrator must not claim the creator authored it, must not
|
|
810
|
+
copy exact outside wording into the final, and must ground final claims in
|
|
811
|
+
Christian/Sellable context.
|
|
783
812
|
|
|
784
813
|
## Blocked States
|
|
785
814
|
|
|
@@ -74,10 +74,13 @@ Hook research files must preserve:
|
|
|
74
74
|
- rendered preview records for kept source hooks and adapted hook blocks,
|
|
75
75
|
including literal mobile/desktop preview blocks and whether the first-screen
|
|
76
76
|
promise is visible
|
|
77
|
-
- thought leader
|
|
78
|
-
|
|
79
|
-
posts
|
|
80
|
-
|
|
77
|
+
- thought leader voice variants from the configured active influencer list or
|
|
78
|
+
supplied named subset, including worker status, profile URL/handle, recent
|
|
79
|
+
posts sampled, inferred voice model, representative-length role-played post
|
|
80
|
+
variant, source URLs sampled, steal/drop notes, factual risk notes,
|
|
81
|
+
`workerExecutionMode`, expected active influencer count, actual variant count,
|
|
82
|
+
missing variants, weak variants, and background worker IDs or labels when
|
|
83
|
+
available
|
|
81
84
|
- source-message outlines for keeper posts, preserving source paragraph order
|
|
82
85
|
and branching each paragraph, line, or phrase into high-level goal, reader
|
|
83
86
|
effect, reusable move, and adaptation guard without reproducing the full
|
|
@@ -104,9 +107,11 @@ Draft files must preserve:
|
|
|
104
107
|
- draft body
|
|
105
108
|
- source-message outline for any outside post being adapted, when the draft's
|
|
106
109
|
body shape was learned from a specific source post
|
|
107
|
-
- thought leader
|
|
108
|
-
|
|
109
|
-
|
|
110
|
+
- thought leader voice variant lab by default, including voice models, variants
|
|
111
|
+
considered, selected synthesis ingredients, final Christian/Sellable voice,
|
|
112
|
+
style-simulation risk, active configured influencer list, expected-vs-actual
|
|
113
|
+
variant counts, `workerExecutionMode`, background worker IDs or labels, and
|
|
114
|
+
skipped/opt-out reason when omitted
|
|
110
115
|
- pre-draft narrative outline: hierarchical `I.`, `A.`, `i.` outline covering
|
|
111
116
|
hook debt, thesis, reader, core mechanism, definitions, proof claims,
|
|
112
117
|
working body patterns adapted, narrative beats, mobile scan path, body
|
|
@@ -334,31 +334,59 @@ If `selectedAngle` is missing, if the audience tension is only a generic label
|
|
|
334
334
|
like "founders want growth," or if `credibleWhyUs` depends on borrowed proof
|
|
335
335
|
from another creator, save as `needs_revision`.
|
|
336
336
|
|
|
337
|
-
## Thought Leader
|
|
337
|
+
## Thought Leader Voice Variant Audit
|
|
338
338
|
|
|
339
339
|
For draft-producing create-post flows, validate the configured thought-leader
|
|
340
|
-
|
|
341
|
-
reason. When thought leaders or creators were used, validate that
|
|
342
|
-
|
|
340
|
+
voice variant lab by default. If it was skipped, record the explicit opt-out
|
|
341
|
+
reason. When thought leaders or creators were used, validate that background
|
|
342
|
+
workers produced complete role-play variants before final prose was synthesized.
|
|
343
|
+
|
|
344
|
+
This audit is a ready-status gate. It is not enough to mention that creators
|
|
345
|
+
were reviewed. The receipt must prove that the configured influencer workflow
|
|
346
|
+
ran before prose was drafted.
|
|
343
347
|
|
|
344
348
|
Record:
|
|
345
349
|
|
|
350
|
+
- `activeInfluencerSource`: `discovery/influencers.md` | named subset | user
|
|
351
|
+
opt-out
|
|
352
|
+
- `expectedActiveInfluencerCount`
|
|
353
|
+
- `actualVoiceVariantCount`
|
|
354
|
+
- `missingVoiceVariants`
|
|
355
|
+
- `weakVoiceVariants`
|
|
356
|
+
- `workerExecutionMode`: `background_agents` | `sequential_fallback`
|
|
357
|
+
- `backgroundWorkerIds`: worker IDs or labels when available
|
|
346
358
|
- `thoughtLeaderList`: names and profile URLs or handles
|
|
347
|
-
- `
|
|
348
|
-
|
|
349
|
-
|
|
359
|
+
- `voiceModels`: inferred length, rhythm, vocabulary, formatting, proof style,
|
|
360
|
+
and close style per person
|
|
361
|
+
- `voiceVariants`: one representative-length role-played post per person, or
|
|
362
|
+
`not_available` with reason
|
|
350
363
|
- `normalizationConfidence`: high | medium | low
|
|
351
|
-
- `
|
|
352
|
-
- `
|
|
353
|
-
- `forbiddenBorrowingAvoided`:
|
|
354
|
-
status, and
|
|
355
|
-
- `
|
|
356
|
-
- `
|
|
357
|
-
- `
|
|
358
|
-
|
|
359
|
-
Save as `needs_revision` when a draft
|
|
360
|
-
|
|
361
|
-
audience win without any
|
|
364
|
+
- `selectedSynthesisIngredients`: hooks, body moves, proof order, rhythm, close
|
|
365
|
+
- `finalVoice`: usually `Christian/Sellable`
|
|
366
|
+
- `forbiddenBorrowingAvoided`: exact outside wording, proof, jokes, personal
|
|
367
|
+
stories, status, and fake user facts avoided
|
|
368
|
+
- `voiceVariantsGeneratedBeforeFinalProse`: yes | no
|
|
369
|
+
- `selectedSynthesis`: what won and why
|
|
370
|
+
- `styleSimulationRisk`: pass | needs_revision | blocked
|
|
371
|
+
|
|
372
|
+
Save as `needs_revision` when a final draft copies exact outside wording,
|
|
373
|
+
borrows another creator's proof/status as if it were the user's, invents user
|
|
374
|
+
facts, or lets a creator with a giant audience win without any
|
|
375
|
+
confidence-adjusted reason.
|
|
376
|
+
|
|
377
|
+
Save as `needs_revision` when `actualVoiceVariantCount` is lower than
|
|
378
|
+
`expectedActiveInfluencerCount`, when the active configured list was not loaded,
|
|
379
|
+
when variants are replaced by a generic influencer summary, or when voice
|
|
380
|
+
variants were generated after final prose instead of before final prose. Return
|
|
381
|
+
`retry-needed` when a tool/package/search failure prevents fetching configured
|
|
382
|
+
profiles or posts.
|
|
383
|
+
Only mark `thought_leader_adaptation: not_used` when the user explicitly opted
|
|
384
|
+
out before drafting.
|
|
385
|
+
|
|
386
|
+
Save as `needs_revision` when the host supports background agents but the
|
|
387
|
+
configured influencers were processed sequentially without a recorded fallback
|
|
388
|
+
reason. The default expected value is `workerExecutionMode:
|
|
389
|
+
background_agents`.
|
|
362
390
|
|
|
363
391
|
## LinkedIn Preview Audit
|
|
364
392
|
|