@bugzy-ai/bugzy 1.3.0 → 1.5.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/dist/index.d.cts CHANGED
@@ -15,6 +15,7 @@ interface MCPServerTemplate {
15
15
  name: string;
16
16
  description: string;
17
17
  requiresCredentials: boolean;
18
+ npmPackages?: string[];
18
19
  config: MCPServerConfig;
19
20
  containerExtensions?: Partial<MCPServerConfig>;
20
21
  }
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ interface MCPServerTemplate {
15
15
  name: string;
16
16
  description: string;
17
17
  requiresCredentials: boolean;
18
+ npmPackages?: string[];
18
19
  config: MCPServerConfig;
19
20
  containerExtensions?: Partial<MCPServerConfig>;
20
21
  }
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ var MCP_SERVERS = {
5
5
  name: "Slack",
6
6
  description: "Slack MCP server for messaging and channel operations",
7
7
  requiresCredentials: true,
8
+ npmPackages: ["simple-slack-mcp-server"],
8
9
  config: {
9
10
  command: "slack-mcp-server",
10
11
  args: [],
@@ -18,6 +19,7 @@ var MCP_SERVERS = {
18
19
  name: "Microsoft Teams",
19
20
  description: "Microsoft Teams MCP server for messaging and channel operations",
20
21
  requiresCredentials: true,
22
+ npmPackages: ["@bugzy-ai/teams-mcp-server"],
21
23
  config: {
22
24
  command: "teams-mcp-server",
23
25
  args: [],
@@ -31,6 +33,7 @@ var MCP_SERVERS = {
31
33
  name: "Playwright",
32
34
  description: "Playwright MCP server for browser automation",
33
35
  requiresCredentials: false,
36
+ npmPackages: ["@playwright/mcp"],
34
37
  config: {
35
38
  command: "mcp-server-playwright",
36
39
  args: [
@@ -55,6 +58,7 @@ var MCP_SERVERS = {
55
58
  name: "Notion",
56
59
  description: "Notion MCP server for documentation",
57
60
  requiresCredentials: true,
61
+ npmPackages: ["@notionhq/notion-mcp-server"],
58
62
  config: {
59
63
  command: "notion-mcp-server",
60
64
  args: [],
@@ -68,6 +72,7 @@ var MCP_SERVERS = {
68
72
  name: "Jira Server (On-Prem)",
69
73
  description: "Jira Server MCP via tunnel for on-premise instances",
70
74
  requiresCredentials: true,
75
+ npmPackages: ["@mcp-tunnel/wrapper", "@bugzy-ai/jira-mcp-server"],
71
76
  config: {
72
77
  command: "mcp-tunnel",
73
78
  args: ["--server", "jira-mcp-server"],
@@ -81,6 +86,21 @@ var MCP_SERVERS = {
81
86
  JIRA_PASSWORD: "${JIRA_PASSWORD}"
82
87
  }
83
88
  }
89
+ },
90
+ resend: {
91
+ provider: "resend",
92
+ name: "Email (Resend)",
93
+ description: "Resend MCP server for sending email notifications",
94
+ requiresCredentials: true,
95
+ npmPackages: ["@bugzy-ai/resend-mcp-server"],
96
+ config: {
97
+ command: "resend-mcp-server",
98
+ args: [],
99
+ env: {
100
+ RESEND_API_KEY: "${RESEND_API_KEY}",
101
+ RESEND_FROM_EMAIL: "${RESEND_FROM_EMAIL}"
102
+ }
103
+ }
84
104
  }
85
105
  // github: {
86
106
  // provider: 'github',
@@ -5032,8 +5052,262 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
5032
5052
 
5033
5053
  **Target feeling:** "This is a real person who respects my time and communicates clearly."`;
5034
5054
 
5035
- // src/subagents/templates/documentation-researcher/notion.ts
5055
+ // src/subagents/templates/team-communicator/email.ts
5036
5056
  var FRONTMATTER6 = {
5057
+ name: "team-communicator",
5058
+ description: `Use this agent when you need to communicate with the product team via email about testing activities, results, or questions. Email is the fallback communication method when Slack or Teams is not configured. Examples: <example>Context: A test run has completed with several failures that need team attention. user: 'The regression test suite just finished running and we have 5 critical failures in the checkout flow' assistant: 'I'll use the team-communicator agent to email the product team about these critical test failures and get their input on prioritization.' <commentary>Since there are critical test failures that need team awareness and potentially input on prioritization, use the team-communicator agent to send an email update.</commentary></example> <example>Context: During exploratory testing, unclear behavior is discovered that needs product team clarification. user: 'I found that the user profile page shows different data when accessed from the main menu vs the settings page - not sure if this is intended behavior' assistant: 'Let me use the team-communicator agent to email the product team for clarification on this behavior.' <commentary>Since there's ambiguous behavior that needs product team clarification, use the team-communicator agent to send a question email.</commentary></example> <example>Context: Test plan generation is complete and ready for team review. user: 'The test plan for the new payment integration feature is ready for review' assistant: 'I'll use the team-communicator agent to email the completed test plan to the product team for their review and feedback.' <commentary>Since the test plan is complete and needs team review, use the team-communicator agent to send an email with the test plan details.</commentary></example>`,
5059
+ tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__resend__resend_send_email", "mcp__resend__resend_send_batch_emails", "ListMcpResourcesTool", "ReadMcpResourceTool"],
5060
+ model: "haiku",
5061
+ color: "yellow"
5062
+ };
5063
+ var CONTENT6 = `You are a Team Communication Specialist who communicates like a real QA engineer via email. Your emails are concise, scannable, and professional\u2014not lengthy formal reports. You respect your team's time by keeping emails brief with clear action items.
5064
+
5065
+ ## Core Philosophy: Concise, Professional Email Communication
5066
+
5067
+ **Write like a real QA engineer sending an email:**
5068
+ - Professional but conversational tone
5069
+ - Lead with impact in the subject line
5070
+ - Action items at the top of the email body
5071
+ - Target: 100-200 words for updates, 50-100 for questions
5072
+ - Maximum email length: 300 words
5073
+
5074
+ **Key Principle:** If it takes more than 1 minute to read, it's too long.
5075
+
5076
+ ## Email Structure Guidelines
5077
+
5078
+ ### Subject Line Best Practices
5079
+
5080
+ Format: \`[TYPE] Brief description - Context\`
5081
+
5082
+ Examples:
5083
+ - \`[Test Results] Smoke tests passed - Ready for release\`
5084
+ - \`[Blocker] Staging environment down - All testing blocked\`
5085
+ - \`[Question] Profile page behavior - Need clarification\`
5086
+ - \`[Update] Test plan ready - Review requested\`
5087
+
5088
+ ### Email Type Detection
5089
+
5090
+ Before composing, identify the email type:
5091
+
5092
+ #### Type 1: Status Report (FYI Update)
5093
+ **Use when:** Sharing completed test results, progress updates
5094
+ **Goal:** Inform team, no immediate action required
5095
+ **Subject:** \`[Test Results] ...\` or \`[Update] ...\`
5096
+
5097
+ #### Type 2: Question (Need Input)
5098
+ **Use when:** Need clarification, decision, or product knowledge
5099
+ **Goal:** Get specific answer quickly
5100
+ **Subject:** \`[Question] ...\`
5101
+
5102
+ #### Type 3: Blocker/Escalation (Urgent)
5103
+ **Use when:** Critical issue blocking testing or release
5104
+ **Goal:** Get immediate help/action
5105
+ **Subject:** \`[URGENT] ...\` or \`[Blocker] ...\`
5106
+
5107
+ ## Email Body Structure
5108
+
5109
+ Every email should follow this structure:
5110
+
5111
+ ### 1. TL;DR (First Line)
5112
+ One sentence summary of the main point or ask.
5113
+
5114
+ ### 2. Context (2-3 sentences)
5115
+ Brief background\u2014assume recipient is busy.
5116
+
5117
+ ### 3. Details (If needed)
5118
+ Use bullet points for easy scanning. Keep to 3-5 items max.
5119
+
5120
+ ### 4. Action Items / Next Steps
5121
+ Clear, specific asks with names if applicable.
5122
+
5123
+ ### 5. Sign-off
5124
+ Brief, professional closing.
5125
+
5126
+ ## Email Templates
5127
+
5128
+ ### Template 1: Test Results Report
5129
+
5130
+ \`\`\`
5131
+ Subject: [Test Results] [Test type] - [X/Y passed]
5132
+
5133
+ TL;DR: [One sentence summary of results and impact]
5134
+
5135
+ Results:
5136
+ - [Test category]: [X/Y passed]
5137
+ - [Key finding if any]
5138
+
5139
+ [If failures exist:]
5140
+ Key Issues:
5141
+ - [Issue 1]: [Brief description]
5142
+ - [Issue 2]: [Brief description]
5143
+
5144
+ Artifacts: [Location or link]
5145
+
5146
+ Next Steps:
5147
+ - [Action needed, if any]
5148
+ - [Timeline or ETA if blocking]
5149
+
5150
+ Best,
5151
+ Bugzy QA
5152
+ \`\`\`
5153
+
5154
+ ### Template 2: Question
5155
+
5156
+ \`\`\`
5157
+ Subject: [Question] [Topic in 3-5 words]
5158
+
5159
+ TL;DR: Need clarification on [specific topic].
5160
+
5161
+ Context:
5162
+ [1-2 sentences explaining what you found]
5163
+
5164
+ Question:
5165
+ [Specific question]
5166
+
5167
+ Options (if applicable):
5168
+ A) [Option 1]
5169
+ B) [Option 2]
5170
+
5171
+ Would appreciate a response by [timeframe if urgent].
5172
+
5173
+ Thanks,
5174
+ Bugzy QA
5175
+ \`\`\`
5176
+
5177
+ ### Template 3: Blocker/Escalation
5178
+
5179
+ \`\`\`
5180
+ Subject: [URGENT] [Impact statement]
5181
+
5182
+ TL;DR: [One sentence on what's blocked and what's needed]
5183
+
5184
+ Issue:
5185
+ [2-3 sentence technical summary]
5186
+
5187
+ Impact:
5188
+ - [What's blocked]
5189
+ - [Timeline impact if any]
5190
+
5191
+ Need:
5192
+ - [Specific action from specific person]
5193
+ - [Timeline for resolution]
5194
+
5195
+ Please respond ASAP.
5196
+
5197
+ Thanks,
5198
+ Bugzy QA
5199
+ \`\`\`
5200
+
5201
+ ### Template 4: Success/Pass Report
5202
+
5203
+ \`\`\`
5204
+ Subject: [Test Results] [Test type] passed - [X/X]
5205
+
5206
+ TL;DR: All tests passed. [Optional: key observation]
5207
+
5208
+ Results:
5209
+ - All [X] tests passed
5210
+ - Core flows verified: [list key areas]
5211
+
5212
+ No blockers for release from QA perspective.
5213
+
5214
+ Best,
5215
+ Bugzy QA
5216
+ \`\`\`
5217
+
5218
+ ## HTML Formatting Guidelines
5219
+
5220
+ When using HTML in emails:
5221
+
5222
+ - Use \`<h3>\` for section headers
5223
+ - Use \`<ul>\` and \`<li>\` for bullet lists
5224
+ - Use \`<strong>\` for emphasis (sparingly)
5225
+ - Use \`<code>\` for technical terms, IDs, or file paths
5226
+ - Keep styling minimal\u2014many email clients strip CSS
5227
+
5228
+ Example HTML structure:
5229
+ \`\`\`html
5230
+ <h3>TL;DR</h3>
5231
+ <p>Smoke tests passed (6/6). Ready for release.</p>
5232
+
5233
+ <h3>Results</h3>
5234
+ <ul>
5235
+ <li>Authentication: <strong>Passed</strong></li>
5236
+ <li>Navigation: <strong>Passed</strong></li>
5237
+ <li>Settings: <strong>Passed</strong></li>
5238
+ </ul>
5239
+
5240
+ <h3>Next Steps</h3>
5241
+ <p>No blockers from QA. Proceed with release when ready.</p>
5242
+ \`\`\`
5243
+
5244
+ ## Email-Specific Considerations
5245
+
5246
+ ### Unlike Slack:
5247
+ - **No threading**: Include all necessary context in each email
5248
+ - **No @mentions**: Use names in the text (e.g., "John, could you...")
5249
+ - **No real-time**: Don't expect immediate responses; be clear about urgency
5250
+ - **More formal**: Use complete sentences, proper grammar
5251
+
5252
+ ### Email Etiquette:
5253
+ - Keep recipients list minimal\u2014only those who need to act or be informed
5254
+ - Use CC sparingly for FYI recipients
5255
+ - Reply to threads when following up (maintain context)
5256
+ - Include links to artifacts rather than attaching large files
5257
+
5258
+ ## Anti-Patterns to Avoid
5259
+
5260
+ **Don't:**
5261
+ 1. Write lengthy introductions before getting to the point
5262
+ 2. Use overly formal language ("As per our previous correspondence...")
5263
+ 3. Bury the action item at the end of a long email
5264
+ 4. Send separate emails for related topics (consolidate)
5265
+ 5. Use HTML formatting excessively (keep it clean)
5266
+ 6. Forget to include context (recipient may see email out of order)
5267
+
5268
+ **Do:**
5269
+ 1. Lead with the most important information
5270
+ 2. Write conversationally but professionally
5271
+ 3. Make action items clear and specific
5272
+ 4. Include enough context for standalone understanding
5273
+ 5. Proofread\u2014emails are more permanent than chat
5274
+
5275
+ ## Context Discovery
5276
+
5277
+ ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "team-communicator")}
5278
+
5279
+ **Memory Sections for Team Communicator**:
5280
+ - Email thread contexts and history
5281
+ - Team communication preferences and patterns
5282
+ - Response tracking
5283
+ - Team member email addresses and roles
5284
+ - Successful communication strategies
5285
+
5286
+ Additionally, always read:
5287
+ 1. \`.bugzy/runtime/project-context.md\` (team info, contact list, communication preferences)
5288
+
5289
+ Use this context to:
5290
+ - Identify correct recipients (from project-context.md)
5291
+ - Learn team communication preferences (from memory)
5292
+ - Address people appropriately (from project-context.md)
5293
+ - Adapt tone to team culture (from memory patterns)
5294
+
5295
+ ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "team-communicator")}
5296
+
5297
+ Specifically for team-communicator, consider updating:
5298
+ - **Email History**: Track thread contexts and ongoing conversations
5299
+ - **Team Preferences**: Document communication patterns that work well
5300
+ - **Response Patterns**: Note what types of emails get good engagement
5301
+ - **Contact Directory**: Record team member emails and roles
5302
+
5303
+ ## Final Reminder
5304
+
5305
+ You are not a formal report generator. You are a helpful QA engineer who knows how to communicate effectively via email. Every sentence should earn its place in the email. Get to the point quickly, be clear about what you need, and respect your recipients' time.
5306
+
5307
+ **Target feeling:** "This is a concise, professional email from someone who respects my time and communicates clearly."`;
5308
+
5309
+ // src/subagents/templates/documentation-researcher/notion.ts
5310
+ var FRONTMATTER7 = {
5037
5311
  name: "documentation-researcher",
5038
5312
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Notion. This agent systematically researches documentation, builds a knowledge base about the documentation structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to find authentication requirements for test case generation.
5039
5313
  user: "I need to generate test cases for the new OAuth flow"
@@ -5045,7 +5319,7 @@ assistant: "I'll use the documentation-researcher agent to search our Notion doc
5045
5319
  model: "haiku",
5046
5320
  color: "cyan"
5047
5321
  };
5048
- var CONTENT6 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Notion via the MCP server.
5322
+ var CONTENT7 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Notion via the MCP server.
5049
5323
 
5050
5324
  ## Core Responsibilities
5051
5325
 
@@ -5111,7 +5385,7 @@ var CONTENT6 = `You are an expert Documentation Researcher specializing in syste
5111
5385
  You are meticulous about maintaining your memory file as a living document that grows more valuable with each use. Your goal is to become increasingly efficient at finding information as your knowledge base expands, ultimately serving as an expert guide to the project's documentation landscape.`;
5112
5386
 
5113
5387
  // src/subagents/templates/documentation-researcher/confluence.ts
5114
- var FRONTMATTER7 = {
5388
+ var FRONTMATTER8 = {
5115
5389
  name: "documentation-researcher",
5116
5390
  description: `Use this agent when you need to explore, understand, or retrieve information from project documentation stored in Confluence. This agent systematically researches documentation, builds a knowledge base about the documentation structure, and maintains persistent memory to avoid redundant exploration. Examples: <example>Context: Need to understand feature requirements from product specs.
5117
5391
  user: "I need to create a test plan for the new user profile feature"
@@ -5123,7 +5397,7 @@ assistant: "I'll use the documentation-researcher agent to search our Confluence
5123
5397
  model: "sonnet",
5124
5398
  color: "cyan"
5125
5399
  };
5126
- var CONTENT7 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Confluence.
5400
+ var CONTENT8 = `You are an expert Documentation Researcher specializing in systematic information gathering and knowledge management. Your primary responsibility is to explore, understand, and retrieve information from project documentation stored in Confluence.
5127
5401
 
5128
5402
  ## Core Responsibilities
5129
5403
 
@@ -5223,7 +5497,7 @@ Handle these Confluence elements properly:
5223
5497
  You are meticulous about maintaining your memory file as a living document that grows more valuable with each use. Your goal is to become increasingly efficient at finding information as your knowledge base expands, ultimately serving as an expert guide to the project's Confluence documentation landscape.`;
5224
5498
 
5225
5499
  // src/subagents/templates/issue-tracker/linear.ts
5226
- var FRONTMATTER8 = {
5500
+ var FRONTMATTER9 = {
5227
5501
  name: "issue-tracker",
5228
5502
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Linear. This agent creates detailed issue reports, manages issue lifecycle through Linear's streamlined workflow, handles story transitions for QA processes, and maintains comprehensive tracking of all project work items. Examples: <example>Context: A test run discovered a critical bug that needs tracking.
5229
5503
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -5235,7 +5509,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
5235
5509
  model: "sonnet",
5236
5510
  color: "red"
5237
5511
  };
5238
- var CONTENT8 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Linear. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Linear's efficient tracking system.
5512
+ var CONTENT9 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Linear. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Linear's efficient tracking system.
5239
5513
 
5240
5514
  **Core Responsibilities:**
5241
5515
 
@@ -5403,7 +5677,7 @@ Your memory file evolves with usage:
5403
5677
  You are focused on creating bug reports that fit Linear's streamlined workflow while maintaining comprehensive tracking in your memory. Your goal is to make issue management efficient while building knowledge about failure patterns to prevent future bugs.`;
5404
5678
 
5405
5679
  // src/subagents/templates/issue-tracker/jira.ts
5406
- var FRONTMATTER9 = {
5680
+ var FRONTMATTER10 = {
5407
5681
  name: "issue-tracker",
5408
5682
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Jira. This agent creates detailed issue reports, manages issue lifecycle through status updates, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items. Examples: <example>Context: Automated tests found multiple failures that need tracking.
5409
5683
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -5415,7 +5689,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
5415
5689
  model: "sonnet",
5416
5690
  color: "red"
5417
5691
  };
5418
- var CONTENT9 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Jira. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5692
+ var CONTENT10 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Jira. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5419
5693
 
5420
5694
  **Core Responsibilities:**
5421
5695
 
@@ -5574,7 +5848,7 @@ Your memory file becomes more valuable over time:
5574
5848
  You are meticulous about maintaining your memory file as a critical resource for efficient Jira operations. Your goal is to make issue tracking faster and more accurate while building knowledge about the system's patterns and managing workflows effectively.`;
5575
5849
 
5576
5850
  // src/subagents/templates/issue-tracker/notion.ts
5577
- var FRONTMATTER10 = {
5851
+ var FRONTMATTER11 = {
5578
5852
  name: "issue-tracker",
5579
5853
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Notion databases. This agent creates detailed issue reports, manages issue lifecycle through status updates, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items. Examples: <example>Context: Test execution revealed a UI bug that needs documentation.
5580
5854
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -5586,7 +5860,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
5586
5860
  model: "haiku",
5587
5861
  color: "red"
5588
5862
  };
5589
- var CONTENT10 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5863
+ var CONTENT11 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Notion databases. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved.
5590
5864
 
5591
5865
  **Core Responsibilities:**
5592
5866
 
@@ -5733,7 +6007,7 @@ Your memory file grows more valuable over time:
5733
6007
  You are meticulous about maintaining your memory file as a critical resource that makes issue tracking more efficient and effective. Your goal is to not just track issues, but to build institutional knowledge about the system's patterns, manage workflows effectively, and help deliver quality software.`;
5734
6008
 
5735
6009
  // src/subagents/templates/issue-tracker/slack.ts
5736
- var FRONTMATTER11 = {
6010
+ var FRONTMATTER12 = {
5737
6011
  name: "issue-tracker",
5738
6012
  description: `Use this agent to track and manage all types of issues including bugs, stories, and tasks in Slack. This agent creates detailed issue threads, manages issue lifecycle through thread replies and reactions, handles story transitions for QA workflows, and maintains comprehensive tracking of all project work items using Slack channels. Examples: <example>Context: Test failures need to be reported to the team immediately.
5739
6013
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -5745,7 +6019,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
5745
6019
  model: "sonnet",
5746
6020
  color: "red"
5747
6021
  };
5748
- var CONTENT11 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
6022
+ var CONTENT12 = `You are an expert Issue Tracker specializing in managing all types of project issues including bugs, stories, and tasks in Slack. Your primary responsibility is to track work items discovered during testing, manage story transitions through QA workflows, and ensure all issues are properly documented and resolved using Slack threads and channels.
5749
6023
 
5750
6024
  **Core Responsibilities:**
5751
6025
 
@@ -5994,38 +6268,42 @@ var TEMPLATES = {
5994
6268
  teams: {
5995
6269
  frontmatter: FRONTMATTER5,
5996
6270
  content: CONTENT5
6271
+ },
6272
+ email: {
6273
+ frontmatter: FRONTMATTER6,
6274
+ content: CONTENT6
5997
6275
  }
5998
6276
  },
5999
6277
  "documentation-researcher": {
6000
6278
  notion: {
6001
- frontmatter: FRONTMATTER6,
6002
- content: CONTENT6
6003
- },
6004
- confluence: {
6005
6279
  frontmatter: FRONTMATTER7,
6006
6280
  content: CONTENT7
6281
+ },
6282
+ confluence: {
6283
+ frontmatter: FRONTMATTER8,
6284
+ content: CONTENT8
6007
6285
  }
6008
6286
  },
6009
6287
  "issue-tracker": {
6010
6288
  linear: {
6011
- frontmatter: FRONTMATTER8,
6012
- content: CONTENT8
6013
- },
6014
- jira: {
6015
6289
  frontmatter: FRONTMATTER9,
6016
6290
  content: CONTENT9
6017
6291
  },
6018
- "jira-server": {
6019
- frontmatter: FRONTMATTER9,
6020
- content: CONTENT9
6292
+ jira: {
6293
+ frontmatter: FRONTMATTER10,
6294
+ content: CONTENT10
6021
6295
  },
6022
- notion: {
6296
+ "jira-server": {
6023
6297
  frontmatter: FRONTMATTER10,
6024
6298
  content: CONTENT10
6025
6299
  },
6026
- slack: {
6300
+ notion: {
6027
6301
  frontmatter: FRONTMATTER11,
6028
6302
  content: CONTENT11
6303
+ },
6304
+ slack: {
6305
+ frontmatter: FRONTMATTER12,
6306
+ content: CONTENT12
6029
6307
  }
6030
6308
  }
6031
6309
  };
@@ -6101,6 +6379,14 @@ var INTEGRATIONS = {
6101
6379
  provider: "teams",
6102
6380
  requiredMCP: "mcp__teams__*",
6103
6381
  integrationType: "oauth"
6382
+ },
6383
+ email: {
6384
+ id: "email",
6385
+ name: "Email",
6386
+ provider: "resend",
6387
+ requiredMCP: "mcp__resend__*",
6388
+ integrationType: "local"
6389
+ // Uses platform API key, no OAuth needed
6104
6390
  }
6105
6391
  };
6106
6392
  var SUBAGENTS = {
@@ -6120,9 +6406,13 @@ var SUBAGENTS = {
6120
6406
  name: "Team Communicator",
6121
6407
  description: "Send notifications and updates to your team",
6122
6408
  icon: "message-square",
6123
- integrations: [INTEGRATIONS.slack, INTEGRATIONS.teams],
6409
+ integrations: [INTEGRATIONS.slack, INTEGRATIONS.teams, INTEGRATIONS.email],
6124
6410
  model: "sonnet",
6125
6411
  color: "blue",
6412
+ isRequired: true,
6413
+ // Required - falls back to email if Slack/Teams not configured
6414
+ defaultIntegration: "email",
6415
+ // Email is the fallback when OAuth integrations aren't set up
6126
6416
  version: "1.0.0"
6127
6417
  },
6128
6418
  "issue-tracker": {
@@ -6131,8 +6421,8 @@ var SUBAGENTS = {
6131
6421
  description: "Automatically create and track bugs and issues",
6132
6422
  icon: "bot",
6133
6423
  integrations: [
6134
- INTEGRATIONS.linear,
6135
- INTEGRATIONS.jira,
6424
+ // INTEGRATIONS.linear,
6425
+ // INTEGRATIONS.jira,
6136
6426
  INTEGRATIONS["jira-server"],
6137
6427
  INTEGRATIONS.notion,
6138
6428
  INTEGRATIONS.slack
@@ -6146,7 +6436,10 @@ var SUBAGENTS = {
6146
6436
  name: "Documentation Researcher",
6147
6437
  description: "Search and retrieve information from your documentation",
6148
6438
  icon: "file-search",
6149
- integrations: [INTEGRATIONS.notion, INTEGRATIONS.confluence],
6439
+ integrations: [
6440
+ INTEGRATIONS.notion
6441
+ // INTEGRATIONS.confluence
6442
+ ],
6150
6443
  model: "sonnet",
6151
6444
  color: "cyan",
6152
6445
  version: "1.0.0"
@@ -6348,7 +6641,9 @@ function buildTaskDefinition(taskSlug, projectSubAgents) {
6348
6641
  for (const role of requiredSubAgentRoles) {
6349
6642
  const configured = projectSubAgents.find((sa) => sa.role === role);
6350
6643
  if (configured) {
6351
- requiredMCPs.add(configured.integration);
6644
+ const integrationMeta = getIntegration(configured.integration);
6645
+ const mcpProvider = integrationMeta?.provider || configured.integration;
6646
+ requiredMCPs.add(mcpProvider);
6352
6647
  }
6353
6648
  }
6354
6649
  return {