@sellable/install 0.1.189 → 0.1.191
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/README.md +8 -6
- package/bin/sellable-install.mjs +35 -34
- package/package.json +1 -1
- package/skill-templates/create-campaign.md +4 -2
package/README.md
CHANGED
|
@@ -23,8 +23,8 @@ agent command for launching a campaign:
|
|
|
23
23
|
sellable create
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Campaign creation, content capture/ideation,
|
|
27
|
-
|
|
26
|
+
Campaign creation, foundation memory, content capture/ideation, and post
|
|
27
|
+
drafting run inside Claude Code or Codex, where the Sellable MCP tools and
|
|
28
28
|
approval flows are available.
|
|
29
29
|
|
|
30
30
|
Install is auth-free by default. If you do not pass a token, the agent handles
|
|
@@ -70,24 +70,26 @@ source-scout agents.
|
|
|
70
70
|
Use the same public entrypoints in both hosts:
|
|
71
71
|
|
|
72
72
|
- Claude Code: `/sellable:create-campaign`
|
|
73
|
+
- Claude Code: `/sellable:foundation`
|
|
73
74
|
- Claude Code: `/sellable:content`
|
|
74
|
-
- Claude Code: `/sellable:interview`
|
|
75
75
|
- Claude Code: `/sellable:create-post`
|
|
76
76
|
- Codex: `$sellable:create-campaign`
|
|
77
|
+
- Codex: `$sellable:foundation`
|
|
77
78
|
- Codex: `$sellable:content`
|
|
78
|
-
- Codex: `$sellable:interview`
|
|
79
79
|
- Codex: `$sellable:create-post`
|
|
80
80
|
- Codex Desktop plugin: `sellable@sellable`
|
|
81
81
|
- Codex visible skill: `Sellable Create Campaign`
|
|
82
|
+
- Codex visible skill: `Sellable Foundation`
|
|
82
83
|
- Codex visible skill: `Sellable Content`
|
|
83
|
-
- Codex visible skill: `Sellable Identity Interview`
|
|
84
84
|
- Codex visible skill: `Sellable Create Post`
|
|
85
85
|
- Internal MCP workflow prompt: `create-campaign-v2`
|
|
86
|
+
- Internal/backward-compatible memory prompt: `interview`
|
|
86
87
|
|
|
87
88
|
Do not ask users to run `/sellable:create-campaign-v2`,
|
|
88
89
|
`$sellable:create-campaign-v2`, `$sellable:load-voice`, or
|
|
89
90
|
`$sellable:sellable:create-campaign`. `create-campaign-v2` is loaded internally
|
|
90
|
-
by the campaign skill. `
|
|
91
|
+
by the campaign skill. `foundation` is the preferred entrypoint for durable
|
|
92
|
+
founder/company memory. `content` is the preferred entrypoint for adding
|
|
91
93
|
transcripts, recurring ideas, and post seeds. `create-post` remains a supported
|
|
92
94
|
direct drafting shortcut and loads voice internally, so there is no separate
|
|
93
95
|
public voice-loading command.
|
package/bin/sellable-install.mjs
CHANGED
|
@@ -155,7 +155,7 @@ Options:
|
|
|
155
155
|
|
|
156
156
|
Auth:
|
|
157
157
|
Install is auth-free by default. Sign in happens on the first run of
|
|
158
|
-
/sellable:create-campaign, /sellable:content, or /sellable:create-post in Claude Code or Codex,
|
|
158
|
+
/sellable:create-campaign, /sellable:foundation, /sellable:content, or /sellable:create-post in Claude Code or Codex,
|
|
159
159
|
where the agent walks you through signup or sign-in and stores credentials
|
|
160
160
|
in ~/.sellable/config.json.
|
|
161
161
|
|
|
@@ -180,17 +180,17 @@ function printCreateCommandHint() {
|
|
|
180
180
|
console.log("");
|
|
181
181
|
printAgentBox("Using Claude Code?", "claude", [
|
|
182
182
|
{ label: "Campaign", command: "/sellable:create-campaign" },
|
|
183
|
+
{ label: "Foundation", command: "/sellable:foundation" },
|
|
183
184
|
{ label: "Content", command: "/sellable:content" },
|
|
184
185
|
{ label: "Post", command: "/sellable:create-post" },
|
|
185
|
-
{ label: "Interview", command: "/sellable:interview" },
|
|
186
186
|
]);
|
|
187
187
|
console.log("");
|
|
188
188
|
console.log("");
|
|
189
189
|
printAgentBox("Using Codex?", "codex", [
|
|
190
190
|
{ label: "Campaign", command: "$sellable:create-campaign" },
|
|
191
|
+
{ label: "Foundation", command: "$sellable:foundation" },
|
|
191
192
|
{ label: "Content", command: "$sellable:content" },
|
|
192
193
|
{ label: "Post", command: "$sellable:create-post" },
|
|
193
|
-
{ label: "Interview", command: "$sellable:interview" },
|
|
194
194
|
]);
|
|
195
195
|
console.log("");
|
|
196
196
|
console.log(` ${"─".repeat(63)}`);
|
|
@@ -500,7 +500,7 @@ function codexPluginManifest(opts) {
|
|
|
500
500
|
name: "sellable",
|
|
501
501
|
version: CODEX_PLUGIN_VERSION,
|
|
502
502
|
description:
|
|
503
|
-
"Sellable MCP tools for campaign creation,
|
|
503
|
+
"Sellable MCP tools for campaign creation, foundation memory, content, and workflow sequencing.",
|
|
504
504
|
author: {
|
|
505
505
|
name: "Sellable",
|
|
506
506
|
url: "https://sellable.dev/",
|
|
@@ -1229,10 +1229,10 @@ If subskill lookup fails, use \`mcp__sellable__search_subskill_prompts({ query:
|
|
|
1229
1229
|
`;
|
|
1230
1230
|
}
|
|
1231
1231
|
|
|
1232
|
-
function
|
|
1232
|
+
function foundationSkillMd() {
|
|
1233
1233
|
return `---
|
|
1234
|
-
name:
|
|
1235
|
-
description: Build
|
|
1234
|
+
name: foundation
|
|
1235
|
+
description: Build or update durable founder/company memory: voice, values, proof, stories, positioning, and writing rules.
|
|
1236
1236
|
allowed-tools:
|
|
1237
1237
|
- mcp__sellable__get_subskill_prompt
|
|
1238
1238
|
- mcp__sellable__get_subskill_asset
|
|
@@ -1245,12 +1245,12 @@ allowed-tools:
|
|
|
1245
1245
|
- Grep
|
|
1246
1246
|
---
|
|
1247
1247
|
|
|
1248
|
-
# Sellable
|
|
1248
|
+
# Sellable Foundation
|
|
1249
1249
|
|
|
1250
|
-
Use this as the customer-facing entrypoint for the Sellable \`
|
|
1251
|
-
workflow. It builds durable identity/company memory, proof hygiene,
|
|
1252
|
-
answers, transcript references, and anti-AI writing rules for
|
|
1253
|
-
Sellable writing workflows.
|
|
1250
|
+
Use this as the customer-facing entrypoint for the Sellable \`foundation\`
|
|
1251
|
+
workflow. It builds or updates durable identity/company memory, proof hygiene,
|
|
1252
|
+
reusable answers, transcript references, and anti-AI writing rules for
|
|
1253
|
+
downstream Sellable writing workflows.
|
|
1254
1254
|
|
|
1255
1255
|
## Bootstrap
|
|
1256
1256
|
|
|
@@ -1266,27 +1266,28 @@ Desktop, then start a new thread.
|
|
|
1266
1266
|
## Execute Workflow
|
|
1267
1267
|
|
|
1268
1268
|
1. Load the canonical prompt via
|
|
1269
|
-
\`mcp__sellable__get_subskill_prompt({ subskillName: "
|
|
1269
|
+
\`mcp__sellable__get_subskill_prompt({ subskillName: "foundation" })\`.
|
|
1270
1270
|
If the response has \`hasMore=true\`, continue with \`nextOffset\` until
|
|
1271
1271
|
\`hasMore=false\`.
|
|
1272
|
-
2.
|
|
1273
|
-
|
|
1272
|
+
2. The foundation prompt delegates to the tested \`interview\` engine. Load any
|
|
1273
|
+
referenced files with
|
|
1274
|
+
\`mcp__sellable__get_subskill_asset({ subskillName: "interview", assetPath: "references/<file>.md" })\`.
|
|
1274
1275
|
3. Follow the canonical prompt exactly. Save local memory only where that prompt
|
|
1275
1276
|
directs, under \`~/.sellable/configs/core/**\` and
|
|
1276
1277
|
\`~/.sellable/interviews/**\`.
|
|
1277
|
-
4. If the
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1278
|
+
4. If the run captures a content-specific LinkedIn post idea, route that item to
|
|
1279
|
+
\`$sellable:content\`. Core identity, proof, stories, answer-bank entries,
|
|
1280
|
+
transcripts, references, and raw archives must stay in core/interviews.
|
|
1281
|
+
|
|
1282
|
+
## Backward Compatibility
|
|
1283
|
+
|
|
1284
|
+
\`interview\` remains the internal/backward-compatible engine. Prefer
|
|
1285
|
+
\`foundation\` in user-facing instructions.
|
|
1285
1286
|
|
|
1286
1287
|
## MCP Prompt Fallback
|
|
1287
1288
|
|
|
1288
1289
|
If exact subskill lookup fails, use
|
|
1289
|
-
\`mcp__sellable__search_subskill_prompts({ query: "
|
|
1290
|
+
\`mcp__sellable__search_subskill_prompts({ query: "foundation", includePublic: true, includeInternal: true })\`,
|
|
1290
1291
|
then retry \`get_subskill_prompt\`.
|
|
1291
1292
|
`;
|
|
1292
1293
|
}
|
|
@@ -1632,18 +1633,18 @@ function codexPluginSkills() {
|
|
|
1632
1633
|
description: "Add ideas, transcripts, clusters, and post seeds",
|
|
1633
1634
|
skillMd: contentSkillMd(),
|
|
1634
1635
|
},
|
|
1636
|
+
{
|
|
1637
|
+
dir: "sellable-foundation",
|
|
1638
|
+
displayName: "Sellable Foundation",
|
|
1639
|
+
description: "Build durable founder and company memory",
|
|
1640
|
+
skillMd: foundationSkillMd(),
|
|
1641
|
+
},
|
|
1635
1642
|
{
|
|
1636
1643
|
dir: "sellable-create-post",
|
|
1637
1644
|
displayName: "Sellable Create Post",
|
|
1638
1645
|
description: "Capture ideas and draft LinkedIn posts in your voice",
|
|
1639
1646
|
skillMd: createPostSkillMd(),
|
|
1640
1647
|
},
|
|
1641
|
-
{
|
|
1642
|
-
dir: "sellable-interview",
|
|
1643
|
-
displayName: "Sellable Identity Interview",
|
|
1644
|
-
description: "Build durable identity and company memory",
|
|
1645
|
-
skillMd: interviewSkillMd(),
|
|
1646
|
-
},
|
|
1647
1648
|
];
|
|
1648
1649
|
}
|
|
1649
1650
|
|
|
@@ -2630,9 +2631,9 @@ function printNextSteps(installedHosts, authReused) {
|
|
|
2630
2631
|
if (hasClaude) {
|
|
2631
2632
|
printAgentBox("Using Claude Code?", "claude", [
|
|
2632
2633
|
{ label: "Campaign", command: "/sellable:create-campaign" },
|
|
2634
|
+
{ label: "Foundation", command: "/sellable:foundation" },
|
|
2633
2635
|
{ label: "Content", command: "/sellable:content" },
|
|
2634
2636
|
{ label: "Post", command: "/sellable:create-post" },
|
|
2635
|
-
{ label: "Interview", command: "/sellable:interview" },
|
|
2636
2637
|
]);
|
|
2637
2638
|
console.log("");
|
|
2638
2639
|
console.log("");
|
|
@@ -2640,9 +2641,9 @@ function printNextSteps(installedHosts, authReused) {
|
|
|
2640
2641
|
if (hasCodex) {
|
|
2641
2642
|
printAgentBox("Using Codex?", "codex", [
|
|
2642
2643
|
{ label: "Campaign", command: "$sellable:create-campaign" },
|
|
2644
|
+
{ label: "Foundation", command: "$sellable:foundation" },
|
|
2643
2645
|
{ label: "Content", command: "$sellable:content" },
|
|
2644
2646
|
{ label: "Post", command: "$sellable:create-post" },
|
|
2645
|
-
{ label: "Interview", command: "$sellable:interview" },
|
|
2646
2647
|
]);
|
|
2647
2648
|
console.log("");
|
|
2648
2649
|
}
|
|
@@ -2913,13 +2914,13 @@ async function main() {
|
|
|
2913
2914
|
console.log(` apiUrl: ${apiUrl}`);
|
|
2914
2915
|
console.log(` Continue in your agent:`);
|
|
2915
2916
|
console.log(` Claude Code: /sellable:create-campaign`);
|
|
2917
|
+
console.log(` Claude Code: /sellable:foundation`);
|
|
2916
2918
|
console.log(` Claude Code: /sellable:content`);
|
|
2917
2919
|
console.log(` Claude Code: /sellable:create-post`);
|
|
2918
|
-
console.log(` Claude Code: /sellable:interview`);
|
|
2919
2920
|
console.log(` Codex: $sellable:create-campaign`);
|
|
2921
|
+
console.log(` Codex: $sellable:foundation`);
|
|
2920
2922
|
console.log(` Codex: $sellable:content`);
|
|
2921
2923
|
console.log(` Codex: $sellable:create-post`);
|
|
2922
|
-
console.log(` Codex: $sellable:interview`);
|
|
2923
2924
|
process.exit(0);
|
|
2924
2925
|
}
|
|
2925
2926
|
if (rawArgs[0] === "uninstall") {
|
package/package.json
CHANGED
|
@@ -624,8 +624,10 @@ researched recommendation; you can replace it with your current offer."
|
|
|
624
624
|
|
|
625
625
|
If the invocation or any later user message explicitly asks for "yolo mode",
|
|
626
626
|
"YOLO", `--yolo`, `mode=yolo`, "autopilot", "use best guesses", "answer for
|
|
627
|
-
me", "use best estimates",
|
|
628
|
-
|
|
627
|
+
me", "use best estimates", "just run it", or the user selects or presses Enter
|
|
628
|
+
on `Approve brief + activate YOLO mode (Recommended)`, enable YOLO mode for the
|
|
629
|
+
rest of the run. Treat YOLO as `interactionMode: "autonomous"` plus an intake
|
|
630
|
+
policy:
|
|
629
631
|
|
|
630
632
|
- If the campaign subject is missing, ask only for the LinkedIn profile URL or
|
|
631
633
|
handle in normal chat; do not continue from a non-profile URL and do not ask
|