@sellable/mcp 0.1.260 → 0.1.262

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.260",
3
+ "version": "0.1.262",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -284,6 +284,181 @@ Space benchmark research:
284
284
  7. For each approved tracked person, call `mcp__sellable__upsert_engage_tracked_person`.
285
285
 
286
286
  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.
287
+
288
+ ## Visible Whole-Flow Debug Mode
289
+
290
+ Use when the user asks to see the whole flow, run the flow step by step,
291
+ validate that the workflow is working, debug a bad output, explain why a draft
292
+ is bad, or otherwise asks for the process to be explicit.
293
+
294
+ This mode exists because a validation receipt hidden inside a saved draft is not
295
+ enough. The user must be able to inspect the reasoning path before the system
296
+ claims the workflow worked.
297
+
298
+ In visible whole-flow debug mode:
299
+
300
+ 1. Run the normal create-post workflow.
301
+ 2. Show a `Visible Flow Trace` with every checkpoint below.
302
+ 3. Mark each checkpoint `pass`, `weak`, `fail`, or `blocked`.
303
+ 4. Include the concrete output from that checkpoint, not only a label.
304
+ 5. If any checkpoint is weak or failed, name the exact quality break and the
305
+ downstream effect on the draft.
306
+ 6. Do not call the run successful just because files were saved.
307
+ 7. Do not hide premise cards, source-template selection, hook candidates,
308
+ pre-draft structure, body-expression candidates, or validation findings only
309
+ inside the saved artifact.
310
+
311
+ The trace must use this order:
312
+
313
+ ```text
314
+ Visible Flow Trace
315
+
316
+ 0. Bootstrap
317
+ - auth/workspace:
318
+ - canonical prompt loaded:
319
+ - required assets loaded:
320
+ - memory loaded:
321
+ - package/version notes:
322
+
323
+ 1. Raw Idea Capture
324
+ - idea id:
325
+ - raw source preserved:
326
+ - distilled brief:
327
+ - claims added or avoided:
328
+
329
+ 2. Research Search Log
330
+ - search window:
331
+ - keywords:
332
+ - result count:
333
+ - full-text fetches:
334
+ - search gaps:
335
+
336
+ 3. Weighted Source Selection
337
+ - kept sources:
338
+ - rejected sources:
339
+ - keeper scores:
340
+ - lead-magnet / engagement-bait penalties:
341
+ - why the top source actually fits:
342
+
343
+ 4. Hook Autopsies
344
+ - source hook:
345
+ - rendered/mobile preview or preview-basis:
346
+ - see-more tension:
347
+ - curiosity debt:
348
+ - body promise:
349
+ - why it works:
350
+ - why it may not transfer:
351
+
352
+ 5. Source Message Outlines
353
+ - source:
354
+ - outline basis:
355
+ - source paragraph order:
356
+ - branches by paragraph/line/phrase:
357
+ - high-level goal of each branch:
358
+ - reusable move without copying wording:
359
+
360
+ 6. Post Positioning Breakdowns
361
+ - source:
362
+ - positioning sequence:
363
+ - line-level narrative techniques:
364
+ - reusable template lines:
365
+ - adaptation guards:
366
+
367
+ 7. Viral-Post Outlines
368
+ - source template:
369
+ - hook job:
370
+ - see-more trigger:
371
+ - beat sequence:
372
+ - body payoff:
373
+ - close job:
374
+
375
+ 8. Market Belief Map
376
+ - resonating ideas:
377
+ - implicit beliefs:
378
+ - wants / resentments / fears:
379
+ - selected controversy:
380
+ - why this user can credibly say it:
381
+ - what not to claim:
382
+
383
+ 9. Premise Cards
384
+ - 3-5 cards:
385
+ - story/scene:
386
+ - tension:
387
+ - reader value:
388
+ - proof available:
389
+ - proof missing:
390
+ - source-template fit:
391
+ - score:
392
+ - selected premise:
393
+
394
+ 10. Source Template Selection
395
+ - selected template:
396
+ - positioning sequence to borrow:
397
+ - hook move to borrow:
398
+ - body outline to borrow:
399
+ - required user proof:
400
+ - forbidden borrowing:
401
+ - no-template rationale if rejected:
402
+
403
+ 11. Hook Lab
404
+ - at least 12 hooks:
405
+ - rendered preview record or explicit preview-basis:
406
+ - hook-to-body promise:
407
+ - score:
408
+ - selected hook:
409
+ - rejected winning-looking hooks and why:
410
+
411
+ 12. Pre-Draft Narrative Outline
412
+ - hierarchical outline shown before draft:
413
+ - I. hook and click debt:
414
+ - II. thesis the post will defend:
415
+ - III. operating model:
416
+ - IV. body shape borrowed from posts that worked:
417
+ - V. narrative beats:
418
+ - VI. scan path and proof safety:
419
+ - user corrections applied before prose:
420
+
421
+ 13. Body Expression Lab
422
+ - 5-8 body-expression candidates:
423
+ - best lines:
424
+ - weak lines:
425
+ - hook promise repayment:
426
+ - proof risk:
427
+ - score:
428
+ - combined body plan:
429
+
430
+ 14. Draft
431
+ - draft body:
432
+ - lines intentionally copied from user source:
433
+ - outside-source wording copied: yes/no:
434
+ - known weak lines:
435
+
436
+ 15. Validation And Save
437
+ - ready status:
438
+ - proof gate:
439
+ - voice gate:
440
+ - anti-AI gate:
441
+ - mobile preview gate:
442
+ - template adaptation gate:
443
+ - hook-to-body repayment:
444
+ - quality break, if any:
445
+ - saved idea path:
446
+ - saved research path:
447
+ - saved draft path:
448
+ ```
449
+
450
+ Quality-break rules:
451
+
452
+ - If the draft is bad, say which checkpoint produced the bad draft. For example:
453
+ weak raw story, wrong selected source template, hook promise not repaid,
454
+ body expression lab too generic, proof missing, or voice mismatch.
455
+ - A draft with a coherent validation receipt but poor body copy is not a
456
+ successful run. Mark it `needs_revision` and show the checkpoint where the
457
+ body lost the premise.
458
+ - If the source idea is too abstract, stop at premise development or save a
459
+ `needs_revision` draft only after showing the missing story/proof.
460
+ - If the user is judging the workflow itself, prefer showing the trace over
461
+ optimizing for a polished final post.
287
462
  </modes>
288
463
 
289
464
  <pipeline>
@@ -452,6 +627,15 @@ Post positioning breakdown templates:
452
627
  - reusable template lines:
453
628
  - Sellable adaptation:
454
629
 
630
+ Source message outlines:
631
+ 1. source + outline basis
632
+ - source paragraph order:
633
+ - paragraph/line/phrase branches:
634
+ - high-level goal of each branch:
635
+ - reader effect:
636
+ - reusable move:
637
+ - adaptation guard:
638
+
455
639
  Viral-post outlines:
456
640
  1. outline name
457
641
  - hook job:
@@ -523,38 +707,73 @@ the user explicitly requested an immediate draft. For immediate draft mode, use
523
707
  only source-backed observed patterns and save the draft as `needs_revision`
524
708
  unless the premise still has concrete reader value.
525
709
 
526
- ## Step 1.9: Pre-Draft Structure Brief
710
+ ## Step 1.9: Pre-Draft Narrative Outline
527
711
 
528
712
  Before generating final draft prose, create and show a compact `Pre-Draft
529
- Structure Brief`. In other words, show a compact Pre-Draft Structure Brief
530
- before the final draft body. This is the checkpoint that prevents the agent from
531
- jumping from a good hook into a messy body.
713
+ Narrative Outline`. This is not a checklist. It is the user-visible argument
714
+ skeleton that lets the user confirm what the post will say, in what order, and
715
+ which proven body shapes will guide the draft before the system writes body
716
+ copy.
532
717
 
533
- The brief must be concise, mobile-scanable, and concrete enough for the user to
534
- approve or correct. Do not hide it inside the validation receipt after the
718
+ The outline must be concise, mobile-scanable, and concrete enough for the user
719
+ to approve or correct. Do not hide it inside the validation receipt after the
535
720
  draft. Show it before writing the draft body unless the user explicitly says to
536
721
  skip outline/structure and write immediately. Even when the user skips the
537
- visible checkpoint, still include the brief in the validation receipt.
722
+ visible checkpoint, still include the outline in the validation receipt.
723
+
724
+ The `Pre-Draft Narrative Outline` must use hierarchical outline notation:
725
+ Roman numerals for major narrative beats, letters for sub-beats, and lowercase
726
+ roman numerals for proof/examples/body moves. Do not replace this with a flat
727
+ field list.
538
728
 
539
- The `Pre-Draft Structure Brief` must include:
729
+ The `Pre-Draft Narrative Outline` must include:
540
730
 
541
731
  ```text
542
- Pre-Draft Structure Brief
543
- - hook:
544
- - thesis:
545
- - reader being taught:
546
- - why this reader cares now:
547
- - core equation or mechanism:
548
- - key definitions:
549
- - proof claims:
550
- - proof source / risk:
551
- - source template or no-template rationale:
552
- - mobile scan path:
553
- - section outline:
554
- - body promise after see more:
555
- - concrete examples to include:
556
- - abstractions to remove:
557
- - draft risks:
732
+ Pre-Draft Narrative Outline
733
+ I. Hook and click debt
734
+ A. Selected hook:
735
+ B. Rendered mobile preview verdict:
736
+ C. What "see more" must repay:
737
+
738
+ II. Thesis the post will defend
739
+ A. One-sentence thesis:
740
+ B. Reader being taught:
741
+ C. Why this reader cares now:
742
+
743
+ III. Operating model
744
+ A. Core equation or mechanism:
745
+ B. Key definitions:
746
+ i. <term>: <plain definition + concrete examples>
747
+ ii. <term>: <plain definition + concrete examples>
748
+
749
+ IV. Body shape borrowed from posts that worked
750
+ A. Selected source template or no-template rationale:
751
+ B. Working body pattern(s) being adapted:
752
+ i. <pattern name>: <beat order and why it works>
753
+ ii. <pattern name>: <beat order and why it works>
754
+ C. What gets borrowed:
755
+ i. <narrative job, sequence, transition, or proof order>
756
+ D. What must not be copied:
757
+ i. <source wording, creator-specific proof, joke, or context>
758
+
759
+ V. Narrative beats
760
+ A. Beat 1: <job, reader state before/after, example/proof>
761
+ i. Line shape or section label:
762
+ ii. Concrete examples:
763
+ B. Beat 2: <job, reader state before/after, example/proof>
764
+ i. Line shape or section label:
765
+ ii. Concrete examples:
766
+ C. Beat 3: <job, reader state before/after, example/proof>
767
+ i. Line shape or section label:
768
+ ii. Concrete examples:
769
+
770
+ VI. Scan path and proof safety
771
+ A. Mobile scan path:
772
+ B. Proof claims:
773
+ i. <claim>: <source + public-safety status>
774
+ C. Abstractions to remove:
775
+ i. <abstract phrase> -> <concrete replacement>
776
+ D. Draft risks:
558
777
  ```
559
778
 
560
779
  Rules:
@@ -562,6 +781,11 @@ Rules:
562
781
  - The hook must already have a rendered mobile and desktop preview record.
563
782
  - The thesis must be one sentence the post can defend.
564
783
  - The reader must be specific enough to guide what gets cut.
784
+ - `Body shape borrowed from posts that worked` must name the body pattern or
785
+ explain why no-template is stronger. It must say what narrative job is being
786
+ borrowed, not just "make it like this creator."
787
+ - `Narrative beats` must show the order of the argument with `I.`, `A.`, and
788
+ `i.`-style hierarchy. A flat checklist fails this step.
565
789
  - Key definitions must name concrete examples when the post teaches an
566
790
  operating concept. For example, define `lead source` as how the list was
567
791
  built, not as a persona label.
@@ -569,8 +793,8 @@ Rules:
569
793
  hook, separators, section labels, numbers, and final line.
570
794
  - `abstractions to remove` must list abstract phrases and the concrete words
571
795
  that will replace them.
572
- - If the user corrects the brief, update the brief first, then draft. Do not
573
- patch the final prose while leaving the brief stale.
796
+ - If the user corrects the outline, update the outline first, then draft. Do
797
+ not patch the final prose while leaving the outline stale.
574
798
 
575
799
  ## Step 2: Hook Candidates
576
800
 
@@ -629,9 +853,10 @@ Draft from:
629
853
  - exact raw idea
630
854
  - selected premise card
631
855
  - selected hook
632
- - approved or latest `Pre-Draft Structure Brief`
856
+ - approved or latest `Pre-Draft Narrative Outline`
633
857
  - hook research artifact
634
858
  - selected source template or no-template rationale
859
+ - source-message outline for any outside post being adapted
635
860
  - viral-post outline
636
861
  - post positioning breakdown template
637
862
  - body expression candidates and combined body plan
@@ -655,7 +880,7 @@ Every saved draft needs a validation receipt with:
655
880
  - selected premise card
656
881
  - candidate hooks considered
657
882
  - selected hook and why
658
- - pre-draft structure brief
883
+ - pre-draft narrative outline
659
884
  - selected source template and no-copy adaptation rationale
660
885
  - post positioning breakdown
661
886
  - viral-post outline
@@ -763,8 +988,9 @@ iteration:
763
988
  score: <compact score object>
764
989
  selected_premise: <premise or none>
765
990
  selected_hook: <hook>
766
- pre_draft_structure_brief: <compact structure summary or none>
991
+ pre_draft_narrative_outline: <compact I/A/i outline summary or none>
767
992
  selected_source_template: <template name/source or none>
993
+ visible_flow_trace: <required when user asked for whole-flow/debug/step-by-step mode; include checkpoint statuses and quality break>
768
994
  validation_summary:
769
995
  premise_value: pass | needs_user_input | needs_revision
770
996
  mobile_scanability: pass | needs_revision
@@ -7,12 +7,14 @@ 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 four outputs:
10
+ V2 research has five 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
14
- 3. viral-post outlines: the narrative structure of each source post
15
- 4. post positioning breakdown templates: line-level positioning and narrative
14
+ 3. source-message outlines: the paragraph/line/phrase structure of each source
15
+ post in its original order
16
+ 4. viral-post outlines: the reusable narrative structure of each source post
17
+ 5. post positioning breakdown templates: line-level positioning and narrative
16
18
  technique maps that can be adapted into the user's draft
17
19
 
18
20
  ## Search Inputs
@@ -434,13 +436,70 @@ line_map:
434
436
  ```
435
437
 
436
438
  Break long lines into phrase-level segments when one line contains multiple
437
- jobs. Preserve the original source line in the research artifact, but never
438
- copy it into the draft unless it is the user's own approved post.
439
+ jobs. Use short anchors or paraphrased line labels for outside source posts; do
440
+ not reproduce the full outside post. Never copy source wording into the draft
441
+ unless it is the user's own approved post.
442
+
443
+ ## Source Message Outline
444
+
445
+ Before converting a source post into a reusable template, outline the source
446
+ message as it is. This is the branch map of the original post, not the adapted
447
+ draft plan.
448
+
449
+ The outline must preserve the source post's order and branch each paragraph,
450
+ line, or phrase into the high-level rhetorical goal it serves. If a paragraph
451
+ contains several jobs, split it into phrase-level branches.
452
+
453
+ Use this format:
454
+
455
+ ```text
456
+ Source Message Outline:
457
+ source: <author + URL>
458
+ outline_basis: full_text | excerpt_only | screenshot | user_supplied_text
459
+ copyright_safety: use short anchors/paraphrases; do not reproduce the full source
460
+
461
+ P1. <short paragraph anchor or paraphrase>
462
+ goal: <what this paragraph makes the reader think/feel/wonder>
463
+ why_here: <why it appears at this point in the sequence>
464
+ branches:
465
+ A. <phrase/line anchor or paraphrase>
466
+ job: <high-level job of this phrase/line>
467
+ reader_effect: <what changes in the reader>
468
+ reusable_move: <what can be adapted without copying wording>
469
+ B. <phrase/line anchor or paraphrase>
470
+ job:
471
+ reader_effect:
472
+ reusable_move:
473
+
474
+ P2. <short paragraph anchor or paraphrase>
475
+ goal:
476
+ why_here:
477
+ branches:
478
+ A.
479
+ job:
480
+ reader_effect:
481
+ reusable_move:
482
+ ```
483
+
484
+ Quality rules:
485
+
486
+ - Do not summarize the whole post first and then invent a cleaner outline.
487
+ - Do not skip ordinary body paragraphs; the point is to learn the source's real
488
+ sequence, including setup, repetition, proof, turns, and close.
489
+ - Every branch must answer: "What is this exact line/paragraph/phrase doing?"
490
+ - Use `P1`, `P2`, `A`, `B`, and `i` structure so the user can compare it
491
+ against the source post.
492
+ - If only an excerpt is available, label `outline_basis: excerpt_only` and do
493
+ not infer hidden body structure.
494
+ - After the source-message outline, then create the viral-post outline and
495
+ template. The adapted outline cannot replace the source-message outline.
439
496
 
440
497
  ## Viral-Post Outline
441
498
 
442
- After the line-level breakdown, convert each keeper into a viral-post outline.
443
- The outline is the narrative skeleton beneath the exact words.
499
+ After the source-message outline and line-level breakdown, convert each keeper
500
+ into a viral-post outline. The viral-post outline is the reusable narrative
501
+ skeleton beneath the exact words, not a replacement for the source-message
502
+ outline.
444
503
 
445
504
  Use this format:
446
505
 
@@ -70,6 +70,10 @@ Hook research files must preserve:
70
70
  - rendered preview records for kept source hooks and adapted hook blocks,
71
71
  including literal mobile/desktop preview blocks and whether the first-screen
72
72
  promise is visible
73
+ - source-message outlines for keeper posts, preserving source paragraph order
74
+ and branching each paragraph, line, or phrase into high-level goal, reader
75
+ effect, reusable move, and adaptation guard without reproducing the full
76
+ outside source post
73
77
  - extracted hook patterns
74
78
  - selected hook basis
75
79
 
@@ -88,11 +92,17 @@ Draft files must preserve:
88
92
  - score fields for hook, proof, voice, specificity, skimmability, and publish confidence
89
93
  - `verdict`: `baseline`, `keep`, `revise`, `reject`, `publish_candidate`, or a similarly explicit state
90
94
  - draft body
91
- - pre-draft structure brief: hook, thesis, reader, core mechanism, key
92
- definitions, proof claims, mobile scan path, section outline, body promise,
93
- concrete examples, abstractions to remove, and draft risks
95
+ - source-message outline for any outside post being adapted, when the draft's
96
+ body shape was learned from a specific source post
97
+ - pre-draft narrative outline: hierarchical `I.`, `A.`, `i.` outline covering
98
+ hook debt, thesis, reader, core mechanism, definitions, proof claims,
99
+ working body patterns adapted, narrative beats, mobile scan path, body
100
+ promise, concrete examples, abstractions to remove, and draft risks
94
101
  - validation receipt, including LinkedIn preview pass/warn/fail status and
95
102
  compact fallback when the selected hook carries a warning
103
+ - visible flow trace when the user asked for whole-flow, debug, or step-by-step
104
+ mode, including checkpoint statuses, quality break, downstream effect, and
105
+ whether the trace was shown before saving
96
106
  - rendered mobile and desktop preview blocks for the selected hook; drafts
97
107
  cannot be ready when this rendered-preview audit is missing or fails mobile
98
108
  visibility
@@ -11,13 +11,18 @@ Every saved draft needs a validation receipt. A draft without this receipt is no
11
11
  - `candidateHooksConsidered`
12
12
  - `selectedHook`
13
13
  - `selectedHookWhy`
14
- - `preDraftStructureBrief`
14
+ - `sourceMessageOutline`
15
+ - `preDraftNarrativeOutline`
16
+ - `preDraftStructureBrief` as a legacy compatibility alias when older drafts or
17
+ downstream readers still expect it
15
18
  - `selectedSourceTemplate`
16
19
  - `postPositioningBreakdown`
17
20
  - `viralPostOutline`
18
21
  - `hookToBodyPromiseMap`
19
22
  - `bodyExpressionCandidates`
20
23
  - `combinedBodyPlan`
24
+ - `visibleFlowTrace` when the user asked for whole-flow, debug, or
25
+ step-by-step mode
21
26
  - `proofClaimsUsed`
22
27
  - `proofClaimSources`
23
28
  - `storyFilesConsulted`
@@ -117,6 +122,39 @@ After the first draft:
117
122
  10. remove AI tells
118
123
  11. re-check LinkedIn preview fit after edits
119
124
 
125
+ ## Visible Flow Trace Audit
126
+
127
+ When the user asks to see the whole flow, run the process step by step, validate
128
+ that it is working, or debug a bad output, the validation receipt must preserve a
129
+ `visibleFlowTrace`.
130
+
131
+ Record:
132
+
133
+ - `mode`: visible_whole_flow_debug
134
+ - `checkpointStatuses`: each checkpoint marked `pass`, `weak`, `fail`, or
135
+ `blocked`
136
+ - `checkpointOutputs`: the concrete output shown to the user for each
137
+ checkpoint
138
+ - `qualityBreak`: the first checkpoint that made the draft weak, if any
139
+ - `downstreamEffect`: how that break affected the hook, premise, body, or ready
140
+ status
141
+ - `userVisibleBeforeSave`: yes | no
142
+ - `draftSavedDespiteWeakness`: yes | no
143
+ - `reasonDraftSaved`: why a `needs_revision` draft was still worth saving, if
144
+ it was saved
145
+
146
+ Save as `needs_revision` when:
147
+
148
+ - the trace was not shown before draft prose in visible debug mode
149
+ - the body-expression lab was summarized after the fact instead of generating
150
+ real candidates before prose
151
+ - a weak premise, missing proof, or wrong source template produced a bad body
152
+ - the final response claims the workflow worked only because artifacts were
153
+ saved
154
+
155
+ Do not mark a run successful unless the visible trace, final draft, and saved
156
+ receipt all agree on the same quality state.
157
+
120
158
  ## Premise Value Audit
121
159
 
122
160
  Before a draft can be `ready`, validate that the post is valuable, not just
@@ -133,11 +171,17 @@ Record:
133
171
  - `readerValue`: what the reader learns, sees differently, or can do
134
172
  - `proofAvailable`: source-backed proof used
135
173
  - `proofMissing`: claims intentionally avoided or requiring user input
136
- - `preDraftStructureBrief`: hook, thesis, reader, core mechanism, definitions,
137
- proof claims, mobile scan path, section outline, and abstractions to remove
174
+ - `sourceMessageOutline`: source post decomposition in original order, with
175
+ paragraph/line/phrase branches, high-level goal of each branch, reader effect,
176
+ reusable move, and adaptation guard
177
+ - `preDraftNarrativeOutline`: hierarchical `I.`, `A.`, `i.` outline showing
178
+ hook debt, thesis, operating model, working body patterns adapted, narrative
179
+ beats, scan path, proof claims, and abstractions to remove
180
+ - `preDraftStructureBrief`: legacy compatibility alias only; the canonical
181
+ artifact is `preDraftNarrativeOutline`
138
182
  - `premiseQualityGates`: pass/fail for `specific_scene_or_pattern`,
139
183
  `clear_reader`, `visible_tension`, `reader_value`, `credible_speaker`,
140
- `proof_safety`, `market_heat`, and `pre_draft_structure`
184
+ `proof_safety`, `market_heat`, and `pre_draft_narrative_outline`
141
185
  - `bodyOutline`: how the body delivers the premise before prose
142
186
  - `viralPostOutline`: the selected narrative structure, including beat jobs
143
187
  - `hookToBodyPromiseMap`: how the body repays the hook's open loop
@@ -147,10 +191,10 @@ If the draft has no specific scene or observed pattern, no visible tension, or
147
191
  no reader value beyond "this is interesting," save as `needs_revision`. Do not
148
192
  mark it `ready` because the hook passes preview limits.
149
193
 
150
- ## Pre-Draft Structure Audit
194
+ ## Pre-Draft Narrative Outline Audit
151
195
 
152
- Before a draft can be `ready`, validate that the structure was locked before the
153
- body was written.
196
+ Before a draft can be `ready`, validate that the narrative outline was locked
197
+ before the body was written.
154
198
 
155
199
  Record:
156
200
 
@@ -162,16 +206,24 @@ Record:
162
206
  could misunderstand
163
207
  - `proofClaims`: claims, sources, and public-safety status
164
208
  - `sourceTemplateOrNoTemplateRationale`
209
+ - `workingBodyPatternsAdapted`: body pattern name, beat order, why it worked,
210
+ what gets borrowed, and what must not be copied
211
+ - `hierarchicalNarrativeBeats`: `I.`, `A.`, `i.` outline of the final post's
212
+ argument, examples, proof, and line/section shapes
165
213
  - `mobileScanPath`: what a skimmer understands from the hook, separators,
166
214
  section labels, numbers, and close
167
- - `sectionOutline`: section order plus the job of each section
215
+ - `sectionOutline`: legacy summary of section order plus the job of each
216
+ section; do not substitute this for `hierarchicalNarrativeBeats`
168
217
  - `bodyPromiseAfterSeeMore`: what the body immediately repays
169
218
  - `abstractionsToRemove`: abstract phrases and their concrete replacements
170
- - `userCorrectionsApplied`: user corrections applied to the brief before prose
171
-
172
- Save as `needs_revision` when the draft was written before the structure brief,
173
- when the brief does not match the final prose, when the mobile scan path is
174
- unclear, or when key terms are left abstract.
219
+ - `userCorrectionsApplied`: user corrections applied to the outline before
220
+ prose
221
+
222
+ Save as `needs_revision` when the draft was written before the narrative
223
+ outline, when the outline is a flat checklist instead of hierarchical
224
+ `I.`, `A.`, `i.` notation, when the outline does not match the final prose, when
225
+ working body patterns are unnamed or vaguely borrowed, when the mobile scan path
226
+ is unclear, or when key terms are left abstract.
175
227
 
176
228
  ## Mobile Scanability Audit
177
229
 
@@ -280,71 +280,81 @@ why_this_combination_wins:
280
280
  If no candidate repays the hook promise with real user proof, return to premise
281
281
  development or ask the user for the missing story. Do not save a `ready` draft.
282
282
 
283
- ## Pre-Draft Structure Brief
283
+ ## Pre-Draft Narrative Outline
284
284
 
285
- Before final prose, produce a compact `Pre-Draft Structure Brief`. This is the
286
- user-visible outline that lets the user confirm the post is teaching the right
287
- operating lesson before the system writes body copy.
285
+ Before final prose, produce a compact `Pre-Draft Narrative Outline`. This is the
286
+ user-visible argument skeleton that lets the user confirm what the post is
287
+ trying to say, in what order, and which proven body shapes are being adapted
288
+ before the system writes body copy.
288
289
 
289
290
  Use this format:
290
291
 
291
292
  ```text
292
- Pre-Draft Structure Brief
293
- hook:
294
- <selected hook with rendered mobile preview verdict>
295
-
296
- thesis:
297
- <one sentence the post will defend>
298
-
299
- reader being taught:
300
- <specific audience, not "founders" unless narrowed>
301
-
302
- why this reader cares now:
303
- <timely pain, belief, or decision>
304
-
305
- core equation or mechanism:
306
- <the operating model the post teaches>
307
-
308
- key definitions:
309
- - <term>: <plain definition + concrete examples>
310
-
311
- proof claims:
312
- - <claim>: <source + public-safety status>
313
-
314
- source template or no-template rationale:
315
- <template name or why the post should use a plain field-guide structure>
316
-
317
- mobile scan path:
318
- <what a skimmer understands from hook, separators, labels, numbers, and close>
319
-
320
- section outline:
321
- 1. <section job>
322
- 2. <section job>
323
- 3. <section job>
324
-
325
- body promise after see more:
326
- <what the body must repay immediately>
327
-
328
- concrete examples to include:
329
- - <example, number, source, or phrasing>
330
-
331
- abstractions to remove:
332
- - <abstract phrase> -> <concrete replacement>
333
-
334
- draft risks:
335
- - <risk and how to avoid it>
293
+ Pre-Draft Narrative Outline
294
+ I. Hook and click debt
295
+ A. Selected hook: <selected hook>
296
+ B. Rendered mobile preview verdict: <pass | warn | fail + why>
297
+ C. What "see more" must repay: <the open loop the first body beat must answer>
298
+
299
+ II. Thesis the post will defend
300
+ A. One-sentence thesis: <the post's operating claim>
301
+ B. Reader being taught: <specific audience, not a broad persona>
302
+ C. Why this reader cares now: <timely pain, belief, or decision>
303
+
304
+ III. Operating model
305
+ A. Core equation or mechanism: <the model the post teaches>
306
+ B. Key definitions:
307
+ i. <term>: <plain definition + concrete examples>
308
+ ii. <term>: <plain definition + concrete examples>
309
+
310
+ IV. Body shape borrowed from posts that worked
311
+ A. Selected source template or no-template rationale: <source or rationale>
312
+ B. Source-message outline being adapted:
313
+ i. <source post + P1/P2/P3 branch sequence from the original message>
314
+ ii. <which original paragraph/line/phrase jobs matter most>
315
+ C. Working body pattern(s) being adapted:
316
+ i. <pattern name>: <beat order and why it works>
317
+ ii. <pattern name>: <beat order and why it works>
318
+ D. What gets borrowed:
319
+ i. <narrative job, sequence, transition, or proof order>
320
+ E. What must not be copied:
321
+ i. <source wording, creator-specific proof, joke, or context>
322
+
323
+ V. Narrative beats
324
+ A. Beat 1: <job, reader state before/after, example/proof>
325
+ i. Line shape or section label: <how it will appear>
326
+ ii. Concrete examples: <examples/numbers>
327
+ B. Beat 2: <job, reader state before/after, example/proof>
328
+ i. Line shape or section label: <how it will appear>
329
+ ii. Concrete examples: <examples/numbers>
330
+ C. Beat 3: <job, reader state before/after, example/proof>
331
+ i. Line shape or section label: <how it will appear>
332
+ ii. Concrete examples: <examples/numbers>
333
+
334
+ VI. Scan path and proof safety
335
+ A. Mobile scan path: <what skimmers learn from labels/numbers/close>
336
+ B. Proof claims:
337
+ i. <claim>: <source + public-safety status>
338
+ C. Abstractions to remove:
339
+ i. <abstract phrase> -> <concrete replacement>
340
+ D. Draft risks: <risk and how to avoid it>
336
341
  ```
337
342
 
338
343
  Quality gate:
339
344
 
340
- - The brief must explain the post before the draft exists.
341
- - The brief must be useful to a reader who only scans the finished post.
342
- - The brief must include proof claims and risk before prose.
343
- - The brief must define any operating terms that could be misunderstood.
344
- - If the post is a field guide, the section outline must show the hierarchy
345
+ - The outline must explain the post before the draft exists.
346
+ - The outline must be useful to a reader who only scans the finished post.
347
+ - The outline must include proof claims and risk before prose.
348
+ - The outline must define any operating terms that could be misunderstood.
349
+ - The outline must use `I.`, `A.`, and `i.` hierarchy. A flat field list fails.
350
+ - If the post is adapting bodies that worked, the outline must name the source
351
+ message outline being adapted and the body pattern, including which original
352
+ paragraph/line/phrase jobs transfer and what beat order, proof order, or
353
+ transition logic is being borrowed.
354
+ - If the post is a field guide, the narrative beats must show the hierarchy
345
355
  before prose, such as best-to-worst, highest-to-lowest intent, or
346
356
  source-to-outcome.
347
- - If the brief cannot be made concrete, return to premise development.
357
+ - If the outline cannot be made concrete, return to premise development.
348
358
 
349
359
  ## Premise Quality Gate
350
360
 
@@ -359,7 +369,7 @@ A premise can move to hook generation only when it passes all of these:
359
369
  - `market_heat`: pass or explained
360
370
  - `template_fit`: pass or explicitly no-template
361
371
  - `hook_to_body_repayment`: pass
362
- - `pre_draft_structure`: pass
372
+ - `pre_draft_narrative_outline`: pass
363
373
 
364
374
  If any gate fails:
365
375