@sellable/mcp 0.1.0

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.
Files changed (200) hide show
  1. package/.claude-plugin/plugin.json +12 -0
  2. package/.mcp.json +9 -0
  3. package/README.md +355 -0
  4. package/dist/api.d.ts +21 -0
  5. package/dist/api.js +73 -0
  6. package/dist/auth.d.ts +60 -0
  7. package/dist/auth.js +246 -0
  8. package/dist/engage-memory.d.ts +63 -0
  9. package/dist/engage-memory.js +354 -0
  10. package/dist/index-dev.d.ts +2 -0
  11. package/dist/index-dev.js +17 -0
  12. package/dist/index.d.ts +7 -0
  13. package/dist/index.js +8 -0
  14. package/dist/server.d.ts +1 -0
  15. package/dist/server.js +499 -0
  16. package/dist/skills.d.ts +11 -0
  17. package/dist/skills.js +97 -0
  18. package/dist/tools/auth.d.ts +30 -0
  19. package/dist/tools/auth.js +124 -0
  20. package/dist/tools/blueprint-commit.d.ts +174 -0
  21. package/dist/tools/blueprint-commit.js +286 -0
  22. package/dist/tools/bootstrap.d.ts +64 -0
  23. package/dist/tools/bootstrap.js +246 -0
  24. package/dist/tools/campaigns.d.ts +589 -0
  25. package/dist/tools/campaigns.js +892 -0
  26. package/dist/tools/cells.d.ts +58 -0
  27. package/dist/tools/cells.js +48 -0
  28. package/dist/tools/context.d.ts +88 -0
  29. package/dist/tools/context.js +271 -0
  30. package/dist/tools/csv-domains.d.ts +73 -0
  31. package/dist/tools/csv-domains.js +464 -0
  32. package/dist/tools/csv-linkedin.d.ts +102 -0
  33. package/dist/tools/csv-linkedin.js +712 -0
  34. package/dist/tools/direct-campaigns.d.ts +240 -0
  35. package/dist/tools/direct-campaigns.js +250 -0
  36. package/dist/tools/engage-bootstrap.d.ts +94 -0
  37. package/dist/tools/engage-bootstrap.js +205 -0
  38. package/dist/tools/engage-discovery.d.ts +78 -0
  39. package/dist/tools/engage-discovery.js +150 -0
  40. package/dist/tools/engage-memory.d.ts +181 -0
  41. package/dist/tools/engage-memory.js +143 -0
  42. package/dist/tools/engage-state.d.ts +72 -0
  43. package/dist/tools/engage-state.js +62 -0
  44. package/dist/tools/enrichment.d.ts +167 -0
  45. package/dist/tools/enrichment.js +174 -0
  46. package/dist/tools/flow-preflight.d.ts +68 -0
  47. package/dist/tools/flow-preflight.js +138 -0
  48. package/dist/tools/framework.d.ts +44 -0
  49. package/dist/tools/framework.js +153 -0
  50. package/dist/tools/interaction-mode.d.ts +27 -0
  51. package/dist/tools/interaction-mode.js +102 -0
  52. package/dist/tools/leads.d.ts +2417 -0
  53. package/dist/tools/leads.js +2307 -0
  54. package/dist/tools/linkedin.d.ts +210 -0
  55. package/dist/tools/linkedin.js +229 -0
  56. package/dist/tools/navigation.d.ts +91 -0
  57. package/dist/tools/navigation.js +381 -0
  58. package/dist/tools/one-off.d.ts +229 -0
  59. package/dist/tools/one-off.js +273 -0
  60. package/dist/tools/processing.d.ts +70 -0
  61. package/dist/tools/processing.js +56 -0
  62. package/dist/tools/prompts.d.ts +211 -0
  63. package/dist/tools/prompts.js +210 -0
  64. package/dist/tools/provider-preflight.d.ts +21 -0
  65. package/dist/tools/provider-preflight.js +59 -0
  66. package/dist/tools/readiness.d.ts +261 -0
  67. package/dist/tools/readiness.js +510 -0
  68. package/dist/tools/rows.d.ts +126 -0
  69. package/dist/tools/rows.js +105 -0
  70. package/dist/tools/rubrics.d.ts +497 -0
  71. package/dist/tools/rubrics.js +681 -0
  72. package/dist/tools/senders.d.ts +44 -0
  73. package/dist/tools/senders.js +69 -0
  74. package/dist/tools/sequencer.d.ts +127 -0
  75. package/dist/tools/sequencer.js +194 -0
  76. package/dist/tools/tables.d.ts +35 -0
  77. package/dist/tools/tables.js +36 -0
  78. package/dist/tools/verify-row.d.ts +36 -0
  79. package/dist/tools/verify-row.js +38 -0
  80. package/dist/tools/workspaces.d.ts +140 -0
  81. package/dist/tools/workspaces.js +139 -0
  82. package/dist/utils/workspace-root.d.ts +1 -0
  83. package/dist/utils/workspace-root.js +39 -0
  84. package/package.json +46 -0
  85. package/skills/building-gtm-tables/SKILL.md +216 -0
  86. package/skills/building-gtm-tables/core/auto-execute.yaml +19 -0
  87. package/skills/building-gtm-tables/core/blueprint-schema.json +72 -0
  88. package/skills/building-gtm-tables/references/brief-to-blueprint.md +334 -0
  89. package/skills/building-gtm-tables/references/column-type-catalog.md +318 -0
  90. package/skills/building-gtm-tables/references/common-blueprints.fixtures.ts +199 -0
  91. package/skills/building-gtm-tables/references/common-blueprints.md +44 -0
  92. package/skills/building-gtm-tables/references/failure-taxonomy.md +197 -0
  93. package/skills/building-gtm-tables/references/uat-seed-prompts.md +37 -0
  94. package/skills/building-gtm-tables/references/verify-loop.md +74 -0
  95. package/skills/campaign-messages/SKILL.md +173 -0
  96. package/skills/campaign-messages/flow.v1.json +75 -0
  97. package/skills/craft-message/SKILL.md +401 -0
  98. package/skills/create-campaign/ARCHITECTURE.md +232 -0
  99. package/skills/create-campaign/DISCUSS.md +296 -0
  100. package/skills/create-campaign/FLOW_ASCII.md +240 -0
  101. package/skills/create-campaign/HOST-PARITY-CHECKLIST.md +49 -0
  102. package/skills/create-campaign/README.md +142 -0
  103. package/skills/create-campaign/SKILL.md +286 -0
  104. package/skills/create-campaign/context/README.md +67 -0
  105. package/skills/create-campaign/context/_TEMPLATE.md +12 -0
  106. package/skills/create-campaign/context/context.md +35 -0
  107. package/skills/create-campaign/context/learnings.md +16 -0
  108. package/skills/create-campaign/context/registry.json +19 -0
  109. package/skills/create-campaign/core/flow.v1.json +217 -0
  110. package/skills/create-campaign/core/policy.md +191 -0
  111. package/skills/create-campaign/core/providers/apollo.json +35 -0
  112. package/skills/create-campaign/core/providers/prospeo.json +34 -0
  113. package/skills/create-campaign/core/providers/registry.json +31 -0
  114. package/skills/create-campaign/core/providers/sales-nav.json +37 -0
  115. package/skills/create-campaign/core/providers/signal-discovery.json +42 -0
  116. package/skills/create-campaign/references/brief-template.md +64 -0
  117. package/skills/create-campaign/references/campaign-quality.md +84 -0
  118. package/skills/create-campaign/references/copy-calibration-examples.md +120 -0
  119. package/skills/create-campaign/references/offer-patterns.md +108 -0
  120. package/skills/create-campaign/references/provider-selection-strategy.md +212 -0
  121. package/skills/create-campaign/references/question-examples.md +167 -0
  122. package/skills/create-campaign/references/token-fill-examples.md +81 -0
  123. package/skills/create-campaign-brief/ARCHITECTURE.md +72 -0
  124. package/skills/create-campaign-brief/DISCUSS.md +64 -0
  125. package/skills/create-campaign-brief/README.md +176 -0
  126. package/skills/create-campaign-brief/SKILL.md +537 -0
  127. package/skills/create-campaign-brief/references/brief-synthesis-rules.md +100 -0
  128. package/skills/create-campaign-brief/references/brief-template.md +220 -0
  129. package/skills/create-campaign-brief/references/campaign-idea-options.md +30 -0
  130. package/skills/create-campaign-brief/references/copy-appendix-template.md +62 -0
  131. package/skills/create-campaign-brief/references/draft-lifecycle.md +23 -0
  132. package/skills/create-campaign-brief/references/examples/MANIFEST.json +89 -0
  133. package/skills/create-campaign-brief/references/examples/briefs/clover.md +223 -0
  134. package/skills/create-campaign-brief/references/examples/briefs/galley.md +222 -0
  135. package/skills/create-campaign-brief/references/examples/briefs/gelee.md +220 -0
  136. package/skills/create-campaign-brief/references/examples/briefs/hey-digital.md +234 -0
  137. package/skills/create-campaign-brief/references/examples/briefs/persona.md +231 -0
  138. package/skills/create-campaign-brief/references/examples/briefs/revvix.md +220 -0
  139. package/skills/create-campaign-brief/references/examples/briefs/sellable-dev.md +220 -0
  140. package/skills/create-campaign-brief/references/examples/briefs/superposition.md +233 -0
  141. package/skills/create-campaign-brief/references/examples/briefs/superpower.md +219 -0
  142. package/skills/create-campaign-brief/references/examples/briefs/westpark-villas.md +220 -0
  143. package/skills/create-campaign-brief/references/icp-lock-question-bank.md +43 -0
  144. package/skills/create-campaign-brief/references/messaging-inputs.md +58 -0
  145. package/skills/create-campaign-brief/references/output-acceptance-rubric.md +62 -0
  146. package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +248 -0
  147. package/skills/create-campaign-brief/references/phase75-canonical-brief-template.md +319 -0
  148. package/skills/create-campaign-brief/references/phase75-good-brief-and-messaging-examples.md +445 -0
  149. package/skills/create-campaign-brief/references/quick-research-protocol.md +39 -0
  150. package/skills/create-campaign-brief/references/reference-sheet-protocol.md +60 -0
  151. package/skills/create-campaign-brief/references/zero-shot-iteration-rules.md +66 -0
  152. package/skills/create-campaign-v2/SKILL.md +1619 -0
  153. package/skills/create-campaign-v2/core/auto-execute.README.md +219 -0
  154. package/skills/create-campaign-v2/core/auto-execute.yaml +121 -0
  155. package/skills/create-campaign-v2/core/flow.v2.json +1643 -0
  156. package/skills/create-campaign-v2/core/policy.md +82 -0
  157. package/skills/create-campaign-v2/references/ai-tells.md +253 -0
  158. package/skills/create-campaign-v2/references/approval-gate-framing.md +346 -0
  159. package/skills/create-campaign-v2/references/draft-lifecycle.md +110 -0
  160. package/skills/create-campaign-v2/references/escalation-ladder.md +119 -0
  161. package/skills/create-campaign-v2/references/filter-leads.md +495 -0
  162. package/skills/create-campaign-v2/references/final-handoff-contract.md +176 -0
  163. package/skills/create-campaign-v2/references/gold-standard-message-examples.md +394 -0
  164. package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +314 -0
  165. package/skills/create-campaign-v2/references/gold-standard-message-validation-example.md +212 -0
  166. package/skills/create-campaign-v2/references/lead-validation-preview.md +172 -0
  167. package/skills/create-campaign-v2/references/parallel-critique-protocol.md +368 -0
  168. package/skills/create-campaign-v2/references/sample-validation-loop.md +289 -0
  169. package/skills/create-campaign-v2/references/step-13-import-leads.md +151 -0
  170. package/skills/create-campaign-v2/references/step-15-re-cascade.md +90 -0
  171. package/skills/create-campaign-v2/references/thomas-revision-filters.md +521 -0
  172. package/skills/create-campaign-v2/references/thomas-variant-selection.md +202 -0
  173. package/skills/create-campaign-v2/references/tier-routing-matrix.md +66 -0
  174. package/skills/create-campaign-v2/references/validation-criteria.md +367 -0
  175. package/skills/create-campaign-v2/references/watch-link-handoff.md +106 -0
  176. package/skills/create-campaign-v2-validation/SKILL.md +296 -0
  177. package/skills/create-post/SKILL.md +1308 -0
  178. package/skills/create-rubric/SKILL.md +251 -0
  179. package/skills/engage/SKILL.md +549 -0
  180. package/skills/engage/core/README.md +23 -0
  181. package/skills/engage/core/proven-searches.json +11 -0
  182. package/skills/engage/core/style-guide.template.md +47 -0
  183. package/skills/engage/core/tracked-people.json +10 -0
  184. package/skills/enrich-prospects/SKILL.md +97 -0
  185. package/skills/find-leads/SKILL.md +467 -0
  186. package/skills/generate-messages/SKILL.md +2361 -0
  187. package/skills/interview/SKILL.md +132 -0
  188. package/skills/interview/core/ENGAGE_STYLE_GUIDE.template.md +54 -0
  189. package/skills/interview/core/ICP.template.md +54 -0
  190. package/skills/interview/core/VOICE_PROFILE.template.md +101 -0
  191. package/skills/providers/apollo.md +520 -0
  192. package/skills/providers/prospeo.md +398 -0
  193. package/skills/providers/sales-nav.md +372 -0
  194. package/skills/providers/signal-discovery.md +495 -0
  195. package/skills/research/SKILL.md +258 -0
  196. package/skills/research/config.json +9 -0
  197. package/skills/research/override.md +13 -0
  198. package/skills/research-prospect/SKILL.md +99 -0
  199. package/skills/research-sender/SKILL.md +158 -0
  200. package/skills/workflow-sequences/SKILL.md +85 -0
@@ -0,0 +1,176 @@
1
+ # Create Campaign Brief
2
+
3
+ Standalone Sellable MCP command for Phase 83: create the initial high-level
4
+ `brief.md v1` for the brief-first campaign path.
5
+
6
+ ## Host Parity Contract
7
+
8
+ The command is loaded through the normal Sellable prompt-discovery path:
9
+
10
+ - `list_subskill_prompts`
11
+ - `search_subskill_prompts`
12
+ - `get_subskill_prompt({ subskillName: "create-campaign-brief" })`
13
+
14
+ Phase 83 does not require a public `create-campaign-v2` prompt. The command
15
+ name is `create-campaign-brief`.
16
+
17
+ ## Source Bundle Contract
18
+
19
+ Start from a LinkedIn URL plus optional pasted materials:
20
+
21
+ - transcript
22
+ - proposal or kickoff notes
23
+ - ICP notes
24
+ - deck excerpts
25
+ - prior messages
26
+ - product or website notes
27
+ - operator-provided campaign idea
28
+
29
+ The command should still work with sparse input. It must separate known facts,
30
+ assumptions, and blocking gaps instead of inventing proof. Default kickoff is
31
+ LinkedIn-first; website-only is a sparse fallback.
32
+
33
+ ## Workflow Contract
34
+
35
+ 1. Intake a LinkedIn URL and optional materials.
36
+ 2. Run quick research only as needed.
37
+ 3. Propose 1-3 campaign direction options, or validate the user's idea.
38
+ 4. Lock ICP sourcing/filter mechanics.
39
+ 5. Confirm an operator-only reference sheet from the example bank.
40
+ 6. Define the simple next-step plan: find leads, tighten filter, draft message.
41
+ 7. Draft compact messaging inputs and claim boundaries, not final sequences or opener instructions.
42
+ 8. Return `brief.md v1` inline and stop.
43
+
44
+ Interview expectations:
45
+
46
+ - Default to one `AskUserQuestion` batch.
47
+ - Use a second batch only if a real unknown still blocks `brief-v1`.
48
+ - Ask up to 4 questions per batch and up to 4 options per question.
49
+ - If the company is ambiguous, confirm the company first.
50
+ - Before the question batch, state the current best guess in plain English.
51
+ - Avoid GTM shorthand like `Sales Nav` or `title filters` unless translated.
52
+ - Let founders pick one, pick many, or add their own context when needed.
53
+ - Frame proof/safety questions as "what can we safely say?" not only "what are the don'ts?"
54
+ - A strong default is: `Which of these points would make the buyer most confident?`
55
+ - Keep `Campaign Thesis` in bullets, not a dense paragraph.
56
+ - Keep `Personalization Inputs To Validate` very short; it is mainly a handoff to the next step.
57
+ - Keep archive calibration invisible in the final brief.
58
+ - Keep inferred stack/tool mixes as validation targets unless directly sourced.
59
+ - Treat proof selection as buyer-relative: ask which proof would most increase
60
+ confidence in the claim, not just which claims are safe.
61
+
62
+ ## Output Contract
63
+
64
+ Return one Markdown brief inline in the final assistant message. The output is
65
+ `Status: brief-v1`. Immediately after the status, include a short
66
+ `Campaign Direction` summary that makes the campaign obvious fast. Its
67
+ `Sources Used` section is customer-facing
68
+ bibliography only: LinkedIn URL, sender data, website if used, supplied
69
+ materials, and customer-owned research. It must not expose Phase 75 files,
70
+ Sellable client examples, or internal reference names.
71
+
72
+ Keep `Sources Used` compact: 3-5 bullets with source name + URL or source
73
+ label only. Do not append extraction notes, fetch-status notes, or operator
74
+ commentary there. Put `Sources Used` at the end of the brief so provenance is
75
+ available without leading the reading flow.
76
+
77
+ Keep `Product` and `Social Proof / Safe Claims` tight. Do not dump long vendor
78
+ lists or turn safe-claims notes into a long risk memo. The brief should read
79
+ like a crisp customer-facing operator note, not a strategy document.
80
+ Choose the most compelling proof for the buyer. That may be customer proof,
81
+ founder/operator credibility, investor/YC backing, or proprietary tech if the
82
+ founder confirms that is what makes the claim more credible.
83
+
84
+ Do not use `Write`, `Edit`, `Bash`, or any filesystem-mutating tool to persist
85
+ the brief. Do not preface the brief with permission/tool chatter, and do not
86
+ tell the operator to save/copy it somewhere. Only cite sources that were
87
+ actually fetched and confirmed to belong to the customer. Keep product and
88
+ proof claims exact to validated sources; do not inflate channels, integration
89
+ counts, or traction.
90
+
91
+ It contains concise product bullets, rough demographic/title filters,
92
+ anti-buyer filters, one recommended campaign thesis, a compact InMail-first
93
+ message thesis, and one plain-language `Next Steps` section that walks through:
94
+
95
+ - `Find Leads`
96
+ - `Tighten Filter`
97
+ - `Draft Message`
98
+
99
+ Use only `Prospeo`, `Sales Nav`, or `Signals` when describing likely lead-source
100
+ paths. Do not mention Apollo in the brief.
101
+
102
+ If the campaign goal is really `people likely to reply`, the brief should
103
+ usually carry this source-path hypothesis:
104
+
105
+ - `Signals` first when the TAM plausibly posts, comments, or engages on LinkedIn
106
+ - `Sales Nav` second when we need tighter role/company filters or the TAM is not active enough on LinkedIn
107
+ - `Prospeo` fallback when LinkedIn-native lanes still cannot produce enough good fits or when domain/account expansion is the clearest next move
108
+
109
+ Keep that explanation plain-English in the brief. The founder should understand
110
+ why we would start with active LinkedIn behavior before broader cold outreach.
111
+
112
+ The handoff to Phase 84 should frame `Tighten Filter` as:
113
+
114
+ - required keep/exclude rules first
115
+ - sample-driven cleanup of false positives
116
+ - optional supporting rules only when clearly useful later
117
+
118
+ It does not create a campaign, update a campaign brief row, import leads, write
119
+ a rubric, write final message variants, or write workflow-table data.
120
+
121
+ ## Reference Bank
122
+
123
+ Phase 83 uses the Phase 75 corpus as compact references:
124
+
125
+ - `references/phase75-canonical-brief-template.md` as the gold-standard template and instructions
126
+ - `references/phase75-active-runtime-message-pack.md` as the narrow runtime inspiration pack
127
+ - `references/phase75-good-brief-and-messaging-examples.md` as the curated gold examples
128
+ - selected client brief archives
129
+ - holdout-aware manifest at `references/examples/MANIFEST.json`
130
+
131
+ Primary runtime clients:
132
+
133
+ - `sellable.dev`
134
+ - `Hey Digital`
135
+ - `Galley`
136
+ - `Clover`
137
+ - `Persona`
138
+ - `Superpower`
139
+
140
+ Secondary / conditional only:
141
+
142
+ - `Gelee` — proof-stack reference only; do not use as primary runtime because
143
+ the visible example lacks a strong CTA
144
+ - `Revvix` — event/logistics reference only; do not use as broad runtime because
145
+ the CTA is too soft
146
+ - `superposition` — exact hiring-template reference only; do not use as broad
147
+ runtime because it can over-teach sender-first proof stacking
148
+ - `westpark villas`
149
+
150
+ `Amplify Security` remains an acceptance fixture, not runtime gold.
151
+
152
+ ## Validation
153
+
154
+ Run:
155
+
156
+ ```bash
157
+ npm run test tests/mcp/sellable-create-campaign-brief-contract.test.ts
158
+ npm run test tests/scripts/run-create-campaign-brief-vps-uat.test.ts
159
+ ```
160
+
161
+ Hosted UAT is run on `sellable-web-mcp`:
162
+
163
+ ```bash
164
+ scripts/run-create-campaign-brief-vps-uat.sh
165
+ ```
166
+
167
+ Single-fixture smoke for a sparse YC-company website run:
168
+
169
+ ```bash
170
+ SELLABLE_CREATE_CAMPAIGN_BRIEF_UAT_FIXTURE_DIR="$PWD/tests/fixtures/create-campaign-brief/smoke" \
171
+ SELLABLE_CREATE_CAMPAIGN_BRIEF_UAT_FIXTURES="surfacelabs" \
172
+ scripts/run-create-campaign-brief-vps-uat.sh
173
+ ```
174
+
175
+ The hosted runner saves Claude Code stream artifacts under
176
+ `.planning/artifacts/uat/83-create-campaign-brief/`.