@sellable/install 0.1.188 → 0.1.190

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 CHANGED
@@ -23,8 +23,9 @@ agent command for launching a campaign:
23
23
  sellable create
24
24
  ```
25
25
 
26
- Campaign creation, post drafting, and identity interviews run inside Claude Code
27
- or Codex, where the Sellable MCP tools and approval flows are available.
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
+ approval flows are available.
28
29
 
29
30
  Install is auth-free by default. If you do not pass a token, the agent handles
30
31
  Sellable sign-in on the first campaign run with a magic-link handoff.
@@ -69,22 +70,29 @@ source-scout agents.
69
70
  Use the same public entrypoints in both hosts:
70
71
 
71
72
  - Claude Code: `/sellable:create-campaign`
72
- - Claude Code: `/sellable:interview`
73
+ - Claude Code: `/sellable:foundation`
74
+ - Claude Code: `/sellable:content`
73
75
  - Claude Code: `/sellable:create-post`
74
76
  - Codex: `$sellable:create-campaign`
75
- - Codex: `$sellable:interview`
77
+ - Codex: `$sellable:foundation`
78
+ - Codex: `$sellable:content`
76
79
  - Codex: `$sellable:create-post`
77
80
  - Codex Desktop plugin: `sellable@sellable`
78
81
  - Codex visible skill: `Sellable Create Campaign`
79
- - Codex visible skill: `Sellable Identity Interview`
82
+ - Codex visible skill: `Sellable Foundation`
83
+ - Codex visible skill: `Sellable Content`
80
84
  - Codex visible skill: `Sellable Create Post`
81
85
  - Internal MCP workflow prompt: `create-campaign-v2`
86
+ - Internal/backward-compatible memory prompt: `interview`
82
87
 
83
88
  Do not ask users to run `/sellable:create-campaign-v2`,
84
89
  `$sellable:create-campaign-v2`, `$sellable:load-voice`, or
85
90
  `$sellable:sellable:create-campaign`. `create-campaign-v2` is loaded internally
86
- by the campaign skill. `create-post` loads voice internally, so there is no
87
- separate public voice-loading command.
91
+ by the campaign skill. `foundation` is the preferred entrypoint for durable
92
+ founder/company memory. `content` is the preferred entrypoint for adding
93
+ transcripts, recurring ideas, and post seeds. `create-post` remains a supported
94
+ direct drafting shortcut and loads voice internally, so there is no separate
95
+ public voice-loading command.
88
96
 
89
97
  ## Structured Questions
90
98
 
@@ -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 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,15 +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" },
184
+ { label: "Content", command: "/sellable:content" },
183
185
  { label: "Post", command: "/sellable:create-post" },
184
- { label: "Interview", command: "/sellable:interview" },
185
186
  ]);
186
187
  console.log("");
187
188
  console.log("");
188
189
  printAgentBox("Using Codex?", "codex", [
189
190
  { label: "Campaign", command: "$sellable:create-campaign" },
191
+ { label: "Foundation", command: "$sellable:foundation" },
192
+ { label: "Content", command: "$sellable:content" },
190
193
  { label: "Post", command: "$sellable:create-post" },
191
- { label: "Interview", command: "$sellable:interview" },
192
194
  ]);
193
195
  console.log("");
194
196
  console.log(` ${"─".repeat(63)}`);
@@ -498,7 +500,7 @@ function codexPluginManifest(opts) {
498
500
  name: "sellable",
499
501
  version: CODEX_PLUGIN_VERSION,
500
502
  description:
501
- "Sellable MCP tools for campaign creation, engagement, interviews, and workflow sequencing.",
503
+ "Sellable MCP tools for campaign creation, foundation memory, content, and workflow sequencing.",
502
504
  author: {
503
505
  name: "Sellable",
504
506
  url: "https://sellable.dev/",
@@ -1227,10 +1229,10 @@ If subskill lookup fails, use \`mcp__sellable__search_subskill_prompts({ query:
1227
1229
  `;
1228
1230
  }
1229
1231
 
1230
- function interviewSkillMd() {
1232
+ function foundationSkillMd() {
1231
1233
  return `---
1232
- name: interview
1233
- description: Build Sellable core identity/company memory for writing workflows.
1234
+ name: foundation
1235
+ description: Build or update durable founder/company memory: voice, values, proof, stories, positioning, and writing rules.
1234
1236
  allowed-tools:
1235
1237
  - mcp__sellable__get_subskill_prompt
1236
1238
  - mcp__sellable__get_subskill_asset
@@ -1243,12 +1245,12 @@ allowed-tools:
1243
1245
  - Grep
1244
1246
  ---
1245
1247
 
1246
- # Sellable Identity Interview
1248
+ # Sellable Foundation
1247
1249
 
1248
- Use this as the customer-facing entrypoint for the Sellable \`interview\`
1249
- workflow. It builds durable identity/company memory, proof hygiene, reusable
1250
- answers, transcript references, and anti-AI writing rules for downstream
1251
- 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.
1252
1254
 
1253
1255
  ## Bootstrap
1254
1256
 
@@ -1264,27 +1266,98 @@ Desktop, then start a new thread.
1264
1266
  ## Execute Workflow
1265
1267
 
1266
1268
  1. Load the canonical prompt via
1267
- \`mcp__sellable__get_subskill_prompt({ subskillName: "interview" })\`.
1269
+ \`mcp__sellable__get_subskill_prompt({ subskillName: "foundation" })\`.
1268
1270
  If the response has \`hasMore=true\`, continue with \`nextOffset\` until
1269
1271
  \`hasMore=false\`.
1270
- 2. When the canonical prompt asks for \`references/*.md\`, load those files
1271
- with \`mcp__sellable__get_subskill_asset({ subskillName: "interview", assetPath: "references/<file>.md" })\`.
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" })\`.
1272
1275
  3. Follow the canonical prompt exactly. Save local memory only where that prompt
1273
1276
  directs, under \`~/.sellable/configs/core/**\` and
1274
1277
  \`~/.sellable/interviews/**\`.
1275
- 4. If the interview captures a content-specific LinkedIn post idea, hook/taste
1276
- correction, draft-first post calibration note, or voice-note transcript meant
1277
- as a post idea, the canonical prompt may bridge only that item with
1278
- \`mcp__sellable__capture_post_idea\` under
1279
- \`~/.sellable/content/linkedin/ideas/**\`. Core identity, proof, stories,
1280
- answer-bank entries, transcripts, references, and raw archives must stay in
1281
- \`~/.sellable/configs/core/**\` and \`~/.sellable/interviews/**\`.
1282
- Core identity, proof, stories, answer-bank entries, transcripts, references, and raw archives must stay in core/interviews.
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.
1286
+
1287
+ ## MCP Prompt Fallback
1288
+
1289
+ If exact subskill lookup fails, use
1290
+ \`mcp__sellable__search_subskill_prompts({ query: "foundation", includePublic: true, includeInternal: true })\`,
1291
+ then retry \`get_subskill_prompt\`.
1292
+ `;
1293
+ }
1294
+
1295
+ function contentSkillMd() {
1296
+ return `---
1297
+ name: content
1298
+ description: Add transcripts and rough ideas, cluster recurring themes, ideate post seeds, and hand draft requests to create-post.
1299
+ allowed-tools:
1300
+ - mcp__sellable__get_auth_status
1301
+ - mcp__sellable__get_subskill_prompt
1302
+ - mcp__sellable__get_subskill_asset
1303
+ - mcp__sellable__search_subskill_prompts
1304
+ - mcp__sellable__get_engage_memory
1305
+ - mcp__sellable__capture_post_idea
1306
+ - mcp__sellable__get_post_idea
1307
+ - mcp__sellable__list_post_ideas
1308
+ - mcp__sellable__save_hook_research
1309
+ - mcp__sellable__save_post_draft
1310
+ - mcp__sellable__get_post_draft
1311
+ - mcp__sellable__mark_post_published
1312
+ - mcp__sellable__list_published_posts
1313
+ - mcp__sellable__search_engagement_posts
1314
+ - mcp__sellable__fetch_linkedin_posts
1315
+ - mcp__sellable__fetch_linkedin_profile
1316
+ - mcp__sellable__record_engage_proven_search
1317
+ - mcp__sellable__upsert_engage_tracked_person
1318
+ - Read
1319
+ - Write
1320
+ - Edit
1321
+ - Glob
1322
+ - Grep
1323
+ ---
1324
+
1325
+ # Sellable Content
1326
+
1327
+ Use this as the customer-facing entrypoint for the Sellable \`content\`
1328
+ workflow. It captures raw transcripts and rough notes, clusters recurring
1329
+ ideas, extracts story/proof/question cards, produces post seeds, and only drafts
1330
+ by handing off to the canonical \`create-post\` workflow.
1331
+
1332
+ ## Bootstrap
1333
+
1334
+ MCP prompt access is required. Do not inspect repo files, run shell commands,
1335
+ use \`npm\`, \`node\`, local harness scripts, or read local prompt files to
1336
+ emulate this workflow.
1337
+
1338
+ If the Sellable MCP prompt tools are unavailable, stop and say this is a Codex
1339
+ install/reload problem. Tell the user to run
1340
+ \`npx -y ${INSTALL_PACKAGE_SPEC} --host all\`, fully quit and reopen Codex
1341
+ Desktop, then start a new thread.
1342
+
1343
+ ## Execute Workflow
1344
+
1345
+ 1. Call \`mcp__sellable__get_auth_status({})\` so research and save failures can
1346
+ be distinguished from local content capture.
1347
+ 2. Load the canonical prompt via
1348
+ \`mcp__sellable__get_subskill_prompt({ subskillName: "content" })\`.
1349
+ If the response has \`hasMore=true\`, continue with \`nextOffset\` until
1350
+ \`hasMore=false\`.
1351
+ 3. Follow the canonical prompt exactly. Use \`content\` for capture, clustering,
1352
+ ideation, and development. If the user asks for a draft, load and follow
1353
+ \`mcp__sellable__get_subskill_prompt({ subskillName: "create-post" })\`.
1354
+ 4. Do not create a parallel post drafting flow. Do not write repo-local prompt
1355
+ files or append to legacy flat draft files.
1283
1356
 
1284
1357
  ## MCP Prompt Fallback
1285
1358
 
1286
1359
  If exact subskill lookup fails, use
1287
- \`mcp__sellable__search_subskill_prompts({ query: "interview", includePublic: true })\`,
1360
+ \`mcp__sellable__search_subskill_prompts({ query: "content", includePublic: true, includeInternal: true })\`,
1288
1361
  then retry \`get_subskill_prompt\`.
1289
1362
  `;
1290
1363
  }
@@ -1555,10 +1628,16 @@ function codexPluginSkills() {
1555
1628
  soulMd: createCampaignSoulMd(),
1556
1629
  },
1557
1630
  {
1558
- dir: "sellable-interview",
1559
- displayName: "Sellable Identity Interview",
1560
- description: "Build durable identity and company memory",
1561
- skillMd: interviewSkillMd(),
1631
+ dir: "sellable-content",
1632
+ displayName: "Sellable Content",
1633
+ description: "Add ideas, transcripts, clusters, and post seeds",
1634
+ skillMd: contentSkillMd(),
1635
+ },
1636
+ {
1637
+ dir: "sellable-foundation",
1638
+ displayName: "Sellable Foundation",
1639
+ description: "Build durable founder and company memory",
1640
+ skillMd: foundationSkillMd(),
1562
1641
  },
1563
1642
  {
1564
1643
  dir: "sellable-create-post",
@@ -2552,8 +2631,9 @@ function printNextSteps(installedHosts, authReused) {
2552
2631
  if (hasClaude) {
2553
2632
  printAgentBox("Using Claude Code?", "claude", [
2554
2633
  { label: "Campaign", command: "/sellable:create-campaign" },
2634
+ { label: "Foundation", command: "/sellable:foundation" },
2635
+ { label: "Content", command: "/sellable:content" },
2555
2636
  { label: "Post", command: "/sellable:create-post" },
2556
- { label: "Interview", command: "/sellable:interview" },
2557
2637
  ]);
2558
2638
  console.log("");
2559
2639
  console.log("");
@@ -2561,8 +2641,9 @@ function printNextSteps(installedHosts, authReused) {
2561
2641
  if (hasCodex) {
2562
2642
  printAgentBox("Using Codex?", "codex", [
2563
2643
  { label: "Campaign", command: "$sellable:create-campaign" },
2644
+ { label: "Foundation", command: "$sellable:foundation" },
2645
+ { label: "Content", command: "$sellable:content" },
2564
2646
  { label: "Post", command: "$sellable:create-post" },
2565
- { label: "Interview", command: "$sellable:interview" },
2566
2647
  ]);
2567
2648
  console.log("");
2568
2649
  }
@@ -2833,11 +2914,13 @@ async function main() {
2833
2914
  console.log(` apiUrl: ${apiUrl}`);
2834
2915
  console.log(` Continue in your agent:`);
2835
2916
  console.log(` Claude Code: /sellable:create-campaign`);
2917
+ console.log(` Claude Code: /sellable:foundation`);
2918
+ console.log(` Claude Code: /sellable:content`);
2836
2919
  console.log(` Claude Code: /sellable:create-post`);
2837
- console.log(` Claude Code: /sellable:interview`);
2838
2920
  console.log(` Codex: $sellable:create-campaign`);
2921
+ console.log(` Codex: $sellable:foundation`);
2922
+ console.log(` Codex: $sellable:content`);
2839
2923
  console.log(` Codex: $sellable:create-post`);
2840
- console.log(` Codex: $sellable:interview`);
2841
2924
  process.exit(0);
2842
2925
  }
2843
2926
  if (rawArgs[0] === "uninstall") {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.188",
3
+ "version": "0.1.190",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {