@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.
- package/README.md +7 -7
- package/agents/post-find-leads-message-scout.md +33 -13
- package/dist/engage-memory.js +0 -5
- package/dist/identity-memory.js +0 -4
- package/dist/tools/engage-memory.js +2 -2
- package/dist/tools/leads.js +7 -3
- package/dist/tools/prompts.js +3 -2
- package/package.json +1 -1
- package/skills/create-campaign/context/learnings.md +1 -1
- package/skills/create-campaign/references/brief-template.md +2 -2
- package/skills/create-campaign-brief/references/brief-template.md +2 -2
- package/skills/create-campaign-brief/references/draft-lifecycle.md +1 -1
- package/skills/create-campaign-brief/references/examples/briefs/gelee.md +2 -2
- package/skills/create-campaign-brief/references/examples/briefs/superpower.md +41 -28
- package/skills/create-campaign-brief/references/phase75-active-runtime-message-pack.md +12 -9
- package/skills/create-campaign-v2/SKILL.md +4 -0
- package/skills/create-campaign-v2/references/ai-tells.md +51 -16
- package/skills/create-campaign-v2/references/approval-gate-framing.md +1 -1
- package/skills/create-campaign-v2/references/gold-standard-message-examples.md +30 -16
- package/skills/create-campaign-v2/references/gold-standard-message-patterns.md +36 -1
- package/skills/create-campaign-v2/references/gold-standard-runtime-message-pack.md +252 -0
- package/skills/create-campaign-v2/references/thomas-revision-filters.md +17 -7
- package/skills/create-campaign-v2/references/validation-criteria.md +8 -5
- package/skills/create-campaign-v2-validation/SKILL.md +17 -1
- package/skills/create-post/SKILL.md +27 -27
- package/skills/engage/SKILL.md +12 -12
- package/skills/engage/core/README.md +14 -14
- package/skills/find-leads/SKILL.md +1 -1
- package/skills/generate-messages/SKILL.md +215 -90
- package/skills/interview/SKILL.md +24 -24
- package/skills/interview/references/legacy-linkedin-interview.md +12 -12
- package/skills/interview/references/reference-curation.md +4 -4
- package/skills/interview/references/voice-capture-method.md +1 -1
- package/skills/load-voice/SKILL.md +21 -25
- 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
|
|
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
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
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
|
|
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
|
|
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
|
|
90
|
-
- Write - Save approved posts to
|
|
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
|
-
-
|
|
321
|
-
-
|
|
322
|
-
-
|
|
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
|
-
-
|
|
330
|
-
-
|
|
331
|
-
-
|
|
332
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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"
|
package/skills/engage/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
79
|
-
- Write - Save session insights to
|
|
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
|
|
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
|
-
-
|
|
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
|
|
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
|
-
-
|
|
189
|
-
-
|
|
190
|
-
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 |
|
|
10
|
-
| Company truth |
|
|
11
|
-
| Anti-AI rules |
|
|
12
|
-
| Proof/wins |
|
|
13
|
-
| Stories/answers |
|
|
14
|
-
| Context modes |
|
|
15
|
-
| Style override |
|
|
16
|
-
| Comment rules |
|
|
17
|
-
| Proven searches |
|
|
18
|
-
| Tracked people |
|
|
19
|
-
| Post filters |
|
|
20
|
-
| ICP |
|
|
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
|
|
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.
|