@sellable/mcp 0.1.260 → 0.1.261

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.261",
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,173 @@ 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. Post Positioning Breakdowns
353
+ - source:
354
+ - positioning sequence:
355
+ - line-level narrative techniques:
356
+ - reusable template lines:
357
+ - adaptation guards:
358
+
359
+ 6. Viral-Post Outlines
360
+ - source template:
361
+ - hook job:
362
+ - see-more trigger:
363
+ - beat sequence:
364
+ - body payoff:
365
+ - close job:
366
+
367
+ 7. Market Belief Map
368
+ - resonating ideas:
369
+ - implicit beliefs:
370
+ - wants / resentments / fears:
371
+ - selected controversy:
372
+ - why this user can credibly say it:
373
+ - what not to claim:
374
+
375
+ 8. Premise Cards
376
+ - 3-5 cards:
377
+ - story/scene:
378
+ - tension:
379
+ - reader value:
380
+ - proof available:
381
+ - proof missing:
382
+ - source-template fit:
383
+ - score:
384
+ - selected premise:
385
+
386
+ 9. Source Template Selection
387
+ - selected template:
388
+ - positioning sequence to borrow:
389
+ - hook move to borrow:
390
+ - body outline to borrow:
391
+ - required user proof:
392
+ - forbidden borrowing:
393
+ - no-template rationale if rejected:
394
+
395
+ 10. Hook Lab
396
+ - at least 12 hooks:
397
+ - rendered preview record or explicit preview-basis:
398
+ - hook-to-body promise:
399
+ - score:
400
+ - selected hook:
401
+ - rejected winning-looking hooks and why:
402
+
403
+ 11. Pre-Draft Narrative Outline
404
+ - hierarchical outline shown before draft:
405
+ - I. hook and click debt:
406
+ - II. thesis the post will defend:
407
+ - III. operating model:
408
+ - IV. body shape borrowed from posts that worked:
409
+ - V. narrative beats:
410
+ - VI. scan path and proof safety:
411
+ - user corrections applied before prose:
412
+
413
+ 12. Body Expression Lab
414
+ - 5-8 body-expression candidates:
415
+ - best lines:
416
+ - weak lines:
417
+ - hook promise repayment:
418
+ - proof risk:
419
+ - score:
420
+ - combined body plan:
421
+
422
+ 13. Draft
423
+ - draft body:
424
+ - lines intentionally copied from user source:
425
+ - outside-source wording copied: yes/no:
426
+ - known weak lines:
427
+
428
+ 14. Validation And Save
429
+ - ready status:
430
+ - proof gate:
431
+ - voice gate:
432
+ - anti-AI gate:
433
+ - mobile preview gate:
434
+ - template adaptation gate:
435
+ - hook-to-body repayment:
436
+ - quality break, if any:
437
+ - saved idea path:
438
+ - saved research path:
439
+ - saved draft path:
440
+ ```
441
+
442
+ Quality-break rules:
443
+
444
+ - If the draft is bad, say which checkpoint produced the bad draft. For example:
445
+ weak raw story, wrong selected source template, hook promise not repaid,
446
+ body expression lab too generic, proof missing, or voice mismatch.
447
+ - A draft with a coherent validation receipt but poor body copy is not a
448
+ successful run. Mark it `needs_revision` and show the checkpoint where the
449
+ body lost the premise.
450
+ - If the source idea is too abstract, stop at premise development or save a
451
+ `needs_revision` draft only after showing the missing story/proof.
452
+ - If the user is judging the workflow itself, prefer showing the trace over
453
+ optimizing for a polished final post.
287
454
  </modes>
288
455
 
289
456
  <pipeline>
@@ -523,38 +690,73 @@ the user explicitly requested an immediate draft. For immediate draft mode, use
523
690
  only source-backed observed patterns and save the draft as `needs_revision`
524
691
  unless the premise still has concrete reader value.
525
692
 
526
- ## Step 1.9: Pre-Draft Structure Brief
693
+ ## Step 1.9: Pre-Draft Narrative Outline
527
694
 
528
695
  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.
696
+ Narrative Outline`. This is not a checklist. It is the user-visible argument
697
+ skeleton that lets the user confirm what the post will say, in what order, and
698
+ which proven body shapes will guide the draft before the system writes body
699
+ copy.
532
700
 
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
701
+ The outline must be concise, mobile-scanable, and concrete enough for the user
702
+ to approve or correct. Do not hide it inside the validation receipt after the
535
703
  draft. Show it before writing the draft body unless the user explicitly says to
536
704
  skip outline/structure and write immediately. Even when the user skips the
537
- visible checkpoint, still include the brief in the validation receipt.
705
+ visible checkpoint, still include the outline in the validation receipt.
706
+
707
+ The `Pre-Draft Narrative Outline` must use hierarchical outline notation:
708
+ Roman numerals for major narrative beats, letters for sub-beats, and lowercase
709
+ roman numerals for proof/examples/body moves. Do not replace this with a flat
710
+ field list.
538
711
 
539
- The `Pre-Draft Structure Brief` must include:
712
+ The `Pre-Draft Narrative Outline` must include:
540
713
 
541
714
  ```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:
715
+ Pre-Draft Narrative Outline
716
+ I. Hook and click debt
717
+ A. Selected hook:
718
+ B. Rendered mobile preview verdict:
719
+ C. What "see more" must repay:
720
+
721
+ II. Thesis the post will defend
722
+ A. One-sentence thesis:
723
+ B. Reader being taught:
724
+ C. Why this reader cares now:
725
+
726
+ III. Operating model
727
+ A. Core equation or mechanism:
728
+ B. Key definitions:
729
+ i. <term>: <plain definition + concrete examples>
730
+ ii. <term>: <plain definition + concrete examples>
731
+
732
+ IV. Body shape borrowed from posts that worked
733
+ A. Selected source template or no-template rationale:
734
+ B. Working body pattern(s) being adapted:
735
+ i. <pattern name>: <beat order and why it works>
736
+ ii. <pattern name>: <beat order and why it works>
737
+ C. What gets borrowed:
738
+ i. <narrative job, sequence, transition, or proof order>
739
+ D. What must not be copied:
740
+ i. <source wording, creator-specific proof, joke, or context>
741
+
742
+ V. Narrative beats
743
+ A. Beat 1: <job, reader state before/after, example/proof>
744
+ i. Line shape or section label:
745
+ ii. Concrete examples:
746
+ B. Beat 2: <job, reader state before/after, example/proof>
747
+ i. Line shape or section label:
748
+ ii. Concrete examples:
749
+ C. Beat 3: <job, reader state before/after, example/proof>
750
+ i. Line shape or section label:
751
+ ii. Concrete examples:
752
+
753
+ VI. Scan path and proof safety
754
+ A. Mobile scan path:
755
+ B. Proof claims:
756
+ i. <claim>: <source + public-safety status>
757
+ C. Abstractions to remove:
758
+ i. <abstract phrase> -> <concrete replacement>
759
+ D. Draft risks:
558
760
  ```
559
761
 
560
762
  Rules:
@@ -562,6 +764,11 @@ Rules:
562
764
  - The hook must already have a rendered mobile and desktop preview record.
563
765
  - The thesis must be one sentence the post can defend.
564
766
  - The reader must be specific enough to guide what gets cut.
767
+ - `Body shape borrowed from posts that worked` must name the body pattern or
768
+ explain why no-template is stronger. It must say what narrative job is being
769
+ borrowed, not just "make it like this creator."
770
+ - `Narrative beats` must show the order of the argument with `I.`, `A.`, and
771
+ `i.`-style hierarchy. A flat checklist fails this step.
565
772
  - Key definitions must name concrete examples when the post teaches an
566
773
  operating concept. For example, define `lead source` as how the list was
567
774
  built, not as a persona label.
@@ -569,8 +776,8 @@ Rules:
569
776
  hook, separators, section labels, numbers, and final line.
570
777
  - `abstractions to remove` must list abstract phrases and the concrete words
571
778
  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.
779
+ - If the user corrects the outline, update the outline first, then draft. Do
780
+ not patch the final prose while leaving the outline stale.
574
781
 
575
782
  ## Step 2: Hook Candidates
576
783
 
@@ -629,7 +836,7 @@ Draft from:
629
836
  - exact raw idea
630
837
  - selected premise card
631
838
  - selected hook
632
- - approved or latest `Pre-Draft Structure Brief`
839
+ - approved or latest `Pre-Draft Narrative Outline`
633
840
  - hook research artifact
634
841
  - selected source template or no-template rationale
635
842
  - viral-post outline
@@ -655,7 +862,7 @@ Every saved draft needs a validation receipt with:
655
862
  - selected premise card
656
863
  - candidate hooks considered
657
864
  - selected hook and why
658
- - pre-draft structure brief
865
+ - pre-draft narrative outline
659
866
  - selected source template and no-copy adaptation rationale
660
867
  - post positioning breakdown
661
868
  - viral-post outline
@@ -763,8 +970,9 @@ iteration:
763
970
  score: <compact score object>
764
971
  selected_premise: <premise or none>
765
972
  selected_hook: <hook>
766
- pre_draft_structure_brief: <compact structure summary or none>
973
+ pre_draft_narrative_outline: <compact I/A/i outline summary or none>
767
974
  selected_source_template: <template name/source or none>
975
+ visible_flow_trace: <required when user asked for whole-flow/debug/step-by-step mode; include checkpoint statuses and quality break>
768
976
  validation_summary:
769
977
  premise_value: pass | needs_user_input | needs_revision
770
978
  mobile_scanability: pass | needs_revision
@@ -88,11 +88,15 @@ Draft files must preserve:
88
88
  - score fields for hook, proof, voice, specificity, skimmability, and publish confidence
89
89
  - `verdict`: `baseline`, `keep`, `revise`, `reject`, `publish_candidate`, or a similarly explicit state
90
90
  - 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
91
+ - pre-draft narrative outline: hierarchical `I.`, `A.`, `i.` outline covering
92
+ hook debt, thesis, reader, core mechanism, definitions, proof claims,
93
+ working body patterns adapted, narrative beats, mobile scan path, body
94
+ promise, concrete examples, abstractions to remove, and draft risks
94
95
  - validation receipt, including LinkedIn preview pass/warn/fail status and
95
96
  compact fallback when the selected hook carries a warning
97
+ - visible flow trace when the user asked for whole-flow, debug, or step-by-step
98
+ mode, including checkpoint statuses, quality break, downstream effect, and
99
+ whether the trace was shown before saving
96
100
  - rendered mobile and desktop preview blocks for the selected hook; drafts
97
101
  cannot be ready when this rendered-preview audit is missing or fails mobile
98
102
  visibility
@@ -11,13 +11,17 @@ 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
+ - `preDraftNarrativeOutline`
15
+ - `preDraftStructureBrief` as a legacy compatibility alias when older drafts or
16
+ downstream readers still expect it
15
17
  - `selectedSourceTemplate`
16
18
  - `postPositioningBreakdown`
17
19
  - `viralPostOutline`
18
20
  - `hookToBodyPromiseMap`
19
21
  - `bodyExpressionCandidates`
20
22
  - `combinedBodyPlan`
23
+ - `visibleFlowTrace` when the user asked for whole-flow, debug, or
24
+ step-by-step mode
21
25
  - `proofClaimsUsed`
22
26
  - `proofClaimSources`
23
27
  - `storyFilesConsulted`
@@ -117,6 +121,39 @@ After the first draft:
117
121
  10. remove AI tells
118
122
  11. re-check LinkedIn preview fit after edits
119
123
 
124
+ ## Visible Flow Trace Audit
125
+
126
+ When the user asks to see the whole flow, run the process step by step, validate
127
+ that it is working, or debug a bad output, the validation receipt must preserve a
128
+ `visibleFlowTrace`.
129
+
130
+ Record:
131
+
132
+ - `mode`: visible_whole_flow_debug
133
+ - `checkpointStatuses`: each checkpoint marked `pass`, `weak`, `fail`, or
134
+ `blocked`
135
+ - `checkpointOutputs`: the concrete output shown to the user for each
136
+ checkpoint
137
+ - `qualityBreak`: the first checkpoint that made the draft weak, if any
138
+ - `downstreamEffect`: how that break affected the hook, premise, body, or ready
139
+ status
140
+ - `userVisibleBeforeSave`: yes | no
141
+ - `draftSavedDespiteWeakness`: yes | no
142
+ - `reasonDraftSaved`: why a `needs_revision` draft was still worth saving, if
143
+ it was saved
144
+
145
+ Save as `needs_revision` when:
146
+
147
+ - the trace was not shown before draft prose in visible debug mode
148
+ - the body-expression lab was summarized after the fact instead of generating
149
+ real candidates before prose
150
+ - a weak premise, missing proof, or wrong source template produced a bad body
151
+ - the final response claims the workflow worked only because artifacts were
152
+ saved
153
+
154
+ Do not mark a run successful unless the visible trace, final draft, and saved
155
+ receipt all agree on the same quality state.
156
+
120
157
  ## Premise Value Audit
121
158
 
122
159
  Before a draft can be `ready`, validate that the post is valuable, not just
@@ -133,11 +170,14 @@ Record:
133
170
  - `readerValue`: what the reader learns, sees differently, or can do
134
171
  - `proofAvailable`: source-backed proof used
135
172
  - `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
173
+ - `preDraftNarrativeOutline`: hierarchical `I.`, `A.`, `i.` outline showing
174
+ hook debt, thesis, operating model, working body patterns adapted, narrative
175
+ beats, scan path, proof claims, and abstractions to remove
176
+ - `preDraftStructureBrief`: legacy compatibility alias only; the canonical
177
+ artifact is `preDraftNarrativeOutline`
138
178
  - `premiseQualityGates`: pass/fail for `specific_scene_or_pattern`,
139
179
  `clear_reader`, `visible_tension`, `reader_value`, `credible_speaker`,
140
- `proof_safety`, `market_heat`, and `pre_draft_structure`
180
+ `proof_safety`, `market_heat`, and `pre_draft_narrative_outline`
141
181
  - `bodyOutline`: how the body delivers the premise before prose
142
182
  - `viralPostOutline`: the selected narrative structure, including beat jobs
143
183
  - `hookToBodyPromiseMap`: how the body repays the hook's open loop
@@ -147,10 +187,10 @@ If the draft has no specific scene or observed pattern, no visible tension, or
147
187
  no reader value beyond "this is interesting," save as `needs_revision`. Do not
148
188
  mark it `ready` because the hook passes preview limits.
149
189
 
150
- ## Pre-Draft Structure Audit
190
+ ## Pre-Draft Narrative Outline Audit
151
191
 
152
- Before a draft can be `ready`, validate that the structure was locked before the
153
- body was written.
192
+ Before a draft can be `ready`, validate that the narrative outline was locked
193
+ before the body was written.
154
194
 
155
195
  Record:
156
196
 
@@ -162,16 +202,24 @@ Record:
162
202
  could misunderstand
163
203
  - `proofClaims`: claims, sources, and public-safety status
164
204
  - `sourceTemplateOrNoTemplateRationale`
205
+ - `workingBodyPatternsAdapted`: body pattern name, beat order, why it worked,
206
+ what gets borrowed, and what must not be copied
207
+ - `hierarchicalNarrativeBeats`: `I.`, `A.`, `i.` outline of the final post's
208
+ argument, examples, proof, and line/section shapes
165
209
  - `mobileScanPath`: what a skimmer understands from the hook, separators,
166
210
  section labels, numbers, and close
167
- - `sectionOutline`: section order plus the job of each section
211
+ - `sectionOutline`: legacy summary of section order plus the job of each
212
+ section; do not substitute this for `hierarchicalNarrativeBeats`
168
213
  - `bodyPromiseAfterSeeMore`: what the body immediately repays
169
214
  - `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.
215
+ - `userCorrectionsApplied`: user corrections applied to the outline before
216
+ prose
217
+
218
+ Save as `needs_revision` when the draft was written before the narrative
219
+ outline, when the outline is a flat checklist instead of hierarchical
220
+ `I.`, `A.`, `i.` notation, when the outline does not match the final prose, when
221
+ working body patterns are unnamed or vaguely borrowed, when the mobile scan path
222
+ is unclear, or when key terms are left abstract.
175
223
 
176
224
  ## Mobile Scanability Audit
177
225
 
@@ -280,71 +280,77 @@ 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. Working body pattern(s) being adapted:
313
+ i. <pattern name>: <beat order and why it works>
314
+ ii. <pattern name>: <beat order and why it works>
315
+ C. What gets borrowed:
316
+ i. <narrative job, sequence, transition, or proof order>
317
+ D. What must not be copied:
318
+ i. <source wording, creator-specific proof, joke, or context>
319
+
320
+ V. Narrative beats
321
+ A. Beat 1: <job, reader state before/after, example/proof>
322
+ i. Line shape or section label: <how it will appear>
323
+ ii. Concrete examples: <examples/numbers>
324
+ B. Beat 2: <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
+ C. Beat 3: <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
+
331
+ VI. Scan path and proof safety
332
+ A. Mobile scan path: <what skimmers learn from labels/numbers/close>
333
+ B. Proof claims:
334
+ i. <claim>: <source + public-safety status>
335
+ C. Abstractions to remove:
336
+ i. <abstract phrase> -> <concrete replacement>
337
+ D. Draft risks: <risk and how to avoid it>
336
338
  ```
337
339
 
338
340
  Quality gate:
339
341
 
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
342
+ - The outline must explain the post before the draft exists.
343
+ - The outline must be useful to a reader who only scans the finished post.
344
+ - The outline must include proof claims and risk before prose.
345
+ - The outline must define any operating terms that could be misunderstood.
346
+ - The outline must use `I.`, `A.`, and `i.` hierarchy. A flat field list fails.
347
+ - If the post is adapting bodies that worked, the outline must name the body
348
+ pattern and what beat order, proof order, or transition logic is being
349
+ borrowed.
350
+ - If the post is a field guide, the narrative beats must show the hierarchy
345
351
  before prose, such as best-to-worst, highest-to-lowest intent, or
346
352
  source-to-outcome.
347
- - If the brief cannot be made concrete, return to premise development.
353
+ - If the outline cannot be made concrete, return to premise development.
348
354
 
349
355
  ## Premise Quality Gate
350
356
 
@@ -359,7 +365,7 @@ A premise can move to hook generation only when it passes all of these:
359
365
  - `market_heat`: pass or explained
360
366
  - `template_fit`: pass or explicitly no-template
361
367
  - `hook_to_body_repayment`: pass
362
- - `pre_draft_structure`: pass
368
+ - `pre_draft_narrative_outline`: pass
363
369
 
364
370
  If any gate fails:
365
371