@sellable/mcp 0.1.23 → 0.1.25
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.25 --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.25 --host codex
|
|
94
94
|
sellable --verify-only --host codex
|
|
95
95
|
```
|
|
96
96
|
|
package/package.json
CHANGED
|
@@ -869,8 +869,8 @@ 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
|
-
`Bad token fill: ...`, `Why bad: ...`, `
|
|
873
|
-
`Suggested adjustment: ...`,
|
|
872
|
+
`Bad token fill: ...`, `Why bad: ...`, `Fallback if missing: ...`,
|
|
873
|
+
`Token notes: ...`, `My take: ...`, `Suggested adjustment: ...`,
|
|
874
874
|
`Question: approve-message or revise-messaging?`, `Recommendation:
|
|
875
875
|
approve-message|revise-messaging`.
|
|
876
876
|
- Never ask the message approval question until the full message review is
|
|
@@ -878,8 +878,8 @@ approve-message|revise-messaging`.
|
|
|
878
878
|
avoids a generic pitch` is not enough. The user must see the actual subject,
|
|
879
879
|
the actual tokenized message template, one filled sample prospect version, at
|
|
880
880
|
least one good filled example, one good omit example, one bad fill example,
|
|
881
|
-
why the bad fill is wrong,
|
|
882
|
-
adjustment before any `approve-message` /
|
|
881
|
+
why the bad fill is wrong, fallback rules for missing row data, token notes,
|
|
882
|
+
your take, and the suggested adjustment before any `approve-message` /
|
|
883
883
|
`revise-messaging` question appears. If you catch yourself wanting to offer
|
|
884
884
|
`show me message` as a choice, stop: render the message review first, then ask
|
|
885
885
|
only `approve-message` or `revise-messaging`.
|
|
@@ -922,10 +922,18 @@ template:`, `Sample prospect fill:`, rendered examples, `Token notes:`,
|
|
|
922
922
|
- `Bad token fill:` must show at least one realistic wrong fill for the current
|
|
923
923
|
campaign, followed by `Why bad:`. This teaches the user and the live campaign
|
|
924
924
|
runtime what not to do. Examples: overclaiming signal intent (`you are
|
|
925
|
-
|
|
925
|
+
evaluating Clay` when the only evidence is a post reaction), using forbidden
|
|
926
926
|
phrasing (`you engaged with content...` when the approved voice is `raised
|
|
927
927
|
your hand in a conversation around...`), forcing a weak optional token,
|
|
928
928
|
lowercasing proper nouns, or making row signal sound like AI mail merge.
|
|
929
|
+
- `Fallback if missing:` is required for every token in the template. Each
|
|
930
|
+
fallback must say exactly what to do when the row lacks clean data: use a
|
|
931
|
+
safe segment-level phrase, omit the sentence/line, or route to
|
|
932
|
+
`revise-messaging` if omission would break the message. It must include a
|
|
933
|
+
concrete example of the fallback behavior, such as `omit the noticed... line`,
|
|
934
|
+
`use "operators"`, or `use "your outbound workflow"`. Never leave a token
|
|
935
|
+
with "N/A", "unknown", empty braces, bracketed instructions, or a generic
|
|
936
|
+
fill that sounds robotic or creepy.
|
|
929
937
|
- rendered examples may only use token values that exist in `lead-sample.json`,
|
|
930
938
|
`lead-review.md`, `lead-filter.md`, or the selected winner's documented
|
|
931
939
|
supported-token plan. Do not invent example values to make the template look
|
|
@@ -1020,8 +1028,8 @@ proof:`, `p.s. useful proof:`, `p.s. proof:`, or `p.s. social proof:`.
|
|
|
1020
1028
|
inside the approval packet before `## Approved Message Template`. It should
|
|
1021
1029
|
summarize the customer checkpoint from `message-review.md` and preserve the
|
|
1022
1030
|
same literal `My take:`, `Suggested adjustment:`, `Good token fill:`,
|
|
1023
|
-
`Good omit:`, `Bad token fill:`, `Why bad:`, `
|
|
1024
|
-
`Recommendation:` labels.
|
|
1031
|
+
`Good omit:`, `Bad token fill:`, `Why bad:`, `Fallback if missing:`,
|
|
1032
|
+
`Token fill basis:`, and `Recommendation:` labels.
|
|
1025
1033
|
Include `Open artifacts:` links to `approval-packet.md`,
|
|
1026
1034
|
`message-review.md`, `lead-review.md`, and `brief.md` before the commit-gate
|
|
1027
1035
|
question.
|
|
@@ -1043,9 +1051,9 @@ proof:`, `p.s. useful proof:`, `p.s. proof:`, or `p.s. social proof:`.
|
|
|
1043
1051
|
must include `## Approved Message Template`, `## Token Fill Rules`, and
|
|
1044
1052
|
`## Token Fill Examples`. `## Token Fill Examples` must copy the approved
|
|
1045
1053
|
examples from `message-review.md` / `message-validation.md`, including
|
|
1046
|
-
`Good token fill:`, `Good omit:`, `Bad token fill:`, `Why bad:`,
|
|
1047
|
-
`Token fill basis:`. Do not call
|
|
1048
|
-
missing from the campaign brief.
|
|
1054
|
+
`Good token fill:`, `Good omit:`, `Bad token fill:`, `Why bad:`,
|
|
1055
|
+
`Fallback if missing:`, and `Token fill basis:`. Do not call
|
|
1056
|
+
`create_campaign` if these sections are missing from the campaign brief.
|
|
1049
1057
|
- `message-validation.md` must not call the winner a canonical template or
|
|
1050
1058
|
hide per-row generation in bracketed body text. `## Selected Winner` must
|
|
1051
1059
|
be a real sendable message that could be approved as-is.
|
|
@@ -1125,6 +1133,8 @@ Do not:
|
|
|
1125
1133
|
- `Bad token fill:` with a realistic wrong fill for the current campaign
|
|
1126
1134
|
- `Why bad:` explaining the exact overclaim, unsupported token, weak signal,
|
|
1127
1135
|
casing mistake, or mail-merge phrasing that makes the bad fill unacceptable
|
|
1136
|
+
- `Fallback if missing:` with one concrete fallback or omit example for every
|
|
1137
|
+
token in the template
|
|
1128
1138
|
- `Token notes:` naming which tokens are safe to fill, which optional token line
|
|
1129
1139
|
should be omitted when absent, and whether the message uses standard sentence
|
|
1130
1140
|
case or casual lowercase static words
|
|
@@ -1259,8 +1269,8 @@ mutation)`, a `Selected Winner`, and a non-empty `Token Adherence Table`
|
|
|
1259
1269
|
`Sample prospect fill:` with a complete rendered subject + body and
|
|
1260
1270
|
`Token fill basis:`, `Rendered examples:`, `Good token fill:` with a complete
|
|
1261
1271
|
rendered subject + body, `Good omit:` with a complete rendered subject + body,
|
|
1262
|
-
`Bad token fill:`, `Why bad:`, `
|
|
1263
|
-
`Suggested adjustment:`, `Question:
|
|
1272
|
+
`Bad token fill:`, `Why bad:`, `Fallback if missing:`, `Token notes:`,
|
|
1273
|
+
`My take:`, `Suggested adjustment:`, `Question:
|
|
1264
1274
|
approve-message or revise-messaging?`, and
|
|
1265
1275
|
`Recommendation: approve-message`
|
|
1266
1276
|
- `message-review-decision.md` is exactly `approve-message`
|
|
@@ -1372,9 +1382,10 @@ Exact sequence:
|
|
|
1372
1382
|
`{{closeLine}}`, or `{{psLine}}`.
|
|
1373
1383
|
Include `## Token Fill Examples` copied from the approved message review and
|
|
1374
1384
|
validation artifacts. It must preserve `Good token fill:`, `Good omit:`,
|
|
1375
|
-
`Bad token fill:`, `Why bad:`,
|
|
1376
|
-
|
|
1377
|
-
|
|
1385
|
+
`Bad token fill:`, `Why bad:`, `Fallback if missing:`, and
|
|
1386
|
+
`Token fill basis:` so the minted campaign brief teaches future row
|
|
1387
|
+
generation how to fill tokens, what fills are blocked, and what to do when
|
|
1388
|
+
row data is missing. If the brief does not contain `## Token Fill Rules` and
|
|
1378
1389
|
`## Token Fill Examples`, do not call `create_campaign`; route back to
|
|
1379
1390
|
message review or approval packet generation.
|
|
1380
1391
|
3. Call `bootstrap_create_campaign({ flowVersion: "v2" })`. Respect
|
|
@@ -72,10 +72,16 @@ The user should be able to compare "here is the template" against "here is what
|
|
|
72
72
|
one real prospect would receive" before approving, and understand exactly how
|
|
73
73
|
the tokens should and should not be filled.
|
|
74
74
|
|
|
75
|
+
Every token needs a fallback. If the row does not have clean data for a token,
|
|
76
|
+
the approval view should say whether to use a safe segment-level phrase, omit
|
|
77
|
+
the sentence, or revise the message. It should include the exact fallback
|
|
78
|
+
example, like `omit the noticed... line` or `use "operators"`. Missing data
|
|
79
|
+
should never produce robotic or creepy copy.
|
|
80
|
+
|
|
75
81
|
Approved token guidance is part of the campaign, not just the review. When a
|
|
76
82
|
campaign is minted, the approved brief should carry forward the token fill
|
|
77
|
-
rules and examples: good fills, good omits, bad fills, and why
|
|
78
|
-
blocked.
|
|
83
|
+
rules and examples: good fills, good omits, bad fills, fallback rules, and why
|
|
84
|
+
the bad fills are blocked.
|
|
79
85
|
|
|
80
86
|
## Progress Updates
|
|
81
87
|
|
|
@@ -629,6 +629,7 @@
|
|
|
629
629
|
"Good omit:",
|
|
630
630
|
"Bad token fill:",
|
|
631
631
|
"Why bad:",
|
|
632
|
+
"Fallback if missing:",
|
|
632
633
|
"Token notes:",
|
|
633
634
|
"My take:",
|
|
634
635
|
"Suggested adjustment:",
|
|
@@ -647,6 +648,8 @@
|
|
|
647
648
|
"tokenized template with rendered examples",
|
|
648
649
|
"tokenized template plus filled sample prospect",
|
|
649
650
|
"good and bad token-fill examples",
|
|
651
|
+
"per-token fallback rules for missing row data",
|
|
652
|
+
"concrete fallback examples, not abstract fallback advice",
|
|
650
653
|
"complete rendered subject plus body examples",
|
|
651
654
|
"message-review hard-fail preflight",
|
|
652
655
|
"A + B + C subject quality",
|
|
@@ -672,6 +675,7 @@
|
|
|
672
675
|
"Good omit:",
|
|
673
676
|
"Bad token fill:",
|
|
674
677
|
"Why bad:",
|
|
678
|
+
"Fallback if missing:",
|
|
675
679
|
"Token notes:",
|
|
676
680
|
"My take:",
|
|
677
681
|
"Suggested adjustment:",
|
|
@@ -948,6 +952,7 @@
|
|
|
948
952
|
"Good omit:",
|
|
949
953
|
"Bad token fill:",
|
|
950
954
|
"Why bad:",
|
|
955
|
+
"Fallback if missing:",
|
|
951
956
|
"Token fill basis:"
|
|
952
957
|
],
|
|
953
958
|
"capture": ["campaignId", "watchUrl"],
|