@sellable/mcp 0.1.212 → 0.1.213

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 (35) hide show
  1. package/README.md +7 -7
  2. package/agents/post-find-leads-message-scout.md +33 -13
  3. package/dist/engage-memory.js +0 -5
  4. package/dist/identity-memory.js +0 -4
  5. package/dist/tools/engage-memory.js +2 -2
  6. package/dist/tools/leads.js +7 -3
  7. package/dist/tools/prompts.js +3 -2
  8. package/package.json +1 -1
  9. package/skills/create-campaign/context/learnings.md +1 -1
  10. package/skills/create-campaign/references/brief-template.md +2 -2
  11. package/skills/create-campaign-brief/references/brief-template.md +2 -2
  12. package/skills/create-campaign-brief/references/draft-lifecycle.md +1 -1
  13. package/skills/create-campaign-brief/references/examples/briefs/gelee.md +2 -2
  14. package/skills/create-campaign-brief/references/examples/briefs/superpower.md +41 -28
  15. package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +12 -9
  16. package/skills/create-campaign-v2/SKILL.md +4 -0
  17. package/skills/create-campaign-v2/references/ai-tells.md +51 -16
  18. package/skills/create-campaign-v2/references/approval-gate-framing.md +1 -1
  19. package/skills/create-campaign-v2/references/gold-standard-message-examples.md +30 -16
  20. package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +36 -1
  21. package/skills/create-campaign-v2/references/gold-standard-runtime-message-pack.md +252 -0
  22. package/skills/create-campaign-v2/references/thomas-revision-filters.md +17 -7
  23. package/skills/create-campaign-v2/references/validation-criteria.md +8 -5
  24. package/skills/create-campaign-v2-validation/SKILL.md +17 -1
  25. package/skills/create-post/SKILL.md +27 -27
  26. package/skills/engage/SKILL.md +12 -12
  27. package/skills/engage/core/README.md +14 -14
  28. package/skills/find-leads/SKILL.md +1 -1
  29. package/skills/generate-messages/SKILL.md +215 -90
  30. package/skills/interview/SKILL.md +24 -24
  31. package/skills/interview/references/legacy-linkedin-interview.md +12 -12
  32. package/skills/interview/references/reference-curation.md +4 -4
  33. package/skills/interview/references/voice-capture-method.md +1 -1
  34. package/skills/load-voice/SKILL.md +21 -25
  35. package/skills/research/SKILL.md +1 -1
@@ -52,21 +52,21 @@ Core principle: Find what's ALREADY working on LinkedIn → deeply autopsy the H
52
52
 
53
53
  3. Load memory (single call):
54
54
 
55
- - Call `get_engage_memory()` to read composed core identity/company memory, proven searches, tracked people, and legacy compatibility memory from `.sellable/configs/`.
55
+ - Call `get_engage_memory()` to read composed core identity/company memory, proven searches, tracked people, and legacy compatibility memory from `~/.sellable/configs/`.
56
56
  - Treat `memory.styleGuide.markdown` as composed engage memory: core identity/company memory first, legacy files as fallback.
57
57
  - If both core memory and compatibility voice memory are missing, inform the user they need to run the new core `interview` flow first.
58
58
 
59
59
  4. Read core and sender voice-specific configs (built-in Read tool):
60
60
 
61
- - `.sellable/configs/core/about-me.md` and `.sellable/configs/core/context-modes.md` (identity + context modes for post stance)
62
- - `.sellable/configs/core/story-bank.md` and `.sellable/configs/core/answer-bank.md` (real stories and reusable answers)
63
- - `.sellable/configs/core/proof-ledger.md` and `.sellable/configs/core/wins-ledger.md` (safe proof and social proof)
64
- - `.sellable/configs/core/anti-ai-writing-style.md` (anti-AI audit)
65
- - `.sellable/configs/core/references/linkedin-posts/INDEX.md` and copied files under `core/references/linkedin-posts/`
66
- - `.sellable/configs/core/references/inspiration/INDEX.md` (structural inspiration and anti-pattern references)
67
- - `.sellable/configs/writing/christian-reyes-linkedin-viral.md` (post-specific voice analysis)
68
- - `.sellable/configs/content/linkedin-posts-drafts.md` (existing drafts + hook bank)
69
- - `.sellable/configs/discovery/post-filters.md` (exclusion rules)
61
+ - `~/.sellable/configs/core/about-me.md` and `~/.sellable/configs/core/context-modes.md` (identity + context modes for post stance)
62
+ - `~/.sellable/configs/core/story-bank.md` and `~/.sellable/configs/core/answer-bank.md` (real stories and reusable answers)
63
+ - `~/.sellable/configs/core/proof-ledger.md` and `~/.sellable/configs/core/wins-ledger.md` (safe proof and social proof)
64
+ - `~/.sellable/configs/core/anti-ai-writing-style.md` (anti-AI audit)
65
+ - `~/.sellable/configs/core/references/linkedin-posts/INDEX.md` and copied files under `core/references/linkedin-posts/`
66
+ - `~/.sellable/configs/core/references/inspiration/INDEX.md` (structural inspiration and anti-pattern references)
67
+ - `~/.sellable/configs/writing/christian-reyes-linkedin-viral.md` (post-specific voice analysis)
68
+ - `~/.sellable/configs/content/linkedin-posts-drafts.md` (existing drafts + hook bank)
69
+ - `~/.sellable/configs/discovery/post-filters.md` (exclusion rules)
70
70
 
71
71
  5. Use `memory.provenSearches` to prioritize high hit-rate keywords in discovery.
72
72
  </bootstrap>
@@ -76,18 +76,18 @@ Core principle: Find what's ALREADY working on LinkedIn → deeply autopsy the H
76
76
  ## MCP Tools
77
77
 
78
78
  - `mcp__sellable__get_auth_status` - Verify token + workspace context
79
- - `mcp__sellable__get_engage_memory` - Read all memory from `.sellable/configs/` (style guide, proven searches, tracked people)
79
+ - `mcp__sellable__get_engage_memory` - Read all memory from `~/.sellable/configs/` (style guide, proven searches, tracked people)
80
80
  - `mcp__sellable__search_engagement_posts` - Wide post discovery by keyword
81
81
  - `mcp__sellable__fetch_linkedin_posts` - Fetch recent posts for any LinkedIn profile
82
82
  - `mcp__sellable__fetch_linkedin_profile` - Get LinkedIn profile details
83
- - `mcp__sellable__record_engage_proven_search` - Update keyword stats in `.sellable/configs/discovery/proven-searches.md`
83
+ - `mcp__sellable__record_engage_proven_search` - Update keyword stats in `~/.sellable/configs/discovery/proven-searches.md`
84
84
 
85
85
  ## Built-in Tools
86
86
 
87
87
  - Task - Agent teams for parallel hook generation, drafting, and optimization
88
88
  - AskUserQuestion - Interviewer and approval gates
89
- - Read - Load voice configs, post drafts, and cross-skill insights from `.sellable/configs/` and `.sellable/insights/`
90
- - Write - Save approved posts to `.sellable/configs/content/linkedin-posts-drafts.md` and session insights to `.sellable/insights/`
89
+ - Read - Load voice configs, post drafts, and cross-skill insights from `~/.sellable/configs/` and `~/.sellable/insights/`
90
+ - Write - Save approved posts to `~/.sellable/configs/content/linkedin-posts-drafts.md` and session insights to `~/.sellable/insights/`
91
91
 
92
92
  </tools>
93
93
 
@@ -317,19 +317,19 @@ Thresholds: 8.0+ = ship it | 6.5-7.9 = strong | 5.0-6.4 = needs rewrite | below
317
317
  1. Run `get_auth_status`. If not OK, stop.
318
318
  2. Call `get_engage_memory()` to load style guide, proven searches, tracked people.
319
319
  3. Read voice-specific configs:
320
- - `.sellable/configs/writing/christian-reyes-linkedin-viral.md`
321
- - `.sellable/configs/content/linkedin-posts-drafts.md`
322
- - `.sellable/configs/discovery/post-filters.md`
320
+ - `~/.sellable/configs/writing/christian-reyes-linkedin-viral.md`
321
+ - `~/.sellable/configs/content/linkedin-posts-drafts.md`
322
+ - `~/.sellable/configs/discovery/post-filters.md`
323
323
  4. If style guide is missing, tell user to run `/interview` first.
324
324
  5. **Fetch sender's last 20 posts** via `fetch_linkedin_posts` (lightweight voice reference — NOT a deep analysis agent, just a quick fetch):
325
325
  - Store the top 10 by engagement as voice calibration samples
326
326
  - Note the hooks, lengths, and endings that got the most engagement
327
327
  - These are used later for voice-matching drafts, not as the primary inspiration
328
328
  6. **Read cross-skill context** (lightweight — local files only, no API calls):
329
- - `./.sellable/configs/audience/icp.md` (ensure posts attract the right audience)
330
- - `./.sellable/configs/writing/comments.md` (comment angles that resonate → inform post topic selection)
331
- - `./.sellable/insights/cross-skill.md` (learnings from engage sessions — trending topics, what angles got approved)
332
- - `./.sellable/insights/engage-sessions.md` (**skim latest entry only** — topics getting engagement in comments, keyword performance, audience reactions)
329
+ - `~/.sellable/configs/audience/icp.md` (ensure posts attract the right audience)
330
+ - `~/.sellable/configs/writing/comments.md` (comment angles that resonate → inform post topic selection)
331
+ - `~/.sellable/insights/cross-skill.md` (learnings from engage sessions — trending topics, what angles got approved)
332
+ - `~/.sellable/insights/engage-sessions.md` (**skim latest entry only** — topics getting engagement in comments, keyword performance, audience reactions)
333
333
  - If any insight file doesn't exist yet, skip it silently — the system builds up over time.
334
334
  7. Ask the sender for their topic area / keywords (or "find what's hot").
335
335
 
@@ -949,7 +949,7 @@ Ask: "Which posts do you want to publish? Any edits?"
949
949
  2. Apply edits while maintaining voice fidelity and mobile optimization.
950
950
  3. Re-present edited posts.
951
951
  4. Repeat until sender approves.
952
- 5. On final approval, offer to save to `.sellable/configs/content/linkedin-posts-drafts.md`.
952
+ 5. On final approval, offer to save to `~/.sellable/configs/content/linkedin-posts-drafts.md`.
953
953
 
954
954
  ### Memory Candidate Review
955
955
 
@@ -978,7 +978,7 @@ For each keyword used in discovery, call `record_engage_proven_search({ keyword,
978
978
 
979
979
  ### 10B: Save Winning Hooks + Body Patterns
980
980
 
981
- Append to `.sellable/configs/content/linkedin-posts-drafts.md`:
981
+ Append to `~/.sellable/configs/content/linkedin-posts-drafts.md`:
982
982
 
983
983
  ```markdown
984
984
  ## Session [date]
@@ -997,7 +997,7 @@ Append to `.sellable/configs/content/linkedin-posts-drafts.md`:
997
997
 
998
998
  ### 10C: Save What Worked to Writing Config
999
999
 
1000
- Update `.sellable/configs/writing/christian-reyes-linkedin-viral.md` by appending a new section:
1000
+ Update `~/.sellable/configs/writing/christian-reyes-linkedin-viral.md` by appending a new section:
1001
1001
 
1002
1002
  ```markdown
1003
1003
  ## Session Insights — [date]
@@ -1039,7 +1039,7 @@ Update `.sellable/configs/writing/christian-reyes-linkedin-viral.md` by appendin
1039
1039
 
1040
1040
  ### 10D: Save Unused Angles for Next Time (Top 9-10 Only)
1041
1041
 
1042
- If the interview surfaced stories or angles that weren't used in this session's posts, save **only the top 9-10 strongest** to `.sellable/configs/content/linkedin-posts-drafts.md` under a "Queued Ideas" section. Don't hoard weak angles — if it's not worth posting next week, don't save it.
1042
+ If the interview surfaced stories or angles that weren't used in this session's posts, save **only the top 9-10 strongest** to `~/.sellable/configs/content/linkedin-posts-drafts.md` under a "Queued Ideas" section. Don't hoard weak angles — if it's not worth posting next week, don't save it.
1043
1043
 
1044
1044
  ```markdown
1045
1045
  ## Queued Ideas (from [date] session)
@@ -1064,7 +1064,7 @@ If any viral post authors from this session are worth tracking for future discov
1064
1064
 
1065
1065
  ### 10F: Update Cross-Skill Insights
1066
1066
 
1067
- **Append** a session summary to `.sellable/insights/post-sessions.md` using the built-in Write tool:
1067
+ **Append** a session summary to `~/.sellable/insights/post-sessions.md` using the built-in Write tool:
1068
1068
 
1069
1069
  ```markdown
1070
1070
  ## Session — [date]
@@ -1090,7 +1090,7 @@ If any viral post authors from this session are worth tracking for future discov
1090
1090
  [1-2 sentence synthesis]
1091
1091
  ```
1092
1092
 
1093
- **If any insight from this session would help engage or campaigns**, also append to `.sellable/insights/cross-skill.md`:
1093
+ **If any insight from this session would help engage or campaigns**, also append to `~/.sellable/insights/cross-skill.md`:
1094
1094
 
1095
1095
  - Format: `## From create-post ([date])` with bullet points
1096
1096
  - e.g., "Bold reframe hooks scored 9+ — counter-intuitive numbers in line 1 force scroll-stop"
@@ -59,7 +59,7 @@ Then proceed directly to Pre-Phase (Mode Detection). All auth, memory, and confi
59
59
  - `mcp__sellable__get_auth_status` - Verify token + workspace context
60
60
  - `mcp__sellable__bootstrap_engage` - Single-sender resolve + ensure comment campaign table + fetch engaged post URLs; persists defaults
61
61
  - `mcp__sellable__bootstrap_engage_multi` - Multi-sender resolve: parallel per-sender table creation + engaged post fetch + globalEngagedPostUrls union
62
- - `mcp__sellable__get_engage_memory` - Read backward-compatible engage memory plus optional core identity/company memory from `.sellable/configs/core/`. The `memory.styleGuide.markdown` blob is composed engage memory: core identity/company files first, then legacy comment/sender overrides. Accepts optional `senderId`.
62
+ - `mcp__sellable__get_engage_memory` - Read backward-compatible engage memory plus optional core identity/company memory from `~/.sellable/configs/core/`. The `memory.styleGuide.markdown` blob is composed engage memory: core identity/company files first, then legacy comment/sender overrides. Accepts optional `senderId`.
63
63
  - `mcp__sellable__set_engage_style_guide` - Write a legacy compatibility style override. Accepts optional `senderId`; it does not replace core identity memory.
64
64
  - `mcp__sellable__record_engage_proven_search` - Update keyword stats. Accepts optional `senderId` for per-sender configs.
65
65
  - `mcp__sellable__upsert_engage_tracked_person` - Add/update tracked person. Accepts optional `senderId` for per-sender configs.
@@ -75,8 +75,8 @@ Then proceed directly to Pre-Phase (Mode Detection). All auth, memory, and confi
75
75
 
76
76
  - Task - Parallel discovery agents (fresh-scanner + deep-scanner)
77
77
  - AskUserQuestion - Optional interview + approvals
78
- - Read - Load voice configs, post filters, and cross-skill insights from `.sellable/configs/` and `.sellable/insights/`
79
- - Write - Save session insights to `.sellable/insights/`
78
+ - Read - Load voice configs, post filters, and cross-skill insights from `~/.sellable/configs/` and `~/.sellable/insights/`
79
+ - Write - Save session insights to `~/.sellable/insights/`
80
80
 
81
81
  </tools>
82
82
 
@@ -169,7 +169,7 @@ For EACH sender, call `fetch_linkedin_posts({ linkedinUrl: sender.senderLinkedin
169
169
  For EACH sender, call `get_engage_memory({ senderId })`:
170
170
 
171
171
  - Treat `memory.styleGuide.markdown` as composed engage memory, not a flat-only style file.
172
- - Primary memory comes from `.sellable/configs/core/about-me.md`, `my-company.md`, `anti-ai-writing-style.md`, `proof-ledger.md`, `wins-ledger.md`, `story-bank.md`, `answer-bank.md`, `context-modes.md`, and `decision-rules.md` when present.
172
+ - Primary memory comes from `~/.sellable/configs/core/about-me.md`, `my-company.md`, `anti-ai-writing-style.md`, `proof-ledger.md`, `wins-ledger.md`, `story-bank.md`, `answer-bank.md`, `context-modes.md`, and `decision-rules.md` when present.
173
173
  - Legacy sender files under `senders/{senderId}/` and flat `writing/*`, `audience/*`, and `faqs/*` are compatibility fallbacks and overrides.
174
174
  - If core identity/company memory and legacy voice memory are both missing, tell the user to run the new core `interview` flow before drafting.
175
175
 
@@ -177,17 +177,17 @@ For EACH sender, call `get_engage_memory({ senderId })`:
177
177
 
178
178
  Read (built-in Read tool):
179
179
 
180
- - `./.sellable/configs/writing/comments.md` (comment-specific rules, quality gate, approved examples)
180
+ - `~/.sellable/configs/writing/comments.md` (comment-specific rules, quality gate, approved examples)
181
181
  - The composed engage memory is already loaded via `get_engage_memory` above. Treat the legacy writing style guide as fallback/source material, not as the primary voice source.
182
- - If present and useful for final gates, skim `./.sellable/configs/core/anti-ai-writing-style.md` and `./.sellable/configs/core/proof-ledger.md`.
182
+ - If present and useful for final gates, skim `~/.sellable/configs/core/anti-ai-writing-style.md` and `~/.sellable/configs/core/proof-ledger.md`.
183
183
 
184
184
  ### Step 0.6: Read cross-skill context [OPTIONAL]
185
185
 
186
186
  Read (lightweight — local files only, no API calls):
187
187
 
188
- - `./.sellable/configs/audience/icp.md` (for relevance scoring in Phase 2)
189
- - `./.sellable/insights/cross-skill.md` (learnings from other skills)
190
- - `./.sellable/insights/post-sessions.md` (**skim latest entry only** — trending topics)
188
+ - `~/.sellable/configs/audience/icp.md` (for relevance scoring in Phase 2)
189
+ - `~/.sellable/insights/cross-skill.md` (learnings from other skills)
190
+ - `~/.sellable/insights/post-sessions.md` (**skim latest entry only** — trending topics)
191
191
  - If any file doesn't exist, skip silently.
192
192
 
193
193
  ### Step 0.7: Build keyword strategy [REQUIRED]
@@ -365,7 +365,7 @@ Write-backs must be idempotent: use stable source keys such as `engage-session:{
365
365
 
366
366
  ### Mode: Full Interview (no core or compatibility memory for any sender — required, cannot skip)
367
367
 
368
- Run the new core `interview` flow. Its output should populate `.sellable/configs/core/**` first, then engage can keep legacy compatibility overrides where needed.
368
+ Run the new core `interview` flow. Its output should populate `~/.sellable/configs/core/**` first, then engage can keep legacy compatibility overrides where needed.
369
369
 
370
370
  ## Phase 4: Draft Comments Per Sender [REQUIRED]
371
371
 
@@ -463,7 +463,7 @@ Only keep the strongest unused angles for next session.
463
463
 
464
464
  ### 6E: Update Cross-Skill Insights (shared)
465
465
 
466
- **Append** to `.sellable/insights/engage-sessions.md`:
466
+ **Append** to `~/.sellable/insights/engage-sessions.md`:
467
467
 
468
468
  ```markdown
469
469
  ## Session — [date]
@@ -486,7 +486,7 @@ Only keep the strongest unused angles for next session.
486
486
  - **Try next**: [new keywords from trends]
487
487
  ```
488
488
 
489
- **If cross-skill insights found**, append to `.sellable/insights/cross-skill.md`:
489
+ **If cross-skill insights found**, append to `~/.sellable/insights/cross-skill.md`:
490
490
 
491
491
  - Format: `## From engage ([date])` with bullet points
492
492
 
@@ -2,22 +2,22 @@
2
2
 
3
3
  ## Where Data Lives
4
4
 
5
- Engage memory lives in `.sellable/configs/` at the project root. The primary identity/company layer is now `.sellable/configs/core/`; legacy writing, discovery, audience, FAQ, and sender files remain compatibility layers and fallbacks.
5
+ Engage memory lives in the home-level `~/.sellable/configs/` source of truth. The primary identity/company layer is now `~/.sellable/configs/core/`; legacy writing, discovery, audience, FAQ, and sender files remain compatibility layers and fallbacks.
6
6
 
7
7
  | Data | Config File | MCP Tool |
8
8
  | --------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------- |
9
- | Core identity | `.sellable/configs/core/about-me.md` | `get_engage_memory` |
10
- | Company truth | `.sellable/configs/core/my-company.md` | `get_engage_memory` |
11
- | Anti-AI rules | `.sellable/configs/core/anti-ai-writing-style.md` | `get_engage_memory` |
12
- | Proof/wins | `.sellable/configs/core/proof-ledger.md`, `.sellable/configs/core/wins-ledger.md` | `get_engage_memory` |
13
- | Stories/answers | `.sellable/configs/core/story-bank.md`, `.sellable/configs/core/answer-bank.md` | `get_engage_memory` |
14
- | Context modes | `.sellable/configs/core/context-modes.md` | `get_engage_memory` |
15
- | Style override | `.sellable/configs/writing/styleguide-core.md` or sender override | `get_engage_memory` / `set_engage_style_guide` |
16
- | Comment rules | `.sellable/configs/writing/comments.md` | (read via `get_engage_memory`) |
17
- | Proven searches | `.sellable/configs/discovery/proven-searches.md` | `get_engage_memory` / `record_engage_proven_search` |
18
- | Tracked people | `.sellable/configs/discovery/influencers.md` | `get_engage_memory` / `upsert_engage_tracked_person` |
19
- | Post filters | `.sellable/configs/discovery/post-filters.md` | (read by skill via Read tool) |
20
- | ICP | `.sellable/configs/audience/icp.md` | (read by skill via Read tool) |
9
+ | Core identity | `~/.sellable/configs/core/about-me.md` | `get_engage_memory` |
10
+ | Company truth | `~/.sellable/configs/core/my-company.md` | `get_engage_memory` |
11
+ | Anti-AI rules | `~/.sellable/configs/core/anti-ai-writing-style.md` | `get_engage_memory` |
12
+ | Proof/wins | `~/.sellable/configs/core/proof-ledger.md`, `~/.sellable/configs/core/wins-ledger.md` | `get_engage_memory` |
13
+ | Stories/answers | `~/.sellable/configs/core/story-bank.md`, `~/.sellable/configs/core/answer-bank.md` | `get_engage_memory` |
14
+ | Context modes | `~/.sellable/configs/core/context-modes.md` | `get_engage_memory` |
15
+ | Style override | `~/.sellable/configs/writing/styleguide-core.md` or sender override | `get_engage_memory` / `set_engage_style_guide` |
16
+ | Comment rules | `~/.sellable/configs/writing/comments.md` | (read via `get_engage_memory`) |
17
+ | Proven searches | `~/.sellable/configs/discovery/proven-searches.md` | `get_engage_memory` / `record_engage_proven_search` |
18
+ | Tracked people | `~/.sellable/configs/discovery/influencers.md` | `get_engage_memory` / `upsert_engage_tracked_person` |
19
+ | Post filters | `~/.sellable/configs/discovery/post-filters.md` | (read by skill via Read tool) |
20
+ | ICP | `~/.sellable/configs/audience/icp.md` | (read by skill via Read tool) |
21
21
 
22
22
  ## How Skills Update Configs
23
23
 
@@ -26,4 +26,4 @@ Engage memory lives in `.sellable/configs/` at the project root. The primary ide
26
26
 
27
27
  ## Migration from JSON
28
28
 
29
- The old `proven-searches.json`, `tracked-people.json`, and `style-guide.template.md` files have been replaced. All data now lives as readable markdown in `.sellable/configs/`. Legacy `writing/*`, `audience/*`, `faqs/*`, and `content/*` files are preserved as fallback/source material while downstream prompts move to core memory.
29
+ The old `proven-searches.json`, `tracked-people.json`, and `style-guide.template.md` files have been replaced. All data now lives as readable markdown in `~/.sellable/configs/`. Legacy `writing/*`, `audience/*`, `faqs/*`, and `content/*` files are preserved as fallback/source material while downstream prompts move to core memory.
@@ -47,7 +47,7 @@ If a transcript is provided, mine it before asking live questions.
47
47
 
48
48
  Create or update:
49
49
 
50
- `./.sellable/gtm-kickoffs/{client-slug}-{date}.md`
50
+ `~/.sellable/gtm-kickoffs/{client-slug}-{date}.md`
51
51
 
52
52
  Minimum sections:
53
53