@sellable/mcp 0.1.272 → 0.1.273
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
|
@@ -606,6 +606,7 @@ Visible Flow Trace
|
|
|
606
606
|
- worker status per person:
|
|
607
607
|
- recent posts sampled:
|
|
608
608
|
- voice model:
|
|
609
|
+
- mechanics receipts:
|
|
609
610
|
- complete voice variants:
|
|
610
611
|
- follower-adjusted signal when available:
|
|
611
612
|
- hook/body moves worth stealing:
|
|
@@ -623,6 +624,11 @@ Visible Flow Trace
|
|
|
623
624
|
- proof gate:
|
|
624
625
|
- voice gate:
|
|
625
626
|
- anti-AI gate:
|
|
627
|
+
- local finalizer pass:
|
|
628
|
+
- turn separators added:
|
|
629
|
+
- contractions applied:
|
|
630
|
+
- lowercase pass:
|
|
631
|
+
- abstract-to-concrete rewrites:
|
|
626
632
|
- mobile preview gate:
|
|
627
633
|
- template adaptation gate:
|
|
628
634
|
- hook-to-body repayment:
|
|
@@ -1242,6 +1248,42 @@ either completed for every active configured influencer or the validation
|
|
|
1242
1248
|
receipt has an explicit user opt-out reason. A light source-research summary
|
|
1243
1249
|
does not satisfy this gate.
|
|
1244
1250
|
|
|
1251
|
+
## Step 3.5: Local Finalizer Pass
|
|
1252
|
+
|
|
1253
|
+
Run this pass after the canonical draft exists and before validation and save.
|
|
1254
|
+
|
|
1255
|
+
1. Add `--` between each major turn in the post so the story is easier to read.
|
|
1256
|
+
Use it to separate turns such as hook, context, problem, mechanism, product
|
|
1257
|
+
proof, concrete example, and CTA. Do not add `--` inside a tight list where
|
|
1258
|
+
it would make the post harder to scan.
|
|
1259
|
+
2. Use contractions in the draft body by default: `don't`, `isn't`, `that's`,
|
|
1260
|
+
`it's`, `can't`, `we're`, `you're`, and similar natural phrasing. Keep the
|
|
1261
|
+
non-contracted form only when the user explicitly wrote it that way, when a
|
|
1262
|
+
quoted line must stay exact, or when the contraction would sound unnatural.
|
|
1263
|
+
3. Keep optional headings, section labels, and line starts lowercase by default
|
|
1264
|
+
when the post still reads naturally. Preserve proper nouns, acronyms, product
|
|
1265
|
+
names, and required capitalization such as `Claude`, `LinkedIn`, `Codex`,
|
|
1266
|
+
`Sellable.dev`, `Clay`, `HeyReach`, and `ICP`.
|
|
1267
|
+
4. Run a Harry Dry-style concrete-language audit:
|
|
1268
|
+
- highlight every abstract or vague word/phrase in the validation receipt
|
|
1269
|
+
before saving
|
|
1270
|
+
- replace each one in the draft with a concrete object, action, number,
|
|
1271
|
+
example, screen, list, person, place, or visible workflow step
|
|
1272
|
+
- prefer words a reader can picture, such as `lead list`, `send settings`,
|
|
1273
|
+
`reply inbox`, `follow-up`, `team post`, `warm LinkedIn prospect`,
|
|
1274
|
+
`reply handling`, or `one sentence in Claude Code`
|
|
1275
|
+
- do not make a phrase concrete by inventing proof, metrics, customers, or
|
|
1276
|
+
product behavior the user did not provide
|
|
1277
|
+
5. Record this pass in the validation receipt as `localFinalizerPass` with:
|
|
1278
|
+
- `turnSeparatorsAdded: yes | no` and a short reason
|
|
1279
|
+
- `contractionsApplied: yes | no`
|
|
1280
|
+
- `lowercasePass: yes | no` with preserved proper nouns listed
|
|
1281
|
+
- `abstractToConcreteRewrites`, listing each abstract phrase, why it was
|
|
1282
|
+
weak, and the concrete replacement used
|
|
1283
|
+
|
|
1284
|
+
If this pass cannot be completed, save the draft as `needs_revision` instead of
|
|
1285
|
+
`ready`, and explain which finalizer requirement failed.
|
|
1286
|
+
|
|
1245
1287
|
## Step 4: Validation
|
|
1246
1288
|
|
|
1247
1289
|
Use `references/post-validation.md`.
|
|
@@ -1280,6 +1322,8 @@ Every saved draft needs a validation receipt with:
|
|
|
1280
1322
|
- outbound AI-tell audit findings
|
|
1281
1323
|
- hook preview pass/warn/fail status and compact fallback when warned
|
|
1282
1324
|
- finalizer changes
|
|
1325
|
+
- local finalizer pass with turn separators, contractions, lowercase pass, and
|
|
1326
|
+
abstract-to-concrete rewrites
|
|
1283
1327
|
- blocked/retry-needed reasons, if any
|
|
1284
1328
|
|
|
1285
1329
|
If validation fails, do not save the draft as `ready`. Save as `needs_revision` or return blocked/retry-needed.
|
|
@@ -118,6 +118,10 @@ Draft files must preserve:
|
|
|
118
118
|
promise, concrete examples, abstractions to remove, and draft risks
|
|
119
119
|
- validation receipt, including LinkedIn preview pass/warn/fail status and
|
|
120
120
|
compact fallback when the selected hook carries a warning
|
|
121
|
+
- local finalizer pass: whether `--` turn separators were added, whether
|
|
122
|
+
contractions were applied, whether lowercase style was applied where safe,
|
|
123
|
+
preserved proper nouns/acronyms, and abstract-to-concrete rewrites with the
|
|
124
|
+
before/after phrases used in the final draft
|
|
121
125
|
- visible flow trace when the user asked for whole-flow, debug, or step-by-step
|
|
122
126
|
mode, including checkpoint statuses, quality break, downstream effect, and
|
|
123
127
|
whether the trace was shown before saving
|
|
@@ -125,6 +125,41 @@ After the first draft:
|
|
|
125
125
|
9. preserve the user's actual story and point
|
|
126
126
|
10. remove AI tells
|
|
127
127
|
11. re-check LinkedIn preview fit after edits
|
|
128
|
+
12. add `--` between major story turns when it improves scanability
|
|
129
|
+
13. use natural contractions by default
|
|
130
|
+
14. keep optional headings, section labels, and line starts lowercase when safe
|
|
131
|
+
15. run the concrete-language audit below and replace abstract phrasing before
|
|
132
|
+
saving
|
|
133
|
+
|
|
134
|
+
### Local Finalizer Pass
|
|
135
|
+
|
|
136
|
+
Before a draft can be saved as `ready`, record a local finalizer pass. This is
|
|
137
|
+
the last copy pass after the draft body exists and before `save_post_draft`.
|
|
138
|
+
|
|
139
|
+
Record:
|
|
140
|
+
|
|
141
|
+
- `turnSeparatorsAdded`: yes | no
|
|
142
|
+
- `turnSeparatorReason`: where `--` was inserted or why it was skipped
|
|
143
|
+
- `contractionsApplied`: yes | no
|
|
144
|
+
- `contractionsChanged`: examples such as `do not -> don't`, `is not -> isn't`,
|
|
145
|
+
`that is -> that's`, or `it is -> it's`
|
|
146
|
+
- `lowercasePass`: yes | no
|
|
147
|
+
- `preservedCapitalization`: proper nouns, acronyms, product names, and required
|
|
148
|
+
capitalization such as `Claude`, `LinkedIn`, `Codex`, `Sellable.dev`, `Clay`,
|
|
149
|
+
`HeyReach`, and `ICP`
|
|
150
|
+
- `abstractToConcreteRewrites`: every abstract phrase flagged, why it was weak,
|
|
151
|
+
and the concrete replacement used
|
|
152
|
+
|
|
153
|
+
Save as `needs_revision` when:
|
|
154
|
+
|
|
155
|
+
- major story turns are visually hard to follow and no `--` separators or other
|
|
156
|
+
clear turn markers were added
|
|
157
|
+
- the draft keeps stiff non-contracted phrasing without a user/source reason
|
|
158
|
+
- optional headings or labels stay title-cased in a way that clashes with the
|
|
159
|
+
user's lowercase post style
|
|
160
|
+
- meaningful abstract phrases remain in the draft after the concrete-language
|
|
161
|
+
audit
|
|
162
|
+
- the validation receipt does not show what changed during this finalizer pass
|
|
128
163
|
|
|
129
164
|
## Visible Flow Trace Audit
|
|
130
165
|
|
|
@@ -260,7 +295,9 @@ or practical next action.
|
|
|
260
295
|
## Abstraction-To-Concrete Rewrite Audit
|
|
261
296
|
|
|
262
297
|
Record every meaningful abstraction found in the draft and the concrete
|
|
263
|
-
replacement. Do not merely say "made concrete."
|
|
298
|
+
replacement. Do not merely say "made concrete." Use a Harry Dry-style standard:
|
|
299
|
+
if the reader cannot picture the word on a screen, in a list, in a sentence they
|
|
300
|
+
would type, or as a workflow step someone could perform, make it more concrete.
|
|
264
301
|
|
|
265
302
|
Use this format:
|
|
266
303
|
|
|
@@ -279,11 +316,25 @@ Common abstractions to flag:
|
|
|
279
316
|
- vague nouns such as `signal`, `market`, `attention`, `system`, `quality`,
|
|
280
317
|
`context`, `machine`, or `workflow` when the sentence does not name the actual
|
|
281
318
|
source, action, number, or object
|
|
319
|
+
- vague product words such as `orchestrator`, `campaign object`, `GTM
|
|
320
|
+
superpowers`, `agentic`, `AI-native`, or `platform` when the sentence does not
|
|
321
|
+
name the visible work being done
|
|
282
322
|
- broad persona labels used as lead sources
|
|
283
323
|
- "warm" without explaining what made the source warm
|
|
284
324
|
- "offer" without explaining why the recipient would believe or want it
|
|
285
325
|
- "learning" without naming what metric changes the next decision
|
|
286
326
|
|
|
327
|
+
Concrete replacements should name visible things, for example:
|
|
328
|
+
|
|
329
|
+
- `lead list`
|
|
330
|
+
- `send settings`
|
|
331
|
+
- `reply inbox`
|
|
332
|
+
- `follow-up`
|
|
333
|
+
- `team post`
|
|
334
|
+
- `warm LinkedIn prospect`
|
|
335
|
+
- `reply handling`
|
|
336
|
+
- `one sentence in Claude Code`
|
|
337
|
+
|
|
287
338
|
Do not make language concrete by inventing facts. If the concrete replacement
|
|
288
339
|
requires missing proof, ask the user or save as `needs_revision`.
|
|
289
340
|
|