@sellable/install 0.1.282 → 0.1.284

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/install",
3
- "version": "0.1.282",
3
+ "version": "0.1.284",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {
@@ -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
 
@@ -407,30 +409,37 @@ acceptable only when it writes a fresh durable per-lane receipt artifact as it
407
409
  works.
408
410
  When visible Codex app thread tools are unavailable but local Codex CLI is
409
411
  available, the accepted durable streaming-worker command shape is:
410
- `codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
411
- The approval and sandbox flags must come before the `exec` subcommand for Codex
412
- CLI builds that expose `-a`/`-s` only at top level. `--skip-git-repo-check` belongs after `exec` because current customer and VPS Codex CLI builds expose it
412
+ `codex -a never -s danger-full-access -c model_reasoning_effort=xhigh exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
413
+ The approval, sandbox, and reasoning-effort config flags must come before the
414
+ `exec` subcommand for Codex CLI builds that expose `-a`/`-s`/`-c` only at top
415
+ level. `--skip-git-repo-check` belongs after `exec` because current customer and VPS Codex CLI builds expose it
413
416
  as an `exec` subcommand flag, not a top-level flag. Do not use
414
417
  `codex exec --ask-for-approval never ...` or `codex exec -a never ...`; those
415
418
  forms fail on current customer CLI installs. Pipe the lane packet prompt on
416
419
  stdin, require the worker to write `workerDispatch.receiptArtifactHint`, and
417
420
  pass exactly one lane packet per worker.
418
421
  When launching durable Codex CLI workers from an automation parent, pass an
419
- explicit supported worker model instead of relying on the Codex CLI default
420
- model. Use the parent runtime model when known, for example:
421
- `codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
422
+ explicit supported worker model and explicit `xhigh` reasoning effort instead
423
+ of relying on the Codex CLI defaults. Use the parent runtime model when known,
424
+ for example:
425
+ `codex -a never -s danger-full-access -c model_reasoning_effort=xhigh exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> -`.
422
426
  In Codex CLI, the parent runtime model is visible in the run header as
423
427
  `model: <model-name>`. Copy that exact model string into child worker launches
424
428
  first. If the parent header says `model: gpt-5.5`, launch workers with
425
- `-m gpt-5.5`; do not invent or probe nearby aliases such as `gpt-5.3-codex`,
426
- `gpt-5.2`, `gpt-5-codex`, `codex-latest`, or `codex-mini-latest` before trying
427
- the exact parent model. A one-line probe must count as supported only when it
428
- exits 0 and returns the requested output; a session header followed by a
429
- `not supported` error is rejected, not accepted.
430
- Do not rely on the Codex CLI default model; some customer and VPS installs
431
- default to unavailable model aliases. If the parent cannot identify a supported
432
- worker model and a test `codex exec -m <worker-model>` launch is rejected, stop
433
- with `blocked: worker_model_unavailable` before mutation.
429
+ `-m gpt-5.5` plus `-c model_reasoning_effort=xhigh`; do not invent or probe
430
+ nearby aliases such as `gpt-5.3-codex`, `gpt-5.2`, `gpt-5-codex`,
431
+ `codex-latest`, or `codex-mini-latest` before trying the exact parent model. A
432
+ one-line probe must include the same `-c model_reasoning_effort=xhigh` override
433
+ and count as supported only when it exits 0 and returns the requested output; a
434
+ session header followed by a `not supported` error is rejected, not accepted.
435
+ Do not rely on the Codex CLI default model or default reasoning effort; some
436
+ customer and VPS installs default to unavailable model aliases or to `high`
437
+ reasoning. `-m gpt-5.5` alone is not enough. If a child worker reports GPT 5.5
438
+ with `high` reasoning, treat that as a launcher bug, relaunch with the explicit
439
+ `xhigh` config before mutation, and do not ask the user to continue through the
440
+ model-quality warning. If the parent cannot identify a supported worker model
441
+ and launch it with `xhigh` reasoning, stop with
442
+ `blocked: worker_model_unavailable` before mutation.
434
443
  When wrapping multiple local Codex CLI workers in a shell launcher, run the
435
444
  wrapper with `/bin/bash -lc` or another explicitly chosen portable shell. Do not
436
445
  rely on zsh-specific behavior. Do not use `status` as a shell variable because
@@ -442,7 +451,7 @@ Do not embed `<<'WORKER_PROMPT'` heredocs inside a single quoted or double
442
451
  quoted `/bin/bash -lc '...'` command string; nested quoting is brittle and can
443
452
  truncate the first worker before mutation. For multi-worker launchers, write one
444
453
  plain prompt file per lane under the current run directory, then start each
445
- worker with `codex -a never -s danger-full-access exec --skip-git-repo-check -m "$WORKER_MODEL" -C "$REPO" -o
454
+ worker with `codex -a never -s danger-full-access -c model_reasoning_effort=xhigh exec --skip-git-repo-check -m "$WORKER_MODEL" -C "$REPO" -o
446
455
  "$worker_final_file" - < "$worker_prompt_file"`. Keep launcher shell variables
447
456
  double-quoted and keep the prompt heredoc only in a standalone script/prompt-file
448
457
  write step, not inside an already quoted shell argument. If the first launcher
@@ -497,10 +506,17 @@ path/thread id, stop with `blocked: parent_mutated_before_worker_receipt` and
497
506
  do not continue setup in the parent.
498
507
  Short form: dispatch every selected lane worker before shell creation.
499
508
  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.
509
+ Use a compact worker prompt: include the exact matching
510
+ `createCampaignGoals[].goalPrompt`, lane packet JSON, original
511
+ selectedActionIds, original planRevision, parent postEngagerSenderIds, parent
512
+ sharedSenderIds, receiptArtifactPath, workspace id, sender ids, side-effect
513
+ caps, and the instruction to load packaged prompts through MCP. The worker
514
+ prompt must explicitly state the authority order:
515
+ `createCampaignGoals[].goalPrompt` first, then loaded `$sellable:create-campaign`
516
+ / `create-campaign-v2` / `generate-messages` prompts and assets, then evergreen
517
+ lane/receipt proof requirements. Evergreen packet fields and receipt rules are
518
+ operational proof context only; they must not become campaign brief copy,
519
+ message-writing instructions, or generated customer-facing text.
504
520
  The worker prompt must include the exact filter status rule:
505
521
  `filterDecisionReceipt.status:"applied"` only; never `completed`, `confirmed`,
506
522
  `done`, or any other alias.
@@ -541,8 +557,10 @@ launchers, write the same prompt body to `<worker-prompt-file>` and launch the
541
557
  worker with stdin redirected from that file:
542
558
 
543
559
  ```
544
- 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.
560
+ codex -a never -s danger-full-access -c model_reasoning_effort=xhigh exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - <<'WORKER_PROMPT'
561
+ Use $sellable:create-campaign as the governing campaign workflow for this one lane worker.
562
+ Use the evergreen plan/packet below only for lane scope, source metadata,
563
+ postconditions, side-effect caps, and durable receipt proof.
546
564
 
547
565
  Workspace id: <workspaceId>
548
566
  Parent planRevision: <planRevision>
@@ -556,7 +574,26 @@ Write the durable receipt to this exact path: <receiptArtifactPath>
556
574
 
557
575
  If your runtime exposes a goal tool, create or maintain this exact goal:
558
576
  complete action <actionId> only when <receiptArtifactPath> exists as valid JSON
559
- for this lane or when a blocked receipt has been written at that same path.
577
+ for this lane, or only for the accepted Post Engagers no-source blockers listed
578
+ below when a blocked receipt has been written at that same path.
579
+
580
+ Create-campaign goal prompt (authoritative; paste verbatim from the matching
581
+ createCampaignGoals[].goalPrompt):
582
+ <createCampaignGoalPrompt>
583
+
584
+ Authority order:
585
+ 1. The create-campaign goal prompt above is the campaign task.
586
+ 2. Loaded `$sellable:create-campaign`, `create-campaign-v2`, and
587
+ `generate-messages` prompts/assets own the campaign brief and message
588
+ strategy.
589
+ 3. The evergreen lane packet and receipt rules below are operational scope and
590
+ proof requirements only.
591
+
592
+ Do not paste evergreen lane keys, provider/source names, receipt terms, setup
593
+ plan terminology, verifier fields, or workflow mechanics into the campaign
594
+ brief or generated customer-facing messages. Do not add evergreen-authored
595
+ message-writing rules to the brief; let the loaded create-campaign and
596
+ generate-messages workflow do its job.
560
597
 
561
598
  Worker lane packet JSON:
562
599
  <lane packet JSON>
@@ -566,6 +603,11 @@ Use mcp__sellable only. Do not use admin tools, direct DB, Prisma, SQL, web sear
566
603
  Do not launch, start, schedule, send, or use paid InMail.
567
604
  For filter proof, durable receipt status must be `filterDecisionReceipt.status:"applied"` only; never `completed`, `confirmed`, `done`, or aliases.
568
605
  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`.
606
+ If `bootstrap_create_campaign.modelQuality.status === "warn"` because the child
607
+ worker reports GPT 5.5 with `high` reasoning, that is a parent launcher
608
+ configuration bug, not an operator approval path inside the worker. Stop before
609
+ mutation, tell the parent to relaunch this lane with
610
+ `-c model_reasoning_effort=xhigh`, and do not mark the worker goal complete.
569
611
  Complete only this lane. Do not end with narration only. Before your final
570
612
  response, run a local file-existence and JSON self-check for
571
613
  <receiptArtifactPath>. If the lane succeeded, write the canonical success
@@ -579,16 +621,19 @@ receipt, not a worker crash: use one of
579
621
  `post_engagers_no_sender_owned_posts`, or
580
622
  `post_engagers_source_author_mismatch`, include the source/readback evidence,
581
623
  and stop without scraping third-party authors or generating misleading warm
582
- copy. The terminal condition is filesystem proof that <receiptArtifactPath>
583
- exists.
624
+ copy. Any other blocked receipt is not a goal-complete success condition; it is
625
+ a failed lane return that the parent must report or repair. The terminal success
626
+ condition is filesystem proof that <receiptArtifactPath> exists with a success
627
+ receipt, or an accepted Post Engagers no-source blocked/no-op receipt.
584
628
  WORKER_PROMPT
585
629
 
586
630
  # Multi-worker launcher equivalent:
587
- codex -a never -s danger-full-access exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
631
+ codex -a never -s danger-full-access -c model_reasoning_effort=xhigh exec --skip-git-repo-check -m <worker-model> -C <repo> -o <worker-final-file> - < <worker-prompt-file>
588
632
  ```
589
633
 
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`.
634
+ If any placeholder cannot be filled from the current plan, matching
635
+ `createCampaignGoals[]` entry, or lane packet, do not inspect the filesystem or
636
+ rerun inventory; stop with `blocked: worker_dispatch_stalled`.
592
637
  `multi_agent_v1.spawn_agent`, raw `spawn_agent`, or any opaque Task/subagent
593
638
  runtime that cannot expose a visible thread id or durable receipt artifact is
594
639
  not accepted as command-level UAT proof and must not be used for mutating
@@ -833,7 +878,11 @@ by someone else. Use the explicit blocker codes
833
878
  `acceptedLaneBlockers`, so the parent can report the truthful no-op instead of
834
879
  retrying invalid source repair. This exception does not apply to shared lanes,
835
880
  bad generated copy, stale plans, target mismatch, missing receipt files, launch
836
- or schedule side effects, or arbitrary worker failures.
881
+ or schedule side effects, model-quality/preflight blockers, worker model
882
+ availability blockers, or arbitrary worker failures. A blocked receipt outside
883
+ the accepted Post Engagers source codes must not be treated as completion, must
884
+ not be used to mark the worker goal complete, and must not let the parent report
885
+ the evergreen command as complete.
837
886
 
838
887
  All step proof objects must live under `createCampaignStepReceipt`. Do not put
839
888
  `createCampaignWorkflowReceipt`, `campaignBriefReceipt`,
@@ -1276,7 +1325,8 @@ Message, and verify current-revision sample messages before final completion.
1276
1325
  Short form: Do not pass the warm template into Shared Signal Discovery or Shared Cold Fallback.
1277
1326
  Short form: Shared lanes must reject generic product-summary samples.
1278
1327
  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.
1328
+ Short form: Shared lanes must reject unsupported low-confidence relevance hedges.
1329
+ 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
1330
  Short form: Shared lanes must reject internal workflow vocabulary.
1281
1331
  Short form: revise or rerun the packaged create-campaign/generate-messages path.
1282
1332
  - **Post Engagers** first-message style: short, casual, references the
@@ -1317,21 +1367,12 @@ Message, and verify current-revision sample messages before final completion.
1317
1367
  product summaries, or repeated structure are bad. If the first generated
1318
1368
  batch violates these rules, rerun, but record that as a repaired UAT path
1319
1369
  rather than the desired zero-shot path.
1320
- Use the Dotwork gold-standard shape for Shared Signal Discovery samples
1321
- when the row supports a topic-level weak signal: "saw you might be
1322
- interested in [topic], so hope this is relevant", "saw you in a few
1323
- conversations about [topic], so hope this is relevant", or "saw you in a
1324
- few conversations around [topic], so hope this is relevant". These bridges
1325
- are allowed only when source evidence supports the topic and the line does
1326
- not claim a reaction, comment, sender-authored post, or other engagement
1327
- that is not proven. Do not use "found you in a thread" or other raw
1328
- source/discovery mechanics.
1329
- Shared Signal Discovery InMail subjects should follow the Dotwork plus-sign
1330
- A + B + C pattern: concrete topic + buyer outcome + useful artifact/picture,
1331
- for example "initiatives + business outcomes + one live picture".
1332
- Translate source/tool terms into prospect-facing business language; do not
1333
- put internal workflow
1334
- vocabulary such as "Codex-style workflow", "MCP", "agent workflows",
1370
+ Shared Signal Discovery samples may use a supported topic bridge such as
1371
+ "saw you around conversations about [high-level topic], so hope this is
1372
+ relevant" when the topic is grounded in source evidence and not
1373
+ activity-log phrasing. Translate source/tool terms into prospect-facing
1374
+ business language; do not put internal workflow vocabulary such as
1375
+ "Codex-style workflow", "MCP", "agent workflows",
1335
1376
  "Claude Code", or "Claude-style agent workflows" in customer-facing
1336
1377
  message one. Also avoid generic product-process nouns such as "dashboard",
1337
1378
  "workflow", "source", "send-ready copy", "reviewed prospect lists",
@@ -1342,7 +1383,8 @@ Message, and verify current-revision sample messages before final completion.
1342
1383
  Short form: Shared Signal Discovery uses no self-intro such as "I'm building Sellable".
1343
1384
  Short form: Shared Signal Discovery uses no self-intro such as "We're building Sellable".
1344
1385
  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.
1386
+ Short form: Shared Signal Discovery may use "saw you around conversations about [topic], so hope this is relevant" when source-supported.
1387
+ Short form: topic-level bridge rules are owned by the packaged generate-messages prompt and validation, not by the evergreen wrapper.
1346
1388
  Short form: no internal workflow vocabulary such as "Codex-style workflow", "MCP", "agent workflows", "Claude Code", or "Claude-style agent workflows".
1347
1389
  - **Shared Cold Fallback** first-message style: cold, direct, and cohesive.
1348
1390
  It must not pretend there was engagement, must not say "saw you pop up",
@@ -1358,14 +1400,15 @@ Message, and verify current-revision sample messages before final completion.
1358
1400
  Sellable/Codex/Claude-Code feature summary
1359
1401
  across prospects. This is a single-message cold path unless the approved
1360
1402
  create-campaign message workflow proves a better delivery format.
1361
- Do not use source-thread hedges such as "hope this is relevant", "might be
1362
- interested", or "saw you in a few conversations" in Shared Cold Fallback.
1363
- Start from a concrete role, company, or buyer-problem observation instead.
1364
- Do not use a repeated
1365
- product-definition paragraph such as "Sellable is a GTM system" across
1366
- samples; every reviewed cold sample should be specific enough to the role,
1367
- company, or problem that the three sample messages do not share the same
1368
- body skeleton.
1403
+ Do not open with "hope this is relevant" or a similar low-confidence
1404
+ relevance hedge in Shared Cold Fallback. Do not use a repeated product-definition paragraph such
1405
+ as "Sellable is a GTM system" across samples; every reviewed cold sample
1406
+ should be specific enough to the role, company, or problem that the three
1407
+ sample messages do not share the same body skeleton.
1408
+ Do not use source-thread hedges such as "might be interested", "saw you
1409
+ around conversations about...", or "saw you in a few conversations" in
1410
+ Shared Cold Fallback. Start from a concrete role, company, or buyer-problem
1411
+ observation instead.
1369
1412
  Do not use mechanical Sellable process language such as "campaign idea into
1370
1413
  prospects, filters, messages, and sequence setup", "sequence-prospects",
1371
1414
  "dashboard overhead", "campaign map", "send-ready copy", or "reviewed
@@ -1382,7 +1425,8 @@ Message, and verify current-revision sample messages before final completion.
1382
1425
  Short form: Shared Cold Fallback uses no "I've put together".
1383
1426
  Short form: Shared Cold Fallback uses no opt-out shrug such as "If this isn't relevant, ignore me".
1384
1427
  Short form: Shared Cold Fallback uses no product-stack dump.
1385
- Short form: no "hope this is relevant", "might be interested", or "saw you in a few conversations" in Shared Cold Fallback; Shared Signal Discovery has the topic-level conversation-bridge exception above.
1428
+ Short form: Shared Cold Fallback uses no low-confidence relevance hedge such as "hope this is relevant".
1429
+ Short form: no "hope this is relevant", "might be interested", "saw you around conversations about", or "saw you in a few conversations" in Shared Cold Fallback; Shared Signal Discovery has the topic-level conversation-bridge exception above.
1386
1430
  Short form: no repeated product-definition paragraph such as "Sellable is a GTM system".
1387
1431
  - Customer-visible evergreen lanes must enable ICP filtering before Message
1388
1432
  Drafting. This applies to Post Engagers, Shared Signal Discovery, and
@@ -1483,13 +1527,18 @@ Message, and verify current-revision sample messages before final completion.
1483
1527
  or a product-stack dump that repeats the same
1484
1528
  Sellable/Codex/Claude-Code feature summary across prospects. For all
1485
1529
  shared lanes, reject generic product-summary samples, repeated
1486
- near-identical samples, intent-assumptive hedges such as "might be
1487
- interested", source-context mismatches such as "saw you in a few
1488
- conversations" in Shared Cold Fallback, internal workflow vocabulary, any
1489
- sample with non-empty `issues`, and any preserved Post Engagers opener;
1490
- revise or rerun the packaged create-campaign/generate-messages path before
1491
- reporting completion. Do not approve or final-report samples
1492
- with `verdict:"passed"` and non-empty `issues`.
1530
+ near-identical samples, unsupported low-confidence relevance hedges, internal
1531
+ workflow vocabulary, any sample with non-empty `issues`, and any preserved
1532
+ Post Engagers opener; revise or rerun the packaged
1533
+ create-campaign/generate-messages path before reporting completion. Do not
1534
+ approve or final-report samples with `verdict:"passed"` and non-empty
1535
+ `issues`.
1536
+ Shared Signal Discovery samples may use `"saw you around conversations
1537
+ about [high-level topic], so hope this is relevant"` when the topic is
1538
+ supported by source evidence and not activity-log phrasing. Shared Cold
1539
+ Fallback samples must still reject source/conversation hedges such as
1540
+ `"hope this is relevant"`, `"might be interested"`, or `"saw you in a few
1541
+ conversations"`.
1493
1542
  - The first review batch exists and at least 3 review rows have generated
1494
1543
  messages from the approved brief. If fewer than 3 usable rows exist, report
1495
1544
  the actual count and why.