@sellable/install 0.1.103 → 0.1.105
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.
|
@@ -61,9 +61,9 @@ Return the following to the parent thread:
|
|
|
61
61
|
choice, and rubric/filter basis when present
|
|
62
62
|
- output timestamp/hash and any retry/error detail
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
Do not write local markdown/json artifacts in normal live campaign runs. Return
|
|
65
|
+
the recommendation directly to the parent thread. Emit debug artifacts only when
|
|
66
|
+
the parent explicitly asks for debug/UAT output.
|
|
67
67
|
|
|
68
68
|
When reporting branch runtime proof, use this shape under
|
|
69
69
|
`watchNarration.workerDetails.messageDraftBuilder`:
|
|
@@ -136,3 +136,47 @@ Return a concise status with:
|
|
|
136
136
|
- one rendered omit/fallback sample
|
|
137
137
|
- quality-gate pass/fail summary
|
|
138
138
|
- whether final template review is ready or needs revision
|
|
139
|
+
|
|
140
|
+
When the parent will show the recommendation in chat, format the customer-facing
|
|
141
|
+
message review as Markdown with distinct copy blocks:
|
|
142
|
+
|
|
143
|
+
````markdown
|
|
144
|
+
## Message Template
|
|
145
|
+
|
|
146
|
+
**Subject**
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
{{tokenized_subject}}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Body**
|
|
153
|
+
|
|
154
|
+
```text
|
|
155
|
+
{{tokenized_message_body}}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Rendered Examples
|
|
159
|
+
|
|
160
|
+
### Good token fill
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
Subject: ...
|
|
164
|
+
|
|
165
|
+
Hey First,
|
|
166
|
+
|
|
167
|
+
...
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Good omit / fallback
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
Subject: ...
|
|
174
|
+
|
|
175
|
+
Hey First,
|
|
176
|
+
|
|
177
|
+
...
|
|
178
|
+
```
|
|
179
|
+
````
|
|
180
|
+
|
|
181
|
+
Use a table for token rules. Keep explanations outside the fenced `text` blocks
|
|
182
|
+
so the user can quickly see exactly what copy is being approved.
|
package/agents/registry.json
CHANGED
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
"optionalProducesArtifacts": [],
|
|
169
169
|
"ownership": "lead quality, false-positive patterns, keep/exclude rules, ability-to-pay checks, and production rubric translation only",
|
|
170
170
|
"codex": {
|
|
171
|
-
"description": "Lead Fit Builder for campaign-backed lead filtering and rubric persistence after
|
|
171
|
+
"description": "Lead Fit Builder for campaign-backed lead filtering and rubric persistence after review-batch import and filter approval.",
|
|
172
172
|
"model": "gpt-5.5",
|
|
173
173
|
"modelReasoningEffort": "high",
|
|
174
174
|
"sandboxMode": "read-only",
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
]
|
|
180
180
|
},
|
|
181
181
|
"claude": {
|
|
182
|
-
"description": "Use proactively as Lead Fit Builder after
|
|
182
|
+
"description": "Use proactively as Lead Fit Builder after review-batch import and filter approval to persist campaign rubrics from campaign state.",
|
|
183
183
|
"model": "inherit",
|
|
184
184
|
"background": true,
|
|
185
185
|
"maxTurns": 8,
|
|
@@ -211,11 +211,7 @@
|
|
|
211
211
|
"token fill rules",
|
|
212
212
|
"rendered sample"
|
|
213
213
|
],
|
|
214
|
-
"optionalProducesArtifacts": [
|
|
215
|
-
"message-validation.md",
|
|
216
|
-
"message-prep.md",
|
|
217
|
-
"message-candidate-drafts.md"
|
|
218
|
-
],
|
|
214
|
+
"optionalProducesArtifacts": [],
|
|
219
215
|
"ownership": "proof inventory, token strategy, angle drafting, skeptical-prospect review, and selected winner only",
|
|
220
216
|
"codex": {
|
|
221
217
|
"description": "Message Draft Builder for campaign-backed template proposals after confirm_lead_list imports a non-empty bounded review batch.",
|
package/bin/sellable-install.mjs
CHANGED
|
@@ -40,7 +40,7 @@ function getMcpVersion() {
|
|
|
40
40
|
} catch {}
|
|
41
41
|
return "latest";
|
|
42
42
|
}
|
|
43
|
-
const CODEX_PLUGIN_VERSION = "0.1.
|
|
43
|
+
const CODEX_PLUGIN_VERSION = "0.1.32";
|
|
44
44
|
const CODEX_PLUGIN_COMPAT_VERSIONS = [
|
|
45
45
|
"0.1.8",
|
|
46
46
|
"0.1.9",
|
|
@@ -630,8 +630,8 @@ clear business decisions, tradeoffs, and approval gates. Use product language:
|
|
|
630
630
|
- "a couple setup choices", not \`request_user_input\`
|
|
631
631
|
- "campaign brief", not prompt artifact
|
|
632
632
|
- "lead source", not provider internals unless comparing source options
|
|
633
|
-
- "I can create a draft shell for you to watch
|
|
634
|
-
|
|
633
|
+
- "I can create a draft shell for you to watch with approval gates before
|
|
634
|
+
sourcing", not mutation jargon
|
|
635
635
|
|
|
636
636
|
When explaining lead-source decisions, show the concrete counts behind the
|
|
637
637
|
logic: lanes searched, timeframe, raw result counts, finalist posts or preview
|
|
@@ -960,7 +960,7 @@ updates.
|
|
|
960
960
|
supplemental approval checklist, not a replacement for the long prompt. Use
|
|
961
961
|
campaign state, campaign brief content, selected source state, and imported
|
|
962
962
|
review-batch rows as the source of truth; do not read stale local markdown,
|
|
963
|
-
inspect the database directly, or synthesize
|
|
963
|
+
inspect the database directly, or synthesize local validation artifacts from
|
|
964
964
|
general knowledge.
|
|
965
965
|
5. Create the campaign shell early with the v1 brief so the user can open the
|
|
966
966
|
watch link and see useful setup state immediately. Import only the first
|
package/package.json
CHANGED
|
@@ -86,7 +86,7 @@ or tool discovery. Start in product language:
|
|
|
86
86
|
```text
|
|
87
87
|
I’ll help you launch this as a Sellable campaign. First I’ll resolve the
|
|
88
88
|
client/company this campaign is for, then I’ll turn that into a campaign brief
|
|
89
|
-
before
|
|
89
|
+
before we move into lead sourcing.
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
If a linked/local skill file is stale or missing, silently use the installed
|
|
@@ -102,8 +102,14 @@ clear business decisions, tradeoffs, and approval gates. Use product language:
|
|
|
102
102
|
- "a couple setup choices", not `request_user_input`
|
|
103
103
|
- "campaign brief", not prompt artifact
|
|
104
104
|
- "lead source", not provider internals unless comparing source options
|
|
105
|
-
- "I can create a draft shell for you to watch
|
|
106
|
-
|
|
105
|
+
- "I can create a draft shell for you to watch with approval gates before
|
|
106
|
+
sourcing", not mutation jargon
|
|
107
|
+
|
|
108
|
+
Approval and safety copy should be tasteful. State what the current approval
|
|
109
|
+
covers once, in one short sentence, then move on. Do not append repeated
|
|
110
|
+
"nothing starts / no leads import / no sending" disclaimers to routine progress
|
|
111
|
+
updates. Use positive gate language like "Next gate: selected-post scrape" or
|
|
112
|
+
"Approval covers scouting/search only" instead of long negative lists.
|
|
107
113
|
|
|
108
114
|
When explaining lead-source decisions, show the concrete counts behind the
|
|
109
115
|
logic: lanes searched, timeframe, raw result counts, finalist posts or preview
|
|
@@ -127,7 +133,7 @@ authorizes scouting/search only. The gate should say:
|
|
|
127
133
|
- why that lane fits the buyer, offer, and likely public activity
|
|
128
134
|
- what will be tested next
|
|
129
135
|
- the fallback lane if relevant posts or ICP engagement look thin
|
|
130
|
-
-
|
|
136
|
+
- what approval covers in one concise line
|
|
131
137
|
|
|
132
138
|
Do not surface blanket source heuristics as product copy. Make the
|
|
133
139
|
recommendation specific to the campaign. If Signal Discovery is recommended,
|
|
@@ -142,6 +148,20 @@ Signal Discovery, name how many selected posts will be scraped, the target
|
|
|
142
148
|
engager/source-candidate volume, and the bounded review-batch size. For Sales
|
|
143
149
|
Nav or Prospeo, name the specific approved import lane. Do not call
|
|
144
150
|
`import_leads` or `confirm_lead_list` until this second approval is granted.
|
|
151
|
+
For Signal Discovery, the customer-facing approval card must use the exact
|
|
152
|
+
action shape "Approve scraping N Signal Discovery posts?" and the chat summary
|
|
153
|
+
should be a compact `## Source Recommendation` block with:
|
|
154
|
+
|
|
155
|
+
- goal: about 300 good-fit prospects after cleanup, enrichment, and filters
|
|
156
|
+
- working assumption: about 15% of raw post engagers become good-fit prospects
|
|
157
|
+
- engagers needed: about 2,000 raw engagers
|
|
158
|
+
- a selected-post table with post author/topic, why it fits, and visible
|
|
159
|
+
engagement
|
|
160
|
+
- total visible pool and estimated good-fit pool
|
|
161
|
+
- first pass: build the source list, then import only 15 leads into the review
|
|
162
|
+
batch
|
|
163
|
+
- fallback: switch to Sales Nav recent activity if the review batch is
|
|
164
|
+
vendor-heavy, agency-heavy, or off-ICP
|
|
145
165
|
|
|
146
166
|
When the user has not supplied a source and multiple source angles are viable,
|
|
147
167
|
scout those angles as independent branches when the host can actually do it:
|
|
@@ -159,8 +179,8 @@ The create-campaign-v2 subskill calls `get_source_scout_registry` before
|
|
|
159
179
|
dispatch so the current registry, not this copy, is the runtime source of truth.
|
|
160
180
|
If the host runs them sequentially or the named agents are unavailable, do not
|
|
161
181
|
claim they ran in parallel and do not surface install status to the customer. In
|
|
162
|
-
chat, call the downstream copy stage `message generation`;
|
|
163
|
-
|
|
182
|
+
chat, call the downstream copy stage `message generation`; message validation is
|
|
183
|
+
only an internal approval proof.
|
|
164
184
|
|
|
165
185
|
For campaign-attached Signal Discovery sampling, promote/select the exact posts
|
|
166
186
|
with `select_promising_posts` before `fetch_post_engagers` so the user can see
|
|
@@ -168,19 +188,17 @@ which posts are being sampled in the watched app. The watch guide should say
|
|
|
168
188
|
that we are pulling sample engagers from these posts to confirm the ICP is
|
|
169
189
|
actually engaging and the source is viable.
|
|
170
190
|
|
|
171
|
-
After
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
still orchestrates the same branches from the compact context with MCP
|
|
183
|
-
tools/assets.
|
|
191
|
+
After the bounded review batch exists, use the same registry pattern for
|
|
192
|
+
post-lead work. The create-campaign-v2 subskill calls
|
|
193
|
+
`get_post_find_leads_scout_registry`, then launches the returned
|
|
194
|
+
message-generation scout immediately when real subagents are available and the
|
|
195
|
+
current session exposes the returned name. If the user chooses filters, launch
|
|
196
|
+
the filter-leads scout then and join it with the already-running or completed
|
|
197
|
+
message draft before message review. Workflow cell execution still waits for
|
|
198
|
+
filter and template approval. AI Generated is an explicit opt-out that cancels
|
|
199
|
+
or ignores the background template draft. If the post-lead agents are absent,
|
|
200
|
+
the main thread still orchestrates the same branches from the compact context
|
|
201
|
+
with MCP tools/assets.
|
|
184
202
|
|
|
185
203
|
Use rendered Markdown for user review surfaces, not fenced code blocks. Keep
|
|
186
204
|
lines short, use indexed section labels and bullets, and translate internal
|
|
@@ -412,7 +430,7 @@ First I’ll resolve the client/company this campaign is for. I’ll use that
|
|
|
412
430
|
context to choose the target, offer, proof, and lead source.
|
|
413
431
|
|
|
414
432
|
Then I’ll turn that into a campaign brief for you to approve before any leads
|
|
415
|
-
are
|
|
433
|
+
are sourced.
|
|
416
434
|
```
|
|
417
435
|
|
|
418
436
|
Do not silently ask Codex intake or approval questions as plain chat when
|
|
@@ -597,7 +615,7 @@ updates.
|
|
|
597
615
|
supplemental approval checklist, not a replacement for the long prompt. Use
|
|
598
616
|
campaign state, campaign brief content, selected source state, and imported
|
|
599
617
|
review-batch rows as the source of truth; do not read stale local markdown,
|
|
600
|
-
inspect the database directly, or synthesize
|
|
618
|
+
inspect the database directly, or synthesize local validation artifacts from
|
|
601
619
|
general knowledge.
|
|
602
620
|
5. Create the campaign shell early with the v1 brief so the user can open the
|
|
603
621
|
watch link and see useful setup state immediately. Import only the first
|
|
@@ -609,9 +627,11 @@ updates.
|
|
|
609
627
|
call `mcp__sellable__update_campaign({ campaignId, enableICPFilters: true, currentStep: "create-icp-rubric", watchNarration })`
|
|
610
628
|
so the watched app moves to Filter Rules while rubrics are drafted/saved.
|
|
611
629
|
After rubrics save, move the watched app to `apply-icp-rubric` / Filter
|
|
612
|
-
Leads and say the fit rules are saved; approve the message template next
|
|
613
|
-
|
|
614
|
-
|
|
630
|
+
Leads and say the fit rules are saved; approve the message template next
|
|
631
|
+
while the browser stays on Filter Leads. After approval, save the template
|
|
632
|
+
to the campaign brief, then queue the bounded review-batch `enrichCellId`
|
|
633
|
+
cells to kick off enrichment/filtering. Move to Messages only after at
|
|
634
|
+
least one review row passes and Generate Message cells are running or ready.
|
|
615
635
|
Product Generate Message cells must not run from the background template
|
|
616
636
|
path before that template/token approval.
|
|
617
637
|
Do not ask the user to approve the brief before shell creation unless they
|
|
@@ -621,14 +641,14 @@ updates.
|
|
|
621
641
|
visible work so the user can watch progress in the app: `create-offer` for
|
|
622
642
|
the brief, `pick-provider` or the selected provider step while sourcing,
|
|
623
643
|
`filter-choice` after the 15-row review batch, `create-icp-rubric` as soon
|
|
624
|
-
as filters are approved, `apply-icp-rubric` after rubrics save
|
|
625
|
-
for
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
`
|
|
631
|
-
step backward.
|
|
644
|
+
as filters are approved, `apply-icp-rubric` after rubrics save and while
|
|
645
|
+
waiting for message-template approval, `validate-sample` while the approved
|
|
646
|
+
template unlocks bounded enrichment/filter scoring on Filter Leads,
|
|
647
|
+
`auto-execute-messaging` after at least one row passes and review-batch
|
|
648
|
+
messages are being generated or reviewed, `awaiting-user-greenlight` only
|
|
649
|
+
after generated review-batch messages are approved, `settings` for sender
|
|
650
|
+
selection, `sequence` after sender attach, and `send` once the recommended
|
|
651
|
+
sequence is attached. Do not advance the step backward.
|
|
632
652
|
7. Keep `selectedLeadListId` as the source list and `workflowTableId` as the
|
|
633
653
|
campaign table. Do not use disk files as the post-mint source of truth.
|
|
634
654
|
8. Do not ask the user to run another command.
|