@sellable/mcp 0.1.271 → 0.1.272

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.271",
3
+ "version": "0.1.272",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -336,6 +336,13 @@ write from the user's idea and context. The worker may write in a voice-inspired
336
336
  style for the private variant, but it must not claim the creator authored it,
337
337
  copy source wording, copy personal proof, or invent facts about the user.
338
338
 
339
+ Voice variants must model **writing mechanics**, not just a broad persona.
340
+ Before drafting, each worker must infer what "in this creator's voice" concretely
341
+ means for this idea: target word-count band, line and paragraph rhythm, hook
342
+ posture, recurring phrase families, vocabulary level, proof pattern, formatting
343
+ habits, close style, and normal amount of directness or humor. If every variant
344
+ comes back as the same long LinkedIn essay with different labels, the lab failed.
345
+
339
346
  The final orchestrator does not publish a collage of creator personas. It takes
340
347
  the best hooks, pressure, structure, rhythm, and proof moves from the role-played
341
348
  variants, then synthesizes the most compelling post for Christian/Sellable.
@@ -388,22 +395,26 @@ Default workflow:
388
395
  repeated patterns, engagement quality, and follower-adjusted signal when
389
396
  follower counts are available. Do not return the full scoring table.
390
397
  6. Each worker must build a `voice_model` before drafting:
391
- - representative length range for similar posts
398
+ - target word-count band and normal variance for similar posts
392
399
  - average paragraph/line length and spacing rhythm
393
400
  - hook posture and opening moves
394
- - common vocabulary, recurring phrases, and taboo phrases
401
+ - common vocabulary, recurring phrase families, and taboo phrases
395
402
  - proof style: story, numbers, teardown, checklist, confession, challenge
396
403
  - formatting: bullets, numbering, questions, equations, parentheticals
397
404
  - close style: command, reflection, CTA, punchline, open loop
398
405
  - factual boundaries: what must come from Christian/Sellable context
399
406
  7. Each worker writes the complete post that this creator would likely write
400
407
  from the user's idea and context. Match the inferred length/rhythm/style; do
401
- not compress to a generic short draft.
408
+ not compress to a generic short draft, and do not stretch a short-style
409
+ creator into a generic long post.
402
410
  8. Each worker returns a compact voice variant:
403
411
  - person and profile URL
404
412
  - worker status
405
413
  - recent post count sampled
406
414
  - voice model, max 8 bullets
415
+ - mechanics receipt: target length, actual length, line rhythm,
416
+ vocabulary markers used, formatting markers used, close style, and
417
+ `mechanics_match: pass | weak | fail`
407
418
  - complete post variant in that creator's inferred voice and representative
408
419
  length
409
420
  - hook options, max 3
@@ -427,6 +438,10 @@ Hard rules:
427
438
  by the creator.
428
439
  - Do not copy outside wording, proof, jokes, personal stories, or status.
429
440
  - Do not invent user proof just because it would fit the creator's style.
441
+ - Do not treat "voice" as a vibe label. Voice means concrete mechanics: length,
442
+ line rhythm, vocabulary, hook posture, proof style, formatting, and close.
443
+ - Do not publish or save a `ready` draft when voice variants are long generic
444
+ essays with swapped creator names instead of person-specific mechanics.
430
445
  - Do not let a large-audience creator win only because of reach. Use engagement
431
446
  per 1k followers when follower counts are available, and mark confidence when
432
447
  follower data is missing.
@@ -1118,8 +1133,11 @@ Each worker must return:
1118
1133
  - recent post count sampled
1119
1134
  - follower count when available
1120
1135
  - normalization confidence
1121
- - voice model, max 8 bullets, including representative length, rhythm,
1122
- vocabulary, formatting, proof style, and close style
1136
+ - voice model, max 8 bullets, including target length, rhythm, vocabulary,
1137
+ formatting, proof style, and close style
1138
+ - mechanics receipt, including target word-count band, actual word count,
1139
+ paragraph/line rhythm, vocabulary markers, formatting markers, close style,
1140
+ and `mechanics_match: pass | weak | fail`
1123
1141
  - complete role-played post variant in the creator's inferred voice and
1124
1142
  representative length
1125
1143
  - hook options, max 3
@@ -1138,6 +1156,7 @@ Variant labels must be:
1138
1156
  ```text
1139
1157
  voice_variant_from: <person>
1140
1158
  role_play_basis: public posts sampled + configured Reason lane
1159
+ mechanics_receipt: target length | actual length | rhythm | vocabulary markers | formatting markers | close | mechanics_match
1141
1160
  post_variant: <complete variant>
1142
1161
  steal_for_final: hook | structure | proof order | rhythm | close move
1143
1162
  drop_for_final: copied wording | borrowed personal proof | fake user fact
@@ -1156,6 +1175,7 @@ Before drafting, record:
1156
1175
  - `actualVoiceVariantCount`
1157
1176
  - `missingVoiceVariants`
1158
1177
  - `weakVoiceVariants`
1178
+ - `mechanicsReceipts`
1159
1179
  - `selectedSynthesisIngredients`
1160
1180
  - `voiceVariantsGeneratedBeforeFinalProse: yes | no`
1161
1181
  - `workerExecutionMode: background_agents | sequential_fallback`
@@ -1175,6 +1195,7 @@ actualVoiceVariantCount: <number>
1175
1195
 
1176
1196
  1. <person>
1177
1197
  - worker_status:
1198
+ - mechanics_match:
1178
1199
  - draft_review:
1179
1200
  - strongest_move:
1180
1201
  - weakness_or_drop:
@@ -1238,7 +1259,8 @@ Every saved draft needs a validation receipt with:
1238
1259
  - pre-draft narrative outline
1239
1260
  - selected source template and no-copy adaptation rationale
1240
1261
  - thought leader voice variant lab, including skipped/opt-out reason when
1241
- omitted and expected-vs-actual variant counts for the active configured list
1262
+ omitted, expected-vs-actual variant counts for the active configured list,
1263
+ and per-person mechanics receipts
1242
1264
  - post positioning breakdown
1243
1265
  - viral-post outline
1244
1266
  - hook-to-body promise map
@@ -718,6 +718,13 @@ missing variants, weak variants, and selected synthesis ingredients. Ready
718
718
  drafts require one voice variant per active configured person unless the user
719
719
  explicitly opted out or supplied a smaller named subset.
720
720
 
721
+ Voice variants must model writing mechanics, not just a broad creator lens.
722
+ Each worker has to define what "in this person's voice" means for this idea:
723
+ target word-count band, line and paragraph rhythm, hook posture, recurring
724
+ phrase families, vocabulary level, proof pattern, formatting habits, close
725
+ style, and normal directness or humor. If multiple creator variants all become
726
+ the same long LinkedIn essay with different labels, mark the lab weak or failed.
727
+
721
728
  Use one bounded background worker per person when the host supports background
722
729
  agents. This is required for Codex/Claude hosts that expose background agents or
723
730
  Task workers. If the host does not expose a worker mechanism, process the list
@@ -755,10 +762,10 @@ Worker steps:
755
762
  - adaptation fit for Christian/Sellable voice
756
763
  - lead-magnet, giveaway, and status-only penalties
757
764
  5. Build a `voice_model` before drafting. It must infer:
758
- - representative post length range for similar ideas
765
+ - target word-count band and normal variance for similar ideas
759
766
  - paragraph and line rhythm
760
767
  - hook posture and opening moves
761
- - vocabulary and recurring phrases
768
+ - vocabulary and recurring phrase families
762
769
  - formatting habits: bullets, numbering, equations, parentheticals, spacing
763
770
  - proof style: story, metric, teardown, confession, field guide, challenge
764
771
  - close style: command, reflection, CTA, punchline, or open loop
@@ -768,7 +775,8 @@ Worker steps:
768
775
  hook tension, pacing, section shape, directness, humor level, proof style,
769
776
  formatting, and editorial instincts.
770
777
  7. Write the complete post that this creator would likely write from the user's
771
- selected premise and context. Do not compress it into a short generic draft.
778
+ selected premise and context. Do not compress it into a short generic draft
779
+ or stretch a short-style creator into a generic long post.
772
780
  8. Identify what the final synthesis should steal and what it must drop.
773
781
  9. Keep factual claims grounded in the user's context. Do not invent user proof.
774
782
 
@@ -796,7 +804,15 @@ worker_status: pass | weak | retry_needed | blocked
796
804
  recent_posts_sampled:
797
805
  follower_count: <number | unavailable>
798
806
  normalization_confidence: high | medium | low
799
- voice_model: [max 8 bullets covering length, rhythm, vocabulary, formatting, proof style, close]
807
+ voice_model: [max 8 bullets covering target length, rhythm, vocabulary, formatting, proof style, close]
808
+ mechanics_receipt:
809
+ - target_word_count_band:
810
+ - actual_word_count:
811
+ - paragraph_line_rhythm:
812
+ - vocabulary_markers:
813
+ - formatting_markers:
814
+ - close_style:
815
+ - mechanics_match: pass | weak | fail
800
816
  hook_options: [max 3]
801
817
  post_variant: <complete post in the creator's inferred voice and representative length>
802
818
  steal_for_final: [max 5 bullets]
@@ -356,8 +356,11 @@ Record:
356
356
  - `workerExecutionMode`: `background_agents` | `sequential_fallback`
357
357
  - `backgroundWorkerIds`: worker IDs or labels when available
358
358
  - `thoughtLeaderList`: names and profile URLs or handles
359
- - `voiceModels`: inferred length, rhythm, vocabulary, formatting, proof style,
360
- and close style per person
359
+ - `voiceModels`: inferred target length, rhythm, vocabulary, formatting, proof
360
+ style, and close style per person
361
+ - `mechanicsReceipts`: target word-count band, actual word count, line rhythm,
362
+ vocabulary markers, formatting markers, close style, and
363
+ `mechanics_match: pass | weak | fail` per person
361
364
  - `voiceVariants`: one representative-length role-played post per person, or
362
365
  `not_available` with reason
363
366
  - `normalizationConfidence`: high | medium | low
@@ -380,6 +383,12 @@ when variants are replaced by a generic influencer summary, or when voice
380
383
  variants were generated after final prose instead of before final prose. Return
381
384
  `retry-needed` when a tool/package/search failure prevents fetching configured
382
385
  profiles or posts.
386
+
387
+ Save as `needs_revision` when the variants do not demonstrate person-specific
388
+ writing mechanics, when `mechanicsReceipts` are missing, or when multiple
389
+ variants are effectively the same long LinkedIn essay with different creator
390
+ labels.
391
+
383
392
  Only mark `thought_leader_adaptation: not_used` when the user explicitly opted
384
393
  out before drafting.
385
394