@sellable/mcp 0.1.441 → 0.1.442

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.
@@ -23,7 +23,7 @@ export const setupEvergreenCampaignsToolDefinitions = [
23
23
  handoffMode: {
24
24
  type: "string",
25
25
  enum: ["create_campaign_goals"],
26
- description: 'plan mode only. When set to "create_campaign_goals", returns concise per-lane `$sellable:create-campaign` goal prompts and required inputs for simplified worker handoffs without changing verification behavior.',
26
+ description: 'plan mode only. When set to "create_campaign_goals", returns concise per-lane `$sellable:create-campaign` goal prompts and required inputs for simplified worker handoffs without changing verification behavior. The matching createCampaignGoals[].goalPrompt is the authoritative campaign task for the lane worker; lane packet fields are operational scope and receipt proof context only.',
27
27
  },
28
28
  yolo: {
29
29
  type: "boolean",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.441",
3
+ "version": "0.1.442",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -62,13 +62,15 @@ long-form contract below:
62
62
  callable, return `blocked: missing_visible_or_durable_lane_worker_runtime`
63
63
  before mutation.
64
64
  4. Write one compact prompt file per selected lane using the matching
65
- `createCampaignGoals[].goalPrompt`, plus only the receipt path and canonical
66
- receipt requirement. Do not paste the full evergreen skill, lane packet,
67
- receipt schema, repair history, or verifier checklist into the worker prompt.
68
- The worker goal is simple: run `$sellable:create-campaign` normally for that
69
- campaign goal, use the evergreen-selected provider/source only as internal
70
- sourcing metadata, and write the receipt. The parent does not create campaign
71
- shells.
65
+ `createCampaignGoals[].goalPrompt` as the authoritative campaign task, plus
66
+ only the lane packet, receipt path, side-effect caps, and canonical receipt
67
+ requirement. Paste the goal prompt verbatim; do not replace it with a
68
+ handcrafted `Goal:` paragraph. Do not paste the full evergreen skill, receipt
69
+ schema, repair history, verifier checklist, or lane-specific copy checklist
70
+ into the worker prompt. The worker goal is simple: run
71
+ `$sellable:create-campaign` normally for that campaign goal, use the
72
+ evergreen-selected provider/source only as internal sourcing metadata, and
73
+ write the receipt. The parent does not create campaign shells.
72
74
  5. Collect fresh durable receipts, verify with the original planRevision and
73
75
  selectedActionIds, then run the idempotency plan and show sample messages.
74
76
 
@@ -497,10 +499,17 @@ path/thread id, stop with `blocked: parent_mutated_before_worker_receipt` and
497
499
  do not continue setup in the parent.
498
500
  Short form: dispatch every selected lane worker before shell creation.
499
501
  Short form: do not call `setup_evergreen_campaigns` with `mode:"apply"` from the parent.
500
- Use a compact worker prompt: include lane packet JSON, original selectedActionIds,
501
- original planRevision, parent postEngagerSenderIds, parent sharedSenderIds,
502
- receiptArtifactPath, workspace id, sender ids, side-effect caps, and the
503
- instruction to load packaged prompts through MCP.
502
+ Use a compact worker prompt: include the exact matching
503
+ `createCampaignGoals[].goalPrompt`, lane packet JSON, original
504
+ selectedActionIds, original planRevision, parent postEngagerSenderIds, parent
505
+ sharedSenderIds, receiptArtifactPath, workspace id, sender ids, side-effect
506
+ caps, and the instruction to load packaged prompts through MCP. The worker
507
+ prompt must explicitly state the authority order:
508
+ `createCampaignGoals[].goalPrompt` first, then loaded `$sellable:create-campaign`
509
+ / `create-campaign-v2` / `generate-messages` prompts and assets, then evergreen
510
+ lane/receipt proof requirements. Evergreen packet fields and receipt rules are
511
+ operational proof context only; they must not become campaign brief copy,
512
+ message-writing instructions, or generated customer-facing text.
504
513
  The worker prompt must include the exact filter status rule:
505
514
  `filterDecisionReceipt.status:"applied"` only; never `completed`, `confirmed`,
506
515
  `done`, or any other alias.
@@ -542,7 +551,9 @@ worker with stdin redirected from that file:
542
551
 
543
552
  ```
544
553
  codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
545
- Use $sellable:create-evergreen-campaigns as the governing skill for this one lane worker.
554
+ Use $sellable:create-campaign as the governing campaign workflow for this one lane worker.
555
+ Use the evergreen plan/packet below only for lane scope, source metadata,
556
+ postconditions, side-effect caps, and durable receipt proof.
546
557
 
547
558
  Workspace id: <workspaceId>
548
559
  Parent planRevision: <planRevision>
@@ -558,6 +569,24 @@ If your runtime exposes a goal tool, create or maintain this exact goal:
558
569
  complete action <actionId> only when <receiptArtifactPath> exists as valid JSON
559
570
  for this lane or when a blocked receipt has been written at that same path.
560
571
 
572
+ Create-campaign goal prompt (authoritative; paste verbatim from the matching
573
+ createCampaignGoals[].goalPrompt):
574
+ <createCampaignGoalPrompt>
575
+
576
+ Authority order:
577
+ 1. The create-campaign goal prompt above is the campaign task.
578
+ 2. Loaded `$sellable:create-campaign`, `create-campaign-v2`, and
579
+ `generate-messages` prompts/assets own the campaign brief and message
580
+ strategy.
581
+ 3. The evergreen lane packet and receipt rules below are operational scope and
582
+ proof requirements only.
583
+
584
+ Do not paste evergreen lane keys, provider/source names, receipt terms, setup
585
+ plan terminology, verifier fields, or workflow mechanics into the campaign
586
+ brief or generated customer-facing messages. Do not add evergreen-authored
587
+ message-writing rules to the brief; let the loaded create-campaign and
588
+ generate-messages workflow do its job.
589
+
561
590
  Worker lane packet JSON:
562
591
  <lane packet JSON>
563
592
 
@@ -587,8 +616,9 @@ WORKER_PROMPT
587
616
  codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
588
617
  ```
589
618
 
590
- If any placeholder cannot be filled from the current lane packet, do not inspect
591
- the filesystem or rerun inventory; stop with `blocked: worker_dispatch_stalled`.
619
+ If any placeholder cannot be filled from the current plan, matching
620
+ `createCampaignGoals[]` entry, or lane packet, do not inspect the filesystem or
621
+ rerun inventory; stop with `blocked: worker_dispatch_stalled`.
592
622
  `multi_agent_v1.spawn_agent`, raw `spawn_agent`, or any opaque Task/subagent
593
623
  runtime that cannot expose a visible thread id or durable receipt artifact is
594
624
  not accepted as command-level UAT proof and must not be used for mutating
@@ -1276,7 +1306,7 @@ Message, and verify current-revision sample messages before final completion.
1276
1306
  Short form: Do not pass the warm template into Shared Signal Discovery or Shared Cold Fallback.
1277
1307
  Short form: Shared lanes must reject generic product-summary samples.
1278
1308
  Short form: Shared lanes must reject three nearly identical samples.
1279
- Short form: Shared lanes must reject unsupported intent-assumptive hedges; Shared Signal Discovery may use Dotwork-style topic bridges like "saw you might be interested in [topic], so hope this is relevant", "saw you in a few conversations about [topic], so hope this is relevant", or "hope this is relevant if [topic] is part of the plan" when the source evidence supports the topic and the line does not claim engagement or expose source mechanics.
1309
+ Short form: Shared lane message quality is owned by the packaged generate-messages prompt and validation; evergreen does not author source-thread bridge phrasing.
1280
1310
  Short form: Shared lanes must reject internal workflow vocabulary.
1281
1311
  Short form: revise or rerun the packaged create-campaign/generate-messages path.
1282
1312
  - **Post Engagers** first-message style: short, casual, references the
@@ -1342,7 +1372,7 @@ Message, and verify current-revision sample messages before final completion.
1342
1372
  Short form: Shared Signal Discovery uses no self-intro such as "I'm building Sellable".
1343
1373
  Short form: Shared Signal Discovery uses no self-intro such as "We're building Sellable".
1344
1374
  Short form: Shared Signal Discovery uses no "I've put together".
1345
- Short form: topic-level bridges, including "saw you might be interested in [topic], so hope this is relevant", "saw you in a few conversations about/around [topic], so hope this is relevant", and "hope this is relevant if [topic] is part of the plan", are allowed for Shared Signal Discovery when evidence-backed and not engagement-claiming; do not use bare "might be interested" as a generic intent claim.
1375
+ Short form: topic-level bridge rules are owned by the packaged generate-messages prompt and validation, not by the evergreen wrapper.
1346
1376
  Short form: no internal workflow vocabulary such as "Codex-style workflow", "MCP", "agent workflows", "Claude Code", or "Claude-style agent workflows".
1347
1377
  - **Shared Cold Fallback** first-message style: cold, direct, and cohesive.
1348
1378
  It must not pretend there was engagement, must not say "saw you pop up",