@sellable/install 0.1.188 → 0.1.189

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, content capture/ideation, post drafting, and identity
27
+ interviews 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,13 +70,16 @@ source-scout agents.
69
70
  Use the same public entrypoints in both hosts:
70
71
 
71
72
  - Claude Code: `/sellable:create-campaign`
73
+ - Claude Code: `/sellable:content`
72
74
  - Claude Code: `/sellable:interview`
73
75
  - Claude Code: `/sellable:create-post`
74
76
  - Codex: `$sellable:create-campaign`
77
+ - Codex: `$sellable:content`
75
78
  - Codex: `$sellable:interview`
76
79
  - Codex: `$sellable:create-post`
77
80
  - Codex Desktop plugin: `sellable@sellable`
78
81
  - Codex visible skill: `Sellable Create Campaign`
82
+ - Codex visible skill: `Sellable Content`
79
83
  - Codex visible skill: `Sellable Identity Interview`
80
84
  - Codex visible skill: `Sellable Create Post`
81
85
  - Internal MCP workflow prompt: `create-campaign-v2`
@@ -83,8 +87,10 @@ Use the same public entrypoints in both hosts:
83
87
  Do not ask users to run `/sellable:create-campaign-v2`,
84
88
  `$sellable:create-campaign-v2`, `$sellable:load-voice`, or
85
89
  `$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.
90
+ by the campaign skill. `content` is the preferred entrypoint for adding
91
+ transcripts, recurring ideas, and post seeds. `create-post` remains a supported
92
+ direct drafting shortcut and loads voice internally, so there is no separate
93
+ public voice-loading command.
88
94
 
89
95
  ## Structured Questions
90
96
 
@@ -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: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,6 +180,7 @@ function printCreateCommandHint() {
180
180
  console.log("");
181
181
  printAgentBox("Using Claude Code?", "claude", [
182
182
  { label: "Campaign", command: "/sellable:create-campaign" },
183
+ { label: "Content", command: "/sellable:content" },
183
184
  { label: "Post", command: "/sellable:create-post" },
184
185
  { label: "Interview", command: "/sellable:interview" },
185
186
  ]);
@@ -187,6 +188,7 @@ function printCreateCommandHint() {
187
188
  console.log("");
188
189
  printAgentBox("Using Codex?", "codex", [
189
190
  { label: "Campaign", command: "$sellable:create-campaign" },
191
+ { label: "Content", command: "$sellable:content" },
190
192
  { label: "Post", command: "$sellable:create-post" },
191
193
  { label: "Interview", command: "$sellable:interview" },
192
194
  ]);
@@ -1289,6 +1291,76 @@ then retry \`get_subskill_prompt\`.
1289
1291
  `;
1290
1292
  }
1291
1293
 
1294
+ function contentSkillMd() {
1295
+ return `---
1296
+ name: content
1297
+ description: Add transcripts and rough ideas, cluster recurring themes, ideate post seeds, and hand draft requests to create-post.
1298
+ allowed-tools:
1299
+ - mcp__sellable__get_auth_status
1300
+ - mcp__sellable__get_subskill_prompt
1301
+ - mcp__sellable__get_subskill_asset
1302
+ - mcp__sellable__search_subskill_prompts
1303
+ - mcp__sellable__get_engage_memory
1304
+ - mcp__sellable__capture_post_idea
1305
+ - mcp__sellable__get_post_idea
1306
+ - mcp__sellable__list_post_ideas
1307
+ - mcp__sellable__save_hook_research
1308
+ - mcp__sellable__save_post_draft
1309
+ - mcp__sellable__get_post_draft
1310
+ - mcp__sellable__mark_post_published
1311
+ - mcp__sellable__list_published_posts
1312
+ - mcp__sellable__search_engagement_posts
1313
+ - mcp__sellable__fetch_linkedin_posts
1314
+ - mcp__sellable__fetch_linkedin_profile
1315
+ - mcp__sellable__record_engage_proven_search
1316
+ - mcp__sellable__upsert_engage_tracked_person
1317
+ - Read
1318
+ - Write
1319
+ - Edit
1320
+ - Glob
1321
+ - Grep
1322
+ ---
1323
+
1324
+ # Sellable Content
1325
+
1326
+ Use this as the customer-facing entrypoint for the Sellable \`content\`
1327
+ workflow. It captures raw transcripts and rough notes, clusters recurring
1328
+ ideas, extracts story/proof/question cards, produces post seeds, and only drafts
1329
+ by handing off to the canonical \`create-post\` workflow.
1330
+
1331
+ ## Bootstrap
1332
+
1333
+ MCP prompt access is required. Do not inspect repo files, run shell commands,
1334
+ use \`npm\`, \`node\`, local harness scripts, or read local prompt files to
1335
+ emulate this workflow.
1336
+
1337
+ If the Sellable MCP prompt tools are unavailable, stop and say this is a Codex
1338
+ install/reload problem. Tell the user to run
1339
+ \`npx -y ${INSTALL_PACKAGE_SPEC} --host all\`, fully quit and reopen Codex
1340
+ Desktop, then start a new thread.
1341
+
1342
+ ## Execute Workflow
1343
+
1344
+ 1. Call \`mcp__sellable__get_auth_status({})\` so research and save failures can
1345
+ be distinguished from local content capture.
1346
+ 2. Load the canonical prompt via
1347
+ \`mcp__sellable__get_subskill_prompt({ subskillName: "content" })\`.
1348
+ If the response has \`hasMore=true\`, continue with \`nextOffset\` until
1349
+ \`hasMore=false\`.
1350
+ 3. Follow the canonical prompt exactly. Use \`content\` for capture, clustering,
1351
+ ideation, and development. If the user asks for a draft, load and follow
1352
+ \`mcp__sellable__get_subskill_prompt({ subskillName: "create-post" })\`.
1353
+ 4. Do not create a parallel post drafting flow. Do not write repo-local prompt
1354
+ files or append to legacy flat draft files.
1355
+
1356
+ ## MCP Prompt Fallback
1357
+
1358
+ If exact subskill lookup fails, use
1359
+ \`mcp__sellable__search_subskill_prompts({ query: "content", includePublic: true, includeInternal: true })\`,
1360
+ then retry \`get_subskill_prompt\`.
1361
+ `;
1362
+ }
1363
+
1292
1364
  function createPostSkillMd() {
1293
1365
  return `---
1294
1366
  name: create-post
@@ -1555,10 +1627,10 @@ function codexPluginSkills() {
1555
1627
  soulMd: createCampaignSoulMd(),
1556
1628
  },
1557
1629
  {
1558
- dir: "sellable-interview",
1559
- displayName: "Sellable Identity Interview",
1560
- description: "Build durable identity and company memory",
1561
- skillMd: interviewSkillMd(),
1630
+ dir: "sellable-content",
1631
+ displayName: "Sellable Content",
1632
+ description: "Add ideas, transcripts, clusters, and post seeds",
1633
+ skillMd: contentSkillMd(),
1562
1634
  },
1563
1635
  {
1564
1636
  dir: "sellable-create-post",
@@ -1566,6 +1638,12 @@ function codexPluginSkills() {
1566
1638
  description: "Capture ideas and draft LinkedIn posts in your voice",
1567
1639
  skillMd: createPostSkillMd(),
1568
1640
  },
1641
+ {
1642
+ dir: "sellable-interview",
1643
+ displayName: "Sellable Identity Interview",
1644
+ description: "Build durable identity and company memory",
1645
+ skillMd: interviewSkillMd(),
1646
+ },
1569
1647
  ];
1570
1648
  }
1571
1649
 
@@ -2552,6 +2630,7 @@ function printNextSteps(installedHosts, authReused) {
2552
2630
  if (hasClaude) {
2553
2631
  printAgentBox("Using Claude Code?", "claude", [
2554
2632
  { label: "Campaign", command: "/sellable:create-campaign" },
2633
+ { label: "Content", command: "/sellable:content" },
2555
2634
  { label: "Post", command: "/sellable:create-post" },
2556
2635
  { label: "Interview", command: "/sellable:interview" },
2557
2636
  ]);
@@ -2561,6 +2640,7 @@ function printNextSteps(installedHosts, authReused) {
2561
2640
  if (hasCodex) {
2562
2641
  printAgentBox("Using Codex?", "codex", [
2563
2642
  { label: "Campaign", command: "$sellable:create-campaign" },
2643
+ { label: "Content", command: "$sellable:content" },
2564
2644
  { label: "Post", command: "$sellable:create-post" },
2565
2645
  { label: "Interview", command: "$sellable:interview" },
2566
2646
  ]);
@@ -2833,9 +2913,11 @@ async function main() {
2833
2913
  console.log(` apiUrl: ${apiUrl}`);
2834
2914
  console.log(` Continue in your agent:`);
2835
2915
  console.log(` Claude Code: /sellable:create-campaign`);
2916
+ console.log(` Claude Code: /sellable:content`);
2836
2917
  console.log(` Claude Code: /sellable:create-post`);
2837
2918
  console.log(` Claude Code: /sellable:interview`);
2838
2919
  console.log(` Codex: $sellable:create-campaign`);
2920
+ console.log(` Codex: $sellable:content`);
2839
2921
  console.log(` Codex: $sellable:create-post`);
2840
2922
  console.log(` Codex: $sellable:interview`);
2841
2923
  process.exit(0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.188",
3
+ "version": "0.1.189",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {