@sellable/install 0.1.255 → 0.1.257
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,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: create-evergreen-campaigns
|
|
3
3
|
description: Reconcile a sender team's evergreen campaigns — create-or-reuse the standing campaigns (per-sender post engagers + shared signal/cold lanes) idempotently, and when asked for customer-ready/full setup, complete each customer-visible campaign to paused send review with brief, rows, generated review messages, one approval gate row, and sequence. Never duplicates, never launches.
|
|
4
|
-
visibility:
|
|
4
|
+
visibility: public
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Create Evergreen Campaigns
|
|
@@ -396,6 +396,14 @@ Use a compact worker prompt: include lane packet JSON, original selectedActionId
|
|
|
396
396
|
original planRevision, parent postEngagerSenderIds, parent sharedSenderIds,
|
|
397
397
|
receiptArtifactPath, workspace id, sender ids, side-effect caps, and the
|
|
398
398
|
instruction to load packaged prompts through MCP.
|
|
399
|
+
The worker prompt must include the exact filter status rule:
|
|
400
|
+
`filterDecisionReceipt.status:"applied"` only; never `completed`, `confirmed`,
|
|
401
|
+
`done`, or any other alias.
|
|
402
|
+
The worker prompt must include the generated-message write rule: `update_cell`
|
|
403
|
+
is allowed only for the semantic Approved checkbox, never for generated message
|
|
404
|
+
text/body/sample copy. Bad copy requires `revise_message_template_and_rerun` or
|
|
405
|
+
brief/template revision plus Generate Message rerun; any generated-message cell
|
|
406
|
+
override is `blocked: generated_message_cell_override`.
|
|
399
407
|
Do not paste the entire wrapper skill into worker prompts. If the parent cannot
|
|
400
408
|
launch at least one visible/durable worker immediately after directory setup,
|
|
401
409
|
stop with `blocked: worker_dispatch_stalled` before any mutation.
|
|
@@ -435,6 +443,8 @@ Worker lane packet JSON:
|
|
|
435
443
|
Load `$sellable:create-campaign` and nested prompts/assets through Sellable MCP loaders.
|
|
436
444
|
Use mcp__sellable only. Do not use admin tools, direct DB, Prisma, SQL, web search, or browser search.
|
|
437
445
|
Do not launch, start, schedule, send, or use paid InMail.
|
|
446
|
+
For filter proof, durable receipt status must be `filterDecisionReceipt.status:"applied"` only; never `completed`, `confirmed`, `done`, or aliases.
|
|
447
|
+
For generated messages, `update_cell` is allowed only for the semantic Approved checkbox. Never use `update_cell` for generated message text/body/sample copy. Bad copy requires `revise_message_template_and_rerun` or brief/template revision plus Generate Message rerun. Any generated-message cell override is `blocked: generated_message_cell_override`.
|
|
438
448
|
Complete only this lane, write the required durable receipt JSON, and stop.
|
|
439
449
|
WORKER_PROMPT
|
|
440
450
|
|
|
@@ -585,10 +595,11 @@ not a parent-thread summary. The receipt must include:
|
|
|
585
595
|
`filterDecisionReceipt.savedRubricCount`, or
|
|
586
596
|
`filterDecisionReceipt.headlineICPCriteria`.
|
|
587
597
|
The exact status string is contractual: use `status:"applied"` only.
|
|
588
|
-
Do not write `status:"
|
|
589
|
-
any other alias after saving filters; the parent verifier
|
|
590
|
-
aliases even when saved rubric proof exists.
|
|
598
|
+
Do not write `status:"completed"`, `status:"confirmed"`, `status:"saved"`,
|
|
599
|
+
`status:"done"`, or any other alias after saving filters; the parent verifier
|
|
600
|
+
rejects those aliases even when saved rubric proof exists.
|
|
591
601
|
Short form: Filter receipt status must be exactly `applied`.
|
|
602
|
+
Short form: Do not write `filterDecisionReceipt.status:"completed"`.
|
|
592
603
|
Short form: Do not write `filterDecisionReceipt.status:"confirmed"`.
|
|
593
604
|
- `messageDraftingReceipt`: the Message Drafting proof described below,
|
|
594
605
|
including packaged `generate-messages` prompt/assets and validation. Raw
|
|
@@ -826,6 +837,12 @@ path itself in the worker thread:
|
|
|
826
837
|
brief/template rerun, not from hand-edited message cell overrides. If a lane
|
|
827
838
|
used a generated-message body override, report
|
|
828
839
|
`blocked: generated_message_cell_override` instead of success.
|
|
840
|
+
Do not repair by overwriting bad generated message cells and then calling the
|
|
841
|
+
overwritten cells `sampleMessages`.
|
|
842
|
+
`messageDraftingReceipt.qualityReview.repairNote`,
|
|
843
|
+
`messageDraftingReceipt.toolsUsed`, or any proof mentioning generated
|
|
844
|
+
message cell repair through `update_cell` is self-incriminating and must be
|
|
845
|
+
`blocked: generated_message_cell_override`.
|
|
829
846
|
Short form: `update_cell` is allowed only for the semantic Approved checkbox.
|
|
830
847
|
Short form: Do not use `update_cell` to edit generated message text.
|
|
831
848
|
Short form: Bad copy requires brief/template revision plus Generate Message rerun.
|
|
@@ -1072,16 +1089,19 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1072
1089
|
Do not use low-confidence relevance hedges such as "hope this is
|
|
1073
1090
|
relevant" in Shared Signal Discovery samples. Translate source/tool terms
|
|
1074
1091
|
into prospect-facing business language; do not put internal workflow
|
|
1075
|
-
vocabulary such as "Codex-style workflow", "MCP", "agent workflows",
|
|
1076
|
-
"Claude-style agent workflows" in customer-facing
|
|
1077
|
-
generic product-process nouns such as "dashboard",
|
|
1078
|
-
"send-ready copy", "reviewed prospect lists",
|
|
1079
|
-
|
|
1092
|
+
vocabulary such as "Codex-style workflow", "MCP", "agent workflows",
|
|
1093
|
+
"Claude Code", or "Claude-style agent workflows" in customer-facing
|
|
1094
|
+
message one. Also avoid generic product-process nouns such as "dashboard",
|
|
1095
|
+
"workflow", "source", "send-ready copy", "reviewed prospect lists",
|
|
1096
|
+
"reviewed pipeline", "leads, filters, messages", "review-ready LinkedIn
|
|
1097
|
+
sequence", "plain-language campaign idea into leads/filters/messages",
|
|
1098
|
+
and "sequence" unless the recipient's own product/category makes that
|
|
1099
|
+
exact word buyer-native.
|
|
1080
1100
|
Short form: Shared Signal Discovery uses no self-intro such as "I'm building Sellable".
|
|
1081
1101
|
Short form: Shared Signal Discovery uses no self-intro such as "We're building Sellable".
|
|
1082
1102
|
Short form: Shared Signal Discovery uses no "I've put together".
|
|
1083
1103
|
Short form: no low-confidence relevance hedge such as "hope this is relevant".
|
|
1084
|
-
Short form: no internal workflow vocabulary such as "Codex-style workflow", "MCP", "agent workflows", or "Claude-style agent workflows".
|
|
1104
|
+
Short form: no internal workflow vocabulary such as "Codex-style workflow", "MCP", "agent workflows", "Claude Code", or "Claude-style agent workflows".
|
|
1085
1105
|
- **Shared Cold Fallback** first-message style: cold, direct, and cohesive.
|
|
1086
1106
|
It must not pretend there was engagement, must not say "saw you pop up",
|
|
1087
1107
|
and must not use a standalone name line followed by "Hey there" or other
|
|
@@ -1285,7 +1305,7 @@ Message, and verify current-revision sample messages before final completion.
|
|
|
1285
1305
|
**Also confirm the delivery format and keep config in sync.** Ask the user whether DM lanes should send multiline (paragraph-per-message) or as a single message. Record the answer as the brief's `Delivery format:` line, and when multiline is chosen, set `actionConfig.sendEachParagraphAsMessage: true` on that campaign's `send_dm` column via `update_column` (config edits run no cells and nothing sends from unlaunched campaigns). Never set the paragraph-split flag on InMail columns — the option does not apply to InMail.
|
|
1286
1306
|
6. **Interactive polish mode only: prove the template on one real row.** For ONE campaign that has at least one lead row (add one via `add_on_demand_leads` if every lane is empty and the user provides/approves a test lead), generate a message for exactly one row (`queue_campaign_cells` with `columnRole: "generateMessage"`, `rowSelector: { type: "reviewBatch", limit: 1 }` or the single row's ID), wait for it, then show the user the generated message next to the template — AND show how it would split if paragraph-per-message sending is enabled (list each paragraph as `msg 1:`, `msg 2:`, …) so the user confirms each one reads like a real typed message. Check alignment: tone, structure, no internal vocabulary, correct token substitution, no letter punctuation. Do NOT approve the row or generate for more rows — one sample only.
|
|
1287
1307
|
7. **Automation mode template/config audit**: inspect existing send-lane briefs for a `Delivery format:` line and chat-native warm template. If a send lane is missing the line and the prompt allows cleanup, update only the campaign brief metadata with the safest default for that lane (`Delivery format: single message (LinkedIn DM; line breaks remain inside one generated message; no follow-up until reply)`). If cleanup is not allowed, flag it. Do not generate a sample row in automation mode unless the invocation explicitly asks for sample proof. In structure-only automation, do not generate a sample row unless the invocation explicitly asks for sample proof. In customer-visible completion, follow the Customer-Visible Completion Contract instead.
|
|
1288
|
-
8. **Final customer-facing completion must include sample messaging**: after customer-visible verify and the idempotency rerun pass, add a `Sample Messaging Review` section to the final answer. For every completed lane, show at least one full generated first message for every completed lane with campaign name, campaign id, row id, and verdict. Extract samples from nested `createCampaignStepReceipt.messageDraftingReceipt.sampleMessages`, not from top-level summaries; extract samples from nested `createCampaignStepReceipt.messageDraftingReceipt.sampleMessages` when building the final answer. Prefer the approved route-proof row when it is quality-valid; otherwise use the best reviewed generated row from the verified receipt. A final `passed` sample must have `issues:[]`; if every reviewed sample has issues, report the lane as needing message revision instead of presenting a passed sample. Do not summarize the sample into a copy theme. Show the actual message text so the user can inspect tone and specificity. If any sample is not quite right, tell the user they can ask the AI to update the campaign brief/message template and rerun Generate Message before launch. Never suggest launching, scheduling, or sending as the next step from this command.
|
|
1308
|
+
8. **Final customer-facing completion must include sample messaging**: after customer-visible verify and the idempotency rerun pass, add a `Sample Messaging Review` section to the final answer. For every completed lane, show at least one full generated first message for every completed lane with campaign name, campaign id, row id, and verdict. Extract samples from nested `createCampaignStepReceipt.messageDraftingReceipt.sampleMessages`, not from top-level summaries; extract samples from nested `createCampaignStepReceipt.messageDraftingReceipt.sampleMessages` when building the final answer. Prefer the approved route-proof row when it is quality-valid; otherwise use the best reviewed generated row from the verified receipt. A final `passed` sample must have `issues:[]`; if every reviewed sample has issues, report the lane as needing message revision instead of presenting a passed sample. Never approve or final-report sample text produced by manual `update_cell` body edits. Do not summarize the sample into a copy theme. Show the actual message text so the user can inspect tone and specificity. If any sample is not quite right, tell the user they can ask the AI to update the campaign brief/message template and rerun Generate Message before launch. Never suggest launching, scheduling, or sending as the next step from this command.
|
|
1289
1309
|
If the `Sample Messaging Review` section is omitted, the command is incomplete even when the structural campaign setup succeeded.
|
|
1290
1310
|
9. **Report the reconcile plan and result** — every slot tagged `reused`, `created`, `repaired`, `flagged`, or `blocked`, plus template/sample details only when that mode ran:
|
|
1291
1311
|
|