@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.
Files changed (179) hide show
  1. package/README.md +37 -0
  2. package/bin/install.mjs +158 -0
  3. package/package.json +33 -0
  4. package/skills/account-evaluation/account-evaluation.md +64 -0
  5. package/skills/account-research/account-research.md +323 -0
  6. package/skills/account-research/references/signals-guide.md +52 -0
  7. package/skills/create-workflow-template/create-workflow-template.md +1091 -0
  8. package/skills/create-workflow-template/examples/3592-Generate rca from pia-template.json +1 -0
  9. package/skills/create-workflow-template/examples/4392-Async opportunity review agent-template.json +1 -0
  10. package/skills/create-workflow-template/examples/4441-Ticket escalator from customer message-template.json +1 -0
  11. package/skills/create-workflow-template/examples/4505-Auto-update issue tcd as end of sprint date-template.json +1 -0
  12. package/skills/create-workflow-template/examples/5040-Devrevu - enablement journey - poc emails-template.json +1 -0
  13. package/skills/create-workflow-template/examples/5158-Devrevu - enablement journey - mailing for non enablement journey users-template.json +1 -0
  14. package/skills/create-workflow-template/examples/5216-Account segment missing notification-template.json +1 -0
  15. package/skills/create-workflow-template/examples/working-csat-score-on-ticket-resolved.json +1 -0
  16. package/skills/create-workflow-template/examples/working-enhancement-replace-agent.json +1 -0
  17. package/skills/create-workflow-template/examples/working-invoke-code-sample.json +1 -0
  18. package/skills/create-workflow-template/examples/working-loop-variable-sample.json +1 -0
  19. package/skills/create-workflow-template/operations/actions.md +2919 -0
  20. package/skills/create-workflow-template/operations/blockings.md +38 -0
  21. package/skills/create-workflow-template/operations/controls.md +108 -0
  22. package/skills/create-workflow-template/operations/schema-index.md +166 -0
  23. package/skills/create-workflow-template/operations/schemas/account_created.md +58 -0
  24. package/skills/create-workflow-template/operations/schemas/account_updated.md +73 -0
  25. package/skills/create-workflow-template/operations/schemas/add_comment.md +29 -0
  26. package/skills/create-workflow-template/operations/schemas/airdrop_sync_run_started.md +33 -0
  27. package/skills/create-workflow-template/operations/schemas/airdrop_sync_run_status_updated.md +35 -0
  28. package/skills/create-workflow-template/operations/schemas/article_created.md +96 -0
  29. package/skills/create-workflow-template/operations/schemas/article_updated.md +135 -0
  30. package/skills/create-workflow-template/operations/schemas/ask_ai.md +11 -0
  31. package/skills/create-workflow-template/operations/schemas/classify_object.md +22 -0
  32. package/skills/create-workflow-template/operations/schemas/contact_created.md +43 -0
  33. package/skills/create-workflow-template/operations/schemas/contact_updated.md +65 -0
  34. package/skills/create-workflow-template/operations/schemas/conversation_created.md +108 -0
  35. package/skills/create-workflow-template/operations/schemas/conversation_sla_tracker_updated.md +46 -0
  36. package/skills/create-workflow-template/operations/schemas/conversation_updated.md +130 -0
  37. package/skills/create-workflow-template/operations/schemas/convert_conversation_to_ticket.md +13 -0
  38. package/skills/create-workflow-template/operations/schemas/create_account.md +62 -0
  39. package/skills/create-workflow-template/operations/schemas/create_article.md +79 -0
  40. package/skills/create-workflow-template/operations/schemas/create_brand.md +42 -0
  41. package/skills/create-workflow-template/operations/schemas/create_contact.md +65 -0
  42. package/skills/create-workflow-template/operations/schemas/create_dm.md +53 -0
  43. package/skills/create-workflow-template/operations/schemas/create_enhancement.md +63 -0
  44. package/skills/create-workflow-template/operations/schemas/create_incident.md +136 -0
  45. package/skills/create-workflow-template/operations/schemas/create_issue.md +150 -0
  46. package/skills/create-workflow-template/operations/schemas/create_meeting.md +105 -0
  47. package/skills/create-workflow-template/operations/schemas/create_opportunity.md +123 -0
  48. package/skills/create-workflow-template/operations/schemas/create_ticket.md +184 -0
  49. package/skills/create-workflow-template/operations/schemas/csat_response_received.md +73 -0
  50. package/skills/create-workflow-template/operations/schemas/dev_user_created.md +54 -0
  51. package/skills/create-workflow-template/operations/schemas/dev_user_updated.md +99 -0
  52. package/skills/create-workflow-template/operations/schemas/enhancement_created.md +46 -0
  53. package/skills/create-workflow-template/operations/schemas/enhancement_updated.md +89 -0
  54. package/skills/create-workflow-template/operations/schemas/evaluate_sentiment.md +14 -0
  55. package/skills/create-workflow-template/operations/schemas/execute_metric_action.md +11 -0
  56. package/skills/create-workflow-template/operations/schemas/feature_created.md +40 -0
  57. package/skills/create-workflow-template/operations/schemas/for_each.md +45 -0
  58. package/skills/create-workflow-template/operations/schemas/get_account.md +59 -0
  59. package/skills/create-workflow-template/operations/schemas/get_airdrop_sync_unit.md +32 -0
  60. package/skills/create-workflow-template/operations/schemas/get_brand.md +40 -0
  61. package/skills/create-workflow-template/operations/schemas/get_complete_enhancement_details.md +13 -0
  62. package/skills/create-workflow-template/operations/schemas/get_conversation.md +120 -0
  63. package/skills/create-workflow-template/operations/schemas/get_customer.md +60 -0
  64. package/skills/create-workflow-template/operations/schemas/get_enhancement.md +66 -0
  65. package/skills/create-workflow-template/operations/schemas/get_feature.md +56 -0
  66. package/skills/create-workflow-template/operations/schemas/get_incident.md +85 -0
  67. package/skills/create-workflow-template/operations/schemas/get_issue.md +117 -0
  68. package/skills/create-workflow-template/operations/schemas/get_kg_schema.md +23 -0
  69. package/skills/create-workflow-template/operations/schemas/get_meeting.md +87 -0
  70. package/skills/create-workflow-template/operations/schemas/get_metric_trackers.md +20 -0
  71. package/skills/create-workflow-template/operations/schemas/get_node_schema.md +29 -0
  72. package/skills/create-workflow-template/operations/schemas/get_opportunity.md +93 -0
  73. package/skills/create-workflow-template/operations/schemas/get_org_user.md +57 -0
  74. package/skills/create-workflow-template/operations/schemas/get_org_user_preference.md +40 -0
  75. package/skills/create-workflow-template/operations/schemas/get_part.md +55 -0
  76. package/skills/create-workflow-template/operations/schemas/get_self.md +54 -0
  77. package/skills/create-workflow-template/operations/schemas/get_session_details.md +45 -0
  78. package/skills/create-workflow-template/operations/schemas/get_sprint_board.md +103 -0
  79. package/skills/create-workflow-template/operations/schemas/get_ticket.md +136 -0
  80. package/skills/create-workflow-template/operations/schemas/get_workspace.md +21 -0
  81. package/skills/create-workflow-template/operations/schemas/go_back.md +13 -0
  82. package/skills/create-workflow-template/operations/schemas/http.md +38 -0
  83. package/skills/create-workflow-template/operations/schemas/hybrid_search.md +144 -0
  84. package/skills/create-workflow-template/operations/schemas/if_else.md +16 -0
  85. package/skills/create-workflow-template/operations/schemas/incident_created.md +88 -0
  86. package/skills/create-workflow-template/operations/schemas/incident_updated.md +126 -0
  87. package/skills/create-workflow-template/operations/schemas/init_variable.md +67 -0
  88. package/skills/create-workflow-template/operations/schemas/invoice_created.md +21 -0
  89. package/skills/create-workflow-template/operations/schemas/invoice_updated.md +41 -0
  90. package/skills/create-workflow-template/operations/schemas/invoke_code.md +132 -0
  91. package/skills/create-workflow-template/operations/schemas/issue_created.md +105 -0
  92. package/skills/create-workflow-template/operations/schemas/issue_sla_tracker_updated.md +46 -0
  93. package/skills/create-workflow-template/operations/schemas/issue_updated.md +172 -0
  94. package/skills/create-workflow-template/operations/schemas/link_incident_with_issue.md +14 -0
  95. package/skills/create-workflow-template/operations/schemas/link_ticket_with_issue.md +14 -0
  96. package/skills/create-workflow-template/operations/schemas/list_enhancements.md +74 -0
  97. package/skills/create-workflow-template/operations/schemas/list_issues.md +108 -0
  98. package/skills/create-workflow-template/operations/schemas/list_sessions.md +79 -0
  99. package/skills/create-workflow-template/operations/schemas/list_sprint.md +29 -0
  100. package/skills/create-workflow-template/operations/schemas/list_web_sessions.md +87 -0
  101. package/skills/create-workflow-template/operations/schemas/loop_over_accounts.md +106 -0
  102. package/skills/create-workflow-template/operations/schemas/loop_over_articles.md +126 -0
  103. package/skills/create-workflow-template/operations/schemas/loop_over_customers.md +88 -0
  104. package/skills/create-workflow-template/operations/schemas/loop_over_dev_users.md +75 -0
  105. package/skills/create-workflow-template/operations/schemas/loop_over_enhancements.md +112 -0
  106. package/skills/create-workflow-template/operations/schemas/loop_over_incidents.md +113 -0
  107. package/skills/create-workflow-template/operations/schemas/loop_over_issues.md +217 -0
  108. package/skills/create-workflow-template/operations/schemas/loop_over_meetings.md +150 -0
  109. package/skills/create-workflow-template/operations/schemas/loop_over_opportunity.md +161 -0
  110. package/skills/create-workflow-template/operations/schemas/loop_over_sprints.md +50 -0
  111. package/skills/create-workflow-template/operations/schemas/loop_over_tickets.md +203 -0
  112. package/skills/create-workflow-template/operations/schemas/manual_trigger.md +11 -0
  113. package/skills/create-workflow-template/operations/schemas/meeting_created.md +116 -0
  114. package/skills/create-workflow-template/operations/schemas/meeting_updated.md +152 -0
  115. package/skills/create-workflow-template/operations/schemas/oasis_sql_execute.md +11 -0
  116. package/skills/create-workflow-template/operations/schemas/opportunity_created.md +92 -0
  117. package/skills/create-workflow-template/operations/schemas/opportunity_updated.md +124 -0
  118. package/skills/create-workflow-template/operations/schemas/pick_user.md +16 -0
  119. package/skills/create-workflow-template/operations/schemas/question_answer_created.md +44 -0
  120. package/skills/create-workflow-template/operations/schemas/question_answer_updated.md +75 -0
  121. package/skills/create-workflow-template/operations/schemas/recall_chats.md +13 -0
  122. package/skills/create-workflow-template/operations/schemas/router.md +15 -0
  123. package/skills/create-workflow-template/operations/schemas/send_notification.md +19 -0
  124. package/skills/create-workflow-template/operations/schemas/set_variable.md +67 -0
  125. package/skills/create-workflow-template/operations/schemas/sleep_for.md +12 -0
  126. package/skills/create-workflow-template/operations/schemas/sleep_until.md +17 -0
  127. package/skills/create-workflow-template/operations/schemas/sprint_updated.md +37 -0
  128. package/skills/create-workflow-template/operations/schemas/suggest_part.md +14 -0
  129. package/skills/create-workflow-template/operations/schemas/task_updated.md +79 -0
  130. package/skills/create-workflow-template/operations/schemas/test_example.md +16 -0
  131. package/skills/create-workflow-template/operations/schemas/ticket_created.md +136 -0
  132. package/skills/create-workflow-template/operations/schemas/ticket_sla_tracker_updated.md +46 -0
  133. package/skills/create-workflow-template/operations/schemas/ticket_updated.md +198 -0
  134. package/skills/create-workflow-template/operations/schemas/timeline_comment_created.md +70 -0
  135. package/skills/create-workflow-template/operations/schemas/update_account.md +68 -0
  136. package/skills/create-workflow-template/operations/schemas/update_article.md +95 -0
  137. package/skills/create-workflow-template/operations/schemas/update_brand.md +44 -0
  138. package/skills/create-workflow-template/operations/schemas/update_contact.md +53 -0
  139. package/skills/create-workflow-template/operations/schemas/update_conversation.md +149 -0
  140. package/skills/create-workflow-template/operations/schemas/update_enhancement.md +64 -0
  141. package/skills/create-workflow-template/operations/schemas/update_incident.md +156 -0
  142. package/skills/create-workflow-template/operations/schemas/update_issue.md +173 -0
  143. package/skills/create-workflow-template/operations/schemas/update_meeting.md +114 -0
  144. package/skills/create-workflow-template/operations/schemas/update_opportunity.md +137 -0
  145. package/skills/create-workflow-template/operations/schemas/update_question_answer.md +60 -0
  146. package/skills/create-workflow-template/operations/schemas/update_ticket.md +188 -0
  147. package/skills/create-workflow-template/operations/schemas/watch_ticket_for_updates.md +225 -0
  148. package/skills/create-workflow-template/operations/schemas/web_search.md +17 -0
  149. package/skills/create-workflow-template/operations/schemas/while.md +24 -0
  150. package/skills/create-workflow-template/operations/schemas/widget_created.md +75 -0
  151. package/skills/create-workflow-template/operations/schemas/widget_updated.md +98 -0
  152. package/skills/create-workflow-template/operations/schemas/workspace_created.md +20 -0
  153. package/skills/create-workflow-template/operations/triggers.md +1583 -0
  154. package/skills/customer-brief/customer-brief.md +66 -0
  155. package/skills/deal-review-meddpicc/deal-review-meddpicc.md +58 -0
  156. package/skills/next-step-for-opportunity/next-step-for-opportunity.md +55 -0
  157. package/skills/opportunity-feature-prioritizer/SKILL.md +183 -0
  158. package/skills/sales-call-plan-coach/sales-call-plan-coach.md +73 -0
  159. package/skills/sales-context/sales-context.md +44 -0
  160. package/skills/sales-search-and-lookup/sales-search-and-lookup.md +58 -0
  161. package/skills/skill-creator/SKILL.md +570 -0
  162. package/skills/skill-creator/agents/analyzer.md +274 -0
  163. package/skills/skill-creator/agents/comparator.md +202 -0
  164. package/skills/skill-creator/agents/grader.md +223 -0
  165. package/skills/skill-creator/assets/eval_review.html +146 -0
  166. package/skills/skill-creator/eval-viewer/generate_review.py +471 -0
  167. package/skills/skill-creator/eval-viewer/viewer.html +1325 -0
  168. package/skills/skill-creator/references/schemas.md +430 -0
  169. package/skills/skill-creator/references/tool-patterns.md +290 -0
  170. package/skills/skill-creator/scripts/__init__.py +0 -0
  171. package/skills/skill-creator/scripts/aggregate_benchmark.py +401 -0
  172. package/skills/skill-creator/scripts/generate_report.py +326 -0
  173. package/skills/skill-creator/scripts/improve_description.py +247 -0
  174. package/skills/skill-creator/scripts/package_skill.py +136 -0
  175. package/skills/skill-creator/scripts/quick_validate.py +103 -0
  176. package/skills/skill-creator/scripts/run_eval.py +310 -0
  177. package/skills/skill-creator/scripts/run_loop.py +328 -0
  178. package/skills/skill-creator/scripts/utils.py +47 -0
  179. 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).
@@ -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.