opencastle 0.32.4 → 0.32.6

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 (108) hide show
  1. package/README.md +13 -3
  2. package/bin/cli.mjs +2 -0
  3. package/dist/cli/bootstrap.js +1 -1
  4. package/dist/cli/bootstrap.js.map +1 -1
  5. package/dist/cli/bootstrap.test.js +16 -0
  6. package/dist/cli/bootstrap.test.js.map +1 -1
  7. package/dist/cli/init.test.js +38 -0
  8. package/dist/cli/init.test.js.map +1 -1
  9. package/dist/cli/stack-config-update.test.js +18 -0
  10. package/dist/cli/stack-config-update.test.js.map +1 -1
  11. package/dist/cli/stack-config.d.ts.map +1 -1
  12. package/dist/cli/stack-config.js +1 -0
  13. package/dist/cli/stack-config.js.map +1 -1
  14. package/dist/cli/types.d.ts +1 -1
  15. package/dist/cli/types.d.ts.map +1 -1
  16. package/dist/orchestrator/plugins/index.d.ts.map +1 -1
  17. package/dist/orchestrator/plugins/index.js +4 -0
  18. package/dist/orchestrator/plugins/index.js.map +1 -1
  19. package/dist/orchestrator/plugins/notion/config.d.ts +3 -0
  20. package/dist/orchestrator/plugins/notion/config.d.ts.map +1 -0
  21. package/dist/orchestrator/plugins/notion/config.js +46 -0
  22. package/dist/orchestrator/plugins/notion/config.js.map +1 -0
  23. package/dist/orchestrator/plugins/trello/config.d.ts +3 -0
  24. package/dist/orchestrator/plugins/trello/config.d.ts.map +1 -0
  25. package/dist/orchestrator/plugins/trello/config.js +43 -0
  26. package/dist/orchestrator/plugins/trello/config.js.map +1 -0
  27. package/dist/orchestrator/plugins/types.d.ts +1 -1
  28. package/dist/orchestrator/plugins/types.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/src/cli/bootstrap.test.ts +21 -0
  31. package/src/cli/bootstrap.ts +1 -1
  32. package/src/cli/init.test.ts +46 -0
  33. package/src/cli/stack-config-update.test.ts +20 -0
  34. package/src/cli/stack-config.ts +1 -0
  35. package/src/cli/types.ts +1 -1
  36. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  37. package/src/orchestrator/agents/api-designer.agent.md +25 -34
  38. package/src/orchestrator/agents/architect.agent.md +40 -84
  39. package/src/orchestrator/agents/content-engineer.agent.md +29 -31
  40. package/src/orchestrator/agents/copywriter.agent.md +35 -60
  41. package/src/orchestrator/agents/data-expert.agent.md +24 -30
  42. package/src/orchestrator/agents/database-engineer.agent.md +26 -31
  43. package/src/orchestrator/agents/developer.agent.md +32 -34
  44. package/src/orchestrator/agents/devops-expert.agent.md +31 -26
  45. package/src/orchestrator/agents/documentation-writer.agent.md +29 -29
  46. package/src/orchestrator/agents/performance-expert.agent.md +36 -33
  47. package/src/orchestrator/agents/release-manager.agent.md +25 -34
  48. package/src/orchestrator/agents/researcher.agent.md +41 -95
  49. package/src/orchestrator/agents/reviewer.agent.md +24 -34
  50. package/src/orchestrator/agents/security-expert.agent.md +35 -39
  51. package/src/orchestrator/agents/seo-specialist.agent.md +25 -32
  52. package/src/orchestrator/agents/session-guard.agent.md +20 -79
  53. package/src/orchestrator/agents/team-lead.agent.md +50 -254
  54. package/src/orchestrator/agents/testing-expert.agent.md +37 -49
  55. package/src/orchestrator/agents/ui-ux-expert.agent.md +33 -39
  56. package/src/orchestrator/customizations/KNOWN-ISSUES.md +0 -1
  57. package/src/orchestrator/customizations/agents/skill-matrix.json +20 -4
  58. package/src/orchestrator/customizations/agents/skill-matrix.md +20 -0
  59. package/src/orchestrator/instructions/general.instructions.md +24 -84
  60. package/src/orchestrator/plugins/astro/SKILL.md +23 -179
  61. package/src/orchestrator/plugins/convex/SKILL.md +38 -12
  62. package/src/orchestrator/plugins/index.ts +4 -0
  63. package/src/orchestrator/plugins/netlify/SKILL.md +17 -13
  64. package/src/orchestrator/plugins/nextjs/SKILL.md +55 -261
  65. package/src/orchestrator/plugins/notion/SKILL.md +205 -0
  66. package/src/orchestrator/plugins/notion/config.ts +47 -0
  67. package/src/orchestrator/plugins/nx/SKILL.md +20 -72
  68. package/src/orchestrator/plugins/playwright/SKILL.md +5 -17
  69. package/src/orchestrator/plugins/slack/SKILL.md +28 -190
  70. package/src/orchestrator/plugins/teams/SKILL.md +10 -140
  71. package/src/orchestrator/plugins/trello/SKILL.md +151 -0
  72. package/src/orchestrator/plugins/trello/config.ts +44 -0
  73. package/src/orchestrator/plugins/types.ts +1 -1
  74. package/src/orchestrator/plugins/vitest/SKILL.md +2 -2
  75. package/src/orchestrator/prompts/bug-fix.prompt.md +25 -63
  76. package/src/orchestrator/prompts/implement-feature.prompt.md +29 -66
  77. package/src/orchestrator/prompts/quick-refinement.prompt.md +31 -66
  78. package/src/orchestrator/skills/accessibility-standards/SKILL.md +50 -105
  79. package/src/orchestrator/skills/agent-hooks/SKILL.md +60 -110
  80. package/src/orchestrator/skills/agent-memory/SKILL.md +44 -93
  81. package/src/orchestrator/skills/api-patterns/SKILL.md +20 -68
  82. package/src/orchestrator/skills/code-commenting/SKILL.md +49 -101
  83. package/src/orchestrator/skills/context-map/SKILL.md +47 -88
  84. package/src/orchestrator/skills/data-engineering/SKILL.md +27 -74
  85. package/src/orchestrator/skills/decomposition/SKILL.md +50 -98
  86. package/src/orchestrator/skills/deployment-infrastructure/SKILL.md +44 -107
  87. package/src/orchestrator/skills/documentation-standards/SKILL.md +28 -89
  88. package/src/orchestrator/skills/fast-review/SKILL.md +51 -276
  89. package/src/orchestrator/skills/frontend-design/SKILL.md +53 -163
  90. package/src/orchestrator/skills/git-workflow/SKILL.md +18 -54
  91. package/src/orchestrator/skills/memory-merger/SKILL.md +51 -88
  92. package/src/orchestrator/skills/observability-logging/SKILL.md +29 -75
  93. package/src/orchestrator/skills/orchestration-protocols/SKILL.md +58 -117
  94. package/src/orchestrator/skills/panel-majority-vote/SKILL.md +65 -140
  95. package/src/orchestrator/skills/performance-optimization/SKILL.md +21 -85
  96. package/src/orchestrator/skills/project-consistency/SKILL.md +62 -281
  97. package/src/orchestrator/skills/react-development/SKILL.md +38 -86
  98. package/src/orchestrator/skills/security-hardening/SKILL.md +40 -84
  99. package/src/orchestrator/skills/self-improvement/SKILL.md +26 -60
  100. package/src/orchestrator/skills/seo-patterns/SKILL.md +40 -105
  101. package/src/orchestrator/skills/session-checkpoints/SKILL.md +26 -68
  102. package/src/orchestrator/skills/team-lead-reference/SKILL.md +66 -206
  103. package/src/orchestrator/skills/testing-workflow/SKILL.md +42 -112
  104. package/src/orchestrator/skills/validation-gates/SKILL.md +39 -170
  105. package/src/orchestrator/snippets/base-output-contract.md +14 -0
  106. package/src/orchestrator/snippets/discovered-issues-policy.md +15 -0
  107. package/src/orchestrator/snippets/logging-mandatory.md +11 -0
  108. package/src/orchestrator/snippets/never-expose-secrets.md +22 -0
@@ -26,26 +26,14 @@ Agent communication patterns via the Microsoft Teams MCP server (Microsoft Agent
26
26
  3. **Graph API permissions:** `McpServers.Teams.All` (delegated or application)
27
27
  4. **Admin consent** for the registered app
28
28
 
29
- > **Note:** The Teams MCP server is in preview and not yet generally available as a standalone endpoint. Features and availability may change.
30
-
31
29
  ## Available MCP Tools
32
30
 
33
- The Teams MCP server exposes tools for:
34
-
35
- - **Chats** — Create, list, read, update, delete chats
36
- - **Messages** — Send, read, edit, delete messages in chats and channels
37
- - **Channels** — List, create, manage channel settings
38
- - **Members** — List, add, remove members from chats and channels
39
- - **Teams** — List teams, get team details, manage team settings
40
-
41
- Tool names follow the pattern `teams_<resource>_<action>`. Use tool discovery to list available tools at runtime.
31
+ Tool names follow `teams_<resource>_<action>`. Covers: chats, messages, channels, members, and team settings. Use tool discovery to list available tools at runtime.
42
32
 
43
33
  ## Agent Notification Patterns
44
34
 
45
35
  ### Progress Updates
46
36
 
47
- Post structured progress updates to a designated channel:
48
-
49
37
  ```
50
38
  Channel: Agent Updates (or project-specific channel)
51
39
  Format:
@@ -55,52 +43,21 @@ Format:
55
43
  **ETA:** ~5 minutes
56
44
  ```
57
45
 
58
- ### Completion Notifications
59
-
60
- ```
61
- ✅ **Task:** TAS-42 — Add price filter component
62
- **Status:** Complete — PR opened
63
- **PR:** https://github.com/org/repo/pull/123
64
- **Summary:** Added PriceRangeFilter with 4 range options, 12 unit tests passing
65
- ```
66
-
67
- ### Error / Blocking Notifications
68
-
69
- ```
70
- 🚨 **Task:** TAS-42 — Add price filter component
71
- **Status:** Blocked — needs human input
72
- **Issue:** Cannot determine correct price ranges for the market
73
- **Action needed:** Reply in this thread with the desired price range values
74
- ```
46
+ ## Human-in-the-Loop Approval
75
47
 
76
- ## Bi-Directional Communication
77
-
78
- ### Human-in-the-Loop Approval
79
-
80
- When an agent needs approval before proceeding:
81
-
82
- 1. **Post approval request** to the channel with clear instructions:
48
+ 1. **Post approval request** to the channel:
83
49
  ```
84
50
  ⏳ **Approval Required**
85
51
  Task: TAS-42 — Database migration adds `price_range` column
86
52
  Action: Run migration on production database
87
-
53
+
88
54
  Reply with:
89
55
  ✅ Approve — to proceed
90
56
  ❌ Reject — to stop
91
57
  Or reply with questions/comments
92
58
  ```
93
-
94
- 2. **Poll for response** — Read replies to determine the decision
95
- 3. **Acknowledge** — Post confirmation of the action taken
96
-
97
- ### Reading User Responses
98
-
99
- To check for approvals or instructions:
100
-
101
- 1. Read message replies in the channel or chat thread
102
- 2. Parse reply content for approval keywords (`approve`, `approved`, `yes`, `proceed`, `reject`, `no`, `stop`)
103
- 3. Check for reactions on messages (Teams supports reactions via Graph API)
59
+ 2. **Poll for response** — Read replies to determine the decision.
60
+ 3. **Acknowledge** — Post confirmation of the action taken.
104
61
 
105
62
  ### Parsing Conventions
106
63
 
@@ -114,15 +71,6 @@ To check for approvals or instructions:
114
71
 
115
72
  ## Channel & Chat Conventions
116
73
 
117
- ### Channel Structure
118
-
119
- | Channel | Purpose |
120
- |---------|---------|
121
- | Agent Updates | General agent activity feed |
122
- | Agent Approvals | Approval requests requiring human action |
123
- | Agent Errors | Error reports and blocked tasks |
124
- | Project-specific channel | All activity for a specific project |
125
-
126
74
  ### Threading Rules
127
75
 
128
76
  - **Always reply in threads** — use message replies, not top-level posts for follow-ups
@@ -130,33 +78,11 @@ To check for approvals or instructions:
130
78
  - **Include task ID** — every message references the tracker issue ID
131
79
  - **Mark important messages** — use importance flags for approval requests
132
80
 
133
- ### Chat vs Channel
134
-
135
- | Use Case | Preferred |
136
- |----------|-----------|
137
- | Team-wide updates | Channel |
138
- | Approval requests | Channel (for visibility) |
139
- | Direct questions | 1:1 or group chat |
140
- | Sensitive discussions | 1:1 chat |
141
-
142
81
  ## Message Formatting
143
82
 
144
- Teams messages support HTML and a subset of Markdown:
145
-
146
- | Format | Syntax |
147
- |--------|--------|
148
- | Bold | `**bold**` or `<strong>bold</strong>` |
149
- | Italic | `*italic*` or `<em>italic</em>` |
150
- | Code | `` `inline code` `` |
151
- | Code block | ` ```code block``` ` |
152
- | Link | `[Display Text](https://example.com)` |
153
- | User mention | `<at>User Name</at>` (requires user ID in adaptive card) |
154
- | List | `- item` or `1. item` |
155
- | Heading | `### Heading` |
156
-
157
83
  ### Adaptive Cards
158
84
 
159
- For richer formatting, Teams supports Adaptive Cards (JSON-based card format):
85
+ For richer formatting, use Adaptive Cards (JSON-based):
160
86
 
161
87
  ```json
162
88
  {
@@ -178,74 +104,18 @@ Use Adaptive Cards for approval workflows when available — they provide struct
178
104
 
179
105
  ## Rate Limits
180
106
 
181
- Microsoft Graph API rate limits for Teams:
182
-
183
- | Resource | Limit |
184
- |----------|-------|
185
- | Messages (per app per tenant) | 50 per second |
186
- | Channel messages | 50 per second |
187
- | Chat creation | 50 per second |
188
- | Individual API calls | 10,000 per 10 minutes |
107
+ Microsoft Graph API: 50 messages/second per app per tenant; 10,000 individual API calls per 10 minutes.
189
108
 
190
109
  **Best practices:**
191
110
  - Batch updates into single messages rather than posting many small messages
192
- - Use threads to consolidate related updates
193
111
  - Cache team/channel/user IDs — don't look them up repeatedly
194
- - Respect 429 (Too Many Requests) responses with retry-after headers
195
112
 
196
113
  ## Security Considerations
197
114
 
198
115
  - **OAuth tokens** are managed by the MCP server — agents never see raw tokens
199
116
  - **Scope minimization** — request only the Graph API permissions agents actually need
200
- - **Tenant restrictions** — configure the app for single-tenant or specific tenant access
201
- - **Conditional Access** — Microsoft Entra Conditional Access policies apply to API calls
202
- - **Audit logging** — Microsoft 365 audit logs capture all Graph API activity
203
- - **No secrets in messages** — never post tokens, passwords, or credentials in Teams messages (per Constitution #1)
204
- - **Data residency** — Teams data is stored in the tenant's Microsoft 365 region
205
-
206
- ## Integration with Agent Workflows
207
-
208
- ### Session Start
209
-
210
- At the beginning of a work session, post a brief status message:
211
- ```
212
- 🏁 **Session started**
213
- Agent: Frontend Engineer
214
- Task: TAS-42 — Add price filter component
215
- Mode: Autonomous (will request approval for destructive actions)
216
- ```
217
-
218
- ### Session End
219
-
220
- At the end of a work session, post a summary:
221
- ```
222
- 🏁 **Session complete**
223
- Agent: Frontend Engineer
224
- Task: TAS-42 — Add price filter component
225
- Result: ✅ PR opened (#123)
226
- Duration: 12 minutes
227
- Files changed: 5
228
- Tests: 12 passing, 0 failing
229
- ```
230
-
231
- ### Error Recovery
232
-
233
- If an agent encounters an unrecoverable error, notify before stopping:
234
- ```
235
- 💥 **Session failed**
236
- Agent: Frontend Engineer
237
- Task: TAS-42 — Add price filter component
238
- Error: TypeScript compilation failed — 3 type errors in PriceFilter.tsx
239
- Action: Posted details in thread. Needs manual fix or re-delegation.
240
- ```
117
+ - **No secrets in messages** — never post tokens, passwords, or credentials in Teams messages
241
118
 
242
119
  ## Preview Limitations
243
120
 
244
- Since the Teams MCP server is in Frontier preview:
245
-
246
- - **Availability** may change without notice
247
- - **Tool surface** may be incomplete compared to the full Graph API
248
- - **Performance** may vary during preview
249
- - **Breaking changes** are possible between preview versions
250
-
251
- Check [Microsoft Agent 365 documentation](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/) for the latest status.
121
+ The Teams MCP server is in Frontier preview — availability and tool surface may change without notice. Check [Microsoft Agent 365 documentation](https://learn.microsoft.com/en-us/microsoft-365-copilot/extensibility/) for the latest status.
@@ -0,0 +1,151 @@
1
+ ---
2
+ name: trello-task-management
3
+ description: "Trello board conventions for tracking feature work — board/list/card workflow, checklist-driven task breakdown, due dates, and when to use comments vs checklist items. Use when decomposing features into cards or resuming interrupted sessions."
4
+ ---
5
+
6
+ <!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->
7
+
8
+ # Task Management with Trello
9
+
10
+ Conventions for tracking feature work on Trello boards via MCP tools. For project-specific board IDs and list IDs, see [tracker-config.md](../../.opencastle/project/tracker-config.md).
11
+
12
+ ## MCP Server
13
+
14
+ | Field | Value |
15
+ |-------|-------|
16
+ | **Package** | [`@delorenj/mcp-server-trello`](https://www.npmjs.com/package/@delorenj/mcp-server-trello) |
17
+ | **Type** | stdio (spawned via `npx -y @delorenj/mcp-server-trello`) |
18
+ | **Auth** | API key + token via `TRELLO_API_KEY` and `TRELLO_TOKEN` env vars |
19
+
20
+ ### Authentication
21
+
22
+ 1. Get your API key at [trello.com/app-key](https://trello.com/app-key) → **API Key**
23
+ 2. On the same page, click **"Generate a Token"** to get your token
24
+ 3. Add both to your `.env` file:
25
+
26
+ ```
27
+ TRELLO_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
28
+ TRELLO_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
29
+ ```
30
+
31
+ ## Available MCP Tools
32
+
33
+ | Tool | Description |
34
+ |------|-------------|
35
+ | `get_boards` | List all boards accessible to the authenticated user |
36
+ | `get_lists` | Get all lists on a board (by board ID) |
37
+ | `get_cards_by_list_id` | Get all cards in a specific list |
38
+ | `get_card_details` | Get full details of a single card |
39
+ | `create_card` | Create a new card in a list |
40
+ | `update_card` | Update card fields (name, description, due date, list) |
41
+ | `add_checklist_to_card` | Add a checklist with items to a card |
42
+ | `add_comment_to_card` | Post a comment on a card |
43
+
44
+ ## Discovered Issues (Bug Tickets)
45
+
46
+ When an agent encounters a pre-existing bug or issue unrelated to the current task, it must be tracked:
47
+
48
+ 1. **Check** existing cards on the board to see if it is already tracked
49
+ 2. **If tracked** — skip it, continue with current work
50
+ 3. **If NOT tracked:**
51
+ - **Unfixable limitation** — add to known issues with severity, evidence, and root cause
52
+ - **Fixable bug** — create a Trello card:
53
+ - **Name:** `[Bug] Short description of the symptom`
54
+ - **List:** `Backlog` (or the equivalent list in your project)
55
+ - **Description:** Include symptoms, reproduction steps, affected files, and any error messages
56
+ - **Due date:** Set only if it is blocking current work
57
+
58
+ ## Card Naming
59
+
60
+ Use `[Area] Short description` format:
61
+
62
+ ```
63
+ [Schema] Add priceRange field to place type
64
+ [DB] Add price_range column and migration
65
+ [UI] Build PriceRangeFilter component
66
+ [API] Add price filter endpoint
67
+ [Test] Unit tests for price filter
68
+ [Docs] Update data model documentation
69
+ ```
70
+
71
+ **Area prefixes:** `[Schema]`, `[DB]`, `[Query]`, `[UI]`, `[Page]`, `[API]`, `[Auth]`, `[Test]`, `[Docs]`, `[Deploy]`, `[Data]`, `[Perf]`, `[Security]`, `[Bug]`
72
+
73
+ ## Board and List Workflow
74
+
75
+ ### Typical List Structure
76
+
77
+ ```
78
+ Backlog → To Do → In Progress → In Review → Done
79
+ ```
80
+
81
+ - **Backlog** — Captured but not yet planned
82
+ - **To Do** — Planned and ready to start
83
+ - **In Progress** — Actively being worked on
84
+ - **In Review** — PR open, awaiting review or merge
85
+ - **Done** — Completed and verified
86
+
87
+ ### Agent-Driven Card Transitions (via MCP)
88
+
89
+ | From | To | When |
90
+ |------|----|------|
91
+ | Backlog / To Do | In Progress | Agent starts working on the card |
92
+ | In Progress | Done | Non-PR task is verified (docs, config) |
93
+ | Any | Backlog | Task is deferred |
94
+
95
+ ## Checklist-Driven Task Breakdown
96
+
97
+ Use checklists for **subtask decomposition within a single card**. This keeps related work together without cluttering the board with micro-cards.
98
+
99
+ ### When to Use a Checklist vs a Separate Card
100
+
101
+ | Use a **checklist item** when… | Use a **separate card** when… |
102
+ |-------------------------------|------------------------------|
103
+ | Steps are sequential and tightly coupled | Work can be assigned independently |
104
+ | Total effort fits in one session | Each step spans multiple sessions |
105
+ | Steps share the same assignee | Steps need different labels/due dates |
106
+ | Internal implementation details | Distinct deliverables that need review |
107
+
108
+ ### Checklist Pattern for Feature Decomposition
109
+
110
+ ```
111
+ Card: [Feature] Add price range filter
112
+ Checklist: Implementation Steps
113
+ ☐ Add priceRange field to schema
114
+ ☐ Create DB migration
115
+ ☐ Update GROQ/API query
116
+ ☐ Build UI component
117
+ ☐ Wire into page
118
+ ☐ Write unit tests
119
+ ☐ Update documentation
120
+ ```
121
+
122
+ ## Due and Start Dates
123
+
124
+ Trello cards support both a **start date** and a **due date**.
125
+
126
+ - **Due date** — The deadline for the card to move to Done. Set for tasks on the critical path.
127
+ - **Start date** — When work is expected to begin. Useful for pipeline planning.
128
+ - **Due time** — Be explicit with time only for time-sensitive deliverables (e.g., scheduled releases).
129
+ - **Format:** Trello API uses ISO 8601: `2026-03-20T14:00:00.000Z`
130
+
131
+ ## Comments vs Checklist Items
132
+
133
+ | Use **comments** for… | Use **checklist items** for… |
134
+ |-----------------------|------------------------------|
135
+ | Progress updates visible to the team | Actionable steps with completion state |
136
+ | Blocking issues or decisions | Pre-defined subtask decomposition |
137
+ | Links to PRs, builds, external docs | Typed acceptance criteria |
138
+ | Questions or async approvals | Implementation sub-steps |
139
+ | Post-implementation notes | QA verification steps |
140
+
141
+ **Rule of thumb:** If it needs to be *checked off*, it's a checklist item. If it needs to be *read*, it's a comment.
142
+
143
+ ## Session Continuity
144
+
145
+ At the start of each work session:
146
+
147
+ 1. `get_boards` — confirm the right board is active
148
+ 2. `get_lists` — identify current list structure
149
+ 3. `get_cards_by_list_id` for **In Progress** — find cards already in flight
150
+ 4. Resume work on the relevant card, updating the checklist as steps complete
151
+ 5. Move the card to the next list when the current phase is done
@@ -0,0 +1,44 @@
1
+ import type { PluginConfig } from '../types.js';
2
+
3
+ export const config: PluginConfig = {
4
+ id: 'trello',
5
+ name: 'Trello',
6
+ category: 'team',
7
+ subCategory: 'task-management',
8
+ label: 'Trello',
9
+ hint: 'Visual board task management via MCP',
10
+ skillName: 'trello-task-management',
11
+ mcpServerKey: 'Trello',
12
+ mcpConfig: {
13
+ type: 'stdio',
14
+ command: 'npx',
15
+ args: ['-y', '@delorenj/mcp-server-trello'],
16
+ envFile: '${workspaceFolder}/.env',
17
+ },
18
+ authType: 'env-token',
19
+ envVars: [
20
+ {
21
+ name: 'TRELLO_API_KEY',
22
+ hint: 'Create at trello.com/app-key -> API Key',
23
+ },
24
+ {
25
+ name: 'TRELLO_TOKEN',
26
+ hint: 'Generate at trello.com/app-key -> Token (click "Generate a Token")',
27
+ },
28
+ ],
29
+ agentToolMap: {
30
+ 'team-lead': [
31
+ 'Trello/get_boards',
32
+ 'Trello/get_lists',
33
+ 'Trello/get_cards_by_list_id',
34
+ 'Trello/get_card_details',
35
+ 'Trello/create_card',
36
+ 'Trello/update_card',
37
+ 'Trello/add_checklist_to_card',
38
+ 'Trello/add_comment_to_card',
39
+ ],
40
+ },
41
+ docsUrl: 'https://www.opencastle.dev/docs/plugins#trello',
42
+ officialDocs: 'https://developer.atlassian.com/cloud/trello/',
43
+ mcpPackage: '@delorenj/mcp-server-trello',
44
+ };
@@ -13,7 +13,7 @@ export interface PluginConfig {
13
13
  category: 'tech' | 'team';
14
14
 
15
15
  /** Sub-category for grouping */
16
- subCategory: 'cms' | 'database' | 'deployment' | 'framework' | 'codebase-tool' | 'task-management' | 'notifications' | 'testing' | 'e2e-testing' | 'design' | 'email';
16
+ subCategory: 'cms' | 'database' | 'deployment' | 'framework' | 'codebase-tool' | 'task-management' | 'knowledge-management' | 'notifications' | 'testing' | 'e2e-testing' | 'design' | 'email';
17
17
 
18
18
  /** Label shown in the `npx opencastle init` multiselect */
19
19
  label: string;
@@ -158,9 +158,9 @@ export default defineConfig({
158
158
  - Use `describe` blocks to group related tests
159
159
  - Each test should be independent — no shared mutable state between tests
160
160
  - Clean up mocks with `vi.restoreAllMocks()` in `afterEach`
161
- - Use `vi.mock()` at the top level Vitest hoists mock calls automatically
161
+ - Mock dependencies before imports — `vi.mock()` calls are hoisted automatically but declare them at the top for clarity
162
162
  - Prefer `toEqual` for objects, `toBe` for primitives
163
163
  - Use `test.each` for parameterized tests
164
164
  - Set coverage thresholds to prevent regression
165
165
  - Use `vi.useFakeTimers()` for time-dependent code — never `setTimeout` in tests
166
- - Use `--reporter=json` in CI for machine-readable output
166
+ - Aim for 3-5 focused tests per file for maintainability — split large test suites
@@ -15,8 +15,6 @@ You are the Team Lead. Investigate and fix the bug described below. Bugs are rea
15
15
 
16
16
  ---
17
17
 
18
- > **Canonical workflow:** `.github/agent-workflows/bug-fix.md` defines the phase structure. This prompt expands each phase with delegation-specific detail. If the two diverge, update the workflow first (SSOT) then sync the prompt.
19
-
20
18
  ## How Bug Fixes Differ from Other Workflows
21
19
 
22
20
  | Aspect | Roadmap Task | Follow-Up | Bug Fix |
@@ -33,52 +31,27 @@ You are the Team Lead. Investigate and fix the bug described below. Bugs are rea
33
31
 
34
32
  ### 1. Triage & Reproduce
35
33
 
36
- Before fixing anything, understand the bug:
37
-
38
34
  1. **Check known issues** — Search `.opencastle/KNOWN-ISSUES.md` for an existing entry. If found, note workarounds and decide if a fix is now feasible
39
35
  2. **Check tracker** — Search for existing bug tickets. If one exists, take it over instead of creating a duplicate
40
36
  3. **Read lessons learned** — Check `.opencastle/LESSONS-LEARNED.md` for related pitfalls
41
- 4. **Reproduce the bug** — Start the dev server and confirm you can trigger the issue:
42
- - Start the dev server (see the **codebase-tool** skill for the serve command)
43
- - Navigate to the affected page in Chrome
44
- - Follow the reproduction steps from the bug report
45
- - Take a screenshot of the broken state as evidence
37
+ 4. **Reproduce the bug** — Start the dev server (see **codebase-tool** skill), navigate to the affected page in Chrome, follow the repro steps, and screenshot the broken state
46
38
  5. **Determine scope** — Which apps are affected? (see `project.instructions.md` for the app inventory)
47
- 6. **Assess severity**:
48
- - **Critical** — App crashes, data loss, auth bypass, page won't load
49
- - **High** — Feature broken but workaround exists, significant UI breakage
50
- - **Medium** — Minor functional issue, cosmetic but noticeable
51
- - **Low** — Edge case, minor visual glitch
39
+ 6. **Assess severity**: Critical (crash/data loss/auth bypass) | High (broken + workaround) | Medium (minor functional) | Low (edge case/cosmetic)
52
40
 
53
41
  ### 2. Create Tracker Issue
54
42
 
55
43
  Every bug gets tracked. Create a tracker issue with:
56
44
 
57
45
  - **Title**: `[Bug] Short description of the symptom`
58
- - **Label**: `bug`
59
- - **Priority**: Based on severity assessment above
60
- - **Description**:
61
- - **Symptom**: What the user sees
62
- - **Reproduction steps**: Exact steps to trigger
63
- - **Expected behavior**: What should happen
64
- - **Actual behavior**: What happens instead
65
- - **Affected apps**: which apps from the project inventory
66
- - **Affected files** (once identified): File paths for the partition
67
- - **Screenshot**: Link or description of the broken state
46
+ - **Label**: `bug`; **Priority**: based on severity
47
+ - **Description**: Symptom, reproduction steps, expected vs actual behavior, affected apps + files, screenshot
68
48
 
69
49
  ### 3. Root Cause Analysis
70
50
 
71
- Find WHY the bug happens, not just WHERE:
72
-
73
51
  1. **Search the codebase** — Find the components, queries, styles, and logic involved
74
- 2. **Trace the data flow** — Follow the data from source (CMS/database) → query → component → render
75
- 3. **Check recent changes** — Use `git log` on suspected files to see if a recent commit introduced the issue
76
- 4. **Identify the root cause** — Distinguish between:
77
- - **Code bug** — Logic error, wrong condition, missing null check
78
- - **Data issue** — Unexpected data shape, missing field, bad reference
79
- - **Race condition** — Timing issue, hydration mismatch, async ordering
80
- - **CSS/Layout** — Specificity conflict, missing responsive rule, overflow
81
- - **Integration** — API contract mismatch, schema drift, stale cache
52
+ 2. **Trace the data flow** — Source (CMS/database) → query → component → render
53
+ 3. **Check recent changes** — `git log` on suspected files
54
+ 4. **Identify the root cause** — Code bug, Data issue, Race condition, CSS/Layout, or Integration failure
82
55
  5. **Update the tracker issue** — Add root cause findings and affected file paths
83
56
 
84
57
  ### 4. Implement the Fix
@@ -91,37 +64,29 @@ All bug fixes are executed via the convoy engine — even single-task fixes —
91
64
 
92
65
  #### Convoy Task Prompt Must Include
93
66
 
94
- - **Tracker issue ID and title** e.g., `TAS-XX [Bug] Description`
95
- - **Root cause** What's wrong and why
96
- - **Fix approach** How to fix it (be specific)
97
- - **File paths** — Exact files to read and modify
98
- - **Reproduction steps** — So the agent can verify the fix
99
- - **Boundaries** — "Only modify files listed above. Fix the bug, do not refactor surrounding code."
100
- - **Self-improvement reminder** — include per the **self-improvement** skill
67
+ - Tracker issue ID and title, root cause, fix approach, file paths, reproduction steps
68
+ - Boundaries: "Only modify files listed above. Fix the bug, do not refactor surrounding code."
69
+ - Self-improvement reminder (see **self-improvement** skill)
101
70
 
102
71
  #### Implementation Rules
103
72
 
104
- - **Minimal change** — Fix the bug with the smallest correct change. Resist the urge to refactor
105
- - **Fix the cause, not the symptom** — A CSS `!important` or silent `catch {}` is not a fix
106
- - **DRY** — If the fix involves logic that exists elsewhere, reuse it
107
- - **Add a test** — If no test covers this scenario, add one. Bugs that aren't tested come back
108
- - **Cross-app awareness** — If the fix is in shared code (`libs/`), verify it works for both apps
73
+ - **Fix cause not symptom** — Minimal change, no refactoring. A CSS `!important` or silent `catch {}` is not a fix
74
+ - **Add a test** — If no test covers this scenario, add one
75
+ - **Cross-app awareness** — If the fix is in `libs/`, verify it works in all consuming apps
109
76
 
110
77
  ### 5. Validate
111
78
 
112
79
  > Load the **validation-gates** skill for detailed steps on each gate.
113
80
 
114
- Every bug fix must pass ALL applicable gates:
115
-
116
- 1. **Gate 1: Secret Scanning** — scan diff for API keys, tokens, passwords, connection strings block immediately if found
117
- 2. **Gate 2: Deterministic Checks** — run lint, test, and build for all affected projects (see the **codebase-tool** skill for commands) — all zero errors
118
- 3. **Gate 3: Blast Radius Check** — verify the fix is minimal and scoped (bug fixes should be ≤100 lines, ≤3 files; escalate if larger)
119
- 4. **Gate 4: Dependency Audit** (when `package.json` or lockfiles change) vulnerability scan, license check, bundle size, duplicates
120
- 5. **Gate 5: Fast Review** (MANDATORY) — single reviewer sub-agent validates the fix. No auto-PASS for sensitive files
121
- 6. **Gate 6: Bug-Specific Verification** (MANDATORY) start dev server, reproduce original bug (should be gone), verify correct behavior, test edge cases, screenshot before/after, check both apps if shared code
122
- 7. **Gate 7: Browser Testing** (for UI-related bugs) clear cache, start server, verify fix + responsive + screenshots
123
- 8. **Gate 8: Regression Testing** — run tests for all projects consuming modified files, browser-test adjacent functionality
124
- 9. **Gate 9: Panel Review** (only if needed) — use **panel-majority-vote** skill if fix touches auth/authorization, RLS, security headers/CSP, or sensitive data
81
+ 1. **Secret Scanning** block if API keys/tokens/passwords found in diff
82
+ 2. **Deterministic Checks** — lint, test, build — zero errors (see **codebase-tool** skill)
83
+ 3. **Blast Radius** — bug fixes should be ≤100 lines / ≤3 files; escalate if larger
84
+ 4. **Dependency Audit** — when `package.json` or lockfiles change
85
+ 5. **Fast Review** (MANDATORY) single reviewer sub-agent
86
+ 6. **Bug-Specific Verification** (MANDATORY) reproduce original bug (should be gone), verify correct behavior, screenshot before/after, check both apps if shared code
87
+ 7. **Browser Testing** (for UI bugs) — clear cache, verify fix + responsive + screenshots
88
+ 8. **Regression Testing** — run tests for all projects consuming modified files
89
+ 9. **Panel Review** only if fix touches auth/authorization, RLS, security headers, or sensitive data (use **panel-majority-vote** skill)
125
90
 
126
91
  ### 6. Delivery
127
92
 
@@ -129,10 +94,9 @@ Follow the **Delivery Outcome** defined in the **git-workflow** skill — commit
129
94
 
130
95
  ### 7. Wrap Up
131
96
 
132
- 1. **Move tracker issue to Done** Only after all validation passes
133
- 2. **Update Known Issues** — If this was a documented known issue, remove or update the entry in `.opencastle/KNOWN-ISSUES.md`
134
- 3. **Capture lessons** — If the root cause reveals a pattern that other agents should know about, use the **self-improvement** skill to add a lesson
135
- 4. **Note prevention** — If this class of bug could be caught earlier (by a lint rule, test, or type check), note that in the tracker issue as a follow-up suggestion
97
+ 1. **Close out** — Move tracker to Done; remove or update any `.opencastle/KNOWN-ISSUES.md` entry if applicable
98
+ 2. **Capture lessons** — Use the **self-improvement** skill if the root cause reveals a pattern others should know
99
+ 3. **Note prevention** — If the bug class could be caught earlier, note it in the tracker as a follow-up
136
100
 
137
101
  ### 8. Completion Criteria
138
102
 
@@ -142,9 +106,7 @@ The bug fix is complete when:
142
106
  - [ ] Tracker issue created with full details
143
107
  - [ ] Fix implemented with minimal change
144
108
  - [ ] Test added covering the bug scenario
145
- - [ ] Lint, test, and build pass for all affected projects
146
109
  - [ ] Bug verified fixed in the browser
147
- - [ ] No regressions in adjacent functionality
148
110
  - [ ] Both apps checked if shared code was modified
149
111
  - [ ] Delivery Outcome completed (see the **git-workflow** skill) — branch pushed, PR opened (not merged), tracker linked
150
112
  - [ ] Tracker issue moved to Done