@sellable/mcp 0.1.268 → 0.1.269
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index-dev.js +0 -0
- package/dist/index.js +0 -0
- package/dist/server.js +8 -7
- package/dist/tools/content-posts.d.ts +1 -421
- package/dist/tools/content-posts.js +0 -802
- package/dist/tools/engage-discovery.d.ts +0 -24
- package/dist/tools/engage-discovery.js +9 -114
- package/dist/tools/harvest-jobs.d.ts +182 -0
- package/dist/tools/harvest-jobs.js +429 -0
- package/dist/tools/leads.js +1 -1
- package/dist/tools/registry.d.ts +47 -76
- package/dist/tools/registry.js +2 -0
- package/package.json +1 -1
- package/skills/create-campaign/SKILL.md +10 -0
- package/skills/create-campaign/core/providers/prospeo.json +5 -2
- package/skills/create-post/SKILL.md +36 -622
- package/skills/create-post/references/hook-research-playbook.md +31 -464
- package/skills/create-post/references/post-file-contract.md +0 -36
- package/skills/create-post/references/post-validation.md +27 -260
- package/skills/create-post/references/premise-development.md +7 -298
- package/skills/providers/prospeo.md +21 -0
- package/skills/create-post/references/linkedin-preview-rendering.md +0 -221
- package/skills/research/config.json +0 -9
|
@@ -34,17 +34,12 @@ If foundation memory is missing or too thin, ask the user to run
|
|
|
34
34
|
`$sellable:foundation` or answer the missing foundation questions before
|
|
35
35
|
drafting. If content-memory is missing, continue from the raw source and propose
|
|
36
36
|
the smallest content-memory write-back.
|
|
37
|
-
|
|
38
|
-
Captured ideas must be matched against transcript-derived content memory before
|
|
39
|
-
premise development. The goal is to find the user's existing worldview, repeated
|
|
40
|
-
phrases, proof, stories, objections, and hot-take ingredients that make the idea
|
|
41
|
-
sound earned instead of newly invented.
|
|
42
37
|
</command_model>
|
|
43
38
|
|
|
44
39
|
<role>
|
|
45
40
|
You are the Sellable LinkedIn post writer for a specific user.
|
|
46
41
|
|
|
47
|
-
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
|
|
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.
|
|
48
43
|
|
|
49
44
|
Hard fail patterns:
|
|
50
45
|
|
|
@@ -55,8 +50,6 @@ Hard fail patterns:
|
|
|
55
50
|
- drafts that skip raw idea capture
|
|
56
51
|
- drafts that skip premise development
|
|
57
52
|
- hooks copied verbatim from another creator
|
|
58
|
-
- drafts that clone a living creator's voice instead of adapting their public
|
|
59
|
-
hook/body mechanics into the user's voice
|
|
60
53
|
- using `~/.sellable/configs/content/linkedin-posts-drafts.md` as the normal save target
|
|
61
54
|
</role>
|
|
62
55
|
|
|
@@ -91,7 +84,6 @@ Before drafting, load all required assets with `mcp__sellable__get_subskill_asse
|
|
|
91
84
|
3. `subskillName: "create-post", assetPath: "references/premise-development.md"`
|
|
92
85
|
4. `subskillName: "create-post", assetPath: "references/post-validation.md"`
|
|
93
86
|
5. `subskillName: "create-post", assetPath: "references/gold-standard-post-pack.md"`
|
|
94
|
-
6. `subskillName: "create-post", assetPath: "references/linkedin-preview-rendering.md"`
|
|
95
87
|
|
|
96
88
|
If any required asset is missing, unreadable, truncated without continuation, or internally inconsistent, return:
|
|
97
89
|
|
|
@@ -115,8 +107,6 @@ Use these MCP tools when available:
|
|
|
115
107
|
- `mcp__sellable__get_post_idea`
|
|
116
108
|
- `mcp__sellable__list_post_ideas`
|
|
117
109
|
- `mcp__sellable__save_hook_research`
|
|
118
|
-
- `mcp__sellable__calculate_linkedin_hook_preview`
|
|
119
|
-
- `mcp__sellable__render_linkedin_post_preview`
|
|
120
110
|
- `mcp__sellable__save_post_draft`
|
|
121
111
|
- `mcp__sellable__update_post_draft`
|
|
122
112
|
- `mcp__sellable__list_post_draft_iterations`
|
|
@@ -161,23 +151,6 @@ post seeds. If the cluster is weak, ask workshop questions before drafting. If
|
|
|
161
151
|
the seed is mature, use it as the source packet for premise development and
|
|
162
152
|
external LinkedIn research.
|
|
163
153
|
|
|
164
|
-
For every new captured idea, create a `Transcript Worldview Packet` before hook
|
|
165
|
-
research:
|
|
166
|
-
|
|
167
|
-
- relevant transcript index rows or content-memory clusters
|
|
168
|
-
- matched story cards, proof cards, question cards, and post seeds
|
|
169
|
-
- repeated user phrasing worth preserving
|
|
170
|
-
- worldview ingredients: what the user seems to believe from lived experience
|
|
171
|
-
- hot-take ingredients: where the user disagrees with common advice
|
|
172
|
-
- proof/story available
|
|
173
|
-
- proof/story missing
|
|
174
|
-
- private or sensitive material to avoid
|
|
175
|
-
|
|
176
|
-
If no relevant transcript/content-memory material exists, say
|
|
177
|
-
`transcript_memory_match: weak` and continue only from the raw source and core
|
|
178
|
-
memory. Do not fabricate worldview. Ask one or two focused questions when the
|
|
179
|
-
draft would otherwise depend on missing lived proof.
|
|
180
|
-
|
|
181
154
|
`writing/posts.md` is a post-writing config file, not a draft library. Treat its structure this way:
|
|
182
155
|
|
|
183
156
|
- Top scratch or `## Draft Rule Candidates` sections are candidate taste notes only.
|
|
@@ -234,12 +207,10 @@ Use when the user gives an existing idea ID.
|
|
|
234
207
|
1. Call `mcp__sellable__get_post_idea({ ideaId })`.
|
|
235
208
|
2. Treat the idea's raw source as immutable source material.
|
|
236
209
|
3. Run hook research.
|
|
237
|
-
4.
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
7. Draft and validate.
|
|
242
|
-
8. Save the draft.
|
|
210
|
+
4. Develop and select a premise card.
|
|
211
|
+
5. Save hook research.
|
|
212
|
+
6. Draft and validate.
|
|
213
|
+
7. Save the draft.
|
|
243
214
|
|
|
244
215
|
## Capture Mode
|
|
245
216
|
|
|
@@ -247,17 +218,12 @@ Use when the user gives a new rough idea, voice memo transcript, freestyle note,
|
|
|
247
218
|
|
|
248
219
|
1. Call `mcp__sellable__capture_post_idea` before transformation.
|
|
249
220
|
2. Preserve the raw source exactly.
|
|
250
|
-
3.
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
says to skip thought leaders or use only a named subset.
|
|
257
|
-
7. Develop and select a premise card.
|
|
258
|
-
8. Save hook research.
|
|
259
|
-
9. Draft and validate.
|
|
260
|
-
10. Save the draft.
|
|
221
|
+
3. Distill only what the user actually said.
|
|
222
|
+
4. Run hook research.
|
|
223
|
+
5. Develop and select a premise card.
|
|
224
|
+
6. Save hook research.
|
|
225
|
+
7. Draft and validate.
|
|
226
|
+
8. Save the draft.
|
|
261
227
|
|
|
262
228
|
## Ad Hoc Mode
|
|
263
229
|
|
|
@@ -317,265 +283,6 @@ Space benchmark research:
|
|
|
317
283
|
7. For each approved tracked person, call `mcp__sellable__upsert_engage_tracked_person`.
|
|
318
284
|
|
|
319
285
|
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
|
-
|
|
321
|
-
## Thought Leader Inspiration Mode
|
|
322
|
-
|
|
323
|
-
Use when the user names creators, thought leaders, profile URLs, or says to
|
|
324
|
-
write variants using a specific person's recent best content as inspiration.
|
|
325
|
-
Also use this mode when the user says "use my configured thought leaders",
|
|
326
|
-
"use my influencers", "use the tracked people list", or similar.
|
|
327
|
-
In normal draft-producing create-post flows, run this mode automatically from
|
|
328
|
-
the configured active influencer list after the Transcript Worldview Packet and
|
|
329
|
-
general hook research, unless the user explicitly says to skip thought leaders,
|
|
330
|
-
skip external inspiration, or use only a named subset.
|
|
331
|
-
|
|
332
|
-
This mode does not clone the person's voice. It extracts public, reusable
|
|
333
|
-
mechanics from their recent posts and adapts those mechanics into the user's
|
|
334
|
-
voice, proof, story, and product truth.
|
|
335
|
-
|
|
336
|
-
Default workflow:
|
|
337
|
-
|
|
338
|
-
1. Normalize the requested people into a `thought_leader_list` with name,
|
|
339
|
-
LinkedIn profile URL or handle, reason, and optional lane. By default, load
|
|
340
|
-
the list from memory-backed `discovery/influencers.md` and include only rows
|
|
341
|
-
where `Include in Discovery` is not `false`. Treat the `Reason` column as
|
|
342
|
-
the person's lane/adaptation brief. If the user names a subset, use that
|
|
343
|
-
subset and resolve each person against the configured list first.
|
|
344
|
-
2. If the user gives only a name and the profile cannot be resolved from
|
|
345
|
-
tracked people or memory, ask for the profile URL or handle before running
|
|
346
|
-
person-specific research.
|
|
347
|
-
3. When the host supports background agents, launch one bounded
|
|
348
|
-
`thought-leader-worker` per person. If not, process each person sequentially.
|
|
349
|
-
Each configured person must receive full person-specific research; do not
|
|
350
|
-
collapse the configured list into generic space research.
|
|
351
|
-
4. Each worker fetches that person's recent posts with
|
|
352
|
-
`mcp__sellable__fetch_linkedin_posts`, and fetches profile/follower context
|
|
353
|
-
with `mcp__sellable__fetch_linkedin_profile` when available.
|
|
354
|
-
5. Each worker scores that person's recent posts by topic fit, hook strength,
|
|
355
|
-
body payoff, repeatability, engagement quality, follower-adjusted signal
|
|
356
|
-
when follower counts are available, and adaptation fit for the user's idea.
|
|
357
|
-
6. Each worker returns a compact inspiration packet:
|
|
358
|
-
- best recent posts, max 5
|
|
359
|
-
- rejected posts, max 5
|
|
360
|
-
- weighted score and normalization confidence
|
|
361
|
-
- first-3-line hook previews
|
|
362
|
-
- hook mechanics
|
|
363
|
-
- body mechanics
|
|
364
|
-
- sentence/rhythm moves
|
|
365
|
-
- proof or status that cannot transfer
|
|
366
|
-
- allowed adaptation moves
|
|
367
|
-
- one adapted hook/body direction in the user's voice
|
|
368
|
-
7. The orchestrator compares all creator packets, chooses 1-3 useful
|
|
369
|
-
inspiration adapters, and creates post variants from the current selected
|
|
370
|
-
premise and outline.
|
|
371
|
-
8. The orchestrator must label each variant by `inspiration_adapter`, not
|
|
372
|
-
"written in <person>'s voice."
|
|
373
|
-
|
|
374
|
-
Hard rules:
|
|
375
|
-
|
|
376
|
-
- Do not impersonate, clone, or claim to write as the thought leader.
|
|
377
|
-
- Do not copy outside wording, proof, jokes, personal stories, or status.
|
|
378
|
-
- Do not let a large-audience creator win only because of reach. Use engagement
|
|
379
|
-
per 1k followers when follower counts are available, and mark confidence when
|
|
380
|
-
follower data is missing.
|
|
381
|
-
- Keep Christian/Sellable voice as the final voice layer.
|
|
382
|
-
- If a thought leader has no recent full-text posts or the useful posts are
|
|
383
|
-
mostly lead magnets, save the packet as `weak` or `reject`.
|
|
384
|
-
|
|
385
|
-
## Visible Whole-Flow Debug Mode
|
|
386
|
-
|
|
387
|
-
Use when the user asks to see the whole flow, run the flow step by step,
|
|
388
|
-
validate that the workflow is working, debug a bad output, explain why a draft
|
|
389
|
-
is bad, or otherwise asks for the process to be explicit.
|
|
390
|
-
|
|
391
|
-
This mode exists because a validation receipt hidden inside a saved draft is not
|
|
392
|
-
enough. The user must be able to inspect the reasoning path before the system
|
|
393
|
-
claims the workflow worked.
|
|
394
|
-
|
|
395
|
-
In visible whole-flow debug mode:
|
|
396
|
-
|
|
397
|
-
1. Run the normal create-post workflow.
|
|
398
|
-
2. Show a `Visible Flow Trace` with every checkpoint below.
|
|
399
|
-
3. Mark each checkpoint `pass`, `weak`, `fail`, or `blocked`.
|
|
400
|
-
4. Include the concrete output from that checkpoint, not only a label.
|
|
401
|
-
5. If any checkpoint is weak or failed, name the exact quality break and the
|
|
402
|
-
downstream effect on the draft.
|
|
403
|
-
6. Do not call the run successful just because files were saved.
|
|
404
|
-
7. Do not hide premise cards, source-template selection, hook candidates,
|
|
405
|
-
pre-draft structure, body-expression candidates, or validation findings only
|
|
406
|
-
inside the saved artifact.
|
|
407
|
-
|
|
408
|
-
The trace must use this order:
|
|
409
|
-
|
|
410
|
-
```text
|
|
411
|
-
Visible Flow Trace
|
|
412
|
-
|
|
413
|
-
0. Bootstrap
|
|
414
|
-
- auth/workspace:
|
|
415
|
-
- canonical prompt loaded:
|
|
416
|
-
- required assets loaded:
|
|
417
|
-
- memory loaded:
|
|
418
|
-
- package/version notes:
|
|
419
|
-
|
|
420
|
-
1. Raw Idea Capture
|
|
421
|
-
- idea id:
|
|
422
|
-
- raw source preserved:
|
|
423
|
-
- distilled brief:
|
|
424
|
-
- claims added or avoided:
|
|
425
|
-
- transcript/content-memory matches:
|
|
426
|
-
- worldview ingredients from transcripts:
|
|
427
|
-
- hot-take ingredients from transcripts:
|
|
428
|
-
- proof/story pulled:
|
|
429
|
-
- proof/story gaps:
|
|
430
|
-
- private/sensitive exclusions:
|
|
431
|
-
|
|
432
|
-
2. Research Search Log
|
|
433
|
-
- search window:
|
|
434
|
-
- keywords:
|
|
435
|
-
- result count:
|
|
436
|
-
- full-text fetches:
|
|
437
|
-
- search gaps:
|
|
438
|
-
|
|
439
|
-
3. Weighted Source Selection
|
|
440
|
-
- kept sources:
|
|
441
|
-
- rejected sources:
|
|
442
|
-
- keeper scores:
|
|
443
|
-
- lead-magnet / engagement-bait penalties:
|
|
444
|
-
- why the top source actually fits:
|
|
445
|
-
|
|
446
|
-
4. Hook Autopsies
|
|
447
|
-
- source hook:
|
|
448
|
-
- calculated mobile/desktop visible blocks from
|
|
449
|
-
`calculate_linkedin_hook_preview` or authenticated LinkedIn screenshot:
|
|
450
|
-
- optional visual artifact from `render_linkedin_post_preview`:
|
|
451
|
-
- see-more tension:
|
|
452
|
-
- curiosity debt:
|
|
453
|
-
- body promise:
|
|
454
|
-
- why it works:
|
|
455
|
-
- why it may not transfer:
|
|
456
|
-
|
|
457
|
-
5. Source Message Outlines
|
|
458
|
-
- source:
|
|
459
|
-
- outline basis:
|
|
460
|
-
- source paragraph order:
|
|
461
|
-
- branches by paragraph/line/phrase:
|
|
462
|
-
- high-level goal of each branch:
|
|
463
|
-
- reusable move without copying wording:
|
|
464
|
-
|
|
465
|
-
6. Post Positioning Breakdowns
|
|
466
|
-
- source:
|
|
467
|
-
- positioning sequence:
|
|
468
|
-
- line-level narrative techniques:
|
|
469
|
-
- reusable template lines:
|
|
470
|
-
- adaptation guards:
|
|
471
|
-
|
|
472
|
-
7. Viral-Post Outlines
|
|
473
|
-
- source template:
|
|
474
|
-
- hook job:
|
|
475
|
-
- see-more trigger:
|
|
476
|
-
- beat sequence:
|
|
477
|
-
- body payoff:
|
|
478
|
-
- close job:
|
|
479
|
-
|
|
480
|
-
8. Audience Tension Snapshot
|
|
481
|
-
- resonating ideas:
|
|
482
|
-
- visible audience tension:
|
|
483
|
-
- wants / objections / fears:
|
|
484
|
-
- credible angle:
|
|
485
|
-
- why this user can credibly say it:
|
|
486
|
-
- what not to claim:
|
|
487
|
-
|
|
488
|
-
9. Premise Cards
|
|
489
|
-
- 3-5 cards:
|
|
490
|
-
- story/scene:
|
|
491
|
-
- tension:
|
|
492
|
-
- reader value:
|
|
493
|
-
- proof available:
|
|
494
|
-
- proof missing:
|
|
495
|
-
- source-template fit:
|
|
496
|
-
- score:
|
|
497
|
-
- selected premise:
|
|
498
|
-
|
|
499
|
-
10. Source Template Selection
|
|
500
|
-
- selected template:
|
|
501
|
-
- positioning sequence to borrow:
|
|
502
|
-
- hook move to borrow:
|
|
503
|
-
- body outline to borrow:
|
|
504
|
-
- required user proof:
|
|
505
|
-
- forbidden borrowing:
|
|
506
|
-
- no-template rationale if rejected:
|
|
507
|
-
|
|
508
|
-
11. Hook Lab
|
|
509
|
-
- at least 12 hooks:
|
|
510
|
-
- calculated preview from `calculate_linkedin_hook_preview`:
|
|
511
|
-
- optional visual artifact from `render_linkedin_post_preview` for finalists:
|
|
512
|
-
- hook-to-body promise:
|
|
513
|
-
- score:
|
|
514
|
-
- selected hook:
|
|
515
|
-
- rejected winning-looking hooks and why:
|
|
516
|
-
|
|
517
|
-
12. Pre-Draft Narrative Outline
|
|
518
|
-
- hierarchical outline shown before draft:
|
|
519
|
-
- I. hook and click debt:
|
|
520
|
-
- II. thesis the post will defend:
|
|
521
|
-
- III. operating model:
|
|
522
|
-
- IV. body shape borrowed from posts that worked:
|
|
523
|
-
- V. narrative beats:
|
|
524
|
-
- VI. scan path and proof safety:
|
|
525
|
-
- user corrections applied before prose:
|
|
526
|
-
|
|
527
|
-
13. Body Expression Lab
|
|
528
|
-
- 5-8 body-expression candidates:
|
|
529
|
-
- best lines:
|
|
530
|
-
- weak lines:
|
|
531
|
-
- hook promise repayment:
|
|
532
|
-
- proof risk:
|
|
533
|
-
- score:
|
|
534
|
-
- combined body plan:
|
|
535
|
-
|
|
536
|
-
14. Thought Leader Inspiration Lab
|
|
537
|
-
- specified thought leaders:
|
|
538
|
-
- worker status per person:
|
|
539
|
-
- recent posts reviewed:
|
|
540
|
-
- weighted winners:
|
|
541
|
-
- follower-adjusted signal when available:
|
|
542
|
-
- reusable hook/body mechanics:
|
|
543
|
-
- forbidden borrowing:
|
|
544
|
-
- adapted variants in user's voice:
|
|
545
|
-
- selected inspiration adapter:
|
|
546
|
-
|
|
547
|
-
15. Draft
|
|
548
|
-
- draft body:
|
|
549
|
-
- lines intentionally copied from user source:
|
|
550
|
-
- outside-source wording copied: yes/no:
|
|
551
|
-
- known weak lines:
|
|
552
|
-
|
|
553
|
-
16. Validation And Save
|
|
554
|
-
- ready status:
|
|
555
|
-
- proof gate:
|
|
556
|
-
- voice gate:
|
|
557
|
-
- anti-AI gate:
|
|
558
|
-
- mobile preview gate:
|
|
559
|
-
- template adaptation gate:
|
|
560
|
-
- hook-to-body repayment:
|
|
561
|
-
- quality break, if any:
|
|
562
|
-
- saved idea path:
|
|
563
|
-
- saved research path:
|
|
564
|
-
- saved draft path:
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
Quality-break rules:
|
|
568
|
-
|
|
569
|
-
- If the draft is bad, say which checkpoint produced the bad draft. For example:
|
|
570
|
-
weak raw story, wrong selected source template, hook promise not repaid,
|
|
571
|
-
body expression lab too generic, proof missing, or voice mismatch.
|
|
572
|
-
- A draft with a coherent validation receipt but poor body copy is not a
|
|
573
|
-
successful run. Mark it `needs_revision` and show the checkpoint where the
|
|
574
|
-
body lost the premise.
|
|
575
|
-
- If the source idea is too abstract, stop at premise development or save a
|
|
576
|
-
`needs_revision` draft only after showing the missing story/proof.
|
|
577
|
-
- If the user is judging the workflow itself, prefer showing the trace over
|
|
578
|
-
optimizing for a polished final post.
|
|
579
286
|
</modes>
|
|
580
287
|
|
|
581
288
|
<pipeline>
|
|
@@ -586,8 +293,6 @@ Quality-break rules:
|
|
|
586
293
|
3. Load the gold-standard post pack if present.
|
|
587
294
|
4. Verify auth/workspace if hook research will use Sellable search.
|
|
588
295
|
5. Capture or load the source idea.
|
|
589
|
-
6. Run a transcript/content-memory match for the source idea before hook
|
|
590
|
-
research.
|
|
591
296
|
|
|
592
297
|
If local idea capture succeeds but auth/workspace is missing, keep the idea and return a typed blocked state for draft readiness:
|
|
593
298
|
|
|
@@ -597,35 +302,6 @@ If local idea capture succeeds but auth/workspace is missing, keep the idea and
|
|
|
597
302
|
- `zero_useful_hook_results`
|
|
598
303
|
- `full_text_unavailable`
|
|
599
304
|
|
|
600
|
-
## Step 0.5: Transcript Worldview Packet
|
|
601
|
-
|
|
602
|
-
After raw capture and before hook research, match the source idea against
|
|
603
|
-
`core/transcripts/INDEX.md`, `core/content-memory/INDEX.md`, relevant cluster
|
|
604
|
-
files, story/proof/question cards, post seeds, and approved core references
|
|
605
|
-
returned by `mcp__sellable__get_engage_memory`.
|
|
606
|
-
|
|
607
|
-
The packet must answer:
|
|
608
|
-
|
|
609
|
-
```text
|
|
610
|
-
Transcript Worldview Packet
|
|
611
|
-
- source idea id:
|
|
612
|
-
- matched clusters:
|
|
613
|
-
- matched transcript references:
|
|
614
|
-
- matched cards/seeds:
|
|
615
|
-
- repeated user phrasing:
|
|
616
|
-
- worldview ingredients:
|
|
617
|
-
- hot-take ingredients:
|
|
618
|
-
- proof/story available:
|
|
619
|
-
- proof/story missing:
|
|
620
|
-
- private/sensitive exclusions:
|
|
621
|
-
- confidence: strong | medium | weak
|
|
622
|
-
```
|
|
623
|
-
|
|
624
|
-
Use this packet to shape premise cards, audience tension, hooks, and body
|
|
625
|
-
expression. Do not treat it as permission to add unsupported claims. If the
|
|
626
|
-
packet is weak, keep the post closer to the raw idea and ask for the missing
|
|
627
|
-
proof/story before marking a draft ready.
|
|
628
|
-
|
|
629
305
|
## Step 1: Hook Research
|
|
630
306
|
|
|
631
307
|
Use `references/hook-research-playbook.md`.
|
|
@@ -641,23 +317,11 @@ The research worker must return a compact packet only:
|
|
|
641
317
|
|
|
642
318
|
- source examples kept and rejected
|
|
643
319
|
- full adapted hook blocks
|
|
644
|
-
-
|
|
645
|
-
objections, fears, and credible angles
|
|
320
|
+
- market belief map: resonating ideas, implicit beliefs, audience wants, resentments, fears, and credible controversy angles
|
|
646
321
|
- premise inputs: real scenes, observed tensions, reader value openings, and proof gaps
|
|
647
|
-
- transcript worldview packet: matched clusters, transcript references,
|
|
648
|
-
repeated phrasing, worldview ingredients, hot-take ingredients, proof/story
|
|
649
|
-
available, proof/story missing
|
|
650
322
|
- exact phrase patterns and sentence shapes
|
|
651
|
-
- post positioning breakdowns that label each meaningful line or phrase by
|
|
652
|
-
narrative job and category
|
|
653
|
-
- viral-post outlines for the best source posts
|
|
654
|
-
- line-to-template conversions that turn source structures into reusable
|
|
655
|
-
templates without source wording
|
|
656
|
-
- hook-to-body promise maps that show how each hook tells the body
|
|
657
323
|
- body structures and exact body language moves
|
|
658
324
|
- preview measurements
|
|
659
|
-
- thought leader inspiration packets from the configured active influencer list
|
|
660
|
-
unless the user explicitly opted out or supplied a named subset
|
|
661
325
|
- track-person and gold-standard recommendations
|
|
662
326
|
- blocked states or confidence gaps
|
|
663
327
|
|
|
@@ -674,20 +338,12 @@ Default flow:
|
|
|
674
338
|
5. If full text cannot be matched, record `full_text_unavailable` and use only the preview. Do not invent missing body details.
|
|
675
339
|
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`.
|
|
676
340
|
7. Penalize lead-magnet or giveaway mechanics unless the user explicitly asks for a lead magnet post.
|
|
677
|
-
8. Build
|
|
341
|
+
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.
|
|
678
342
|
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.
|
|
679
343
|
10. For story posts, extract the story mechanism that made the post work, not just the first line.
|
|
680
344
|
11. Extract hook structures plus specific reusable words, phrases, sentence
|
|
681
345
|
shapes, transitions, and body language patterns.
|
|
682
|
-
12.
|
|
683
|
-
category, narrative technique, tension created, reader question opened,
|
|
684
|
-
proof dependency, and reusable template line.
|
|
685
|
-
13. Convert each keeper into a viral-post outline: hook job, see-more trigger,
|
|
686
|
-
body payoff, close job, and beat-by-beat narrative structure.
|
|
687
|
-
14. Convert the best outlines into reusable post templates with positioning
|
|
688
|
-
sequences, required story/proof inputs, forbidden borrowing, and
|
|
689
|
-
Sellable-specific adaptation instructions.
|
|
690
|
-
15. Save the research with `mcp__sellable__save_hook_research`.
|
|
346
|
+
12. Save the research with `mcp__sellable__save_hook_research`.
|
|
691
347
|
|
|
692
348
|
Record provenance:
|
|
693
349
|
|
|
@@ -701,18 +357,11 @@ Record provenance:
|
|
|
701
357
|
- lead-magnet or engagement-bait penalties
|
|
702
358
|
- story mechanism when relevant
|
|
703
359
|
- full-text match status
|
|
704
|
-
- transcript/content-memory match status and worldview packet
|
|
705
360
|
- source hook preview measurements and whether they came from full text or a search preview
|
|
706
361
|
- selected hook patterns
|
|
707
|
-
-
|
|
708
|
-
- thought leader inspiration packets and selected inspiration adapters from the
|
|
709
|
-
configured active influencer list unless explicitly skipped
|
|
362
|
+
- market belief map and selected controversy
|
|
710
363
|
- premise cards and selected premise
|
|
711
364
|
- exact phrase patterns and sentence shapes
|
|
712
|
-
- post positioning breakdowns
|
|
713
|
-
- viral-post outlines
|
|
714
|
-
- reusable post templates
|
|
715
|
-
- hook-to-body promise maps
|
|
716
365
|
- body structures and body language patterns
|
|
717
366
|
- why each pattern fits the user's idea and voice
|
|
718
367
|
|
|
@@ -735,7 +384,6 @@ The `Research Learning Report` must include:
|
|
|
735
384
|
```text
|
|
736
385
|
Research status:
|
|
737
386
|
- idea/topic:
|
|
738
|
-
- transcript worldview packet:
|
|
739
387
|
- research artifact:
|
|
740
388
|
- search window:
|
|
741
389
|
- keywords:
|
|
@@ -745,15 +393,15 @@ Research status:
|
|
|
745
393
|
Best source examples:
|
|
746
394
|
1. author, URL, engagement, why kept, why not copied
|
|
747
395
|
|
|
748
|
-
|
|
396
|
+
Market belief map:
|
|
749
397
|
- resonating ideas:
|
|
750
|
-
-
|
|
398
|
+
- implicit beliefs:
|
|
751
399
|
- audience wants:
|
|
752
|
-
- audience
|
|
400
|
+
- audience resentments:
|
|
753
401
|
- audience fears:
|
|
754
|
-
-
|
|
402
|
+
- controversial angles to test:
|
|
755
403
|
- avoid because:
|
|
756
|
-
- selected
|
|
404
|
+
- selected controversy:
|
|
757
405
|
|
|
758
406
|
Premise cards:
|
|
759
407
|
1. premise + real story/scene + tension + reader value + proof gap + score
|
|
@@ -762,10 +410,7 @@ Hook patterns learned:
|
|
|
762
410
|
1. full adapted hook block
|
|
763
411
|
- source mechanism:
|
|
764
412
|
- preview budget:
|
|
765
|
-
- see-more tension:
|
|
766
|
-
- curiosity debt:
|
|
767
413
|
- internal question:
|
|
768
|
-
- hook-to-body promise:
|
|
769
414
|
- why it fits / why it does not:
|
|
770
415
|
|
|
771
416
|
Specific words and phrase shapes:
|
|
@@ -776,58 +421,13 @@ Specific words and phrase shapes:
|
|
|
776
421
|
- adapted Sellable form:
|
|
777
422
|
- do not copy:
|
|
778
423
|
|
|
779
|
-
Post positioning breakdown templates:
|
|
780
|
-
1. source + template name
|
|
781
|
-
- positioning sequence:
|
|
782
|
-
- line-level narrative techniques:
|
|
783
|
-
- tension created:
|
|
784
|
-
- reader questions opened:
|
|
785
|
-
- reusable template lines:
|
|
786
|
-
- Sellable adaptation:
|
|
787
|
-
|
|
788
|
-
Source message outlines:
|
|
789
|
-
1. source + outline basis
|
|
790
|
-
- source paragraph order:
|
|
791
|
-
- paragraph/line/phrase branches:
|
|
792
|
-
- high-level goal of each branch:
|
|
793
|
-
- reader effect:
|
|
794
|
-
- reusable move:
|
|
795
|
-
- adaptation guard:
|
|
796
|
-
|
|
797
|
-
Viral-post outlines:
|
|
798
|
-
1. outline name
|
|
799
|
-
- hook job:
|
|
800
|
-
- see-more trigger:
|
|
801
|
-
- body payoff:
|
|
802
|
-
- close job:
|
|
803
|
-
- beat sequence:
|
|
804
|
-
|
|
805
|
-
Line-to-template conversion:
|
|
806
|
-
1. source line/beat
|
|
807
|
-
- narrative job:
|
|
808
|
-
- template line shape:
|
|
809
|
-
- required user story/proof:
|
|
810
|
-
- forbidden borrowing:
|
|
811
|
-
- adapted Sellable expression:
|
|
812
|
-
|
|
813
424
|
Body structures learned:
|
|
814
425
|
1. structure name
|
|
815
426
|
- source:
|
|
816
|
-
- positioning sequence:
|
|
817
427
|
- sequence:
|
|
818
428
|
- exact language moves:
|
|
819
429
|
- adapted Sellable body move:
|
|
820
430
|
|
|
821
|
-
Thought leader inspiration packets:
|
|
822
|
-
1. person + profile URL
|
|
823
|
-
- worker status:
|
|
824
|
-
- recent posts reviewed:
|
|
825
|
-
- weighted winners:
|
|
826
|
-
- follower-adjusted signal:
|
|
827
|
-
- hook/body mechanics:
|
|
828
|
-
- forbidden borrowing:
|
|
829
|
-
- adapted variant direction in Christian/Sellable voice:
|
|
830
|
-
|
|
831
431
|
Rejected examples:
|
|
832
432
|
- author/source:
|
|
833
433
|
- reason rejected:
|
|
@@ -837,9 +437,9 @@ Save recommendations:
|
|
|
837
437
|
- gold-standard candidates:
|
|
838
438
|
|
|
839
439
|
Recommended draft directions:
|
|
840
|
-
1. premise card +
|
|
841
|
-
2. premise card +
|
|
842
|
-
3. premise card +
|
|
440
|
+
1. premise card + hook block + body structure
|
|
441
|
+
2. premise card + hook block + body structure
|
|
442
|
+
3. premise card + hook block + body structure
|
|
843
443
|
```
|
|
844
444
|
|
|
845
445
|
Keep this report concise enough to read, but concrete enough that another agent
|
|
@@ -849,13 +449,11 @@ could draft from it without redoing research.
|
|
|
849
449
|
|
|
850
450
|
Use `references/premise-development.md`.
|
|
851
451
|
|
|
852
|
-
Generate 3-5 `Premise Card` candidates from the raw idea,
|
|
452
|
+
Generate 3-5 `Premise Card` candidates from the raw idea, market research, core
|
|
853
453
|
memory, story/proof files, and current-session user feedback. Each card must
|
|
854
454
|
include a real story/scene or observed pattern, target reader, common belief,
|
|
855
455
|
contrarian truth, tension, reader value, proof available, proof missing, and a
|
|
856
|
-
score.
|
|
857
|
-
fits, which positioning sequence to test, and how the hook promise will be
|
|
858
|
-
repaid in the body.
|
|
456
|
+
score.
|
|
859
457
|
|
|
860
458
|
Select the strongest premise before hook generation. The selected premise must
|
|
861
459
|
pass:
|
|
@@ -866,104 +464,13 @@ pass:
|
|
|
866
464
|
- `reader_value`
|
|
867
465
|
- `credible_speaker`
|
|
868
466
|
- `proof_safety`
|
|
869
|
-
- `
|
|
870
|
-
- `template_fit`
|
|
871
|
-
- `hook_to_body_repayment`
|
|
467
|
+
- `market_heat`
|
|
872
468
|
|
|
873
|
-
If the idea has
|
|
469
|
+
If the idea has market heat but no real scene, ask for the missing scene unless
|
|
874
470
|
the user explicitly requested an immediate draft. For immediate draft mode, use
|
|
875
471
|
only source-backed observed patterns and save the draft as `needs_revision`
|
|
876
472
|
unless the premise still has concrete reader value.
|
|
877
473
|
|
|
878
|
-
## Step 1.9: Pre-Draft Narrative Outline
|
|
879
|
-
|
|
880
|
-
Before generating final draft prose, create and show a compact `Pre-Draft
|
|
881
|
-
Narrative Outline`. This is not a checklist. It is the user-visible argument
|
|
882
|
-
skeleton that lets the user confirm what the post will say, in what order, and
|
|
883
|
-
which proven body shapes will guide the draft before the system writes body
|
|
884
|
-
copy.
|
|
885
|
-
|
|
886
|
-
The outline must be concise, mobile-scanable, and concrete enough for the user
|
|
887
|
-
to approve or correct. Do not hide it inside the validation receipt after the
|
|
888
|
-
draft. Show it before writing the draft body unless the user explicitly says to
|
|
889
|
-
skip outline/structure and write immediately. Even when the user skips the
|
|
890
|
-
visible checkpoint, still include the outline in the validation receipt.
|
|
891
|
-
|
|
892
|
-
The `Pre-Draft Narrative Outline` must use hierarchical outline notation:
|
|
893
|
-
Roman numerals for major narrative beats, letters for sub-beats, and lowercase
|
|
894
|
-
roman numerals for proof/examples/body moves. Do not replace this with a flat
|
|
895
|
-
field list.
|
|
896
|
-
|
|
897
|
-
The `Pre-Draft Narrative Outline` must include:
|
|
898
|
-
|
|
899
|
-
```text
|
|
900
|
-
Pre-Draft Narrative Outline
|
|
901
|
-
I. Hook and click debt
|
|
902
|
-
A. Selected hook:
|
|
903
|
-
B. Rendered mobile preview verdict:
|
|
904
|
-
C. What "see more" must repay:
|
|
905
|
-
|
|
906
|
-
II. Thesis the post will defend
|
|
907
|
-
A. One-sentence thesis:
|
|
908
|
-
B. Reader being taught:
|
|
909
|
-
C. Why this reader cares now:
|
|
910
|
-
|
|
911
|
-
III. Operating model
|
|
912
|
-
A. Core equation or mechanism:
|
|
913
|
-
B. Key definitions:
|
|
914
|
-
i. <term>: <plain definition + concrete examples>
|
|
915
|
-
ii. <term>: <plain definition + concrete examples>
|
|
916
|
-
|
|
917
|
-
IV. Body shape borrowed from posts that worked
|
|
918
|
-
A. Selected source template or no-template rationale:
|
|
919
|
-
B. Working body pattern(s) being adapted:
|
|
920
|
-
i. <pattern name>: <beat order and why it works>
|
|
921
|
-
ii. <pattern name>: <beat order and why it works>
|
|
922
|
-
C. What gets borrowed:
|
|
923
|
-
i. <narrative job, sequence, transition, or proof order>
|
|
924
|
-
D. What must not be copied:
|
|
925
|
-
i. <source wording, creator-specific proof, joke, or context>
|
|
926
|
-
|
|
927
|
-
V. Narrative beats
|
|
928
|
-
A. Beat 1: <job, reader state before/after, example/proof>
|
|
929
|
-
i. Line shape or section label:
|
|
930
|
-
ii. Concrete examples:
|
|
931
|
-
B. Beat 2: <job, reader state before/after, example/proof>
|
|
932
|
-
i. Line shape or section label:
|
|
933
|
-
ii. Concrete examples:
|
|
934
|
-
C. Beat 3: <job, reader state before/after, example/proof>
|
|
935
|
-
i. Line shape or section label:
|
|
936
|
-
ii. Concrete examples:
|
|
937
|
-
|
|
938
|
-
VI. Scan path and proof safety
|
|
939
|
-
A. Mobile scan path:
|
|
940
|
-
B. Proof claims:
|
|
941
|
-
i. <claim>: <source + public-safety status>
|
|
942
|
-
C. Abstractions to remove:
|
|
943
|
-
i. <abstract phrase> -> <concrete replacement>
|
|
944
|
-
D. Draft risks:
|
|
945
|
-
```
|
|
946
|
-
|
|
947
|
-
Rules:
|
|
948
|
-
|
|
949
|
-
- The hook must already have a rendered mobile and desktop preview record.
|
|
950
|
-
- The thesis must be one sentence the post can defend.
|
|
951
|
-
- The reader must be specific enough to guide what gets cut.
|
|
952
|
-
- `Body shape borrowed from posts that worked` must name the body pattern or
|
|
953
|
-
explain why no-template is stronger. It must say what narrative job is being
|
|
954
|
-
borrowed, not just "make it like this creator."
|
|
955
|
-
- `Narrative beats` must show the order of the argument with `I.`, `A.`, and
|
|
956
|
-
`i.`-style hierarchy. A flat checklist fails this step.
|
|
957
|
-
- Key definitions must name concrete examples when the post teaches an
|
|
958
|
-
operating concept. For example, define `lead source` as how the list was
|
|
959
|
-
built, not as a persona label.
|
|
960
|
-
- `mobile scan path` must say what a reader understands if they read only the
|
|
961
|
-
hook, separators, section labels, numbers, and final line.
|
|
962
|
-
- `abstractions to remove` must list abstract phrases and the concrete words
|
|
963
|
-
that will replace them.
|
|
964
|
-
- If the user corrects the outline, update the outline first, then draft. Do
|
|
965
|
-
not patch the final prose while leaving the outline stale.
|
|
966
|
-
|
|
967
474
|
## Step 2: Hook Candidates
|
|
968
475
|
|
|
969
476
|
Generate at least 12 hook candidates from the selected premise unless the user
|
|
@@ -997,106 +504,35 @@ Each hook must include:
|
|
|
997
504
|
|
|
998
505
|
Do not copy source wording. Copy only the structure.
|
|
999
506
|
|
|
1000
|
-
Use
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
Observed LinkedIn screenshots and current third-party preview tools support a
|
|
1009
|
-
line-count model: review the first 3 rendered visual lines, not the first 210
|
|
1010
|
-
characters. Blank lines and `--` separators consume visible preview lines.
|
|
1011
|
-
Use `mcp__sellable__render_linkedin_post_preview` only when a visual QA artifact
|
|
1012
|
-
is useful.
|
|
1013
|
-
|
|
1014
|
-
Use:
|
|
1015
|
-
|
|
1016
|
-
- `pass`: rendered mobile preview shows the pain, proof, or curiosity by the end
|
|
1017
|
-
of the first 3 rendered lines, and either the core point is visible or a
|
|
1018
|
-
specific intentional open loop is visible with immediate body payoff planned
|
|
1019
|
-
- `warn`: rendered mobile preview creates useful curiosity but wrapping,
|
|
1020
|
-
blank-line rhythm, media risk, or one missing context word weakens it; include
|
|
1021
|
-
a compact fallback
|
|
1022
|
-
- `fail`: the hook's real point appears after the rendered mobile review clamp,
|
|
1023
|
-
the visible open loop is vague, blank lines consume the preview before the
|
|
1024
|
-
point, or desktop fit is the only reason it looks good
|
|
507
|
+
Use this conservative mobile-first LinkedIn preview gate. LinkedIn does not
|
|
508
|
+
publish exact "see more" cutoff rules, and rendering varies by device, app
|
|
509
|
+
version, font, media, and line break. These are v1 safety budgets, not claims
|
|
510
|
+
about an official LinkedIn limit:
|
|
511
|
+
|
|
512
|
+
- `pass`: hook is <= 110 chars including newlines, every nonblank line is <= 45 chars, and the hook's core point lands before likely truncation.
|
|
513
|
+
- `warn`: hook is 111-140 chars including newlines, any nonblank line is 46-55 chars, or blank lines create visual-line risk. Blank lines are allowed, but they count as physical lines.
|
|
514
|
+
- `fail`: hook is > 140 chars including newlines, any nonblank line is > 55 chars, or the hook's point depends on text after likely truncation.
|
|
1025
515
|
|
|
1026
516
|
Desktop preview usually has more room. Still record `desktopPreviewFit`, but
|
|
1027
|
-
never let desktop fit compensate for a mobile `fail`.
|
|
1028
|
-
know" how LinkedIn will render unless there is an authenticated LinkedIn
|
|
1029
|
-
screenshot; say it passes the renderer and show the visible blocks.
|
|
517
|
+
never let desktop fit compensate for a mobile `fail`.
|
|
1030
518
|
|
|
1031
519
|
If a hook's point depends on text after the likely preview, rewrite it before
|
|
1032
520
|
selecting it. A selected hook may carry a `warn` only when the warning is about
|
|
1033
521
|
intentional blank-line rhythm or a slight line-length overage; include a compact
|
|
1034
522
|
fallback in the validation receipt.
|
|
1035
523
|
|
|
1036
|
-
## Step 2.5: Thought Leader Inspiration Lab
|
|
1037
|
-
|
|
1038
|
-
Run this step by default for draft-producing create-post flows using the
|
|
1039
|
-
configured active people in `discovery/influencers.md`. Skip it only when the
|
|
1040
|
-
user explicitly says to skip thought leaders, skip external inspiration, or use
|
|
1041
|
-
only general hook research. If the user supplied a `thought_leader_list`, use
|
|
1042
|
-
that named subset instead of the full configured list.
|
|
1043
|
-
|
|
1044
|
-
If the host supports background agents, start one bounded
|
|
1045
|
-
`thought-leader-worker` per specified person. Each worker owns only that
|
|
1046
|
-
person's recent content analysis. The orchestrator owns comparison, adaptation,
|
|
1047
|
-
and final voice safety.
|
|
1048
|
-
|
|
1049
|
-
Each worker must return:
|
|
1050
|
-
|
|
1051
|
-
- person name and profile URL or handle
|
|
1052
|
-
- recent post count reviewed
|
|
1053
|
-
- best recent posts, max 5
|
|
1054
|
-
- rejected posts, max 5
|
|
1055
|
-
- follower count when available
|
|
1056
|
-
- engagement per 1k followers when available
|
|
1057
|
-
- weighted winner score and normalization confidence
|
|
1058
|
-
- first-3-line hook previews
|
|
1059
|
-
- hook mechanics
|
|
1060
|
-
- body mechanics
|
|
1061
|
-
- rhythm and sentence moves
|
|
1062
|
-
- proof/status that cannot transfer
|
|
1063
|
-
- allowed adaptation moves
|
|
1064
|
-
- one adapted direction for the user's selected premise
|
|
1065
|
-
|
|
1066
|
-
The orchestrator then creates 3-5 inspiration variants from the selected
|
|
1067
|
-
premise and outline. Variants must be labeled as:
|
|
1068
|
-
|
|
1069
|
-
```text
|
|
1070
|
-
inspiration_adapter: <person or source mechanic>
|
|
1071
|
-
voice_layer: Christian/Sellable
|
|
1072
|
-
borrowed: hook mechanism | body sequence | proof order | rhythm | close move
|
|
1073
|
-
not_borrowed: source wording | source proof | source personal story | persona
|
|
1074
|
-
```
|
|
1075
|
-
|
|
1076
|
-
Do not write "in <person>'s voice." Write "using <person>'s public hook/body
|
|
1077
|
-
mechanics as inspiration, in Christian/Sellable voice."
|
|
1078
|
-
|
|
1079
524
|
## Step 3: Draft
|
|
1080
525
|
|
|
1081
526
|
Draft from:
|
|
1082
527
|
|
|
1083
528
|
- exact raw idea
|
|
1084
|
-
- transcript worldview packet
|
|
1085
529
|
- selected premise card
|
|
1086
530
|
- selected hook
|
|
1087
|
-
- approved or latest `Pre-Draft Narrative Outline`
|
|
1088
531
|
- hook research artifact
|
|
1089
|
-
- selected source template or no-template rationale
|
|
1090
|
-
- source-message outline for any outside post being adapted
|
|
1091
|
-
- viral-post outline
|
|
1092
|
-
- post positioning breakdown template
|
|
1093
|
-
- body expression candidates and combined body plan
|
|
1094
532
|
- user's core memory
|
|
1095
533
|
- story/proof files
|
|
1096
534
|
- post writing rules
|
|
1097
535
|
- 1-3 relevant approved gold standards when available
|
|
1098
|
-
- thought leader inspiration variants from the configured active influencer
|
|
1099
|
-
list or supplied named subset
|
|
1100
536
|
|
|
1101
537
|
If a claim cannot be traced to the raw idea, core memory, or user answer in the current session, remove it or ask.
|
|
1102
538
|
|
|
@@ -1108,28 +544,16 @@ Every saved draft needs a validation receipt with:
|
|
|
1108
544
|
|
|
1109
545
|
- source idea ID
|
|
1110
546
|
- hook research ID
|
|
1111
|
-
- transcript worldview packet
|
|
1112
547
|
- iteration metadata: version, priorDraftId, changeIntent, what changed,
|
|
1113
548
|
what improved, what got worse, score, and verdict
|
|
1114
549
|
- selected premise card
|
|
1115
550
|
- candidate hooks considered
|
|
1116
551
|
- selected hook and why
|
|
1117
|
-
- pre-draft narrative outline
|
|
1118
|
-
- selected source template and no-copy adaptation rationale
|
|
1119
|
-
- thought leader inspiration lab, including skipped/opt-out reason when omitted
|
|
1120
|
-
- post positioning breakdown
|
|
1121
|
-
- viral-post outline
|
|
1122
|
-
- hook-to-body promise map
|
|
1123
|
-
- body expression candidates and combined body plan
|
|
1124
552
|
- proof claims used and source
|
|
1125
553
|
- story/proof files consulted
|
|
1126
554
|
- gold standards consulted
|
|
1127
555
|
- LinkedIn preview audit
|
|
1128
556
|
- premise/value audit findings
|
|
1129
|
-
- audience-tension audit findings
|
|
1130
|
-
- mobile scanability audit findings
|
|
1131
|
-
- template-adaptation audit findings
|
|
1132
|
-
- abstraction-to-concrete rewrite audit findings
|
|
1133
557
|
- simplifier/concrete-language audit findings
|
|
1134
558
|
- voice audit findings
|
|
1135
559
|
- anti-AI audit findings
|
|
@@ -1224,18 +648,8 @@ iteration:
|
|
|
1224
648
|
score: <compact score object>
|
|
1225
649
|
selected_premise: <premise or none>
|
|
1226
650
|
selected_hook: <hook>
|
|
1227
|
-
pre_draft_narrative_outline: <compact I/A/i outline summary or none>
|
|
1228
|
-
selected_source_template: <template name/source or none>
|
|
1229
|
-
thought_leader_inspiration: <adapters used or none>
|
|
1230
|
-
visible_flow_trace: <required when user asked for whole-flow/debug/step-by-step mode; include checkpoint statuses and quality break>
|
|
1231
651
|
validation_summary:
|
|
1232
652
|
premise_value: pass | needs_user_input | needs_revision
|
|
1233
|
-
audience_tension: pass | needs_revision
|
|
1234
|
-
mobile_scanability: pass | needs_revision
|
|
1235
|
-
thought_leader_adaptation: pass | needs_revision | not_used
|
|
1236
|
-
template_adaptation: pass | needs_revision | blocked
|
|
1237
|
-
abstraction_to_concrete: pass | needs_revision
|
|
1238
|
-
hook_to_body_repayment: pass | needs_revision
|
|
1239
653
|
proof: pass | needs_user_input | blocked
|
|
1240
654
|
voice: pass | needs_revision
|
|
1241
655
|
anti_ai: pass | needs_revision
|