@sellable/mcp 0.1.21 → 0.1.22
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/README.md
CHANGED
|
@@ -83,14 +83,14 @@ The token is provided when you generate it. Use `list_workspaces` +
|
|
|
83
83
|
For customer/package installs, use the public installer:
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
|
-
npx -y @sellable/install@0.1.
|
|
86
|
+
npx -y @sellable/install@0.1.22 --host codex --token skt_live_your_token_here --workspace-id your_workspace_id
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
If you already have `~/.sellable/config.json`, rerun/verify without rewriting
|
|
90
90
|
auth:
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
|
-
npx -y @sellable/install@0.1.
|
|
93
|
+
npx -y @sellable/install@0.1.22 --host codex
|
|
94
94
|
sellable --verify-only --host codex
|
|
95
95
|
```
|
|
96
96
|
|
package/package.json
CHANGED
|
@@ -869,15 +869,17 @@ Orchestration requirements:
|
|
|
869
869
|
user-facing review. The review must use this exact label shape so the gate can
|
|
870
870
|
be parsed: `Subject: ...`, `Tokenized template: ...`, `Sample prospect fill:
|
|
871
871
|
...`, `Rendered examples: ...`, `Good token fill: ...`, `Good omit: ...`,
|
|
872
|
-
`
|
|
872
|
+
`Bad token fill: ...`, `Why bad: ...`, `Token notes: ...`, `My take: ...`,
|
|
873
|
+
`Suggested adjustment: ...`,
|
|
873
874
|
`Question: approve-message or revise-messaging?`, `Recommendation:
|
|
874
875
|
approve-message|revise-messaging`.
|
|
875
876
|
- Never ask the message approval question until the full message review is
|
|
876
877
|
visible in the chat. A summary like `Message review is ready` or `the draft
|
|
877
878
|
avoids a generic pitch` is not enough. The user must see the actual subject,
|
|
878
879
|
the actual tokenized message template, one filled sample prospect version, at
|
|
879
|
-
least one good filled example, one good omit example,
|
|
880
|
-
|
|
880
|
+
least one good filled example, one good omit example, one bad fill example,
|
|
881
|
+
why the bad fill is wrong, token notes, your take, and the suggested
|
|
882
|
+
adjustment before any `approve-message` /
|
|
881
883
|
`revise-messaging` question appears. If you catch yourself wanting to offer
|
|
882
884
|
`show me message` as a choice, stop: render the message review first, then ask
|
|
883
885
|
only `approve-message` or `revise-messaging`.
|
|
@@ -906,7 +908,7 @@ avoids a generic pitch` is not enough. The user must see the actual subject,
|
|
|
906
908
|
concrete filled message.
|
|
907
909
|
- `{{profile_signal}}` is never a supported customer-facing token. It is an
|
|
908
910
|
internal enrichment label and must not appear in `Subject:`, `Tokenized
|
|
909
|
-
|
|
911
|
+
template:`, `Sample prospect fill:`, rendered examples, `Token notes:`,
|
|
910
912
|
`message-validation.md` selected copy, or `approval-packet.md`. If a
|
|
911
913
|
profile-derived signal matters, translate it into a buyer-readable derived
|
|
912
914
|
token with a clear fill rule, such as `{{workflow_context}}` or
|
|
@@ -917,6 +919,13 @@ avoids a generic pitch` is not enough. The user must see the actual subject,
|
|
|
917
919
|
be a complete rendered subject + body, not a bullet list of token names or a
|
|
918
920
|
single bridge-line fragment. Do not use bracketed instructions, deferred row
|
|
919
921
|
notes, or phrases like `approve the selected winner above`.
|
|
922
|
+
- `Bad token fill:` must show at least one realistic wrong fill for the current
|
|
923
|
+
campaign, followed by `Why bad:`. This teaches the user and the live campaign
|
|
924
|
+
runtime what not to do. Examples: overclaiming signal intent (`you are
|
|
925
|
+
evaluating Clay` when the only evidence is a post reaction), using forbidden
|
|
926
|
+
phrasing (`you engaged with content...` when the approved voice is `raised
|
|
927
|
+
your hand in a conversation around...`), forcing a weak optional token,
|
|
928
|
+
lowercasing proper nouns, or making row signal sound like AI mail merge.
|
|
920
929
|
- rendered examples may only use token values that exist in `lead-sample.json`,
|
|
921
930
|
`lead-review.md`, `lead-filter.md`, or the selected winner's documented
|
|
922
931
|
supported-token plan. Do not invent example values to make the template look
|
|
@@ -1010,8 +1019,9 @@ proof:`, `p.s. useful proof:`, `p.s. proof:`, or `p.s. social proof:`.
|
|
|
1010
1019
|
standalone commit-gate question. Include a clear `## Message Review` section
|
|
1011
1020
|
inside the approval packet before `## Approved Message Template`. It should
|
|
1012
1021
|
summarize the customer checkpoint from `message-review.md` and preserve the
|
|
1013
|
-
same literal `My take:`, `Suggested adjustment:`,
|
|
1014
|
-
|
|
1022
|
+
same literal `My take:`, `Suggested adjustment:`, `Good token fill:`,
|
|
1023
|
+
`Good omit:`, `Bad token fill:`, `Why bad:`, `Token fill basis:`, and
|
|
1024
|
+
`Recommendation:` labels.
|
|
1015
1025
|
Include `Open artifacts:` links to `approval-packet.md`,
|
|
1016
1026
|
`message-review.md`, `lead-review.md`, and `brief.md` before the commit-gate
|
|
1017
1027
|
question.
|
|
@@ -1026,8 +1036,16 @@ proof:`, `p.s. useful proof:`, `p.s. proof:`, or `p.s. social proof:`.
|
|
|
1026
1036
|
- the live body under `## Approved Message Template` must be sender-ready copy.
|
|
1027
1037
|
Do not include bracketed instruction placeholders such as `[ROW BRIDGE ...]`,
|
|
1028
1038
|
`[insert ...]`, `[generated ...]`, or prose that tells a later step to
|
|
1029
|
-
paraphrase/fill a line. Put per-row generation rules in
|
|
1030
|
-
with concrete enriched-row fields,
|
|
1039
|
+
paraphrase/fill a line. Put per-row generation rules in `## Token Fill Rules`
|
|
1040
|
+
with concrete enriched-row fields, and copy approved good/bad examples into
|
|
1041
|
+
`## Token Fill Examples`, or route to `revise-messaging`.
|
|
1042
|
+
- `approval-packet.md` and the live campaign brief passed to `create_campaign`
|
|
1043
|
+
must include `## Approved Message Template`, `## Token Fill Rules`, and
|
|
1044
|
+
`## Token Fill Examples`. `## Token Fill Examples` must copy the approved
|
|
1045
|
+
examples from `message-review.md` / `message-validation.md`, including
|
|
1046
|
+
`Good token fill:`, `Good omit:`, `Bad token fill:`, `Why bad:`, and
|
|
1047
|
+
`Token fill basis:`. Do not call `create_campaign` if these sections are
|
|
1048
|
+
missing from the campaign brief.
|
|
1031
1049
|
- `message-validation.md` must not call the winner a canonical template or
|
|
1032
1050
|
hide per-row generation in bracketed body text. `## Selected Winner` must
|
|
1033
1051
|
be a real sendable message that could be approved as-is.
|
|
@@ -1104,6 +1122,9 @@ Do not:
|
|
|
1104
1122
|
- `Good token fill:` with a complete concrete rendered subject + body
|
|
1105
1123
|
- `Good omit:` with a complete concrete rendered subject + body where optional
|
|
1106
1124
|
row signal is omitted cleanly
|
|
1125
|
+
- `Bad token fill:` with a realistic wrong fill for the current campaign
|
|
1126
|
+
- `Why bad:` explaining the exact overclaim, unsupported token, weak signal,
|
|
1127
|
+
casing mistake, or mail-merge phrasing that makes the bad fill unacceptable
|
|
1107
1128
|
- `Token notes:` naming which tokens are safe to fill, which optional token line
|
|
1108
1129
|
should be omitted when absent, and whether the message uses standard sentence
|
|
1109
1130
|
case or casual lowercase static words
|
|
@@ -1238,8 +1259,9 @@ mutation)`, a `Selected Winner`, and a non-empty `Token Adherence Table`
|
|
|
1238
1259
|
`Sample prospect fill:` with a complete rendered subject + body and
|
|
1239
1260
|
`Token fill basis:`, `Rendered examples:`, `Good token fill:` with a complete
|
|
1240
1261
|
rendered subject + body, `Good omit:` with a complete rendered subject + body,
|
|
1241
|
-
`
|
|
1242
|
-
|
|
1262
|
+
`Bad token fill:`, `Why bad:`, `Token notes:`, `My take:`,
|
|
1263
|
+
`Suggested adjustment:`, `Question:
|
|
1264
|
+
approve-message or revise-messaging?`, and
|
|
1243
1265
|
`Recommendation: approve-message`
|
|
1244
1266
|
- `message-review-decision.md` is exactly `approve-message`
|
|
1245
1267
|
|
|
@@ -1339,7 +1361,7 @@ Exact sequence:
|
|
|
1339
1361
|
The live template body must contain only sender-ready copy plus supported
|
|
1340
1362
|
`{{tokens}}`; no bracketed instructions or placeholder prose may appear in
|
|
1341
1363
|
the body.
|
|
1342
|
-
Include
|
|
1364
|
+
Include `## Token Fill Rules` for every enriched-prospect-row token in the
|
|
1343
1365
|
template. Tokens may be row fields such as `{{first_name}}`,
|
|
1344
1366
|
`{{company}}`, `{{role}}`, `{{headline}}`, `{{profile_summary}}`,
|
|
1345
1367
|
`{{post_context}}`, `{{comment_summary}}`, `{{source_post_topic}}`, or
|
|
@@ -1348,6 +1370,13 @@ Exact sequence:
|
|
|
1348
1370
|
proof points, casing style, `{{recent_signal_quote}}`, or abstract slot
|
|
1349
1371
|
tokens such as `{{hookLine}}`, `{{painLine}}`, `{{productLine}}`,
|
|
1350
1372
|
`{{closeLine}}`, or `{{psLine}}`.
|
|
1373
|
+
Include `## Token Fill Examples` copied from the approved message review and
|
|
1374
|
+
validation artifacts. It must preserve `Good token fill:`, `Good omit:`,
|
|
1375
|
+
`Bad token fill:`, `Why bad:`, and `Token fill basis:` so the minted campaign
|
|
1376
|
+
brief teaches future row generation how to fill tokens and what fills are
|
|
1377
|
+
blocked. If the brief does not contain `## Token Fill Rules` and
|
|
1378
|
+
`## Token Fill Examples`, do not call `create_campaign`; route back to
|
|
1379
|
+
message review or approval packet generation.
|
|
1351
1380
|
3. Call `bootstrap_create_campaign({ flowVersion: "v2" })`. Respect
|
|
1352
1381
|
`safeToProceed`; on blocking errors, surface and stop.
|
|
1353
1382
|
4. Call
|
|
@@ -66,9 +66,16 @@ for inspection, not a replacement for showing the content in chat.
|
|
|
66
66
|
|
|
67
67
|
This applies especially to message approvals. Never ask someone to approve a
|
|
68
68
|
message they cannot see. Show the subject, tokenized template, a filled sample
|
|
69
|
-
prospect version,
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
prospect version, good fill example, good omit example, bad fill example, why
|
|
70
|
+
the bad fill is wrong, token notes, your take, and suggested adjustment first.
|
|
71
|
+
The user should be able to compare "here is the template" against "here is what
|
|
72
|
+
one real prospect would receive" before approving, and understand exactly how
|
|
73
|
+
the tokens should and should not be filled.
|
|
74
|
+
|
|
75
|
+
Approved token guidance is part of the campaign, not just the review. When a
|
|
76
|
+
campaign is minted, the approved brief should carry forward the token fill
|
|
77
|
+
rules and examples: good fills, good omits, bad fills, and why the bad fills are
|
|
78
|
+
blocked.
|
|
72
79
|
|
|
73
80
|
## Progress Updates
|
|
74
81
|
|
|
@@ -606,6 +606,7 @@
|
|
|
606
606
|
"tokenized template",
|
|
607
607
|
"sample prospect fill",
|
|
608
608
|
"rendered examples",
|
|
609
|
+
"bad token examples",
|
|
609
610
|
"token notes",
|
|
610
611
|
"my take",
|
|
611
612
|
"suggested adjustment",
|
|
@@ -626,6 +627,8 @@
|
|
|
626
627
|
"Rendered examples:",
|
|
627
628
|
"Good token fill:",
|
|
628
629
|
"Good omit:",
|
|
630
|
+
"Bad token fill:",
|
|
631
|
+
"Why bad:",
|
|
629
632
|
"Token notes:",
|
|
630
633
|
"My take:",
|
|
631
634
|
"Suggested adjustment:",
|
|
@@ -643,6 +646,7 @@
|
|
|
643
646
|
"no bracketed or deferred row instructions",
|
|
644
647
|
"tokenized template with rendered examples",
|
|
645
648
|
"tokenized template plus filled sample prospect",
|
|
649
|
+
"good and bad token-fill examples",
|
|
646
650
|
"complete rendered subject plus body examples",
|
|
647
651
|
"message-review hard-fail preflight",
|
|
648
652
|
"A + B + C subject quality",
|
|
@@ -666,6 +670,8 @@
|
|
|
666
670
|
"Rendered examples:",
|
|
667
671
|
"Good token fill:",
|
|
668
672
|
"Good omit:",
|
|
673
|
+
"Bad token fill:",
|
|
674
|
+
"Why bad:",
|
|
669
675
|
"Token notes:",
|
|
670
676
|
"My take:",
|
|
671
677
|
"Suggested adjustment:",
|
|
@@ -928,6 +934,22 @@
|
|
|
928
934
|
"requiredValues": {
|
|
929
935
|
"currentStep": "auto-execute-leads"
|
|
930
936
|
},
|
|
937
|
+
"requiredCampaignBriefSections": [
|
|
938
|
+
"Approved Message Template",
|
|
939
|
+
"Token Fill Rules",
|
|
940
|
+
"Token Fill Examples"
|
|
941
|
+
],
|
|
942
|
+
"preserveTokenGuidanceFromArtifacts": [
|
|
943
|
+
"message-review.md",
|
|
944
|
+
"message-validation.md"
|
|
945
|
+
],
|
|
946
|
+
"requiredTokenGuidanceLabels": [
|
|
947
|
+
"Good token fill:",
|
|
948
|
+
"Good omit:",
|
|
949
|
+
"Bad token fill:",
|
|
950
|
+
"Why bad:",
|
|
951
|
+
"Token fill basis:"
|
|
952
|
+
],
|
|
931
953
|
"capture": ["campaignId", "watchUrl"],
|
|
932
954
|
"onMissingWatchUrl": "recoverable_failure_abort_before_rubric_save"
|
|
933
955
|
},
|