@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.cjs CHANGED
@@ -60,6 +60,7 @@ var MCP_SERVERS = {
60
60
  name: "Slack",
61
61
  description: "Slack MCP server for messaging and channel operations",
62
62
  requiresCredentials: true,
63
+ npmPackages: ["simple-slack-mcp-server"],
63
64
  config: {
64
65
  command: "slack-mcp-server",
65
66
  args: [],
@@ -73,6 +74,7 @@ var MCP_SERVERS = {
73
74
  name: "Microsoft Teams",
74
75
  description: "Microsoft Teams MCP server for messaging and channel operations",
75
76
  requiresCredentials: true,
77
+ npmPackages: ["@bugzy-ai/teams-mcp-server"],
76
78
  config: {
77
79
  command: "teams-mcp-server",
78
80
  args: [],
@@ -86,6 +88,7 @@ var MCP_SERVERS = {
86
88
  name: "Playwright",
87
89
  description: "Playwright MCP server for browser automation",
88
90
  requiresCredentials: false,
91
+ npmPackages: ["@playwright/mcp"],
89
92
  config: {
90
93
  command: "mcp-server-playwright",
91
94
  args: [
@@ -110,6 +113,7 @@ var MCP_SERVERS = {
110
113
  name: "Notion",
111
114
  description: "Notion MCP server for documentation",
112
115
  requiresCredentials: true,
116
+ npmPackages: ["@notionhq/notion-mcp-server"],
113
117
  config: {
114
118
  command: "notion-mcp-server",
115
119
  args: [],
@@ -123,6 +127,7 @@ var MCP_SERVERS = {
123
127
  name: "Jira Server (On-Prem)",
124
128
  description: "Jira Server MCP via tunnel for on-premise instances",
125
129
  requiresCredentials: true,
130
+ npmPackages: ["@mcp-tunnel/wrapper", "@bugzy-ai/jira-mcp-server"],
126
131
  config: {
127
132
  command: "mcp-tunnel",
128
133
  args: ["--server", "jira-mcp-server"],
@@ -136,6 +141,21 @@ var MCP_SERVERS = {
136
141
  JIRA_PASSWORD: "${JIRA_PASSWORD}"
137
142
  }
138
143
  }
144
+ },
145
+ resend: {
146
+ provider: "resend",
147
+ name: "Email (Resend)",
148
+ description: "Resend MCP server for sending email notifications",
149
+ requiresCredentials: true,
150
+ npmPackages: ["@bugzy-ai/resend-mcp-server"],
151
+ config: {
152
+ command: "resend-mcp-server",
153
+ args: [],
154
+ env: {
155
+ RESEND_API_KEY: "${RESEND_API_KEY}",
156
+ RESEND_FROM_EMAIL: "${RESEND_FROM_EMAIL}"
157
+ }
158
+ }
139
159
  }
140
160
  // github: {
141
161
  // provider: 'github',
@@ -5087,8 +5107,262 @@ You are not a formal report generator. You are a helpful QA engineer who knows h
5087
5107
 
5088
5108
  **Target feeling:** "This is a real person who respects my time and communicates clearly."`;
5089
5109
 
5090
- // src/subagents/templates/documentation-researcher/notion.ts
5110
+ // src/subagents/templates/team-communicator/email.ts
5091
5111
  var FRONTMATTER6 = {
5112
+ name: "team-communicator",
5113
+ 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>`,
5114
+ tools: ["Glob", "Grep", "Read", "WebFetch", "TodoWrite", "WebSearch", "BashOutput", "KillBash", "mcp__resend__resend_send_email", "mcp__resend__resend_send_batch_emails", "ListMcpResourcesTool", "ReadMcpResourceTool"],
5115
+ model: "haiku",
5116
+ color: "yellow"
5117
+ };
5118
+ 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.
5119
+
5120
+ ## Core Philosophy: Concise, Professional Email Communication
5121
+
5122
+ **Write like a real QA engineer sending an email:**
5123
+ - Professional but conversational tone
5124
+ - Lead with impact in the subject line
5125
+ - Action items at the top of the email body
5126
+ - Target: 100-200 words for updates, 50-100 for questions
5127
+ - Maximum email length: 300 words
5128
+
5129
+ **Key Principle:** If it takes more than 1 minute to read, it's too long.
5130
+
5131
+ ## Email Structure Guidelines
5132
+
5133
+ ### Subject Line Best Practices
5134
+
5135
+ Format: \`[TYPE] Brief description - Context\`
5136
+
5137
+ Examples:
5138
+ - \`[Test Results] Smoke tests passed - Ready for release\`
5139
+ - \`[Blocker] Staging environment down - All testing blocked\`
5140
+ - \`[Question] Profile page behavior - Need clarification\`
5141
+ - \`[Update] Test plan ready - Review requested\`
5142
+
5143
+ ### Email Type Detection
5144
+
5145
+ Before composing, identify the email type:
5146
+
5147
+ #### Type 1: Status Report (FYI Update)
5148
+ **Use when:** Sharing completed test results, progress updates
5149
+ **Goal:** Inform team, no immediate action required
5150
+ **Subject:** \`[Test Results] ...\` or \`[Update] ...\`
5151
+
5152
+ #### Type 2: Question (Need Input)
5153
+ **Use when:** Need clarification, decision, or product knowledge
5154
+ **Goal:** Get specific answer quickly
5155
+ **Subject:** \`[Question] ...\`
5156
+
5157
+ #### Type 3: Blocker/Escalation (Urgent)
5158
+ **Use when:** Critical issue blocking testing or release
5159
+ **Goal:** Get immediate help/action
5160
+ **Subject:** \`[URGENT] ...\` or \`[Blocker] ...\`
5161
+
5162
+ ## Email Body Structure
5163
+
5164
+ Every email should follow this structure:
5165
+
5166
+ ### 1. TL;DR (First Line)
5167
+ One sentence summary of the main point or ask.
5168
+
5169
+ ### 2. Context (2-3 sentences)
5170
+ Brief background\u2014assume recipient is busy.
5171
+
5172
+ ### 3. Details (If needed)
5173
+ Use bullet points for easy scanning. Keep to 3-5 items max.
5174
+
5175
+ ### 4. Action Items / Next Steps
5176
+ Clear, specific asks with names if applicable.
5177
+
5178
+ ### 5. Sign-off
5179
+ Brief, professional closing.
5180
+
5181
+ ## Email Templates
5182
+
5183
+ ### Template 1: Test Results Report
5184
+
5185
+ \`\`\`
5186
+ Subject: [Test Results] [Test type] - [X/Y passed]
5187
+
5188
+ TL;DR: [One sentence summary of results and impact]
5189
+
5190
+ Results:
5191
+ - [Test category]: [X/Y passed]
5192
+ - [Key finding if any]
5193
+
5194
+ [If failures exist:]
5195
+ Key Issues:
5196
+ - [Issue 1]: [Brief description]
5197
+ - [Issue 2]: [Brief description]
5198
+
5199
+ Artifacts: [Location or link]
5200
+
5201
+ Next Steps:
5202
+ - [Action needed, if any]
5203
+ - [Timeline or ETA if blocking]
5204
+
5205
+ Best,
5206
+ Bugzy QA
5207
+ \`\`\`
5208
+
5209
+ ### Template 2: Question
5210
+
5211
+ \`\`\`
5212
+ Subject: [Question] [Topic in 3-5 words]
5213
+
5214
+ TL;DR: Need clarification on [specific topic].
5215
+
5216
+ Context:
5217
+ [1-2 sentences explaining what you found]
5218
+
5219
+ Question:
5220
+ [Specific question]
5221
+
5222
+ Options (if applicable):
5223
+ A) [Option 1]
5224
+ B) [Option 2]
5225
+
5226
+ Would appreciate a response by [timeframe if urgent].
5227
+
5228
+ Thanks,
5229
+ Bugzy QA
5230
+ \`\`\`
5231
+
5232
+ ### Template 3: Blocker/Escalation
5233
+
5234
+ \`\`\`
5235
+ Subject: [URGENT] [Impact statement]
5236
+
5237
+ TL;DR: [One sentence on what's blocked and what's needed]
5238
+
5239
+ Issue:
5240
+ [2-3 sentence technical summary]
5241
+
5242
+ Impact:
5243
+ - [What's blocked]
5244
+ - [Timeline impact if any]
5245
+
5246
+ Need:
5247
+ - [Specific action from specific person]
5248
+ - [Timeline for resolution]
5249
+
5250
+ Please respond ASAP.
5251
+
5252
+ Thanks,
5253
+ Bugzy QA
5254
+ \`\`\`
5255
+
5256
+ ### Template 4: Success/Pass Report
5257
+
5258
+ \`\`\`
5259
+ Subject: [Test Results] [Test type] passed - [X/X]
5260
+
5261
+ TL;DR: All tests passed. [Optional: key observation]
5262
+
5263
+ Results:
5264
+ - All [X] tests passed
5265
+ - Core flows verified: [list key areas]
5266
+
5267
+ No blockers for release from QA perspective.
5268
+
5269
+ Best,
5270
+ Bugzy QA
5271
+ \`\`\`
5272
+
5273
+ ## HTML Formatting Guidelines
5274
+
5275
+ When using HTML in emails:
5276
+
5277
+ - Use \`<h3>\` for section headers
5278
+ - Use \`<ul>\` and \`<li>\` for bullet lists
5279
+ - Use \`<strong>\` for emphasis (sparingly)
5280
+ - Use \`<code>\` for technical terms, IDs, or file paths
5281
+ - Keep styling minimal\u2014many email clients strip CSS
5282
+
5283
+ Example HTML structure:
5284
+ \`\`\`html
5285
+ <h3>TL;DR</h3>
5286
+ <p>Smoke tests passed (6/6). Ready for release.</p>
5287
+
5288
+ <h3>Results</h3>
5289
+ <ul>
5290
+ <li>Authentication: <strong>Passed</strong></li>
5291
+ <li>Navigation: <strong>Passed</strong></li>
5292
+ <li>Settings: <strong>Passed</strong></li>
5293
+ </ul>
5294
+
5295
+ <h3>Next Steps</h3>
5296
+ <p>No blockers from QA. Proceed with release when ready.</p>
5297
+ \`\`\`
5298
+
5299
+ ## Email-Specific Considerations
5300
+
5301
+ ### Unlike Slack:
5302
+ - **No threading**: Include all necessary context in each email
5303
+ - **No @mentions**: Use names in the text (e.g., "John, could you...")
5304
+ - **No real-time**: Don't expect immediate responses; be clear about urgency
5305
+ - **More formal**: Use complete sentences, proper grammar
5306
+
5307
+ ### Email Etiquette:
5308
+ - Keep recipients list minimal\u2014only those who need to act or be informed
5309
+ - Use CC sparingly for FYI recipients
5310
+ - Reply to threads when following up (maintain context)
5311
+ - Include links to artifacts rather than attaching large files
5312
+
5313
+ ## Anti-Patterns to Avoid
5314
+
5315
+ **Don't:**
5316
+ 1. Write lengthy introductions before getting to the point
5317
+ 2. Use overly formal language ("As per our previous correspondence...")
5318
+ 3. Bury the action item at the end of a long email
5319
+ 4. Send separate emails for related topics (consolidate)
5320
+ 5. Use HTML formatting excessively (keep it clean)
5321
+ 6. Forget to include context (recipient may see email out of order)
5322
+
5323
+ **Do:**
5324
+ 1. Lead with the most important information
5325
+ 2. Write conversationally but professionally
5326
+ 3. Make action items clear and specific
5327
+ 4. Include enough context for standalone understanding
5328
+ 5. Proofread\u2014emails are more permanent than chat
5329
+
5330
+ ## Context Discovery
5331
+
5332
+ ${MEMORY_READ_INSTRUCTIONS.replace(/{ROLE}/g, "team-communicator")}
5333
+
5334
+ **Memory Sections for Team Communicator**:
5335
+ - Email thread contexts and history
5336
+ - Team communication preferences and patterns
5337
+ - Response tracking
5338
+ - Team member email addresses and roles
5339
+ - Successful communication strategies
5340
+
5341
+ Additionally, always read:
5342
+ 1. \`.bugzy/runtime/project-context.md\` (team info, contact list, communication preferences)
5343
+
5344
+ Use this context to:
5345
+ - Identify correct recipients (from project-context.md)
5346
+ - Learn team communication preferences (from memory)
5347
+ - Address people appropriately (from project-context.md)
5348
+ - Adapt tone to team culture (from memory patterns)
5349
+
5350
+ ${MEMORY_UPDATE_INSTRUCTIONS.replace(/{ROLE}/g, "team-communicator")}
5351
+
5352
+ Specifically for team-communicator, consider updating:
5353
+ - **Email History**: Track thread contexts and ongoing conversations
5354
+ - **Team Preferences**: Document communication patterns that work well
5355
+ - **Response Patterns**: Note what types of emails get good engagement
5356
+ - **Contact Directory**: Record team member emails and roles
5357
+
5358
+ ## Final Reminder
5359
+
5360
+ 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.
5361
+
5362
+ **Target feeling:** "This is a concise, professional email from someone who respects my time and communicates clearly."`;
5363
+
5364
+ // src/subagents/templates/documentation-researcher/notion.ts
5365
+ var FRONTMATTER7 = {
5092
5366
  name: "documentation-researcher",
5093
5367
  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.
5094
5368
  user: "I need to generate test cases for the new OAuth flow"
@@ -5100,7 +5374,7 @@ assistant: "I'll use the documentation-researcher agent to search our Notion doc
5100
5374
  model: "haiku",
5101
5375
  color: "cyan"
5102
5376
  };
5103
- 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.
5377
+ 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.
5104
5378
 
5105
5379
  ## Core Responsibilities
5106
5380
 
@@ -5166,7 +5440,7 @@ var CONTENT6 = `You are an expert Documentation Researcher specializing in syste
5166
5440
  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.`;
5167
5441
 
5168
5442
  // src/subagents/templates/documentation-researcher/confluence.ts
5169
- var FRONTMATTER7 = {
5443
+ var FRONTMATTER8 = {
5170
5444
  name: "documentation-researcher",
5171
5445
  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.
5172
5446
  user: "I need to create a test plan for the new user profile feature"
@@ -5178,7 +5452,7 @@ assistant: "I'll use the documentation-researcher agent to search our Confluence
5178
5452
  model: "sonnet",
5179
5453
  color: "cyan"
5180
5454
  };
5181
- 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.
5455
+ 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.
5182
5456
 
5183
5457
  ## Core Responsibilities
5184
5458
 
@@ -5278,7 +5552,7 @@ Handle these Confluence elements properly:
5278
5552
  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.`;
5279
5553
 
5280
5554
  // src/subagents/templates/issue-tracker/linear.ts
5281
- var FRONTMATTER8 = {
5555
+ var FRONTMATTER9 = {
5282
5556
  name: "issue-tracker",
5283
5557
  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.
5284
5558
  user: "The login flow is broken - users get a 500 error when submitting credentials"
@@ -5290,7 +5564,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to QA
5290
5564
  model: "sonnet",
5291
5565
  color: "red"
5292
5566
  };
5293
- 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.
5567
+ 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.
5294
5568
 
5295
5569
  **Core Responsibilities:**
5296
5570
 
@@ -5458,7 +5732,7 @@ Your memory file evolves with usage:
5458
5732
  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.`;
5459
5733
 
5460
5734
  // src/subagents/templates/issue-tracker/jira.ts
5461
- var FRONTMATTER9 = {
5735
+ var FRONTMATTER10 = {
5462
5736
  name: "issue-tracker",
5463
5737
  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.
5464
5738
  user: "5 tests failed in the checkout flow - payment validation is broken"
@@ -5470,7 +5744,7 @@ assistant: "Let me use the issue-tracker agent to transition PROJ-456 to Done an
5470
5744
  model: "sonnet",
5471
5745
  color: "red"
5472
5746
  };
5473
- 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.
5747
+ 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.
5474
5748
 
5475
5749
  **Core Responsibilities:**
5476
5750
 
@@ -5629,7 +5903,7 @@ Your memory file becomes more valuable over time:
5629
5903
  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.`;
5630
5904
 
5631
5905
  // src/subagents/templates/issue-tracker/notion.ts
5632
- var FRONTMATTER10 = {
5906
+ var FRONTMATTER11 = {
5633
5907
  name: "issue-tracker",
5634
5908
  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.
5635
5909
  user: "The submit button on the checkout page doesn't work on mobile Safari"
@@ -5641,7 +5915,7 @@ assistant: "Let me use the issue-tracker agent to update the story status to 'QA
5641
5915
  model: "haiku",
5642
5916
  color: "red"
5643
5917
  };
5644
- 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.
5918
+ 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.
5645
5919
 
5646
5920
  **Core Responsibilities:**
5647
5921
 
@@ -5788,7 +6062,7 @@ Your memory file grows more valuable over time:
5788
6062
  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.`;
5789
6063
 
5790
6064
  // src/subagents/templates/issue-tracker/slack.ts
5791
- var FRONTMATTER11 = {
6065
+ var FRONTMATTER12 = {
5792
6066
  name: "issue-tracker",
5793
6067
  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.
5794
6068
  user: "3 critical tests failed in the payment flow - looks like the Stripe integration is broken"
@@ -5800,7 +6074,7 @@ assistant: "Let me use the issue-tracker agent to update the story thread with Q
5800
6074
  model: "sonnet",
5801
6075
  color: "red"
5802
6076
  };
5803
- 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.
6077
+ 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.
5804
6078
 
5805
6079
  **Core Responsibilities:**
5806
6080
 
@@ -6049,38 +6323,42 @@ var TEMPLATES = {
6049
6323
  teams: {
6050
6324
  frontmatter: FRONTMATTER5,
6051
6325
  content: CONTENT5
6326
+ },
6327
+ email: {
6328
+ frontmatter: FRONTMATTER6,
6329
+ content: CONTENT6
6052
6330
  }
6053
6331
  },
6054
6332
  "documentation-researcher": {
6055
6333
  notion: {
6056
- frontmatter: FRONTMATTER6,
6057
- content: CONTENT6
6058
- },
6059
- confluence: {
6060
6334
  frontmatter: FRONTMATTER7,
6061
6335
  content: CONTENT7
6336
+ },
6337
+ confluence: {
6338
+ frontmatter: FRONTMATTER8,
6339
+ content: CONTENT8
6062
6340
  }
6063
6341
  },
6064
6342
  "issue-tracker": {
6065
6343
  linear: {
6066
- frontmatter: FRONTMATTER8,
6067
- content: CONTENT8
6068
- },
6069
- jira: {
6070
6344
  frontmatter: FRONTMATTER9,
6071
6345
  content: CONTENT9
6072
6346
  },
6073
- "jira-server": {
6074
- frontmatter: FRONTMATTER9,
6075
- content: CONTENT9
6347
+ jira: {
6348
+ frontmatter: FRONTMATTER10,
6349
+ content: CONTENT10
6076
6350
  },
6077
- notion: {
6351
+ "jira-server": {
6078
6352
  frontmatter: FRONTMATTER10,
6079
6353
  content: CONTENT10
6080
6354
  },
6081
- slack: {
6355
+ notion: {
6082
6356
  frontmatter: FRONTMATTER11,
6083
6357
  content: CONTENT11
6358
+ },
6359
+ slack: {
6360
+ frontmatter: FRONTMATTER12,
6361
+ content: CONTENT12
6084
6362
  }
6085
6363
  }
6086
6364
  };
@@ -6156,6 +6434,14 @@ var INTEGRATIONS = {
6156
6434
  provider: "teams",
6157
6435
  requiredMCP: "mcp__teams__*",
6158
6436
  integrationType: "oauth"
6437
+ },
6438
+ email: {
6439
+ id: "email",
6440
+ name: "Email",
6441
+ provider: "resend",
6442
+ requiredMCP: "mcp__resend__*",
6443
+ integrationType: "local"
6444
+ // Uses platform API key, no OAuth needed
6159
6445
  }
6160
6446
  };
6161
6447
  var SUBAGENTS = {
@@ -6175,9 +6461,13 @@ var SUBAGENTS = {
6175
6461
  name: "Team Communicator",
6176
6462
  description: "Send notifications and updates to your team",
6177
6463
  icon: "message-square",
6178
- integrations: [INTEGRATIONS.slack, INTEGRATIONS.teams],
6464
+ integrations: [INTEGRATIONS.slack, INTEGRATIONS.teams, INTEGRATIONS.email],
6179
6465
  model: "sonnet",
6180
6466
  color: "blue",
6467
+ isRequired: true,
6468
+ // Required - falls back to email if Slack/Teams not configured
6469
+ defaultIntegration: "email",
6470
+ // Email is the fallback when OAuth integrations aren't set up
6181
6471
  version: "1.0.0"
6182
6472
  },
6183
6473
  "issue-tracker": {
@@ -6186,8 +6476,8 @@ var SUBAGENTS = {
6186
6476
  description: "Automatically create and track bugs and issues",
6187
6477
  icon: "bot",
6188
6478
  integrations: [
6189
- INTEGRATIONS.linear,
6190
- INTEGRATIONS.jira,
6479
+ // INTEGRATIONS.linear,
6480
+ // INTEGRATIONS.jira,
6191
6481
  INTEGRATIONS["jira-server"],
6192
6482
  INTEGRATIONS.notion,
6193
6483
  INTEGRATIONS.slack
@@ -6201,7 +6491,10 @@ var SUBAGENTS = {
6201
6491
  name: "Documentation Researcher",
6202
6492
  description: "Search and retrieve information from your documentation",
6203
6493
  icon: "file-search",
6204
- integrations: [INTEGRATIONS.notion, INTEGRATIONS.confluence],
6494
+ integrations: [
6495
+ INTEGRATIONS.notion
6496
+ // INTEGRATIONS.confluence
6497
+ ],
6205
6498
  model: "sonnet",
6206
6499
  color: "cyan",
6207
6500
  version: "1.0.0"
@@ -6403,7 +6696,9 @@ function buildTaskDefinition(taskSlug, projectSubAgents) {
6403
6696
  for (const role of requiredSubAgentRoles) {
6404
6697
  const configured = projectSubAgents.find((sa) => sa.role === role);
6405
6698
  if (configured) {
6406
- requiredMCPs.add(configured.integration);
6699
+ const integrationMeta = getIntegration(configured.integration);
6700
+ const mcpProvider = integrationMeta?.provider || configured.integration;
6701
+ requiredMCPs.add(mcpProvider);
6407
6702
  }
6408
6703
  }
6409
6704
  return {