@sellable/mcp 0.1.71 → 0.1.73
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/agents/registry.json +6 -3
- package/dist/index-dev.js +0 -0
- package/dist/index.js +0 -0
- package/dist/tools/prompts.d.ts +2 -0
- package/dist/tools/prompts.js +2 -0
- package/package.json +1 -1
- package/skills/create-campaign-v2/SKILL.md +8 -0
- package/skills/create-campaign-v2/core/flow.v2.json +4 -2
- package/skills/create-campaign-v2/references/validation-criteria.md +4 -2
- package/skills/generate-messages/SKILL.md +7 -1
- package/skills/research/config.json +9 -0
package/agents/registry.json
CHANGED
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
},
|
|
25
25
|
"codex": {
|
|
26
26
|
"description": "Sellable lead-source scout for LinkedIn post engagement and active conversation signals.",
|
|
27
|
-
"
|
|
27
|
+
"model": "gpt-5.5",
|
|
28
|
+
"modelReasoningEffort": "high",
|
|
28
29
|
"sandboxMode": "read-only",
|
|
29
30
|
"nicknameCandidates": [
|
|
30
31
|
"LinkedIn Engagement Scout",
|
|
@@ -71,7 +72,8 @@
|
|
|
71
72
|
},
|
|
72
73
|
"codex": {
|
|
73
74
|
"description": "Sellable lead-source scout for Sales Navigator role, company, and activity filters.",
|
|
74
|
-
"
|
|
75
|
+
"model": "gpt-5.5",
|
|
76
|
+
"modelReasoningEffort": "high",
|
|
75
77
|
"sandboxMode": "read-only",
|
|
76
78
|
"nicknameCandidates": [
|
|
77
79
|
"Sales Nav Scout",
|
|
@@ -118,7 +120,8 @@
|
|
|
118
120
|
},
|
|
119
121
|
"codex": {
|
|
120
122
|
"description": "Sellable lead-source scout for Prospeo account/domain and broad contact expansion.",
|
|
121
|
-
"
|
|
123
|
+
"model": "gpt-5.5",
|
|
124
|
+
"modelReasoningEffort": "high",
|
|
122
125
|
"sandboxMode": "read-only",
|
|
123
126
|
"nicknameCandidates": [
|
|
124
127
|
"Prospeo Contact Scout",
|
package/dist/index-dev.js
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
File without changes
|
package/dist/tools/prompts.d.ts
CHANGED
package/dist/tools/prompts.js
CHANGED
|
@@ -211,6 +211,8 @@ export function getSourceScoutRegistry() {
|
|
|
211
211
|
codex: {
|
|
212
212
|
filename: String(agent.codex?.filename || `${agent.name}.toml`),
|
|
213
213
|
description: String(agent.codex?.description || ""),
|
|
214
|
+
model: String(agent.codex?.model || "gpt-5.5"),
|
|
215
|
+
modelReasoningEffort: String(agent.codex?.modelReasoningEffort || "high"),
|
|
214
216
|
},
|
|
215
217
|
claude: {
|
|
216
218
|
filename: String(agent.claude?.filename || `${agent.name}.md`),
|
package/package.json
CHANGED
|
@@ -437,6 +437,14 @@ should test for this campaign. Those can run in parallel and usually take
|
|
|
437
437
|
`lead-sample.json`). Approval waits for both `lead-filter.md` and
|
|
438
438
|
`message-validation.md`, then reconciles that the selected message basis rows
|
|
439
439
|
still pass the final filter.
|
|
440
|
+
- `lead-sample.json` from `find leads` is always the message sample source.
|
|
441
|
+
`filter leads` must not create a different message sample or cause message
|
|
442
|
+
generation to fetch new prospects. The filter only marks which find-leads
|
|
443
|
+
sample rows are valid, names false-positive patterns, and provides the
|
|
444
|
+
production keep/exclude rules. Message generation may start prep or
|
|
445
|
+
provisional candidate work from probable good-fit rows in `lead-sample.json`,
|
|
446
|
+
but the final `message-validation.md` winner must cite basis rows from
|
|
447
|
+
`lead-sample.json` that still pass `lead-filter.md`.
|
|
440
448
|
- Parallel means real parallel execution, not optimistic progress copy. For the
|
|
441
449
|
lead-source scout, first call `get_source_scout_registry` and use the
|
|
442
450
|
returned canonical `name` values. In Codex, explicitly spawn one named custom scout per
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
"parallel only if real parallel branches were launched"
|
|
480
480
|
],
|
|
481
481
|
"timeEstimate": "~2-3 min",
|
|
482
|
-
"chatRenderRule": "If real parallel MCP/tool branches or host subagents were actually launched, say: 'I’m kicking off two workstreams now' and list 'Tighten the fit filter' and 'Message generation'. If not, do not mention parallel/background work; say: 'I’ll tighten the filter first, then run message generation from the same
|
|
482
|
+
"chatRenderRule": "If real parallel MCP/tool branches or host subagents were actually launched, say: 'I’m kicking off two workstreams now' and list 'Tighten the fit filter' and 'Message generation from the find-leads sample'. If not, do not mention parallel/background work; say: 'I’ll tighten the filter first, then run message generation from the same find-leads sample.' Never claim parallelism unless parallel execution actually started. User-facing stage name is message generation; message-validation.md is only the internal artifact. Message generation must use lead-sample.json from find-leads; filter leads only gates which of those sampled rows remain valid."
|
|
483
483
|
},
|
|
484
484
|
{
|
|
485
485
|
"action": "ask_continue_revise_or_confirm_only_if_needed",
|
|
@@ -605,11 +605,12 @@
|
|
|
605
605
|
"action": "run_or_reconcile_subskill",
|
|
606
606
|
"target": "generate-messages",
|
|
607
607
|
"mode": "DRY MODE",
|
|
608
|
+
"sampleSource": "lead-sample.json from find-leads",
|
|
608
609
|
"toolCallRequiredBeforeArtifacts": [
|
|
609
610
|
"get_subskill_prompt({ subskillName: \"generate-messages\", offset, limit }) until hasMore=false"
|
|
610
611
|
],
|
|
611
612
|
"skipIfFreshArtifactExists": "message-validation.md",
|
|
612
|
-
"reconcileWith": "lead-filter.md"
|
|
613
|
+
"reconcileWith": "lead-filter.md; lead-sample.json remains the sample source"
|
|
613
614
|
},
|
|
614
615
|
{
|
|
615
616
|
"action": "write_artifact",
|
|
@@ -626,6 +627,7 @@
|
|
|
626
627
|
],
|
|
627
628
|
"toolRules": [
|
|
628
629
|
"Before writing message-validation.md, message-review.md, approval-packet.md, or a commit-gate AskUserQuestion, the current run must read 100% of the real generate-messages prompt via chunked get_subskill_prompt({ subskillName: \"generate-messages\", offset, limit }) calls.",
|
|
630
|
+
"Lead Sample Basis must cite rows from lead-sample.json produced by find-leads. lead-filter.md only gates those rows; it is not a source for a new sample.",
|
|
629
631
|
"Do not hand-write message-validation.md from message-prep.md, message-candidate-drafts.md, or general campaign knowledge.",
|
|
630
632
|
"message-validation.md must prove the full generate-messages workflow ran: Gold Standard Strategy Map, Proof Inventory, Token Fill Rules, Token Adherence Table, Angle Drafts, Kill / Combine Review, Finalists, Finalizer Pass, Gold-Standard Quality Gate, Skeptical Prospect Review, Winner Gate, and a raw sendable Selected Winner are required before message-review can recommend approve-message.",
|
|
631
633
|
"If the Codex-hosted output is plausible but weaker than the loaded gold-standard examples, stop at message-review with revise-messaging. Do not continue to approval or mint just because the mechanical flow worked.",
|
|
@@ -234,8 +234,10 @@ The sample set must:
|
|
|
234
234
|
|
|
235
235
|
- contain 2-3 sample messages
|
|
236
236
|
- use the find-leads message handoff rows or probable good-fit rows from
|
|
237
|
-
`lead-sample.json`; if `lead-filter.md`
|
|
238
|
-
still pass it
|
|
237
|
+
`lead-sample.json`; if `lead-filter.md` exists, use only those same
|
|
238
|
+
find-leads sample rows when they still pass it
|
|
239
|
+
- never replace the find-leads sample with a filter-generated sample, fresh
|
|
240
|
+
LinkedIn rows, new Sales Nav previews, or new Prospeo rows
|
|
239
241
|
- use only supported tokens documented in the brief
|
|
240
242
|
- contain no unresolved `{{token}}` placeholders
|
|
241
243
|
- resolve every token used in the sample output
|
|
@@ -79,6 +79,11 @@ Required dry-mode contract:
|
|
|
79
79
|
- do not mutate DB-backed campaign state
|
|
80
80
|
- do not fetch fresh web or LinkedIn research
|
|
81
81
|
- use only `brief.md`, `lead-filter.md`, and `lead-sample.json`
|
|
82
|
+
- treat `lead-sample.json` from find-leads as the message sample source; do not
|
|
83
|
+
ask filter-leads for a new sample, create a new sample, or fetch additional
|
|
84
|
+
prospects for dry-mode message generation
|
|
85
|
+
- use `lead-filter.md` only to decide which find-leads sample rows remain valid
|
|
86
|
+
for the final winner and which false-positive patterns must be avoided
|
|
82
87
|
- generate 2-3 sample messages inline
|
|
83
88
|
- write findings to `message-validation.md`
|
|
84
89
|
- start `message-validation.md` with `Mode: DRY MODE (no DB mutation)`
|
|
@@ -94,7 +99,8 @@ Read:
|
|
|
94
99
|
|
|
95
100
|
- `brief.md`
|
|
96
101
|
- `lead-filter.md`
|
|
97
|
-
- `lead-sample.json`
|
|
102
|
+
- `lead-sample.json` from the find-leads step; this is the only allowed sample
|
|
103
|
+
source for dry-mode message generation
|
|
98
104
|
- `mcp/sellable/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md`
|
|
99
105
|
- `mcp/sellable/skills/create-campaign-v2/references/validation-criteria.md`
|
|
100
106
|
- `mcp/sellable/skills/create-campaign-v2/references/thomas-revision-filters.md`
|