@sellable/mcp 0.1.259 → 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/dist/index-dev.js +0 -0
- package/dist/index.js +0 -0
- package/dist/tools/engage-discovery.d.ts +24 -0
- package/dist/tools/engage-discovery.js +114 -9
- package/dist/tools/registry.d.ts +8 -0
- package/package.json +1 -1
- package/skills/create-post/SKILL.md +334 -5
- package/skills/create-post/references/hook-research-playbook.md +269 -5
- package/skills/create-post/references/linkedin-preview-rendering.md +176 -0
- package/skills/create-post/references/post-file-contract.md +17 -0
- package/skills/create-post/references/post-validation.md +177 -8
- package/skills/create-post/references/premise-development.md +256 -5
- package/skills/research/config.json +9 -0
|
@@ -11,6 +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
|
+
- `preDraftNarrativeOutline`
|
|
15
|
+
- `preDraftStructureBrief` as a legacy compatibility alias when older drafts or
|
|
16
|
+
downstream readers still expect it
|
|
17
|
+
- `selectedSourceTemplate`
|
|
18
|
+
- `postPositioningBreakdown`
|
|
19
|
+
- `viralPostOutline`
|
|
20
|
+
- `hookToBodyPromiseMap`
|
|
21
|
+
- `bodyExpressionCandidates`
|
|
22
|
+
- `combinedBodyPlan`
|
|
23
|
+
- `visibleFlowTrace` when the user asked for whole-flow, debug, or
|
|
24
|
+
step-by-step mode
|
|
14
25
|
- `proofClaimsUsed`
|
|
15
26
|
- `proofClaimSources`
|
|
16
27
|
- `storyFilesConsulted`
|
|
@@ -18,6 +29,9 @@ Every saved draft needs a validation receipt. A draft without this receipt is no
|
|
|
18
29
|
- `voiceRulesApplied`
|
|
19
30
|
- `marketBeliefAudit`
|
|
20
31
|
- `premiseValueAudit`
|
|
32
|
+
- `mobileScanabilityAudit`
|
|
33
|
+
- `templateAdaptationAudit`
|
|
34
|
+
- `abstractionToConcreteRewriteAudit`
|
|
21
35
|
- `linkedinPreviewAudit`
|
|
22
36
|
- `simplifierConcreteLanguageAudit`
|
|
23
37
|
- `antiAiAudit`
|
|
@@ -74,9 +88,13 @@ Each candidate should include:
|
|
|
74
88
|
|
|
75
89
|
- hook text
|
|
76
90
|
- selected premise
|
|
91
|
+
- selected source template or no-template rationale
|
|
77
92
|
- premise tension opened
|
|
78
93
|
- reader value implied
|
|
79
94
|
- source pattern
|
|
95
|
+
- hook-to-body promise
|
|
96
|
+
- see-more tension
|
|
97
|
+
- curiosity debt
|
|
80
98
|
- score
|
|
81
99
|
- char count including newlines and first-line / first-two-line preview measurements
|
|
82
100
|
- physical line count, content line count, longest nonblank line, and blank-line risk
|
|
@@ -93,12 +111,48 @@ After the first draft:
|
|
|
93
111
|
1. remove unsupported claims
|
|
94
112
|
2. verify the draft is anchored to the selected market belief and controversy
|
|
95
113
|
3. verify the real story/scene, tension, and reader value are visible early
|
|
96
|
-
4.
|
|
97
|
-
5.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
114
|
+
4. verify the body repays the selected hook's curiosity debt
|
|
115
|
+
5. verify the final post follows the selected positioning sequence or explains
|
|
116
|
+
why it departed from the template
|
|
117
|
+
6. tighten the hook
|
|
118
|
+
7. simplify abstract phrasing
|
|
119
|
+
8. replace generic language with concrete words only when supported
|
|
120
|
+
9. preserve the user's actual story and point
|
|
121
|
+
10. remove AI tells
|
|
122
|
+
11. re-check LinkedIn preview fit after edits
|
|
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.
|
|
102
156
|
|
|
103
157
|
## Premise Value Audit
|
|
104
158
|
|
|
@@ -116,15 +170,128 @@ Record:
|
|
|
116
170
|
- `readerValue`: what the reader learns, sees differently, or can do
|
|
117
171
|
- `proofAvailable`: source-backed proof used
|
|
118
172
|
- `proofMissing`: claims intentionally avoided or requiring user input
|
|
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`
|
|
119
178
|
- `premiseQualityGates`: pass/fail for `specific_scene_or_pattern`,
|
|
120
179
|
`clear_reader`, `visible_tension`, `reader_value`, `credible_speaker`,
|
|
121
|
-
`proof_safety`, and `
|
|
180
|
+
`proof_safety`, `market_heat`, and `pre_draft_narrative_outline`
|
|
122
181
|
- `bodyOutline`: how the body delivers the premise before prose
|
|
182
|
+
- `viralPostOutline`: the selected narrative structure, including beat jobs
|
|
183
|
+
- `hookToBodyPromiseMap`: how the body repays the hook's open loop
|
|
184
|
+
- `combinedBodyPlan`: which body-expression lines were kept, rewritten, or cut
|
|
123
185
|
|
|
124
186
|
If the draft has no specific scene or observed pattern, no visible tension, or
|
|
125
187
|
no reader value beyond "this is interesting," save as `needs_revision`. Do not
|
|
126
188
|
mark it `ready` because the hook passes preview limits.
|
|
127
189
|
|
|
190
|
+
## Pre-Draft Narrative Outline Audit
|
|
191
|
+
|
|
192
|
+
Before a draft can be `ready`, validate that the narrative outline was locked
|
|
193
|
+
before the body was written.
|
|
194
|
+
|
|
195
|
+
Record:
|
|
196
|
+
|
|
197
|
+
- `hook`: selected hook plus mobile/desktop rendered preview verdict
|
|
198
|
+
- `thesis`: one sentence the post defends
|
|
199
|
+
- `readerBeingTaught`: specific reader and why the post is written for them
|
|
200
|
+
- `coreEquationOrMechanism`: the operating idea being taught
|
|
201
|
+
- `keyDefinitions`: concrete definitions and examples for terms the reader
|
|
202
|
+
could misunderstand
|
|
203
|
+
- `proofClaims`: claims, sources, and public-safety status
|
|
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
|
|
209
|
+
- `mobileScanPath`: what a skimmer understands from the hook, separators,
|
|
210
|
+
section labels, numbers, and close
|
|
211
|
+
- `sectionOutline`: legacy summary of section order plus the job of each
|
|
212
|
+
section; do not substitute this for `hierarchicalNarrativeBeats`
|
|
213
|
+
- `bodyPromiseAfterSeeMore`: what the body immediately repays
|
|
214
|
+
- `abstractionsToRemove`: abstract phrases and their concrete replacements
|
|
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.
|
|
223
|
+
|
|
224
|
+
## Mobile Scanability Audit
|
|
225
|
+
|
|
226
|
+
A LinkedIn post must still teach the main idea when a reader scans it.
|
|
227
|
+
|
|
228
|
+
Record:
|
|
229
|
+
|
|
230
|
+
- `scanVisibleFrom`: hook, separators, numbered labels, ranges/numbers, example
|
|
231
|
+
prompts, and close
|
|
232
|
+
- `readerGetsWithoutReadingEveryWord`: the specific takeaway a skimmer gets
|
|
233
|
+
- `sectionSeparators`: present | absent | not_needed
|
|
234
|
+
- `sectionLabels`: concrete | abstract | missing
|
|
235
|
+
- `numbersOrProofVisible`: yes | no
|
|
236
|
+
- `mobileLineLengthRisk`: pass | warn | fail
|
|
237
|
+
- `skimVerdict`: pass | needs_revision
|
|
238
|
+
|
|
239
|
+
Save as `needs_revision` when a skimmer cannot understand the thesis, hierarchy,
|
|
240
|
+
or practical next action.
|
|
241
|
+
|
|
242
|
+
## Abstraction-To-Concrete Rewrite Audit
|
|
243
|
+
|
|
244
|
+
Record every meaningful abstraction found in the draft and the concrete
|
|
245
|
+
replacement. Do not merely say "made concrete."
|
|
246
|
+
|
|
247
|
+
Use this format:
|
|
248
|
+
|
|
249
|
+
```text
|
|
250
|
+
abstractionToConcreteRewriteAudit:
|
|
251
|
+
1.
|
|
252
|
+
original:
|
|
253
|
+
issue:
|
|
254
|
+
replacement:
|
|
255
|
+
source:
|
|
256
|
+
kept_or_cut:
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Common abstractions to flag:
|
|
260
|
+
|
|
261
|
+
- vague nouns such as `signal`, `market`, `attention`, `system`, `quality`,
|
|
262
|
+
`context`, `machine`, or `workflow` when the sentence does not name the actual
|
|
263
|
+
source, action, number, or object
|
|
264
|
+
- broad persona labels used as lead sources
|
|
265
|
+
- "warm" without explaining what made the source warm
|
|
266
|
+
- "offer" without explaining why the recipient would believe or want it
|
|
267
|
+
- "learning" without naming what metric changes the next decision
|
|
268
|
+
|
|
269
|
+
Do not make language concrete by inventing facts. If the concrete replacement
|
|
270
|
+
requires missing proof, ask the user or save as `needs_revision`.
|
|
271
|
+
|
|
272
|
+
## Template Adaptation Audit
|
|
273
|
+
|
|
274
|
+
Before a draft can be `ready`, validate that source posts were converted into
|
|
275
|
+
templates rather than copied.
|
|
276
|
+
|
|
277
|
+
Record:
|
|
278
|
+
|
|
279
|
+
- `selectedSourceTemplate`: source, template name, and why it fits
|
|
280
|
+
- `positioningSequenceBorrowed`: category sequence being adapted
|
|
281
|
+
- `viralPostOutlineBorrowed`: beat sequence being adapted
|
|
282
|
+
- `lineShapesBorrowed`: reusable line shapes, not copied wording
|
|
283
|
+
- `userStoryInputsUsed`: source-backed user facts filling the template
|
|
284
|
+
- `userProofInputsUsed`: source-backed user proof filling the template
|
|
285
|
+
- `forbiddenBorrowingAvoided`: source proof, jokes, personal context, status,
|
|
286
|
+
phrases, or examples not used
|
|
287
|
+
- `hookToBodyRepayment`: whether the body answers the hook's curiosity debt
|
|
288
|
+
- `bodyExpressionCandidatesReviewed`: which variants were tested and what won
|
|
289
|
+
- `copyingRisk`: pass | needs_revision | blocked
|
|
290
|
+
|
|
291
|
+
Save as `needs_revision` when the draft copies outside wording, borrows outside
|
|
292
|
+
proof, keeps a source template's status without equivalent user authority, or
|
|
293
|
+
uses a hook whose promised body payoff is not delivered.
|
|
294
|
+
|
|
128
295
|
## Market Belief Audit
|
|
129
296
|
|
|
130
297
|
Before a draft can be `ready`, validate that it is not merely an internally
|
|
@@ -259,7 +426,9 @@ If the necessary proof or story is missing, ask the user or return blocked/retry
|
|
|
259
426
|
|
|
260
427
|
Use:
|
|
261
428
|
|
|
262
|
-
- `ready` only when proof, voice, anti-AI,
|
|
429
|
+
- `ready` only when proof, voice, anti-AI, concrete-language, pre-draft
|
|
430
|
+
structure, mobile-scanability, hook-to-body repayment, and
|
|
431
|
+
template-adaptation gates pass
|
|
263
432
|
- `needs_revision` when a draft exists but a gate failed
|
|
264
433
|
- `blocked` when required context is missing
|
|
265
434
|
- `retry-needed` when a tool/package/search failure blocked the pipeline
|
|
@@ -1,16 +1,42 @@
|
|
|
1
|
-
# Premise Development
|
|
1
|
+
# Premise Development V2
|
|
2
2
|
|
|
3
3
|
A strong post is not an idea with a better hook. A strong post is a valuable
|
|
4
4
|
premise wrapped in a sharp opening.
|
|
5
5
|
|
|
6
|
-
Use this stage after market/hook research and before hook candidates.
|
|
7
|
-
|
|
6
|
+
Use this stage after market/hook research and before hook candidates. V2 premise
|
|
7
|
+
development also consumes the source post templates from hook research:
|
|
8
|
+
post positioning breakdowns, viral-post outlines, hook-to-body promise maps, and
|
|
9
|
+
body expression inputs.
|
|
10
|
+
|
|
11
|
+
Do not generate hook candidates until at least one `Premise Card` exists and at
|
|
12
|
+
least one source template has either been selected or explicitly rejected as a
|
|
13
|
+
poor fit.
|
|
8
14
|
|
|
9
15
|
## Goal
|
|
10
16
|
|
|
11
17
|
Turn the raw idea into a real story, observed tension, or useful argument that a
|
|
12
18
|
specific reader would care about.
|
|
13
19
|
|
|
20
|
+
Use this post tension framework when evaluating whether the premise can hold
|
|
21
|
+
attention:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
Belief -> Contradiction -> Stakes -> Proof -> Mechanism -> Reframe -> Useful Move
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- `Belief`: what the reader already thinks or wants to be true
|
|
28
|
+
- `Contradiction`: what the source story reveals that does not fit the belief
|
|
29
|
+
- `Stakes`: what the reader loses if they keep believing the old version
|
|
30
|
+
- `Proof`: the scene, number, repeated pattern, or concrete artifact that makes
|
|
31
|
+
the contradiction credible
|
|
32
|
+
- `Mechanism`: why the thing actually works or fails
|
|
33
|
+
- `Reframe`: the sharper way to see the problem after the mechanism is clear
|
|
34
|
+
- `Useful Move`: what the reader can do, notice, stop doing, or test next
|
|
35
|
+
|
|
36
|
+
A post feels "edge of seat" when the hook creates a contradiction the target
|
|
37
|
+
reader cares about, the body delays the answer only while adding proof, and each
|
|
38
|
+
beat either raises tension or repays tension. If a beat does neither, cut it.
|
|
39
|
+
|
|
14
40
|
The premise must answer:
|
|
15
41
|
|
|
16
42
|
- who this is for
|
|
@@ -22,6 +48,8 @@ The premise must answer:
|
|
|
22
48
|
- why now
|
|
23
49
|
- why this user can credibly say it
|
|
24
50
|
- what proof is available and what proof is missing
|
|
51
|
+
- which source template, if any, should shape the narrative
|
|
52
|
+
- which positioning sequence the user's post should follow
|
|
25
53
|
|
|
26
54
|
If the premise has no real scene, no tension, and no reader value, stop before
|
|
27
55
|
drafting. Ask for the missing story or save only a `needs_revision` premise
|
|
@@ -96,11 +124,23 @@ proof missing:
|
|
|
96
124
|
best frame:
|
|
97
125
|
story | contrarian take | teardown | founder confession | future thesis | lesson
|
|
98
126
|
|
|
127
|
+
source template fit:
|
|
128
|
+
<selected source template name or none>
|
|
129
|
+
|
|
130
|
+
positioning sequence to test:
|
|
131
|
+
<Category -> Category -> Category -> ...>
|
|
132
|
+
|
|
133
|
+
viral outline to adapt:
|
|
134
|
+
<beat names from selected source template, rewritten for this user's story>
|
|
135
|
+
|
|
99
136
|
hook territories:
|
|
100
137
|
- <territory 1>
|
|
101
138
|
- <territory 2>
|
|
102
139
|
- <territory 3>
|
|
103
140
|
|
|
141
|
+
body expression inputs:
|
|
142
|
+
- <line shape, proof slot, story beat, mechanism explanation, or closing move>
|
|
143
|
+
|
|
104
144
|
risk:
|
|
105
145
|
<why this premise might still be weak>
|
|
106
146
|
|
|
@@ -108,6 +148,210 @@ score:
|
|
|
108
148
|
<1-100 with short reason>
|
|
109
149
|
```
|
|
110
150
|
|
|
151
|
+
## Template-Aware Premise Selection
|
|
152
|
+
|
|
153
|
+
Do not treat source templates as decoration. A source template is useful only
|
|
154
|
+
when its narrative engine matches something the user can credibly say.
|
|
155
|
+
|
|
156
|
+
For each premise card, compare it against the selected keeper templates from
|
|
157
|
+
hook research:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
Template fit check:
|
|
161
|
+
premise:
|
|
162
|
+
source_template:
|
|
163
|
+
template narrative engine:
|
|
164
|
+
matching user story/proof:
|
|
165
|
+
missing user story/proof:
|
|
166
|
+
positioning sequence fit:
|
|
167
|
+
hook promise fit:
|
|
168
|
+
body payoff fit:
|
|
169
|
+
voice fit:
|
|
170
|
+
borrow:
|
|
171
|
+
do not borrow:
|
|
172
|
+
fit verdict: strong | partial | weak | reject
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Reject a template when it depends on source-specific proof, celebrity reach,
|
|
176
|
+
personal context the user does not have, or a body structure that would force a
|
|
177
|
+
fake story. Prefer a less viral template that fits the user's real proof over a
|
|
178
|
+
more viral template that requires borrowed authority.
|
|
179
|
+
|
|
180
|
+
## Viral Narrative Structure
|
|
181
|
+
|
|
182
|
+
Once a premise and source template are selected, create the user's viral-post
|
|
183
|
+
outline before writing body prose.
|
|
184
|
+
|
|
185
|
+
Use this format:
|
|
186
|
+
|
|
187
|
+
```text
|
|
188
|
+
User viral-post outline:
|
|
189
|
+
selected_premise:
|
|
190
|
+
selected_source_template:
|
|
191
|
+
hook_promise:
|
|
192
|
+
see_more_tension:
|
|
193
|
+
body_payoff:
|
|
194
|
+
positioning_sequence:
|
|
195
|
+
<Category> -> <Category> -> <Category> -> ...
|
|
196
|
+
|
|
197
|
+
beats:
|
|
198
|
+
1.
|
|
199
|
+
beat_name:
|
|
200
|
+
narrative_job:
|
|
201
|
+
user_story_or_proof:
|
|
202
|
+
positioning_categories:
|
|
203
|
+
reader_state_before:
|
|
204
|
+
reader_state_after:
|
|
205
|
+
line_shape_to_test:
|
|
206
|
+
proof_safety:
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The outline should preserve the source template's useful narrative jobs while
|
|
210
|
+
replacing all source-specific proof, scenes, status, jokes, and examples with
|
|
211
|
+
the user's material.
|
|
212
|
+
|
|
213
|
+
## Body Expression Lab
|
|
214
|
+
|
|
215
|
+
After the selected hook and viral-post outline exist, generate body expression
|
|
216
|
+
candidates before writing the final draft. This is where the system tests
|
|
217
|
+
different ways to express the same structure.
|
|
218
|
+
|
|
219
|
+
Generate 5-8 body expression candidates. Every candidate must use:
|
|
220
|
+
|
|
221
|
+
- the same selected hook or hook territory
|
|
222
|
+
- the same selected premise
|
|
223
|
+
- the same viral-post outline
|
|
224
|
+
- the same positioning sequence
|
|
225
|
+
- only user-sourced story and proof
|
|
226
|
+
|
|
227
|
+
Each candidate should vary the expression, not the facts:
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
Body expression candidate:
|
|
231
|
+
name:
|
|
232
|
+
expression_strategy:
|
|
233
|
+
opening_after_hook:
|
|
234
|
+
beat_lines:
|
|
235
|
+
1. <line or paragraph>
|
|
236
|
+
2. <line or paragraph>
|
|
237
|
+
positioning_sequence_coverage:
|
|
238
|
+
hook_promise_repaid:
|
|
239
|
+
best_lines:
|
|
240
|
+
weak_lines:
|
|
241
|
+
proof_risk:
|
|
242
|
+
voice_risk:
|
|
243
|
+
score:
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Useful expression strategies:
|
|
247
|
+
|
|
248
|
+
- plain field guide
|
|
249
|
+
- founder confession
|
|
250
|
+
- proof-first roadmap
|
|
251
|
+
- teardown then replacement
|
|
252
|
+
- scene then lesson
|
|
253
|
+
- enemy naming then mechanism
|
|
254
|
+
- compact build-in-public note
|
|
255
|
+
|
|
256
|
+
Do not create candidates by changing the claim. Create candidates by changing
|
|
257
|
+
line order, amount of scene, proof placement, rhythm, and how the mechanism is
|
|
258
|
+
explained.
|
|
259
|
+
|
|
260
|
+
## Combine Pass
|
|
261
|
+
|
|
262
|
+
After body expression candidates are scored, combine the best parts into one
|
|
263
|
+
draft outline before prose.
|
|
264
|
+
|
|
265
|
+
Record:
|
|
266
|
+
|
|
267
|
+
```text
|
|
268
|
+
Combined body plan:
|
|
269
|
+
selected_hook:
|
|
270
|
+
selected_expression_parts:
|
|
271
|
+
lines_kept:
|
|
272
|
+
lines_rewritten:
|
|
273
|
+
lines_cut:
|
|
274
|
+
positioning_sequence_final:
|
|
275
|
+
hook_promise_repayment:
|
|
276
|
+
proof_gaps_remaining:
|
|
277
|
+
why_this_combination_wins:
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
If no candidate repays the hook promise with real user proof, return to premise
|
|
281
|
+
development or ask the user for the missing story. Do not save a `ready` draft.
|
|
282
|
+
|
|
283
|
+
## Pre-Draft Narrative Outline
|
|
284
|
+
|
|
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.
|
|
289
|
+
|
|
290
|
+
Use this format:
|
|
291
|
+
|
|
292
|
+
```text
|
|
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>
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
Quality gate:
|
|
341
|
+
|
|
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
|
|
351
|
+
before prose, such as best-to-worst, highest-to-lowest intent, or
|
|
352
|
+
source-to-outcome.
|
|
353
|
+
- If the outline cannot be made concrete, return to premise development.
|
|
354
|
+
|
|
111
355
|
## Premise Quality Gate
|
|
112
356
|
|
|
113
357
|
A premise can move to hook generation only when it passes all of these:
|
|
@@ -119,6 +363,9 @@ A premise can move to hook generation only when it passes all of these:
|
|
|
119
363
|
- `credible_speaker`: pass
|
|
120
364
|
- `proof_safety`: pass
|
|
121
365
|
- `market_heat`: pass or explained
|
|
366
|
+
- `template_fit`: pass or explicitly no-template
|
|
367
|
+
- `hook_to_body_repayment`: pass
|
|
368
|
+
- `pre_draft_narrative_outline`: pass
|
|
122
369
|
|
|
123
370
|
If any gate fails:
|
|
124
371
|
|
|
@@ -137,8 +384,11 @@ For each hook candidate, include:
|
|
|
137
384
|
- which tension it opens
|
|
138
385
|
- which reader value it implies
|
|
139
386
|
- whether the real scene appears in the first screen or shortly after
|
|
387
|
+
- source template or no-template rationale
|
|
388
|
+
- hook promise the body must repay
|
|
140
389
|
|
|
141
390
|
Reject hooks that are accurate but do not reveal the premise's tension or value.
|
|
391
|
+
Reject hooks that create a promise the selected viral-post outline cannot repay.
|
|
142
392
|
|
|
143
393
|
## Body Relationship
|
|
144
394
|
|
|
@@ -155,5 +405,6 @@ body outline:
|
|
|
155
405
|
7. close returns to the premise without summarizing
|
|
156
406
|
```
|
|
157
407
|
|
|
158
|
-
|
|
159
|
-
|
|
408
|
+
Replace this generic outline with the selected viral-post outline when a source
|
|
409
|
+
template is available. If the outline cannot be filled without inventing proof,
|
|
410
|
+
return to premise development.
|