@vruum/skills 0.6.68 → 0.6.70
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +5 -2
- package/install.js +1 -1
- package/package.json +2 -2
- package/skills/vruum-skills-upgrade/SKILL.md +12 -6
- package/skills/winback-fill/COHORT-QUERIES.md +4 -4
- package/skills/winback-fill/SKILL.md +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vruum",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.70",
|
|
4
4
|
"description": "Vruum AI skills + remote MCP server for B2B GTM teams. Slash commands for outreach triage, engagement triage, pipeline filling, prospect enrichment, and reply diagnosis, paired with the full Vruum MCP tool surface over OAuth 2.1.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vruum AI",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vruum",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.70",
|
|
4
4
|
"description": "Connect your Vruum workspace to review revenue priorities, manage deals, research prospects, and prepare outreach through guided skills and authenticated MCP tools.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Vruum",
|
package/README.md
CHANGED
|
@@ -109,14 +109,17 @@ the public skill instead of leaving a broken link.
|
|
|
109
109
|
- `/pipeline-fill` — Source-agnostic pipeline orchestrator. Picks a source per campaign (Sales Nav / YC / CSV / account list / discovery), runs harness deep research, applies a pre-filter gate, then saves into the campaign via the backend authoritative match_score>=70 gate. Use when: fill pipeline, import prospects, daily imports, need more prospects, discover prospects from scratch, find buyers at these companies, deep research before import.
|
|
110
110
|
- `/sales-nav-deep-fill` — Sales Nav harness source for /pipeline-fill. Pre-filters Sales Nav profiles via vruum-pipeline-filter, produces a candidate list, hands off to /pipeline-fill for deep research and import. Use when: sales nav with deep research, sales nav harness mode, in-chat sales nav.
|
|
111
111
|
- `/vruum-guide` — Guide to running Vruum from your own AI harness. First run: guided onboarding from empty account to first reviewed outreach draft. After: reads live account state, recommends the single next most valuable action, hands off to the right skill. Use when: get started, onboarding, how do I use vruum, what should I do next, where do I start.
|
|
112
|
-
- `/vruum-skills-upgrade` — Upgrade @vruum/skills to the latest npm version and re-sync ~/.vruum/. Use when: upgrade vruum skills, update vruum, pull latest vruum skills
|
|
112
|
+
- `/vruum-skills-upgrade` — Upgrade @vruum/skills to the latest npm version and re-sync ~/.vruum/. Use when the user explicitly asks: upgrade vruum skills, update vruum, or pull latest vruum skills. A passive update notice does not invoke this skill.
|
|
113
113
|
- `/winback-fill` — Source winback candidates from closed-lost deals or churned customers. Surfaces people who went silent or lost a deal >90 days ago, where the loss reason wasn't 'no_fit'. Use when: winback, win back churned, reactivate, revive cold deals, 90-day silent revival, lost deal recovery, lost customer outreach.
|
|
114
114
|
- `/yc-pipeline-fill` — YC harness source for /pipeline-fill. Scrapes YC's public Algolia index, extracts founder LinkedIn URLs, dedups, hands a candidate list to /pipeline-fill for deep research and import. Use when: YC pipeline fill, source from YC, fill campaign with YC founders, sales nav dried up, source YC.
|
|
115
115
|
<!-- generated:skills-end -->
|
|
116
116
|
|
|
117
117
|
## Upgrade
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
Passive update checks do not interrupt the requested task or install updates.
|
|
120
|
+
After the task result, a skill may mention an available update once per
|
|
121
|
+
conversation. Invoke `/vruum-skills-upgrade` when you want its upgrade flow
|
|
122
|
+
(including the saved automatic-upgrade preference), or explicitly run:
|
|
120
123
|
|
|
121
124
|
```bash
|
|
122
125
|
npx --yes @vruum/skills@latest install
|
package/install.js
CHANGED
|
@@ -52,7 +52,7 @@ _UPD=$(~/.vruum/bin/vruum-skills-update-check 2>/dev/null || true)
|
|
|
52
52
|
[ -n "$_UPD" ] && echo "$_UPD" || true
|
|
53
53
|
\`\`\`
|
|
54
54
|
|
|
55
|
-
If output shows \`UPGRADE_AVAILABLE <old> <new>\`:
|
|
55
|
+
If output shows \`UPGRADE_AVAILABLE <old> <new>\`: Continue with the requested skill immediately. After delivering its result, mention the available update and \`/vruum-skills-upgrade\` in one optional line, at most once per conversation. Do not ask an upgrade question, run an installer, or invoke the upgrade skill from this passive check. Read \`~/.vruum/skills/vruum-skills-upgrade/SKILL.md\` only when the user explicitly asks to upgrade; its configuration and consent flow apply then.
|
|
56
56
|
|
|
57
57
|
If output shows \`JUST_UPGRADED <from> <to>\`: tell the user "Running @vruum/skills v{to} (just updated!)" in one line, then continue.
|
|
58
58
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vruum/skills",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.70",
|
|
4
4
|
"description": "Vruum AI skills for Claude Code, Claude Desktop, Codex CLI, and any AI assistant with a skill directory. Slash commands for outreach triage, engagement triage, pipeline filling, prospect enrichment, and reply diagnosis. Pairs with the Vruum MCP server at https://api.vruum.ai/mcp.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"outreach",
|
|
43
43
|
"gtm"
|
|
44
44
|
],
|
|
45
|
-
"contentHash": "
|
|
45
|
+
"contentHash": "14614746d660f2832e18dc75d8eb3d13f626a43341395f84eb5b9cdad2535f04"
|
|
46
46
|
}
|
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vruum-skills-upgrade
|
|
3
|
-
description: "Upgrade @vruum/skills to the latest npm version and re-sync ~/.vruum/. Use when: upgrade vruum skills, update vruum, pull latest vruum skills
|
|
3
|
+
description: "Upgrade @vruum/skills to the latest npm version and re-sync ~/.vruum/. Use when the user explicitly asks: upgrade vruum skills, update vruum, or pull latest vruum skills. A passive update notice does not invoke this skill."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /vruum-skills-upgrade
|
|
7
7
|
|
|
8
8
|
Upgrade the `@vruum/skills` npm package + re-sync `~/.vruum/` + relink all harness skill dirs.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
For every explicit request, whether a slash command or natural language, start
|
|
11
|
+
with the fresh check in **Standalone mode** below. Do not reuse a passive notice
|
|
12
|
+
as proof that an upgrade is still available.
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
## Explicit upgrade flow
|
|
15
|
+
|
|
16
|
+
Use this flow only when the user explicitly requests an upgrade. A passive
|
|
17
|
+
`UPGRADE_AVAILABLE <old> <new>` notice must not interrupt another skill. If the
|
|
18
|
+
user requested an upgrade while doing other work, resume that work afterward.
|
|
13
19
|
|
|
14
20
|
### Step 1: decide whether to auto-upgrade
|
|
15
21
|
|
|
@@ -29,8 +35,8 @@ Use AskUserQuestion with these four options:
|
|
|
29
35
|
[ $NEW_LEVEL -gt 3 ] && NEW_LEVEL=3
|
|
30
36
|
echo "<new> $NEW_LEVEL $(date +%s)" > ~/.vruum/update-snoozed
|
|
31
37
|
```
|
|
32
|
-
Replace `<new>` with the version the
|
|
33
|
-
- **D) Skip this session** — do nothing, don't write snooze.
|
|
38
|
+
Replace `<new>` with the version the fresh check reported.
|
|
39
|
+
- **D) Skip this session** — do nothing, don't write snooze. Ask again only on another explicit upgrade request.
|
|
34
40
|
|
|
35
41
|
### Step 3: run the upgrade
|
|
36
42
|
|
|
@@ -59,7 +65,7 @@ rm -f ~/.vruum/last-update-check ~/.vruum/update-snoozed
|
|
|
59
65
|
|
|
60
66
|
One line: `upgraded @vruum/skills $OLD → $NEW`. Then continue with the original skill.
|
|
61
67
|
|
|
62
|
-
## Standalone mode (
|
|
68
|
+
## Standalone mode (slash command or natural-language upgrade request)
|
|
63
69
|
|
|
64
70
|
Force a fresh check first, then run the flow above starting from Step 1 so the automatic-upgrade setting is honored:
|
|
65
71
|
|
|
@@ -11,12 +11,12 @@ tenant bind to choose.
|
|
|
11
11
|
# Step 1: pull closed-lost deals (scoped to your session's tenant)
|
|
12
12
|
lost = search(type="deals", filters={"outcome": "lost"}, limit=200)
|
|
13
13
|
|
|
14
|
-
# Step 2: keep deals lost between 90 days and
|
|
14
|
+
# Step 2: keep deals lost between 90 days and 365 days ago
|
|
15
15
|
ninety_days_ago = now() - 90 days
|
|
16
|
-
|
|
16
|
+
oldest_eligible = now() - 365 days
|
|
17
17
|
revival_window = [
|
|
18
18
|
d for d in lost.deals
|
|
19
|
-
if
|
|
19
|
+
if oldest_eligible < parse(d.stage_changed_at) < ninety_days_ago
|
|
20
20
|
]
|
|
21
21
|
|
|
22
22
|
# Step 3: drop terminal loss reasons — these are NOT revivable
|
|
@@ -34,7 +34,7 @@ candidates = [d for d in revivable if d.person_id not in open_person_ids]
|
|
|
34
34
|
Cap the candidate list to the 50 most-recently-lost (sort by
|
|
35
35
|
`stage_changed_at DESC`) before per-account enrichment.
|
|
36
36
|
|
|
37
|
-
The
|
|
37
|
+
The 365-day upper bound prevents revival of ancient conversations the
|
|
38
38
|
buyer has forgotten. The 90-day lower bound prevents the "thanks but no
|
|
39
39
|
thanks" buyer from being re-pitched while the rejection is still fresh.
|
|
40
40
|
|
|
@@ -13,7 +13,7 @@ You are a winback-side pipeline filler. While `/expansion-fill` targets won-and-
|
|
|
13
13
|
|
|
14
14
|
## Why this skill exists
|
|
15
15
|
|
|
16
|
-
A closed-lost deal is not a closed door. Most "lost" deals had a real conversation, a fit signal, and a circumstantial blocker — wrong timing, wrong champion, wrong budget cycle. Within
|
|
16
|
+
A closed-lost deal is not a closed door. Most "lost" deals had a real conversation, a fit signal, and a circumstantial blocker — wrong timing, wrong champion, wrong budget cycle. Within 3-12 months, those circumstances change. The data points worth revisiting:
|
|
17
17
|
- The person is still at the same company (relationship intact)
|
|
18
18
|
- The original loss_reason was NOT `no_fit` or `no_budget_permanent` (the deal was lose-able, not unwinnable)
|
|
19
19
|
- Their company has had a recent trigger (new exec, funding, news event)
|
|
@@ -46,7 +46,7 @@ is automatic from your authenticated session. Pick a variant per your intent
|
|
|
46
46
|
|
|
47
47
|
For variant 1 (silent-deal revival), the cohort criteria:
|
|
48
48
|
- `outcome == 'lost'`
|
|
49
|
-
- `stage_changed_at` between 90 days ago and
|
|
49
|
+
- `stage_changed_at` between 90 days ago and 365 days ago
|
|
50
50
|
- `loss_reason NOT IN ('no_fit', 'no_budget_permanent')` (these are terminal — don't re-pitch)
|
|
51
51
|
- Person is still surfaceable via `get_person_360` (still at company)
|
|
52
52
|
- No open deal currently exists on that person (post-filter against
|