@devrev-computer/skills 1.0.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.
- package/README.md +37 -0
- package/bin/install.mjs +158 -0
- package/package.json +33 -0
- package/skills/account-evaluation/account-evaluation.md +64 -0
- package/skills/account-research/account-research.md +323 -0
- package/skills/account-research/references/signals-guide.md +52 -0
- package/skills/create-workflow-template/create-workflow-template.md +1091 -0
- package/skills/create-workflow-template/examples/3592-Generate rca from pia-template.json +1 -0
- package/skills/create-workflow-template/examples/4392-Async opportunity review agent-template.json +1 -0
- package/skills/create-workflow-template/examples/4441-Ticket escalator from customer message-template.json +1 -0
- package/skills/create-workflow-template/examples/4505-Auto-update issue tcd as end of sprint date-template.json +1 -0
- package/skills/create-workflow-template/examples/5040-Devrevu - enablement journey - poc emails-template.json +1 -0
- package/skills/create-workflow-template/examples/5158-Devrevu - enablement journey - mailing for non enablement journey users-template.json +1 -0
- package/skills/create-workflow-template/examples/5216-Account segment missing notification-template.json +1 -0
- package/skills/create-workflow-template/examples/working-csat-score-on-ticket-resolved.json +1 -0
- package/skills/create-workflow-template/examples/working-enhancement-replace-agent.json +1 -0
- package/skills/create-workflow-template/examples/working-invoke-code-sample.json +1 -0
- package/skills/create-workflow-template/examples/working-loop-variable-sample.json +1 -0
- package/skills/create-workflow-template/operations/actions.md +2919 -0
- package/skills/create-workflow-template/operations/blockings.md +38 -0
- package/skills/create-workflow-template/operations/controls.md +108 -0
- package/skills/create-workflow-template/operations/schema-index.md +166 -0
- package/skills/create-workflow-template/operations/schemas/account_created.md +58 -0
- package/skills/create-workflow-template/operations/schemas/account_updated.md +73 -0
- package/skills/create-workflow-template/operations/schemas/add_comment.md +29 -0
- package/skills/create-workflow-template/operations/schemas/airdrop_sync_run_started.md +33 -0
- package/skills/create-workflow-template/operations/schemas/airdrop_sync_run_status_updated.md +35 -0
- package/skills/create-workflow-template/operations/schemas/article_created.md +96 -0
- package/skills/create-workflow-template/operations/schemas/article_updated.md +135 -0
- package/skills/create-workflow-template/operations/schemas/ask_ai.md +11 -0
- package/skills/create-workflow-template/operations/schemas/classify_object.md +22 -0
- package/skills/create-workflow-template/operations/schemas/contact_created.md +43 -0
- package/skills/create-workflow-template/operations/schemas/contact_updated.md +65 -0
- package/skills/create-workflow-template/operations/schemas/conversation_created.md +108 -0
- package/skills/create-workflow-template/operations/schemas/conversation_sla_tracker_updated.md +46 -0
- package/skills/create-workflow-template/operations/schemas/conversation_updated.md +130 -0
- package/skills/create-workflow-template/operations/schemas/convert_conversation_to_ticket.md +13 -0
- package/skills/create-workflow-template/operations/schemas/create_account.md +62 -0
- package/skills/create-workflow-template/operations/schemas/create_article.md +79 -0
- package/skills/create-workflow-template/operations/schemas/create_brand.md +42 -0
- package/skills/create-workflow-template/operations/schemas/create_contact.md +65 -0
- package/skills/create-workflow-template/operations/schemas/create_dm.md +53 -0
- package/skills/create-workflow-template/operations/schemas/create_enhancement.md +63 -0
- package/skills/create-workflow-template/operations/schemas/create_incident.md +136 -0
- package/skills/create-workflow-template/operations/schemas/create_issue.md +150 -0
- package/skills/create-workflow-template/operations/schemas/create_meeting.md +105 -0
- package/skills/create-workflow-template/operations/schemas/create_opportunity.md +123 -0
- package/skills/create-workflow-template/operations/schemas/create_ticket.md +184 -0
- package/skills/create-workflow-template/operations/schemas/csat_response_received.md +73 -0
- package/skills/create-workflow-template/operations/schemas/dev_user_created.md +54 -0
- package/skills/create-workflow-template/operations/schemas/dev_user_updated.md +99 -0
- package/skills/create-workflow-template/operations/schemas/enhancement_created.md +46 -0
- package/skills/create-workflow-template/operations/schemas/enhancement_updated.md +89 -0
- package/skills/create-workflow-template/operations/schemas/evaluate_sentiment.md +14 -0
- package/skills/create-workflow-template/operations/schemas/execute_metric_action.md +11 -0
- package/skills/create-workflow-template/operations/schemas/feature_created.md +40 -0
- package/skills/create-workflow-template/operations/schemas/for_each.md +45 -0
- package/skills/create-workflow-template/operations/schemas/get_account.md +59 -0
- package/skills/create-workflow-template/operations/schemas/get_airdrop_sync_unit.md +32 -0
- package/skills/create-workflow-template/operations/schemas/get_brand.md +40 -0
- package/skills/create-workflow-template/operations/schemas/get_complete_enhancement_details.md +13 -0
- package/skills/create-workflow-template/operations/schemas/get_conversation.md +120 -0
- package/skills/create-workflow-template/operations/schemas/get_customer.md +60 -0
- package/skills/create-workflow-template/operations/schemas/get_enhancement.md +66 -0
- package/skills/create-workflow-template/operations/schemas/get_feature.md +56 -0
- package/skills/create-workflow-template/operations/schemas/get_incident.md +85 -0
- package/skills/create-workflow-template/operations/schemas/get_issue.md +117 -0
- package/skills/create-workflow-template/operations/schemas/get_kg_schema.md +23 -0
- package/skills/create-workflow-template/operations/schemas/get_meeting.md +87 -0
- package/skills/create-workflow-template/operations/schemas/get_metric_trackers.md +20 -0
- package/skills/create-workflow-template/operations/schemas/get_node_schema.md +29 -0
- package/skills/create-workflow-template/operations/schemas/get_opportunity.md +93 -0
- package/skills/create-workflow-template/operations/schemas/get_org_user.md +57 -0
- package/skills/create-workflow-template/operations/schemas/get_org_user_preference.md +40 -0
- package/skills/create-workflow-template/operations/schemas/get_part.md +55 -0
- package/skills/create-workflow-template/operations/schemas/get_self.md +54 -0
- package/skills/create-workflow-template/operations/schemas/get_session_details.md +45 -0
- package/skills/create-workflow-template/operations/schemas/get_sprint_board.md +103 -0
- package/skills/create-workflow-template/operations/schemas/get_ticket.md +136 -0
- package/skills/create-workflow-template/operations/schemas/get_workspace.md +21 -0
- package/skills/create-workflow-template/operations/schemas/go_back.md +13 -0
- package/skills/create-workflow-template/operations/schemas/http.md +38 -0
- package/skills/create-workflow-template/operations/schemas/hybrid_search.md +144 -0
- package/skills/create-workflow-template/operations/schemas/if_else.md +16 -0
- package/skills/create-workflow-template/operations/schemas/incident_created.md +88 -0
- package/skills/create-workflow-template/operations/schemas/incident_updated.md +126 -0
- package/skills/create-workflow-template/operations/schemas/init_variable.md +67 -0
- package/skills/create-workflow-template/operations/schemas/invoice_created.md +21 -0
- package/skills/create-workflow-template/operations/schemas/invoice_updated.md +41 -0
- package/skills/create-workflow-template/operations/schemas/invoke_code.md +132 -0
- package/skills/create-workflow-template/operations/schemas/issue_created.md +105 -0
- package/skills/create-workflow-template/operations/schemas/issue_sla_tracker_updated.md +46 -0
- package/skills/create-workflow-template/operations/schemas/issue_updated.md +172 -0
- package/skills/create-workflow-template/operations/schemas/link_incident_with_issue.md +14 -0
- package/skills/create-workflow-template/operations/schemas/link_ticket_with_issue.md +14 -0
- package/skills/create-workflow-template/operations/schemas/list_enhancements.md +74 -0
- package/skills/create-workflow-template/operations/schemas/list_issues.md +108 -0
- package/skills/create-workflow-template/operations/schemas/list_sessions.md +79 -0
- package/skills/create-workflow-template/operations/schemas/list_sprint.md +29 -0
- package/skills/create-workflow-template/operations/schemas/list_web_sessions.md +87 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_accounts.md +106 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_articles.md +126 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_customers.md +88 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_dev_users.md +75 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_enhancements.md +112 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_incidents.md +113 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_issues.md +217 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_meetings.md +150 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_opportunity.md +161 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_sprints.md +50 -0
- package/skills/create-workflow-template/operations/schemas/loop_over_tickets.md +203 -0
- package/skills/create-workflow-template/operations/schemas/manual_trigger.md +11 -0
- package/skills/create-workflow-template/operations/schemas/meeting_created.md +116 -0
- package/skills/create-workflow-template/operations/schemas/meeting_updated.md +152 -0
- package/skills/create-workflow-template/operations/schemas/oasis_sql_execute.md +11 -0
- package/skills/create-workflow-template/operations/schemas/opportunity_created.md +92 -0
- package/skills/create-workflow-template/operations/schemas/opportunity_updated.md +124 -0
- package/skills/create-workflow-template/operations/schemas/pick_user.md +16 -0
- package/skills/create-workflow-template/operations/schemas/question_answer_created.md +44 -0
- package/skills/create-workflow-template/operations/schemas/question_answer_updated.md +75 -0
- package/skills/create-workflow-template/operations/schemas/recall_chats.md +13 -0
- package/skills/create-workflow-template/operations/schemas/router.md +15 -0
- package/skills/create-workflow-template/operations/schemas/send_notification.md +19 -0
- package/skills/create-workflow-template/operations/schemas/set_variable.md +67 -0
- package/skills/create-workflow-template/operations/schemas/sleep_for.md +12 -0
- package/skills/create-workflow-template/operations/schemas/sleep_until.md +17 -0
- package/skills/create-workflow-template/operations/schemas/sprint_updated.md +37 -0
- package/skills/create-workflow-template/operations/schemas/suggest_part.md +14 -0
- package/skills/create-workflow-template/operations/schemas/task_updated.md +79 -0
- package/skills/create-workflow-template/operations/schemas/test_example.md +16 -0
- package/skills/create-workflow-template/operations/schemas/ticket_created.md +136 -0
- package/skills/create-workflow-template/operations/schemas/ticket_sla_tracker_updated.md +46 -0
- package/skills/create-workflow-template/operations/schemas/ticket_updated.md +198 -0
- package/skills/create-workflow-template/operations/schemas/timeline_comment_created.md +70 -0
- package/skills/create-workflow-template/operations/schemas/update_account.md +68 -0
- package/skills/create-workflow-template/operations/schemas/update_article.md +95 -0
- package/skills/create-workflow-template/operations/schemas/update_brand.md +44 -0
- package/skills/create-workflow-template/operations/schemas/update_contact.md +53 -0
- package/skills/create-workflow-template/operations/schemas/update_conversation.md +149 -0
- package/skills/create-workflow-template/operations/schemas/update_enhancement.md +64 -0
- package/skills/create-workflow-template/operations/schemas/update_incident.md +156 -0
- package/skills/create-workflow-template/operations/schemas/update_issue.md +173 -0
- package/skills/create-workflow-template/operations/schemas/update_meeting.md +114 -0
- package/skills/create-workflow-template/operations/schemas/update_opportunity.md +137 -0
- package/skills/create-workflow-template/operations/schemas/update_question_answer.md +60 -0
- package/skills/create-workflow-template/operations/schemas/update_ticket.md +188 -0
- package/skills/create-workflow-template/operations/schemas/watch_ticket_for_updates.md +225 -0
- package/skills/create-workflow-template/operations/schemas/web_search.md +17 -0
- package/skills/create-workflow-template/operations/schemas/while.md +24 -0
- package/skills/create-workflow-template/operations/schemas/widget_created.md +75 -0
- package/skills/create-workflow-template/operations/schemas/widget_updated.md +98 -0
- package/skills/create-workflow-template/operations/schemas/workspace_created.md +20 -0
- package/skills/create-workflow-template/operations/triggers.md +1583 -0
- package/skills/customer-brief/customer-brief.md +66 -0
- package/skills/deal-review-meddpicc/deal-review-meddpicc.md +58 -0
- package/skills/next-step-for-opportunity/next-step-for-opportunity.md +55 -0
- package/skills/opportunity-feature-prioritizer/SKILL.md +183 -0
- package/skills/sales-call-plan-coach/sales-call-plan-coach.md +73 -0
- package/skills/sales-context/sales-context.md +44 -0
- package/skills/sales-search-and-lookup/sales-search-and-lookup.md +58 -0
- package/skills/skill-creator/SKILL.md +570 -0
- package/skills/skill-creator/agents/analyzer.md +274 -0
- package/skills/skill-creator/agents/comparator.md +202 -0
- package/skills/skill-creator/agents/grader.md +223 -0
- package/skills/skill-creator/assets/eval_review.html +146 -0
- package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
- package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
- package/skills/skill-creator/references/schemas.md +430 -0
- package/skills/skill-creator/references/tool-patterns.md +290 -0
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/skills/skill-creator/scripts/generate_report.py +326 -0
- package/skills/skill-creator/scripts/improve_description.py +247 -0
- package/skills/skill-creator/scripts/package_skill.py +136 -0
- package/skills/skill-creator/scripts/quick_validate.py +103 -0
- package/skills/skill-creator/scripts/run_eval.py +310 -0
- package/skills/skill-creator/scripts/run_loop.py +328 -0
- package/skills/skill-creator/scripts/utils.py +47 -0
- package/skills/trace-diagnosis/trace-diagnosis.md +186 -0
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# computer-skill
|
|
2
|
+
|
|
3
|
+
AI-powered skills for Claude Code — sales intelligence, deal management, workflow automation, and agent debugging, built on DevRev.
|
|
4
|
+
|
|
5
|
+
## Skills
|
|
6
|
+
|
|
7
|
+
| Skill | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| **create-workflow-template** | Generate DevRev workflow template JSON from natural language descriptions |
|
|
10
|
+
| **deal-review-meddpicc** | Full MEDDPICC deal assessment with evidence-tagged scoring |
|
|
11
|
+
| **sales-call-plan-coach** | Interactive call plan coaching using Franklin Covey methodology |
|
|
12
|
+
| **account-evaluation** | Account health report combining DevRev pipeline, engagement, and external data |
|
|
13
|
+
| **account-research** | Company/person research — web + DevRev + enrichment layers |
|
|
14
|
+
| **customer-brief** | Pre-meeting briefing with internal intelligence and external context |
|
|
15
|
+
| **sales-search-and-lookup** | Query pipeline, forecast, accounts, and opportunities via natural language |
|
|
16
|
+
| **sales-context** | Always-active behavioral skill for consistent sales terminology |
|
|
17
|
+
| **next-step-for-opportunity** | Extract planned actions from meetings, emails, and discussions |
|
|
18
|
+
| **trace-diagnosis** | Debug Computer agent execution traces and auto-create engineering tickets |
|
|
19
|
+
|
|
20
|
+
## Setup
|
|
21
|
+
|
|
22
|
+
Copy any skill folder into your project's `.claude/skills/` directory:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
mkdir -p .claude/skills
|
|
26
|
+
cp -r <skill-name> .claude/skills/
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Or install with the skills CLI:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx skills add https://github.com/shashankcube/computer-skill --skill <skill-name>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## License
|
|
36
|
+
|
|
37
|
+
Based on [DevRev Computer Skills](https://github.com/devrev/computer-skills).
|
package/bin/install.mjs
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { readdir, cp, mkdir, stat, readFile } from "node:fs/promises";
|
|
4
|
+
import { join, dirname } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { parseArgs } from "node:util";
|
|
7
|
+
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const skillsSource = join(__dirname, "..", "skills");
|
|
10
|
+
|
|
11
|
+
const SKILLS = [
|
|
12
|
+
"account-evaluation",
|
|
13
|
+
"account-research",
|
|
14
|
+
"create-workflow-template",
|
|
15
|
+
"customer-brief",
|
|
16
|
+
"deal-review-meddpicc",
|
|
17
|
+
"next-step-for-opportunity",
|
|
18
|
+
"opportunity-feature-prioritizer",
|
|
19
|
+
"sales-call-plan-coach",
|
|
20
|
+
"sales-context",
|
|
21
|
+
"sales-search-and-lookup",
|
|
22
|
+
"skill-creator",
|
|
23
|
+
"trace-diagnosis",
|
|
24
|
+
];
|
|
25
|
+
|
|
26
|
+
function usage() {
|
|
27
|
+
console.log(`
|
|
28
|
+
Usage: computer-skills [options]
|
|
29
|
+
|
|
30
|
+
Install DevRev Computer Skills into your project's .claude/skills/ directory.
|
|
31
|
+
|
|
32
|
+
Options:
|
|
33
|
+
--list, -l List available skills
|
|
34
|
+
--skill, -s <name> Install specific skill(s) (repeatable)
|
|
35
|
+
--dir, -d <path> Target project directory (default: cwd)
|
|
36
|
+
--uninstall, -u Remove installed skills
|
|
37
|
+
--help, -h Show this help
|
|
38
|
+
`);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
async function getSkillDescription(skillDir) {
|
|
42
|
+
const candidates = [
|
|
43
|
+
"SKILL.md",
|
|
44
|
+
...SKILLS.map((s) => `${s}.md`),
|
|
45
|
+
];
|
|
46
|
+
for (const file of await readdir(skillDir)) {
|
|
47
|
+
if (file.endsWith(".md") && (file === "SKILL.md" || file === join(skillDir).split("/").pop() + ".md")) {
|
|
48
|
+
try {
|
|
49
|
+
const content = await readFile(join(skillDir, file), "utf-8");
|
|
50
|
+
const match = content.match(/description:\s*>?\s*\n?\s*(.+)/);
|
|
51
|
+
if (match) return match[1].trim().slice(0, 80);
|
|
52
|
+
} catch {}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return "";
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async function listSkills() {
|
|
59
|
+
console.log("\nAvailable skills:\n");
|
|
60
|
+
for (const skill of SKILLS) {
|
|
61
|
+
const desc = await getSkillDescription(join(skillsSource, skill)).catch(() => "");
|
|
62
|
+
console.log(` ${skill}${desc ? ` — ${desc}` : ""}`);
|
|
63
|
+
}
|
|
64
|
+
console.log(`\n ${SKILLS.length} skills total\n`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
async function installSkills(targetDir, selectedSkills) {
|
|
68
|
+
const skillsDir = join(targetDir, ".claude", "skills");
|
|
69
|
+
await mkdir(skillsDir, { recursive: true });
|
|
70
|
+
|
|
71
|
+
const toInstall = selectedSkills.length > 0 ? selectedSkills : SKILLS;
|
|
72
|
+
const invalid = toInstall.filter((s) => !SKILLS.includes(s));
|
|
73
|
+
if (invalid.length > 0) {
|
|
74
|
+
console.error(`Unknown skill(s): ${invalid.join(", ")}`);
|
|
75
|
+
console.error(`Run 'computer-skills --list' to see available skills.`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
let installed = 0;
|
|
80
|
+
let skipped = 0;
|
|
81
|
+
|
|
82
|
+
for (const skill of toInstall) {
|
|
83
|
+
const src = join(skillsSource, skill);
|
|
84
|
+
const dest = join(skillsDir, skill);
|
|
85
|
+
|
|
86
|
+
try {
|
|
87
|
+
await stat(src);
|
|
88
|
+
} catch {
|
|
89
|
+
console.error(` skip ${skill} (not found in package)`);
|
|
90
|
+
skipped++;
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
await cp(src, dest, { recursive: true, force: true });
|
|
95
|
+
console.log(` + ${skill}`);
|
|
96
|
+
installed++;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
console.log(
|
|
100
|
+
`\nInstalled ${installed} skill(s) into ${skillsDir}${skipped > 0 ? ` (${skipped} skipped)` : ""}`
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
async function uninstallSkills(targetDir, selectedSkills) {
|
|
105
|
+
const { rm } = await import("node:fs/promises");
|
|
106
|
+
const skillsDir = join(targetDir, ".claude", "skills");
|
|
107
|
+
const toRemove = selectedSkills.length > 0 ? selectedSkills : SKILLS;
|
|
108
|
+
|
|
109
|
+
let removed = 0;
|
|
110
|
+
for (const skill of toRemove) {
|
|
111
|
+
const dest = join(skillsDir, skill);
|
|
112
|
+
try {
|
|
113
|
+
await stat(dest);
|
|
114
|
+
await rm(dest, { recursive: true, force: true });
|
|
115
|
+
console.log(` - ${skill}`);
|
|
116
|
+
removed++;
|
|
117
|
+
} catch {
|
|
118
|
+
// not installed, skip
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
console.log(`\nRemoved ${removed} skill(s) from ${skillsDir}`);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async function main() {
|
|
125
|
+
const { values } = parseArgs({
|
|
126
|
+
options: {
|
|
127
|
+
list: { type: "boolean", short: "l", default: false },
|
|
128
|
+
skill: { type: "string", short: "s", multiple: true, default: [] },
|
|
129
|
+
dir: { type: "string", short: "d", default: process.cwd() },
|
|
130
|
+
uninstall: { type: "boolean", short: "u", default: false },
|
|
131
|
+
help: { type: "boolean", short: "h", default: false },
|
|
132
|
+
},
|
|
133
|
+
strict: true,
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
if (values.help) {
|
|
137
|
+
usage();
|
|
138
|
+
process.exit(0);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (values.list) {
|
|
142
|
+
await listSkills();
|
|
143
|
+
process.exit(0);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
console.log("\n@devrev/computer-skills\n");
|
|
147
|
+
|
|
148
|
+
if (values.uninstall) {
|
|
149
|
+
await uninstallSkills(values.dir, values.skill);
|
|
150
|
+
} else {
|
|
151
|
+
await installSkills(values.dir, values.skill);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
main().catch((err) => {
|
|
156
|
+
console.error(err.message);
|
|
157
|
+
process.exit(1);
|
|
158
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@devrev-computer/skills",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI-powered skills for Claude Code — sales intelligence, deal management, workflow automation, and agent debugging, built on DevRev.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"computer-skills": "./bin/install.mjs"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"prepare": "node scripts/prepare.mjs",
|
|
11
|
+
"prepublishOnly": "node scripts/prepare.mjs"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"bin/",
|
|
15
|
+
"skills/"
|
|
16
|
+
],
|
|
17
|
+
"keywords": [
|
|
18
|
+
"claude-code",
|
|
19
|
+
"skills",
|
|
20
|
+
"devrev",
|
|
21
|
+
"sales",
|
|
22
|
+
"ai"
|
|
23
|
+
],
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "https://github.com/shashankcube/computer-skill.git"
|
|
27
|
+
},
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"author": "DevRev",
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: account-evaluation
|
|
3
|
+
user-invocable: true
|
|
4
|
+
description: Produce a comprehensive account health report combining internal and external data. Use when user says "evaluate account", "account health", "how is [company] doing", "account summary", or "give me an overview of [account]".
|
|
5
|
+
arguments:
|
|
6
|
+
- name: account
|
|
7
|
+
description: The account name, display ID, or DON ID to evaluate
|
|
8
|
+
required: true
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# AccountEvaluation
|
|
12
|
+
|
|
13
|
+
Produces a comprehensive account health report combining internal and external data.
|
|
14
|
+
|
|
15
|
+
## Tools
|
|
16
|
+
|
|
17
|
+
1. **GetKGSchema** — Gets the full knowledge graph schema. Call before any SQL workflow.
|
|
18
|
+
2. **GetNodeSchema** — Gets schema details for a specific node. Make parallel calls for multiple nodes.
|
|
19
|
+
3. **NLToSQL** — Converts natural language to SQL. Never write SQL yourself. Always call before ExecuteSQL.
|
|
20
|
+
4. **ExecuteSQL** — Executes SQL generated by NLToSQL. Always call NLToSQL first.
|
|
21
|
+
5. **FetchObjectContext** — Fetches full object details by DON or display ID.
|
|
22
|
+
6. **HybridSearch** — Semantic search. Use to get object IDs or filter IDs from SQL results. Never use for structured filtering.
|
|
23
|
+
7. **WebSearch** — Search the web for external intelligence about the account.
|
|
24
|
+
8. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity.
|
|
25
|
+
9. **EmailSummaryOpp** — Gets email summaries linked to an opportunity.
|
|
26
|
+
|
|
27
|
+
## Account Disambiguation
|
|
28
|
+
|
|
29
|
+
Always clarify which account (DON ID) before proceeding. Multiple accounts can share the same display name. If one match found state assumption and proceed. If multiple found list them and ask user to select.
|
|
30
|
+
|
|
31
|
+
## Data Gathering Sequence
|
|
32
|
+
|
|
33
|
+
1. HybridSearch to find account by name and get DON ID
|
|
34
|
+
2. FetchObjectContext on account DON: owner, tier, industry, linked contacts
|
|
35
|
+
3. SQL path (GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL) for all linked opportunities: display ID, title, stage, annual_recurring_revenue (ACV), amount (TCV), owner, target close date, forecast category, probability. LIMIT 500.
|
|
36
|
+
4. FetchObjectContext on top opportunities (stage 3+, non-duplicate) for discussion threads and activity
|
|
37
|
+
5. MeetingSummaryOpp and EmailSummaryOpp for recent engagement on active opportunities
|
|
38
|
+
6. WebSearch for external intelligence: news, funding, leadership changes, strategic initiatives
|
|
39
|
+
7. Exclude opportunities tagged with closed lost reason duplicate opportunity silently
|
|
40
|
+
|
|
41
|
+
## Formatting Rules
|
|
42
|
+
|
|
43
|
+
- Never show raw DON IDs alone. Always pair with human-readable name.
|
|
44
|
+
- Group opportunities: Closed Won, Active Pipeline (stage 3+), Early Stage, Closed Lost
|
|
45
|
+
- Show ACV and TCV as separate columns with subtotals per group
|
|
46
|
+
- Prioritize recent data over older data
|
|
47
|
+
|
|
48
|
+
## Required Output Sections
|
|
49
|
+
|
|
50
|
+
1. **Summary**: 3-5 bullet executive summary
|
|
51
|
+
2. **Key Metrics at a Glance**: ARR, TCV, opportunities by stage, account tier, primary owner
|
|
52
|
+
3. **Lines of Business**: products or services the account uses or is evaluating
|
|
53
|
+
4. **Strategic AI Initiatives**: any AI or DevRev-specific initiatives underway or discussed
|
|
54
|
+
5. **Top Priority Pursuits**: active high-value opportunities with stage, ACV, TCV, owner, close date
|
|
55
|
+
6. **Internal Discussions and Product Interest**: themes from discussions and tickets
|
|
56
|
+
7. **Deal Velocity Considerations**: days in stage, stalled deals, close date risk
|
|
57
|
+
8. **Account Status and Engagement**: last touchpoint date, engagement frequency, relationship health
|
|
58
|
+
9. **Recommended Actions Next 30 Days**: 3-5 actions with Who, Pitch, Ask, Timeline
|
|
59
|
+
10. **Recent Momentum**: latest wins, meetings, or positive signals
|
|
60
|
+
11. **Recommended Discussion Topics**: suggested conversation starters
|
|
61
|
+
12. **Conclusion**: 2-3 sentence summary of account health and strategic priority
|
|
62
|
+
13. **References**: DON IDs and external URLs used
|
|
63
|
+
|
|
64
|
+
Show the SQL query used at the bottom of the response.
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
---
|
|
2
|
+
skill-name: account-research
|
|
3
|
+
description: Research a company or person — combines web search, DevRev internal data, and optional enrichment/CRM. Use when user says "research [company]", "look up [person]", "intel on [prospect]", "who is [name] at [company]", "tell me about [company]", or "pull up signals for [account]".
|
|
4
|
+
arguments:
|
|
5
|
+
- name: target
|
|
6
|
+
description: Company name, domain, person name, or DevRev account ID to research
|
|
7
|
+
required: true
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Account Research
|
|
11
|
+
|
|
12
|
+
Get a complete picture of any company or person before outreach. Combines three data layers — each adds depth but none is required.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
┌──────────────────────────────────────────────────────┐
|
|
16
|
+
│ ACCOUNT RESEARCH │
|
|
17
|
+
├──────────────────────────────────────────────────────┤
|
|
18
|
+
│ LAYER 1 — WEB (always available) │
|
|
19
|
+
│ ✓ Company overview, size, industry │
|
|
20
|
+
│ ✓ Recent news, funding, leadership changes │
|
|
21
|
+
│ ✓ Hiring signals and open roles │
|
|
22
|
+
│ ✓ Key people from LinkedIn │
|
|
23
|
+
│ ✓ Product/service and customer base │
|
|
24
|
+
├──────────────────────────────────────────────────────┤
|
|
25
|
+
│ LAYER 2 — DEVREV (when account exists in DevRev) │
|
|
26
|
+
│ + Opportunities: stage, ACV, TCV, forecast │
|
|
27
|
+
│ + Tickets: open issues, severity, themes │
|
|
28
|
+
│ + Engagement: meetings, emails, discussions │
|
|
29
|
+
│ + Account metadata: tier, owner, contacts, ARR │
|
|
30
|
+
├──────────────────────────────────────────────────────┤
|
|
31
|
+
│ LAYER 3 — ENRICHMENT (when tools connected) │
|
|
32
|
+
│ + Verified emails, phone numbers, org chart │
|
|
33
|
+
│ + Tech stack, funding history, investors │
|
|
34
|
+
│ + Intent signals, hiring velocity │
|
|
35
|
+
└──────────────────────────────────────────────────────┘
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Step 1: Parse the Request
|
|
41
|
+
|
|
42
|
+
Determine what the user needs and which layers to activate.
|
|
43
|
+
|
|
44
|
+
| Input | Type | Layers |
|
|
45
|
+
|-------|------|--------|
|
|
46
|
+
| "Research Stripe" | Company research | Web + DevRev (if exists) |
|
|
47
|
+
| "Look up John Smith at Acme" | Person + company | Web + DevRev |
|
|
48
|
+
| "Intel on acme.com" | Domain-based | Web + DevRev |
|
|
49
|
+
| "Who is the CTO at Notion" | Role-based search | Web |
|
|
50
|
+
| "Research Stripe — check DevRev too" | Explicit DevRev | Web + DevRev |
|
|
51
|
+
| "Tell me about ACC-42" | DevRev account ID | DevRev + Web |
|
|
52
|
+
|
|
53
|
+
**Default behavior**: Always run web search. Check DevRev if the user mentions DevRev data, provides a DevRev ID, or asks about internal relationship/pipeline/tickets.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 2: Web Search (Always)
|
|
58
|
+
|
|
59
|
+
Run these searches in parallel:
|
|
60
|
+
|
|
61
|
+
1. `"[Company name]"` — Homepage, about page
|
|
62
|
+
2. `"[Company name] news"` — Recent announcements (last 90 days)
|
|
63
|
+
3. `"[Company name] funding"` — Investment history
|
|
64
|
+
4. `"[Company name] careers"` — Hiring signals
|
|
65
|
+
5. `"[Person name] [Company] LinkedIn"` — Profile info (if person research)
|
|
66
|
+
6. `"[Company name] product"` — What they sell
|
|
67
|
+
7. `"[Company name] customers"` — Who they serve
|
|
68
|
+
|
|
69
|
+
**Extract**: company description, positioning, recent news, leadership team, open roles, technology mentions, customer base.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Step 3: DevRev Data (When Applicable)
|
|
74
|
+
|
|
75
|
+
Activate when: user asks for internal data, provides a DevRev ID, or says "check DevRev", "our data", "what do we have on them", "pipeline", "tickets", "relationship history".
|
|
76
|
+
|
|
77
|
+
### Tools
|
|
78
|
+
|
|
79
|
+
1. **HybridSearch** — Find account by name, get DON ID.
|
|
80
|
+
2. **FetchObjectContext** — Full object details by DON or display ID.
|
|
81
|
+
3. **GetKGSchema** — Full knowledge graph schema. Call before any SQL path.
|
|
82
|
+
4. **GetNodeSchema** — Schema details for a specific node.
|
|
83
|
+
5. **NLToSQL** — Convert natural language to SQL. Never write SQL yourself.
|
|
84
|
+
6. **ExecuteSQL** — Run SQL from NLToSQL. Always add LIMIT 500.
|
|
85
|
+
7. **MeetingSummaryOpp** — Meeting summaries linked to an opportunity.
|
|
86
|
+
8. **EmailSummaryOpp** — Email summaries linked to an opportunity.
|
|
87
|
+
9. **OpportunityDiscussions** — Discussion threads linked to an opportunity.
|
|
88
|
+
10. **WebSearch** — External web intelligence.
|
|
89
|
+
|
|
90
|
+
### DevRev Data Gathering Sequence
|
|
91
|
+
|
|
92
|
+
1. **HybridSearch** to find account by name → get DON ID
|
|
93
|
+
2. **FetchObjectContext** on account DON → owner, tier, industry, contacts, ARR
|
|
94
|
+
3. **SQL path** (GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL) for:
|
|
95
|
+
- Linked opportunities: display ID, title, stage, ACV, TCV, owner, close date, forecast category
|
|
96
|
+
- Linked tickets: display ID, title, severity, stage, created date
|
|
97
|
+
- LIMIT 500. Exclude duplicates silently.
|
|
98
|
+
4. **FetchObjectContext** on top opportunities (stage 3+) for deeper context
|
|
99
|
+
5. **MeetingSummaryOpp** + **EmailSummaryOpp** on active opportunities for engagement history
|
|
100
|
+
6. **OpportunityDiscussions** for internal notes and themes
|
|
101
|
+
|
|
102
|
+
### Account Disambiguation
|
|
103
|
+
|
|
104
|
+
Multiple accounts can share the same name. If one match found — state assumption and proceed. If multiple — list them and ask user to select.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Step 4: Enrichment (When Tools Connected)
|
|
109
|
+
|
|
110
|
+
If enrichment tools are available:
|
|
111
|
+
1. Enrich company → firmographics, funding, tech stack
|
|
112
|
+
2. Search people → org chart, contact list
|
|
113
|
+
3. Enrich person → verified email, phone, background
|
|
114
|
+
4. Get signals → intent data, hiring velocity
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Step 5: Synthesize
|
|
119
|
+
|
|
120
|
+
1. Combine all layers — prioritize enrichment > DevRev > web for accuracy
|
|
121
|
+
2. Identify qualification signals (positive, concerns, unknowns)
|
|
122
|
+
3. Generate talking points tailored to the person/account
|
|
123
|
+
4. Recommend approach and next steps
|
|
124
|
+
5. Be explicit about what data came from which source
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Output Format
|
|
129
|
+
|
|
130
|
+
Only include sections where actual data exists. Omit sections entirely rather than guessing.
|
|
131
|
+
|
|
132
|
+
### Full Overview (Company Research)
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
# Research: [Company Name]
|
|
136
|
+
|
|
137
|
+
**Generated:** [Date]
|
|
138
|
+
**Sources:** Web Search [+ DevRev] [+ Enrichment]
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Quick Take
|
|
143
|
+
|
|
144
|
+
[2-3 sentences: who they are, why they might need you, best angle for outreach]
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Company Profile
|
|
149
|
+
|
|
150
|
+
| Field | Value |
|
|
151
|
+
|-------|-------|
|
|
152
|
+
| **Company** | [Name] |
|
|
153
|
+
| **Website** | [URL] |
|
|
154
|
+
| **Industry** | [Industry] |
|
|
155
|
+
| **Size** | [Employee count] |
|
|
156
|
+
| **Headquarters** | [Location] |
|
|
157
|
+
| **Founded** | [Year] |
|
|
158
|
+
| **Funding** | [Stage + amount if known] |
|
|
159
|
+
| **Revenue** | [Estimate if available] |
|
|
160
|
+
|
|
161
|
+
### What They Do
|
|
162
|
+
[1-2 sentence description of business, product, customers]
|
|
163
|
+
|
|
164
|
+
### Recent News
|
|
165
|
+
- **[Headline]** — [Date] — [Why it matters for outreach]
|
|
166
|
+
- **[Headline]** — [Date] — [Why it matters]
|
|
167
|
+
|
|
168
|
+
### Hiring Signals
|
|
169
|
+
- [X] open roles in [Department]
|
|
170
|
+
- Notable: [Relevant roles — Engineering, Sales, AI/ML]
|
|
171
|
+
- Growth indicator: [Interpretation]
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Key People
|
|
176
|
+
|
|
177
|
+
### [Name] — [Title]
|
|
178
|
+
| Field | Detail |
|
|
179
|
+
|-------|--------|
|
|
180
|
+
| **LinkedIn** | [URL] |
|
|
181
|
+
| **Background** | [Prior companies, education] |
|
|
182
|
+
| **Tenure** | [Time at company] |
|
|
183
|
+
| **Email** | [If enrichment available] |
|
|
184
|
+
|
|
185
|
+
**Talking Points:**
|
|
186
|
+
- [Personal hook based on background]
|
|
187
|
+
- [Professional hook based on role]
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## DevRev Relationship [If DevRev data available]
|
|
192
|
+
|
|
193
|
+
| Field | Detail |
|
|
194
|
+
|-------|--------|
|
|
195
|
+
| **Account Tier** | [Tier] |
|
|
196
|
+
| **Account Owner** | [Name] |
|
|
197
|
+
| **ARR** | [Value] |
|
|
198
|
+
| **Status** | [New / Prospect / Customer / Churned] |
|
|
199
|
+
| **Last Engagement** | [Date and type] |
|
|
200
|
+
|
|
201
|
+
### Pipeline
|
|
202
|
+
|
|
203
|
+
| Opp ID | Title | Stage | ACV | TCV | Owner | Close Date |
|
|
204
|
+
|--------|-------|-------|-----|-----|-------|------------|
|
|
205
|
+
| [ID] | [Title] | [Stage] | [ACV] | [TCV] | [Owner] | [Date] |
|
|
206
|
+
|
|
207
|
+
**Pipeline Summary:** [X] active opps, $[Y] total ACV, [Z] closed won
|
|
208
|
+
|
|
209
|
+
### Open Tickets
|
|
210
|
+
|
|
211
|
+
| Ticket | Title | Severity | Stage | Created |
|
|
212
|
+
|--------|-------|----------|-------|---------|
|
|
213
|
+
| [ID] | [Title] | [Severity] | [Stage] | [Date] |
|
|
214
|
+
|
|
215
|
+
### Engagement History
|
|
216
|
+
- [Date] — [Meeting/Email] — [Key points]
|
|
217
|
+
- [Date] — [Meeting/Email] — [Key points]
|
|
218
|
+
|
|
219
|
+
### Internal Themes
|
|
220
|
+
[Recurring topics from discussions, tickets, and internal notes]
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Tech Stack [If Enrichment Available]
|
|
225
|
+
|
|
226
|
+
| Category | Tools |
|
|
227
|
+
|----------|-------|
|
|
228
|
+
| **Cloud** | [AWS, GCP, Azure] |
|
|
229
|
+
| **Data** | [Snowflake, Databricks] |
|
|
230
|
+
| **CRM** | [Salesforce, HubSpot] |
|
|
231
|
+
| **Other** | [Relevant tools] |
|
|
232
|
+
|
|
233
|
+
**Integration Opportunity:** [How your product fits their stack]
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Qualification Signals
|
|
238
|
+
|
|
239
|
+
### Positive
|
|
240
|
+
- ✅ [Signal and evidence]
|
|
241
|
+
|
|
242
|
+
### Concerns
|
|
243
|
+
- ⚠️ [Concern and what to watch]
|
|
244
|
+
|
|
245
|
+
### Unknown (Ask in Discovery)
|
|
246
|
+
- ❓ [Gap in understanding]
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## Recommended Approach
|
|
251
|
+
|
|
252
|
+
**Best Entry Point:** [Person and why]
|
|
253
|
+
|
|
254
|
+
**Opening Hook:** [What to lead with based on research]
|
|
255
|
+
|
|
256
|
+
**Discovery Questions:**
|
|
257
|
+
1. [Question about their situation]
|
|
258
|
+
2. [Question about pain points]
|
|
259
|
+
3. [Question about decision process]
|
|
260
|
+
|
|
261
|
+
**Recommended Next Steps:**
|
|
262
|
+
1. [Action with owner and timeline]
|
|
263
|
+
2. [Action with owner and timeline]
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Sources
|
|
268
|
+
- [Source 1](URL)
|
|
269
|
+
- [DevRev objects referenced: DON IDs]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Person Research
|
|
273
|
+
|
|
274
|
+
Focus on: background, role, LinkedIn activity, talking points, DevRev contact history if available.
|
|
275
|
+
|
|
276
|
+
### Targeted Question
|
|
277
|
+
|
|
278
|
+
For simple questions ("Who owns the Stripe account?", "What's their ARR?") — return a 1-3 sentence direct answer. No full brief needed.
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Signal Interpretation Guide
|
|
283
|
+
|
|
284
|
+
### Product Signals (1st-Party)
|
|
285
|
+
| Signal | Meaning |
|
|
286
|
+
|--------|---------|
|
|
287
|
+
| Active seats increasing | Expansion opportunity |
|
|
288
|
+
| Feature adoption spike | Deepening engagement — good for expansion talk |
|
|
289
|
+
| Login frequency drop | Churn risk — proactive outreach needed |
|
|
290
|
+
| Trial started | Active evaluation — time-sensitive |
|
|
291
|
+
| Trial nearing expiry | Decision point — immediate action |
|
|
292
|
+
|
|
293
|
+
### Intent Signals (3rd-Party)
|
|
294
|
+
| Signal | Meaning |
|
|
295
|
+
|--------|---------|
|
|
296
|
+
| Hiring for relevant roles | Growing team, budget exists |
|
|
297
|
+
| Funding announced | New budget likely — congratulate and reach out |
|
|
298
|
+
| Tech stack change | May need new integrations |
|
|
299
|
+
| Competitive product removed | Window of opportunity — very high priority |
|
|
300
|
+
|
|
301
|
+
### Relationship Signals
|
|
302
|
+
| Signal | Meaning |
|
|
303
|
+
|--------|---------|
|
|
304
|
+
| Recent meeting logged | Active relationship |
|
|
305
|
+
| No meeting in 90+ days | Relationship cooling — check in |
|
|
306
|
+
| Open opportunity | Active deal — coordinate with AE |
|
|
307
|
+
| Champion job change | Risk or new opportunity |
|
|
308
|
+
|
|
309
|
+
**Principles:**
|
|
310
|
+
1. Recency matters most — yesterday's signal outweighs last quarter's
|
|
311
|
+
2. Signal clusters > single signals
|
|
312
|
+
3. Absence of signals is a signal — minimal activity at a paid account = risk
|
|
313
|
+
4. Contextualize against account stage — trial: conversion signals, mature: expansion/churn
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Quality Standards
|
|
318
|
+
|
|
319
|
+
- Every fact must trace to a data source — never speculate
|
|
320
|
+
- Be explicit when data is missing or stale
|
|
321
|
+
- Prioritize enrichment data > DevRev data > web data for accuracy
|
|
322
|
+
- Keep full briefings readable in 2-3 minutes
|
|
323
|
+
- Show the SQL query used at the bottom when DevRev data is queried
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Common Room Signal Types — Interpretation Guide
|
|
2
|
+
|
|
3
|
+
## Signal Categories
|
|
4
|
+
|
|
5
|
+
### Product Signals (1st-Party)
|
|
6
|
+
|
|
7
|
+
| Signal | What it means |
|
|
8
|
+
|--------|--------------|
|
|
9
|
+
| Active seats increasing | Expansion within the account — outreach opportunity |
|
|
10
|
+
| Feature adoption (new features used) | Product engagement deepening — good for expansion talk |
|
|
11
|
+
| Login frequency spike | Increased engagement — follow up to understand why |
|
|
12
|
+
| Login frequency drop | Risk of disengagement or churn — proactive outreach needed |
|
|
13
|
+
| Trial started | Active evaluation — time-sensitive, prioritize |
|
|
14
|
+
| Trial nearing expiry | Decision point approaching — immediate action |
|
|
15
|
+
| Support tickets opened | Potential friction — check for patterns |
|
|
16
|
+
|
|
17
|
+
### Community Signals (2nd-Party)
|
|
18
|
+
|
|
19
|
+
| Signal | What it means |
|
|
20
|
+
|--------|--------------|
|
|
21
|
+
| New community post | Actively engaged, has a question or idea |
|
|
22
|
+
| Reply / reaction to post | Community participation |
|
|
23
|
+
| Forum thread started | Seeking help or sharing feedback — can engage directly |
|
|
24
|
+
| Documentation viewed (specific page) | Researching a specific feature — high value if tied to expansion area |
|
|
25
|
+
| Event registration/attendance | Strong engagement and intent signal |
|
|
26
|
+
|
|
27
|
+
### Intent Signals (3rd-Party)
|
|
28
|
+
|
|
29
|
+
| Signal | What it means |
|
|
30
|
+
|--------|--------------|
|
|
31
|
+
| Hiring for relevant roles | Growing team, budget exists |
|
|
32
|
+
| Funding announced | New budget likely available — reach out congratulating |
|
|
33
|
+
| Company news / press mention | Good hook for outreach |
|
|
34
|
+
| Tech stack change | May need new integrations |
|
|
35
|
+
| Competitive product removed from stack | Window of opportunity — very high priority |
|
|
36
|
+
| Website activity spike | Active research phase |
|
|
37
|
+
|
|
38
|
+
### Relationship Signals
|
|
39
|
+
|
|
40
|
+
| Signal | What it means |
|
|
41
|
+
|--------|--------------|
|
|
42
|
+
| Recent meeting logged | Active relationship — context available |
|
|
43
|
+
| No meeting in 90+ days | Relationship cooling — check in |
|
|
44
|
+
| Open opportunity in CRM | Active deal — coordinate with AE |
|
|
45
|
+
| Champion job change | Relationship risk or opportunity |
|
|
46
|
+
|
|
47
|
+
## Signal Interpretation Principles
|
|
48
|
+
|
|
49
|
+
1. **Recency matters most.** A signal from yesterday far outweighs one from 6 months ago. Always note timestamps.
|
|
50
|
+
2. **Signal clusters > single signals.** Multiple signals in the same direction are much stronger than any individual one.
|
|
51
|
+
3. **Absence of signals is a signal.** Minimal usage + no community engagement at a paid account = risk indicator.
|
|
52
|
+
4. **Contextualize against account stage.** Trial: conversion signals dominate. Mature customer: expansion and churn-risk. Prospect: intent signals are paramount.
|