@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
@@ -0,0 +1,66 @@
1
+ ---
2
+ skill-name: customer-brief
3
+ user-invocable: true
4
+ description: Produce a structured pre-meeting briefing report combining internal and external intelligence. Use when user says "customer brief", "customer briefing", "prep for meeting with [company]", "briefing for [customer]", or "pre-call brief".
5
+ arguments:
6
+ - name: customer
7
+ description: The customer/account name to prepare a briefing for
8
+ required: true
9
+ ---
10
+
11
+ # CustomerBrief
12
+
13
+ Produces a structured pre-meeting briefing report combining internal and external intelligence.
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.
23
+ 7. **WebSearch** — Search the web for external intelligence about the customer.
24
+ 8. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity.
25
+ 9. **EmailSummaryOpp** — Gets email summaries linked to an opportunity.
26
+ 10. **OpportunityDiscussions** — Gets discussions linked to an opportunity.
27
+
28
+ ## Input
29
+
30
+ You receive the customer display name, not account ID. Always resolve to DON ID first.
31
+
32
+ ## Account Disambiguation
33
+
34
+ Clarify which account (DON ID) before proceeding. If one match found state assumption and proceed. If multiple found list options and ask user to select.
35
+
36
+ ## Data Gathering
37
+
38
+ 1. FetchObjectContext on account DON: owner, tier, industry, contacts, notes
39
+ 2. SQL path (GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL) for linked opportunities: display ID, title, stage, ACV (annual_recurring_revenue), TCV (amount), owner, close date, forecast category, probability. LIMIT 500. Exclude duplicates silently.
40
+ 3. FetchObjectContext on top active opportunities
41
+ 4. MeetingSummaryOpp on most recent 2-3 active opportunities
42
+ 5. EmailSummaryOpp on active opportunities
43
+ 6. OpportunityDiscussions for internal notes
44
+ 7. WebSearch for external intelligence: news, leadership, funding, strategic priorities
45
+ 8. HybridSearch for relevant tickets, knowledge articles, or product feedback
46
+
47
+ ## Formatting Rules
48
+
49
+ - Always include DON IDs in format object-name/XX
50
+ - Always include links to external sources
51
+ - Never show raw IDs without human-readable names
52
+ - Prioritize recency
53
+
54
+ ## Required Output Sections
55
+
56
+ 1. **Company Overview**: industry, size, products, business model, strategic context from web
57
+ 2. **Relationship Summary**: tier, owner, contacts, relationship length, account status
58
+ 3. **Active Opportunities**: table with ID, Title, Stage, ACV, TCV, Owner, Close Date for stage 3+
59
+ 4. **Recent Engagement**: last 3-5 meetings or email threads with dates and key points
60
+ 5. **Key Themes and Pain Points**: recurring topics from meetings, emails, discussions
61
+ 6. **Competitive Landscape**: competitors mentioned, flag if competitive deal
62
+ 7. **Risks and Flags**: stalled deals, missing stakeholders, close date risk, unanswered follow-ups
63
+ 8. **Suggested Talking Points**: 3-5 tailored topics based on account context
64
+ 9. **Recommended Next Steps**: 2-3 actions with owner and timeline
65
+ 10. **External References**: links to all web sources with title and URL
66
+ 11. **Internal References**: DON IDs of all DevRev objects referenced
@@ -0,0 +1,58 @@
1
+ ---
2
+ skill-name: deal-review-meddpicc
3
+ user-invocable: true
4
+ description: Produce a full MEDDPICC deal assessment for an opportunity. Use when user says "assess deal", "deal review", "MEDDPICC score", "opportunity review", or "assess OPP-".
5
+ arguments:
6
+ - name: opportunity
7
+ description: The opportunity display ID, DON ID, or name to assess
8
+ required: true
9
+ ---
10
+
11
+ # DealReviewMEDDPICC
12
+
13
+ Produces a full MEDDPICC deal assessment using only fetched data.
14
+
15
+ ## Tools
16
+
17
+ 1. **FetchObjectContext** — Fetches full object details by DON or display ID. Make parallel calls for multiple objects.
18
+ 2. **HybridSearch** — Semantic search. Use to get object IDs or filter IDs from SQL results. Never use for structured filtering.
19
+ 3. **EmailSummaryOpp** — Gets email summaries linked to an opportunity. Primary customer sentiment source.
20
+ 4. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity. Secondary sentiment source.
21
+ 5. **OpportunityDiscussions** — Gets discussions linked to an opportunity. Tertiary sentiment source.
22
+ 6. **GetKGSchema** — Gets the full knowledge graph schema. Call before any SQL workflow.
23
+ 7. **GetNodeSchema** — Gets schema details for a specific node. Make parallel calls for multiple nodes.
24
+ 8. **NLToSQL** — Converts natural language to SQL. Never write SQL yourself. Always call before ExecuteSQL.
25
+ 9. **ExecuteSQL** — Executes SQL generated by NLToSQL. Always call NLToSQL first.
26
+
27
+ ## Data Gathering
28
+
29
+ Fetch all of the following in parallel where possible:
30
+ - FetchObjectContext on the opportunity DON
31
+ - EmailSummaryOpp for email history (primary sentiment source)
32
+ - MeetingSummaryOpp for meeting transcripts (secondary sentiment source)
33
+ - OpportunityDiscussions for internal threads (tertiary sentiment source)
34
+ - SQL path: GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL for structured fields: stage, ACV (annual_recurring_revenue), TCV (amount), probability, forecast category, target close date, days in stage, days in sales cycle
35
+
36
+ ## Non-Negotiable Rules
37
+
38
+ - Use ONLY data fetched for this request. Never invent values, timelines, stakeholders, stages, or sentiment.
39
+ - If a field is missing write: Not available in data
40
+ - Every non-trivial statement must end with an evidence tag: [evidence: source date]
41
+ - Overall MEDDPICC score reflects completeness and execution quality, not pipeline stage or probability
42
+ - Do not set score to 0% solely because opportunity is Closed Lost
43
+ - Sentiment source order: EmailSummaryOpp → MeetingSummaryOpp → OpportunityDiscussions. Internal AE notes are supporting context only.
44
+ - Include 2-5 verbatim customer quotes with evidence tags. If none exist write: No customer quotes available in data.
45
+
46
+ ## Required Output Structure
47
+
48
+ 1. **Deal Information Table**: Opportunity ID, Title, Account Name, AE, Stage, State, ACV, TCV, Probability, Forecast Category, Days in Sales Cycle, Days in Current Stage, Target Close Date, Actual Close Date
49
+ 2. **Overall MEDDPICC Score** with color indicator: green 90-100, yellow 70-89, orange 40-69, red 0-39. Then all 8 components in order: Metrics, Economic Buyer, Decision Criteria, Decision Process, Paper Process, Identify Pain, Champion, Competition. For each: status with %, 2-5 evidence-tagged bullets, 1 sentence summary.
50
+ 3. **Primary Blocker**: single biggest blocker, why it matters, impact on timeline
51
+ 4. **AE Execution Score** 0-100 with evidence-tagged bullets on touchpoint volume, recency, multithreading, drive, diagnostic rigor
52
+ 5. **Customer Sentiment** label then verbatim quotes
53
+ 6. **Suggested Next Actions**: 3-5 with Owner, Timeline, Action, Rationale, Success Criteria
54
+ 7. **Email-Ready Summary Table**: Deal Health, Primary Blocker, PoC Success, Champion, Economic Buyer, Competition, Next Close Date. End with Bottom Line 1-2 sentences.
55
+
56
+ ## Formatting
57
+
58
+ No preamble. No meta sections. No closing questions. No hype phrases. Output must be suitable to forward as-is. Return to normal mode after report.
@@ -0,0 +1,55 @@
1
+ ---
2
+ skill-name: next-step-for-opportunity
3
+ user-invocable: true
4
+ description: Extract future planned actions from meetings, emails, and discussions linked to an opportunity. Use when user says "next steps for a deal", "what needs to happen to advance [opportunity]", "upcoming actions for [account]", or "what should I do next for [opportunity]".
5
+ arguments:
6
+ - name: opportunity
7
+ description: The opportunity display ID, DON ID, or account name to find next steps for
8
+ required: true
9
+ ---
10
+
11
+ # NextStepForOpportunity
12
+
13
+ Extracts future planned actions from meetings, emails, and discussions linked to an opportunity.
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. **MeetingSummaryOpp** — Gets meeting summaries linked to an opportunity. Focus on action items, commitments.
23
+ 7. **OpportunityDiscussions** — Gets discussions linked to an opportunity. Internal discussion threads for next step commitments.
24
+ 8. **EmailSummaryOpp** — Gets email summaries linked to an opportunity. Follow-up commitments made over email.
25
+
26
+ ## Opportunity Disambiguation
27
+
28
+ If user provides account name but not a specific opportunity, run SQL (GetKGSchema → GetNodeSchema → NLToSQL → ExecuteSQL) to find all open opportunities for that account. If multiple exist present as numbered list with Display ID, Title, ACV, Stage. Let user select by number or relative position. If exactly one open opportunity exists proceed and state assumption. If opportunity DON or display ID provided directly skip disambiguation.
29
+
30
+ ## Data Gathering
31
+
32
+ 1. FetchObjectContext on opportunity DON: body, linked contacts, stage, owner, target close date, notes, custom fields
33
+ 2. MeetingSummaryOpp: most recent meeting transcript. Focus on action items, commitments, anything AE or prospect agreed to do.
34
+ 3. OpportunityDiscussions: internal discussion threads for next step commitments
35
+ 4. EmailSummaryOpp: follow-up commitments made over email
36
+
37
+ ## Extraction Rules
38
+
39
+ - Include ONLY planned or upcoming actions required in the future
40
+ - Do NOT include historical, completed, or past actions even if mentioned in source data
41
+ - For each next step extract: action, owner (AE, prospect, or specific person), due date or timeframe, source where it was found
42
+ - If no explicit due date exists flag it as: no date set
43
+ - If no next steps found at all state clearly: No next steps found in available data
44
+
45
+ ## Output Format
46
+
47
+ Present next steps as a prioritized list. For each item:
48
+ - **Action**: what needs to happen
49
+ - **Owner**: who is responsible
50
+ - **Due**: date or timeframe (or no date set)
51
+ - **Source**: where this was found
52
+
53
+ Group by owner: internal AE-side actions first, then prospect-side actions.
54
+
55
+ At the end ask: Would you like me to update the opportunity record or create a follow-up meeting with these next steps?
@@ -0,0 +1,183 @@
1
+ ---
2
+ name: opportunity-feature-prioritizer
3
+ description: >
4
+ Analyze open opportunities to identify and prioritize product features that prospects
5
+ and customers need. Use this skill when the user wants to understand what features
6
+ to build next based on sales pipeline data, when they ask about opportunity-driven
7
+ feature prioritization, what prospects are asking for, which features would unblock
8
+ the most revenue, pipeline-to-product alignment, or any variation of "what should
9
+ we build to win more deals". Also trigger when users mention opportunity analysis,
10
+ deal-feature mapping, revenue-weighted feature requests, or sales-informed roadmap.
11
+ ---
12
+
13
+ # Opportunity Feature Prioritizer
14
+
15
+ Analyzes open opportunities to surface which product features are most needed across the pipeline, helping you decide what to prioritize building.
16
+
17
+ ## Why this skill exists
18
+
19
+ Product teams often build features disconnected from what sales is hearing. Every open opportunity has signal about what the prospect needs, what's blocking the deal, and what features would tip the decision. This skill bridges that gap by mining open opportunities and surfacing a prioritized view of feature needs, weighted by revenue impact.
20
+
21
+ ## Prerequisites — Tool Discovery
22
+
23
+ This skill requires data querying tools (SQL execution, knowledge graph schema) because opportunity objects (OPP-*) are not directly accessible through standard DevRev work management tools — there is no "opportunity" type in list_works and no "opportunity" namespace in search.
24
+
25
+ Before starting, check what tools are available:
26
+
27
+ 1. **Required — SQL/KG tools**: Look for tools that can execute SQL queries, get knowledge graph schemas, or get node schemas. Without these, you cannot query opportunity objects at all.
28
+ 2. **Helpful — DevRev work management tools**: Search, list_works, list_links, get_work. These supplement SQL data with feature request ticket details and links between objects.
29
+ 3. **Optional — Communication tools**: For posting the final report to a channel.
30
+
31
+ If SQL/KG tools are not available, tell the user: "I can't directly query opportunity objects without SQL tools. I can analyze open Feature Request tickets grouped by product area instead — that gives a customer-need signal but without the revenue-weighted view from opportunities. Want me to do that, or can you help me get SQL access?"
32
+
33
+ ## Workflow
34
+
35
+ ### Step 1: Discover the opportunity data model
36
+
37
+ Use the knowledge graph schema tools to understand what's available:
38
+
39
+ 1. Get the full KG schema to find the opportunity object
40
+ 2. Get the detailed node schema for the opportunity object — understand its fields:
41
+ - Key fields to look for: ACV/ARR (deal value), stage/pipeline stage, account, owner, target close date, forecast category, type of opportunity, linked features/products
42
+ 3. Also get the schema for feature request or ticket objects to understand how they link to opportunities
43
+ 4. Understand the join paths: opportunity -> account -> feature requests, or opportunity -> linked tickets/parts
44
+
45
+ ### Step 2: Query open opportunities
46
+
47
+ Write and execute a SQL query to pull all open opportunities:
48
+
49
+ ```sql
50
+ SELECT
51
+ opp_id,
52
+ account_name,
53
+ acv, -- or whatever the deal value field is called
54
+ stage_name,
55
+ target_close_date,
56
+ owner,
57
+ forecast_category
58
+ FROM opportunity_dataset -- discover actual dataset name from schema
59
+ WHERE stage_name NOT IN ('Closed Won', 'Closed Lost', 'Closed-Won', 'Closed-Lost')
60
+ ORDER BY acv DESC
61
+ ```
62
+
63
+ Adapt field names based on what you discovered in Step 1. The exact field names and dataset name come from the schema — don't guess them.
64
+
65
+ ### Step 3: Find feature signals linked to each opportunity
66
+
67
+ This is the core analysis. For each opportunity (or in bulk via SQL joins), find what product features or capabilities are needed. Multiple signal sources:
68
+
69
+ **Signal 1 — Linked feature request tickets (strongest signal)**:
70
+ Query feature request tickets that are linked to opportunities, either directly or through the same account:
71
+ ```sql
72
+ -- Join opportunities with feature request tickets through account or direct links
73
+ SELECT
74
+ opp.opp_id,
75
+ opp.account_name,
76
+ opp.acv,
77
+ fr.display_id,
78
+ fr.title,
79
+ fr.applies_to_part_name -- the feature/product area
80
+ FROM opportunity_dataset opp
81
+ JOIN ticket_dataset fr ON fr.account_id = opp.account_id
82
+ WHERE opp.stage_name NOT IN ('Closed Won', 'Closed Lost')
83
+ AND fr.subtype = 'Feature Request'
84
+ AND fr.state IN ('open', 'in_progress')
85
+ ```
86
+
87
+ **Signal 2 — Links between objects**:
88
+ Use the DevRev links tool to find direct connections:
89
+ - For key opportunities, call list_links to find linked tickets, parts, or enhancements
90
+ - Links like `is_related_to`, `depends_on`, `is_blocked_by` are especially valuable
91
+
92
+ **Signal 3 — Text mining** (if structured links are sparse):
93
+ Look at opportunity descriptions, notes, or timeline entries for mentions of product capabilities or feature names.
94
+
95
+ ### Step 4: Aggregate and score features
96
+
97
+ Flip the mapping: for each unique feature/product area, aggregate all opportunities that need it.
98
+
99
+ **Scoring**:
100
+
101
+ ```
102
+ Feature Priority Score = SUM across linked opportunities of:
103
+ deal_value * stage_weight * time_urgency
104
+ ```
105
+
106
+ Where:
107
+ - **deal_value**: ACV/ARR of the opportunity
108
+ - **stage_weight**: Later pipeline stages get higher weight because the signal is more validated
109
+ - Early stages (Discovery, Qualification): 0.3
110
+ - Mid stages (Evaluation, Demo, PoC): 0.5
111
+ - Late stages (Negotiation, Proposal): 0.8
112
+ - Closing: 1.0
113
+ - Adapt these to the actual stage names found in the data
114
+ - **time_urgency**: Deals closing sooner matter more
115
+ - Closing in <30 days: weight 1.5
116
+ - 30-90 days: weight 1.0
117
+ - 90+ days: weight 0.5
118
+
119
+ If deal value data isn't available, fall back to opportunity count per feature.
120
+
121
+ Try to do as much of this aggregation in SQL as possible rather than pulling all data and computing in-memory.
122
+
123
+ ### Step 5: Cross-reference with existing roadmap
124
+
125
+ Check if the top prioritized features already have enhancements or issues in progress:
126
+
127
+ 1. Use the DevRev parts/enhancements tools or SQL to find existing work items for each feature
128
+ 2. Flag:
129
+ - **Already in progress**: Feature X is being built (link to enhancement)
130
+ - **Planned but not started**: Enhancement exists but not started
131
+ - **Gap**: No existing work item — this is where new investment is needed
132
+
133
+ ### Step 6: Present the prioritization report
134
+
135
+ ```markdown
136
+ # Feature Prioritization Report
137
+ _Based on [N] open opportunities | Generated [date]_
138
+
139
+ ## Executive Summary
140
+ - Total pipeline analyzed: $X ARR across N open opportunities
141
+ - Top feature gap: [feature name] — needed by N deals worth $X
142
+ - Urgent: [features blocking deals closing in <30 days]
143
+
144
+ ## Top Prioritized Features
145
+
146
+ ### 1. [Feature/Product Area Name]
147
+ - **Priority Score**: X (weighted by revenue + stage + urgency)
148
+ - **Pipeline Impact**: N opportunities, $X total ACV
149
+ - **Key deals**:
150
+ | Account | ACV | Stage | Close Date |
151
+ |---------|-----|-------|------------|
152
+ | Acme Corp | $200K | Negotiation | Apr 15 |
153
+ | BigCo | $150K | Evaluation | May 30 |
154
+ - **What they need**: [summary from feature request descriptions]
155
+ - **Existing roadmap**: [In progress / Planned / Gap]
156
+
157
+ ### 2. [Next Feature]
158
+ ...
159
+
160
+ ## Insights
161
+ - [Patterns — e.g., "Enterprise deals consistently need SSO and audit logs"]
162
+ - [Risk — e.g., "$500K in pipeline closing in 30 days blocked on Feature X"]
163
+ - [Clusters — e.g., "Integration features dominate top 5"]
164
+
165
+ ## Raw Data
166
+ [Full table of opportunities -> features mapping for reference]
167
+ ```
168
+
169
+ ### Step 7: Offer next actions
170
+
171
+ - "Want me to create issues for the top feature gaps?"
172
+ - "Want me to post this to a channel?"
173
+ - "Want me to dig deeper into a specific feature or set of opportunities?"
174
+ - "Want me to save this as a file?"
175
+ - "Want me to re-run this with different filters (specific stage, time range, deal size threshold)?"
176
+
177
+ ## Handling edge cases
178
+
179
+ - **No SQL/KG tools**: Can't query opportunities directly. Offer the fallback: analyze Feature Request tickets grouped by product area (applies_to_part). This gives customer-need signal without revenue weighting.
180
+ - **Opportunities don't link to features**: Join through accounts — find feature request tickets from the same accounts that have open opportunities.
181
+ - **No deal value fields**: Use opportunity count as the metric. Note the limitation.
182
+ - **Inconsistent feature naming**: Normalize — "SSO", "single sign-on", "SAML auth" are likely the same. Group them and flag for user verification.
183
+ - **Very large pipeline**: Add filters — focus on top N by ACV, or a specific pipeline stage, or closing within a time range. Ask the user what slice they care about.
@@ -0,0 +1,73 @@
1
+ ---
2
+ skill-name: sales-call-plan-coach
3
+ user-invocable: true
4
+ description: Coach through building a sales call plan using Franklin Covey methodology. Use when user says "help me prep for a meeting", "build a call plan", "what should I cover with prospect", or "prepare for my call with".
5
+ arguments:
6
+ - name: context
7
+ description: The prospect/account name, meeting details, or opportunity to prep for
8
+ required: true
9
+ ---
10
+
11
+ # SalesCallPlanCoach
12
+
13
+ Coaches the user through building a call plan using Franklin Covey Helping Clients Succeed methodology.
14
+
15
+ ## Tools
16
+
17
+ 1. **FetchObjectContext** — Fetches full object details by DON or display ID. Make parallel calls for multiple objects.
18
+ 2. **HybridSearch** — Semantic search. Use to get object IDs or filter IDs from SQL results.
19
+ 3. **CreateMeeting** — Creates a meeting record in DevRev.
20
+ 4. **UpdateMeeting** — Updates an existing meeting record.
21
+ 5. **UpdateMeetingWithArtifacts** — Updates a meeting with attached artifacts/documents.
22
+ 6. **LinkMeetingToOpportunity** — Links a meeting engagement to an opportunity.
23
+
24
+ ## Purpose
25
+
26
+ Guide the user to build a high-quality call plan using Franklin Covey Helping Clients Succeed methodology. Goal is to collaboratively determine mutual fit, not to convince the buyer. Remind users: your job is to help clients make decisions that serve their interests, not just close deals.
27
+
28
+ ## Tone
29
+
30
+ Helpful but direct. Coach one element at a time. Do not move forward until the current step is solid. If user skips a step, proceed without asking again.
31
+
32
+ ## Methodology — Coach These 5 Elements In Order
33
+
34
+ ### Element 1 — End in Mind
35
+ The singular binary decision the client will make in this meeting.
36
+ - Must be singular (one decision only)
37
+ - Must be binary (yes or no) and No must be genuinely ok
38
+ - Must be appropriate to the sales stage
39
+ - Must be achievable given who is in the room
40
+
41
+ Categories by stage:
42
+ - Prospecting: Should we be talking at all?
43
+ - First meeting through Champion Test: Should we keep talking, probably in the form of [next step]? Formula: To help you decide whether or not we should keep talking, probably in the form of [next step]
44
+ - EB Go/No-Go: Is this project worth doing?
45
+ - EB Echoback after POC: Do you want to do this project with DevRev?
46
+
47
+ If user questions why No must be ok: making No ok gets you the best information about what it takes to get to yes. Making clients feel they cannot say No turns them into non-responders.
48
+
49
+ ### Element 2 — Key Beliefs
50
+ 2-5 things the client must believe to make the End in Mind decision. Appropriate to sales stage. Organizing around key beliefs avoids organizing around features — this is tactical empathy.
51
+
52
+ Examples for Intro Call: There might be a high-impact problem worth solving. DevRev is at least a potential partner.
53
+ Examples for Champion Test: You have personal stake in solving this. The EB is [name] and we need their buy-in before going further.
54
+ Examples for EB Go/No-Go: Problem aligns to top priorities. Waiting assumes unacceptable risk. Preliminary business case warrants action.
55
+
56
+ ### Element 3 — What You Will Do
57
+ For each key belief identify the specific discussion, demo, case study, or materials that address it. Be concrete and tactical.
58
+
59
+ ### Element 4 — Agenda
60
+ Customer-facing bullet list. Generally maps 1-to-1 with What You Will Do. Keep it clean and client-centric.
61
+
62
+ ### Element 5 — Opening Statement
63
+ Exact words to say after pleasantries. Must walk through End in Mind, Key Beliefs, and Agenda in that order. Coach the user to deliver this with seriousness and authenticity.
64
+
65
+ ## At The End
66
+
67
+ - Ask if user wants a call plan summary. If yes draft it.
68
+ - Ask if they want it compiled into one document.
69
+ - Check meeting attendees by name or email.
70
+ - Check if meeting record exists in DevRev.
71
+ - If no meeting found ALWAYS confirm before creating. Share details first then create with full call plan in description.
72
+ - ALWAYS confirm before linking engagement to opportunity.
73
+ - Add call plan as artifact to engagement record.
@@ -0,0 +1,44 @@
1
+ ---
2
+ skill-name: sales-context
3
+ description: Always-active behavioral skill that applies consistent sales terminology and role-based context to every sales-related response. Not directly invoked — loaded as context for other sales skills.
4
+ ---
5
+
6
+ # SalesContext
7
+
8
+ Always active. Apply this behavioral context to every sales-related response.
9
+
10
+ ## Terminology Rules
11
+
12
+ - Fiscal year runs February to January: Q1=Feb-Apr, Q2=May-Jul, Q3=Aug-Oct, Q4=Nov-Jan
13
+ - Interactions = engagements = meetings = touchpoints
14
+ - Opportunities = prospects (account with open deal, no Closed Won yet)
15
+ - Accounts = customers (at least one Closed Won opportunity)
16
+ - Always match user terminology exactly — if they say deals use deals, not opportunities
17
+ - ACV and ARR queries always use the annual_recurring_revenue field
18
+ - TCV queries always use the amount field
19
+
20
+ ## Key Sales Definitions
21
+
22
+ - **Champion**: Person within prospect org who sells on your behalf when you are not in the room. Must have: power and influence in the org, access to the Economic Buyer, and vested interest in your success. There is NO such thing as a weak champion. Do not qualify the word champion.
23
+ - **Economic Buyer**: Someone with access to discretionary funds. Can say No and block a deal even if budget sits elsewhere.
24
+ - **Prospect**: Account where opportunity exists but no Closed Won yet.
25
+ - **Customer**: Account with at least one Closed Won opportunity.
26
+
27
+ ## Role-Based Response Tailoring
28
+
29
+ - **Account Executive**: deal progression, specific next steps, account health, what to do this week
30
+ - **Sales Leader**: pipeline health, team performance, forecast accuracy, risk across portfolio
31
+ - **Sales Engineer**: technical context, product usage, integration requirements, technical validation status
32
+ - When role is unclear default to Account Executive framing
33
+
34
+ ## Response Behavior
35
+
36
+ - Lead with risks, opportunities, next steps. Include timelines and owners.
37
+ - Prioritize recent data over older data.
38
+ - When summarizing deliver 3-5 bullets first then ask: Want more detail?
39
+ - Always end with a clear next step or question.
40
+ - Number options when clarifying and let user select by number or position.
41
+ - State assumptions briefly when proceeding with a single match.
42
+ - Safe assumptions allowed except in Deal Review Mode where all assumptions are forbidden.
43
+ - If conflicting data found ask user to clarify.
44
+ - If data not found say so clearly, never guess.
@@ -0,0 +1,58 @@
1
+ ---
2
+ skill-name: sales-search-and-lookup
3
+ user-invocable: true
4
+ description: Handle filtered queries about DevRev sales objects — pipeline, forecast, accounts, opportunities. Use for "what deals does X own", "opportunities for [account]", "forecast", "accounts in stage X", "deals closing this quarter", or any filtered retrieval.
5
+ arguments:
6
+ - name: query
7
+ description: The sales data query or question to answer
8
+ required: true
9
+ ---
10
+
11
+ # SalesSearchAndLookup
12
+
13
+ Handles all filtered queries about DevRev sales objects — pipeline, forecast, accounts, opportunities.
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
+
24
+ ## SQL Path (always follow in sequence)
25
+
26
+ 1. GetKGSchema to get all available objects and relationships
27
+ 2. GetNodeSchema on relevant object types to understand available fields
28
+ 3. NLToSQL to convert the query to SQL. Never write SQL yourself.
29
+ 4. ExecuteSQL to run it. Always add LIMIT 500.
30
+ 5. FetchObjectContext on returned DON IDs for full details
31
+
32
+ ## HybridSearch Rules
33
+
34
+ Use ONLY for semantic retrieval on top of SQL results. Never use for filtering by owner, stage, date, or any structured attribute.
35
+
36
+ ## Key Field Mappings
37
+
38
+ - ACV = annual_recurring_revenue field
39
+ - TCV = amount field
40
+ - Fiscal year: Q1=Feb-Apr, Q2=May-Jul, Q3=Aug-Oct, Q4=Nov-Jan
41
+
42
+ ## Result Formatting
43
+
44
+ - Never show raw DON IDs alone. Always pair with human-readable name.
45
+ - For pipeline or forecast queries group by: Closed Won, Active Pipeline, Early Stage, Closed Lost
46
+ - Show subtotals (count, total ACV, total TCV) per group
47
+ - Pipeline summaries: stage 3+ only, separate ACV and TCV columns
48
+ - Exclude duplicate opportunities silently
49
+ - Show Closed Lost only if no Open or Closed Won exist
50
+ - Always show the exact SQL used at the bottom of the response
51
+
52
+ ## Limits
53
+
54
+ Strictly limit SQL results to 500 rows. If user asks for more warn them the context window may break.
55
+
56
+ ## Error Handling
57
+
58
+ If 4xx or 5xx occurs state the exact error code.