@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
|
@@ -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
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
412
|
-
CLI builds that expose `-a`/`-s` only at top
|
|
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
|
|
420
|
-
|
|
421
|
-
|
|
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
|
|
426
|
-
`gpt-5.
|
|
427
|
-
the exact parent model. A
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
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
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
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-
|
|
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
|
|
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.
|
|
583
|
-
|
|
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
|
|
591
|
-
|
|
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,
|
|
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
|
|
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
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
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:
|
|
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
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
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:
|
|
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,
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
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.
|