@sellable/mcp 0.1.45 → 0.1.47

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.45",
3
+ "version": "0.1.47",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",
@@ -34,8 +34,8 @@ The JSON flow is the source of truth for stage order, `requiredArtifacts`,
34
34
  replace them.
35
35
 
36
36
  Each stage writes its own artifact into the draft directory before the next
37
- stage starts. `brief-v1.md` is the customer-facing brief output; `brief.md` is
38
- the canonical downstream campaign thesis input.
37
+ stage starts. `brief-v1.md` is an internal first-draft snapshot; `brief.md` is
38
+ the current customer-facing and downstream campaign thesis input.
39
39
 
40
40
  After validation artifacts are complete, show the user a commit gate with 6
41
41
  choices (approve / revise-brief / revise-leads / revise-rubric /
@@ -316,39 +316,52 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
316
316
  Do not mention internal artifact names, local folders, shell commands, or
317
317
  persistence in this preamble.
318
318
 
319
- - Before asking for brief approval, render the actual readable brief in the chat.
320
- Do not ask the user to approve a one-paragraph direction, a risk note, or a
321
- hidden artifact they cannot inspect. The user must be able to read what they
322
- are approving without opening files. Include these sections:
319
+ - Before asking for brief approval, render a slim approval brief in the chat and
320
+ keep the rich current brief in `brief.md`. Do not ask the user to
321
+ approve a one-paragraph direction, a risk note, or hidden artifact they cannot
322
+ inspect. The chat approval view should be skimmable in under 45 seconds; full
323
+ reasoning, source notes, and robustness stay in the artifacts. Include these
324
+ sections, with 1-2 short lines each:
323
325
 
324
326
  ```text
325
327
  Campaign brief
326
328
 
327
- Who we are targeting:
329
+ Target:
328
330
  ...
329
331
 
330
- Why they should care:
332
+ Core pain:
331
333
  ...
332
334
 
333
335
  Offer / CTA:
334
336
  ...
335
337
 
336
- Proof to use:
338
+ Proof:
337
339
  ...
338
340
 
339
- Lead source hypothesis:
341
+ Lead plan:
340
342
  ...
341
343
 
342
344
  Message angle:
343
345
  ...
344
346
 
345
- Risks / assumptions:
347
+ Risks:
346
348
  ...
347
349
 
348
- What happens after approval:
349
- I’ll find good-fit LinkedIn leads, show you the source decision and sample, then
350
- draft the first message for review before anything goes live.
351
- ```
350
+ After approval:
351
+ I’ll find good-fit LinkedIn leads, show you the source decision and sample, then
352
+ draft the first message for review before anything goes live.
353
+ ```
354
+
355
+ Do not paste the full rich brief into chat for approval unless the user asks.
356
+ Do not show long filesystem paths in the normal approval view. After the slim
357
+ brief, include only:
358
+
359
+ ```text
360
+ Open artifact: [brief.md]
361
+ ```
362
+
363
+ If clickable links cannot be created, show one compact fallback line:
364
+ `Trouble opening artifacts? I can show the file paths.`
352
365
 
353
366
  The `Offer / CTA` section must name the useful thing the buyer gets by
354
367
  replying. Do not use vague peer-call framing like `compare notes`, `swap
@@ -364,8 +377,7 @@ me`, `I’ll paste a different sender profile`, and `Other / custom`.
364
377
  user-facing choice should be approve/revise language, not "looks good".
365
378
  Approval options should refer to what the user just read, e.g. `Approve this
366
379
  brief`, `Revise target`, `Revise offer/proof`, and `Other / custom`.
367
- Include `Open artifacts:` links to `brief-v1.md` and `brief.md` before the
368
- approval question.
380
+ Include an `Open artifact:` link to `brief.md` before the approval question.
369
381
 
370
382
  - After the brief is approved or auto-confirmed, show the next progress line:
371
383
  `Cool. Now I'm going to find people who are both a good fit and likely to
@@ -399,8 +411,13 @@ should test for this campaign. Those can run in parallel and usually take
399
411
  `npx`), call APIs, query databases, inspect prompt dumps, run git, or
400
412
  synthesize artifact content. Use `Read`/`Write`/`Edit` for artifact files and
401
413
  MCP tools for product actions.
402
- - `brief-v1.md` is the user-facing brief. `brief.md` is the stable downstream
403
- input and remains the thesis source.
414
+ - `brief-v1.md` is only an internal first-draft snapshot. Do not show it in the
415
+ normal user-facing approval view. `brief.md` is the stable downstream input,
416
+ current user-facing brief, and thesis source.
417
+ - On brief edits or revisions, update `brief.md` directly. Do not run another
418
+ long brief-generation pass just to create `brief-v2.md`. If version history is
419
+ ever needed, create it only as a cheap local copy after the edit; never spend
420
+ model/research time writing duplicate versions.
404
421
  - `lead-review.md` and `lead-sample.json` are the required outputs of `find leads`.
405
422
  - `lead-filter.md` is the primary output of `filter leads`.
406
423
  - `rubric.json` is optional and secondary to `lead-filter.md`.
@@ -57,12 +57,13 @@ turn anchored to that:
57
57
 
58
58
  Approvals only feel safe when the user can see what they are approving. Before
59
59
  any approve/revise question, show the relevant decision in plain language. For a
60
- brief approval, render the brief itself, not just a direction summary.
60
+ brief approval, render the slim approval brief, not just a direction summary.
61
61
 
62
62
  Every approval should also give the user a way to inspect the source artifact.
63
63
  After the readable inline content, include an `Open artifacts:` line with links
64
- or plain paths to the files behind the decision. The artifact links are a backup
65
- for inspection, not a replacement for showing the content in chat.
64
+ to the files behind the decision. Do not show long plain paths in normal chat;
65
+ offer them only as a fallback if links cannot be created. The artifact links are
66
+ a backup for inspection, not a replacement for showing the decision in chat.
66
67
 
67
68
  This applies especially to message approvals. Never ask someone to approve a
68
69
  message they cannot see. Show the subject, tokenized template, a filled sample
@@ -92,7 +93,11 @@ Every customer-facing update should answer one of these:
92
93
  - What will the user see next?
93
94
  - What is protected until approval?
94
95
 
95
- Before a brief approval, the user should see:
96
+ Before a brief approval, the user should see a slim approval brief in chat. The
97
+ rich current brief exists in `brief.md`; the chat view is the decision surface,
98
+ not the full working memo. `brief-v1.md` is an internal first-draft snapshot, not
99
+ part of the normal approval UI. It should be skimmable in under 45 seconds and
100
+ include:
96
101
 
97
102
  - who we are targeting
98
103
  - why they should care
@@ -206,26 +206,26 @@
206
206
  "onEnter": [
207
207
  {
208
208
  "action": "show_brief_summary",
209
- "artifact": "brief-v1.md"
209
+ "artifact": "brief.md"
210
210
  },
211
211
  {
212
212
  "action": "render_brief_approval_checkpoint",
213
213
  "requiredVisibleContent": [
214
214
  "Campaign brief",
215
- "Who we are targeting",
216
- "Why they should care",
215
+ "Target",
216
+ "Core pain",
217
217
  "Offer / CTA",
218
- "Proof to use",
219
- "Lead source hypothesis",
218
+ "Proof",
219
+ "Lead plan",
220
220
  "Message angle",
221
- "Risks / assumptions",
222
- "What happens after approval",
221
+ "Risks",
222
+ "After approval",
223
223
  "approve this brief",
224
224
  "revise the brief",
225
225
  "then I will find good-fit leads"
226
226
  ],
227
- "minimumVisibleBriefDetail": "full_readable_brief_before_question",
228
- "requiredArtifactLinks": ["brief-v1.md", "brief.md"],
227
+ "minimumVisibleBriefDetail": "slim_approval_brief_before_question",
228
+ "requiredArtifactLinks": ["brief.md"],
229
229
  "artifactLinkTiming": "before_approval_question",
230
230
  "avoidQuestionWhenOnlyUsefulAnswerIs": "looks good"
231
231
  },