@crewpilot/agent 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/README.md +131 -107
  2. package/dist-npm/cli.js +0 -0
  3. package/dist-npm/index.js +160 -127
  4. package/package.json +69 -69
  5. package/prompts/agent.md +282 -266
  6. package/prompts/catalyst.config.json +72 -72
  7. package/prompts/copilot-instructions.md +36 -36
  8. package/prompts/skills/assure-code-quality/SKILL.md +112 -112
  9. package/prompts/skills/assure-pr-intelligence/SKILL.md +148 -148
  10. package/prompts/skills/assure-review-functional/SKILL.md +114 -0
  11. package/prompts/skills/assure-review-standards/SKILL.md +106 -0
  12. package/prompts/skills/assure-threat-model/SKILL.md +182 -0
  13. package/prompts/skills/assure-vulnerability-scan/SKILL.md +146 -146
  14. package/prompts/skills/autopilot-meeting/SKILL.md +434 -407
  15. package/prompts/skills/autopilot-worker/SKILL.md +737 -623
  16. package/prompts/skills/daily-digest/SKILL.md +188 -167
  17. package/prompts/skills/deliver-change-management/SKILL.md +132 -132
  18. package/prompts/skills/deliver-deploy-guard/SKILL.md +144 -144
  19. package/prompts/skills/deliver-doc-governance/SKILL.md +130 -130
  20. package/prompts/skills/engineer-feature-builder/SKILL.md +270 -270
  21. package/prompts/skills/engineer-root-cause-analysis/SKILL.md +150 -150
  22. package/prompts/skills/engineer-test-first/SKILL.md +148 -148
  23. package/prompts/skills/insights-knowledge-base/SKILL.md +202 -181
  24. package/prompts/skills/insights-pattern-detection/SKILL.md +142 -142
  25. package/prompts/skills/strategize-architecture-planner/SKILL.md +141 -141
  26. package/prompts/skills/strategize-solution-design/SKILL.md +118 -118
  27. package/scripts/postinstall.js +108 -108
@@ -1,407 +1,434 @@
1
- # Autopilot Meeting
2
-
3
- > **Pillar**: Orchestrate | **ID**: `autopilot-meeting`
4
-
5
- ## Purpose
6
-
7
- Parse a meeting transcript (standup, planning, retro, customer call) to extract work items — then create **user stories with acceptance criteria and subtasks**, group them under **epics**, and push everything to the board. Turns a 30-minute meeting into a fully structured backlog with zero manual data entry.
8
-
9
- Specifically supports the **PM workflow**: customer meeting → epics → user stories → subtasks → sized & prioritized → sprint-ready.
10
-
11
- ## Activation Triggers
12
-
13
- - meeting, transcript, standup, planning, retro, parse meeting, meeting notes, action items, from meeting, customer call, user stories from meeting, create stories, backlog from meeting
14
-
15
- ## Tools Required
16
-
17
- - `catalyst_board_create` — create issues / user stories on board
18
- - `catalyst_board_create_epic` — create epics to group related stories
19
- - `catalyst_board_create_subtask` — create subtasks linked to a parent story
20
- - `catalyst_board_move` — update issue status for status updates
21
- - `catalyst_board_comment` — log blockers and decisions on existing issues
22
- - `catalyst_board_assign` — assign tasks to people mentioned in transcript
23
- - `catalyst_knowledge_store` — store decisions, customer context, and action items
24
- - `catalyst_worker_start` — optionally kick off autopilot for created tasks
25
-
26
- ## Methodology
27
-
28
- ### Process Flow
29
-
30
- ```dot
31
- digraph autopilot_meeting {
32
- rankdir=TB;
33
- node [shape=box];
34
-
35
- ingest [label="Phase 1\nTranscript Ingestion"];
36
- extract [label="Phase 2\nExtraction & Classification"];
37
- structure [label="Phase 3\nUser Story Structuring\n(stories, criteria, subtasks,\nsizing, epics)"];
38
- review_gate [label="Phase 4\nHUMAN GATE:\nReview Backlog", shape=diamond, style=filled, fillcolor="#ffcccc"];
39
- create [label="Phase 5\nBoard Creation Pipeline"];
40
- summary [label="Phase 6\nSummary", shape=doublecircle];
41
-
42
- ingest -> extract;
43
- extract -> structure;
44
- structure -> review_gate;
45
- review_gate -> create [label="approve"];
46
- review_gate -> structure [label="edit/split/merge"];
47
- review_gate -> summary [label="cancel"];
48
- create -> summary;
49
- }
50
- ```
51
-
52
- ### Phase 1 — Transcript Ingestion
53
-
54
- Accept transcript in any format:
55
- - Pasted text (most common)
56
- - File path to `.vtt`, `.txt`, or `.md` file (read via tools)
57
- - Structured notes with speaker labels
58
-
59
- Identify:
60
- - **Speaker labels** look for "Name:", "Speaker 1:", timestamps with names
61
- - **Meeting type** standup (short updates), planning (task creation), retro (action items), **customer call** (feature requests, requirements)
62
- - If no speaker labels, treat as unstructured notes and extract items without assignee attribution
63
- - **Customer context** if this is a customer/stakeholder meeting, note: who the customer is, what their role is, business justification for requests
64
-
65
- ### Phase 2Extraction & Classification
66
-
67
- For each speaker turn or paragraph, classify content into:
68
-
69
- | Type | Pattern Signals |
70
- |---|---|
71
- | **FEATURE_REQUEST** | "we need", "customers want", "can we add", "requirement is", "must have", "should support" |
72
- | **USER_STORY** | "as a user", "when I", "so that", "use case", "scenario", "workflow" |
73
- | **NEW_TASK** | "we need to", "can you", "let's build", "should implement", "create a", "add support for" |
74
- | **STATUS_UPDATE** | "I finished", "almost done", "completed", "working on", "made progress on" |
75
- | **BLOCKER** | "blocked on", "stuck", "waiting for", "can't proceed", "need access to", "depends on" |
76
- | **DECISION** | "we decided", "agreed to", "let's go with", "consensus is", "chose X over Y" |
77
- | **ACTION_ITEM** | "will do", "I'll take", "by Friday", "follow up on", name + commitment |
78
- | **NOISE** | "can you hear me", "you're muted", greetings, filler, tangents — SKIP these |
79
- | **BUG_REPORT** | "crashes", "broken", "doesn't work", "error", "500", "blank page", "regression", "users reporting", "intermittent", "something's wrong", "used to work", "data is wrong", "wrong result", "security issue", "vulnerability", "can't access", "slow", "performance degraded", "memory", "leak" |
80
- | **NEEDS_DESIGN** | "figure out the approach", "evaluate options", "which technology", "trade-offs", "compare solutions", "design doc needed", "need to think through", "spike on", "investigate how", "multiple ways to" |
81
- | **NEEDS_ARCHITECTURE** | "new system", "new module", "architecture plan", "system design", "how do components interact", "service boundary", "data flow", "new service", "infrastructure change", "cross-cutting concern" |
82
-
83
- ### Phase 3 User Story Structuring
84
-
85
- For each FEATURE_REQUEST, USER_STORY, or NEW_TASK, generate a **structured user story**.
86
- For each BUG_REPORT, generate a **structured bug report** instead (see 3a-bug below).
87
-
88
- #### 3a. User Story Format (for features/tasks)
89
- ```
90
- Title: <concise action-oriented title, max 10 words>
91
-
92
- As a [persona/role],
93
- I want [capability/action],
94
- So that [business value/outcome].
95
- ```
96
-
97
- #### 3a-bug. Bug Report Format (for BUG_REPORT items)
98
-
99
- Bugs are NOT user stories. They follow a different structure optimized for investigation:
100
-
101
- ```
102
- Title: "Fix: <symptom in plain language>" (e.g., "Fix: Order history crashes for some users")
103
-
104
- ## Symptoms
105
- - What users are seeing (exact error messages, behavior)
106
- - When it started / how often it happens
107
- - How many users are affected
108
-
109
- ## Reproduction Steps (extracted from transcript)
110
- 1. [Step extracted from discussion, or "Needs investigation" if not described]
111
- 2. ...
112
-
113
- ## Suspected Area
114
- - Module/component mentioned in discussion (if any)
115
- - Related recent changes (if mentioned)
116
-
117
- ## Severity
118
- - P0: Security vulnerability, data loss, full outage
119
- - P1: Feature broken for subset of users, data integrity issue
120
- - P2: Degraded experience, workaround exists
121
- - P3: Minor annoyance, cosmetic, performance nit
122
- ```
123
-
124
- **Critical rule for bugs**: The first stage when a worker picks up a bug is **Root Cause Analysis (Phase 2.5c)**, NOT implementation. The task description must frame the work as "Investigate and fix" — never "Implement" or "Build". This ensures the worker runs the RCA skill (hypothesis-driven debugging) before writing any code.
125
-
126
- **Bug severity auto-mapping** (extracted from transcript signals):
127
- | Signal in Transcript | Severity | Label |
128
- |---|---|---|
129
- | "security", "vulnerability", "unauthorized", "bypass", "data exposed" | P0 | `bug`, `security` |
130
- | "crashes", "500 error", "blank page", "data loss", "wrong totals" | P1 | `bug` |
131
- | "slow", "degraded", "intermittent", "workaround" | P2 | `bug` |
132
- | "annoying", "cosmetic", "minor", "eventually" | P3 | `bug` |
133
-
134
- #### 3b. Acceptance Criteria (generate 3-5 per story)
135
- ```
136
- ## Acceptance Criteria
137
- - [ ] Given [precondition], when [action], then [expected result]
138
- - [ ] Given [precondition], when [action], then [expected result]
139
- - [ ] Edge case: [scenario] is handled gracefully
140
- - [ ] Error state: [failure mode] shows appropriate message
141
- - [ ] Performance: [action] completes within [threshold] (if applicable)
142
- ```
143
-
144
- #### 3c. Subtask Decomposition (generate 3-6 subtasks per story)
145
- Break each story into implementation subtasks:
146
- ```
147
- Subtasks:
148
- 1. [Backend] <API/data layer work>
149
- 2. [Frontend] <UI component work> (if applicable)
150
- 3. [Validation] <input validation, error handling>
151
- 4. [Tests] <unit + integration tests>
152
- 5. [Docs] <API docs, user docs> (if applicable)
153
- 6. [Migration] <data migration, schema changes> (if applicable)
154
- ```
155
-
156
- #### 3d. Sizing & Priority
157
- For each story, estimate:
158
- - **T-shirt size**: XS (< 2h) | S (half day) | M (1-2 days) | L (3-5 days) | XL (1+ week)
159
- - **Story points**: 1 | 2 | 3 | 5 | 8 | 13 (Fibonacci, based on complexity + uncertainty)
160
- - **Priority**: P0 (critical/blocking) | P1 (must-have this sprint) | P2 (should-have) | P3 (nice-to-have)
161
- - **Priority rationale**: one sentence explaining why this priority
162
-
163
- Use these signals for priority:
164
- - P0: "urgent", "blocking", "production issue", "customer escalation"
165
- - P1: "important", "committed", "this sprint", "promised to customer"
166
- - P2: "should do", "next sprint candidate", "good improvement"
167
- - P3: "nice to have", "someday", "low impact"
168
-
169
- #### 3e. Epic Grouping
170
- Group related stories under an epic:
171
- - If 3+ stories share a theme (e.g., "authentication", "dashboard", "API v2") → create an epic
172
- - Epic title format: `[Epic] <theme name>`
173
- - Each epic gets a high-level description summarizing the business goal
174
- - Stories reference their parent epic via label `epic:<epic-title-slug>`
175
-
176
- #### 3f. Dependency Detection
177
- Identify dependencies between stories:
178
- - "before we can do X, we need Y" → Y blocks X
179
- - "this depends on the API being ready" dependency noted
180
- - Add dependency info to the Technical Notes section of the story
181
-
182
- #### 3g. Customer Context (for customer/stakeholder meetings)
183
- If customer context was detected in Phase 1, attach to each relevant story:
184
- ```
185
- ## Customer Context
186
- - **Requested by**: [customer name/company]
187
- - **Business justification**: [why they need this]
188
- - **Commitment**: [was anything promised? timeline?]
189
- - **Impact**: [how many users/accounts affected]
190
- ```
191
-
192
- ### Phase 4 HUMAN GATE: Review Structured Backlog
193
-
194
- <HARD-GATE>
195
- Do NOT create any issues, epics, or stories on the board until the user has reviewed and approved the structured backlog.
196
- Do NOT skip this gate even if the user says "just create everything" before seeing the structured output.
197
- Present the full backlog first, then wait for explicit approval.
198
- </HARD-GATE>
199
-
200
- **STOP. Present the full structured backlog for approval:**
201
-
202
- ```
203
- 📋 Meeting Backlog Results
204
-
205
- Meeting type: {standup|planning|retro|customer-call}
206
- Speakers identified: {list}
207
- Customer: {customer name, if applicable}
208
-
209
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
- EPICS ({count}):
211
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
212
-
213
- 📦 Epic 1: "{epic title}"
214
- {epic description}
215
- Stories: {count} | Total points: {sum}
216
-
217
- 📝 Story 1.1: "{title}" [{T-shirt}] [{points}pts] [P{priority}]
218
- As a {persona}, I want {X}, so that {Y}
219
- Acceptance Criteria: {count} items
220
- Subtasks: {count} items
221
- Assignee: @{assignee} (or unassigned)
222
- Dependencies: {list or "none"}
223
-
224
- 📝 Story 1.2: "{title}" [{T-shirt}] [{points}pts] [P{priority}]
225
- ...
226
-
227
- 📦 Epic 2: "{epic title}"
228
- ...
229
-
230
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
231
- STANDALONE ITEMS:
232
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
233
-
234
- BUG REPORTS ({count}):
235
- 1. 🐛 [P{severity}] "{title}" — {symptom summary}
236
- Labels: bug{, security if applicable}
237
- Suspected area: {module}
238
- Worker flow: RCA (Phase 2.5c) → Fix → Test → PR
239
-
240
- STATUS UPDATES ({count}):
241
- 1. 🔄 @{person}: {task} — {update}
242
-
243
- BLOCKERS ({count}):
244
- 1. 🚫 @{person}: {blocker description}
245
-
246
- DECISIONS ({count}):
247
- 1. 💡 {decision} — agreed by: {participants}
248
-
249
- ACTION ITEMS ({count}):
250
- 1. ⏰ @{person}: {action} — due: {date if mentioned}
251
-
252
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
253
- SUMMARY:
254
- Epics: {N} | Stories: {N} | Bugs: {N} | Subtasks: {N}
255
- Total points: {N} | Avg priority: P{N}
256
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
257
-
258
- Options:
259
- [A] Approve all → create everything on board
260
- [E] Edit → modify specific items
261
- [S] Split → break a story into smaller stories
262
- [M] Merge combine similar stories
263
- [R] Re-prioritize change priorities
264
- [C] Cancel → discard
265
- ```
266
-
267
- User can:
268
- - **Approve all** proceed to create everything
269
- - **Edit** → modify specific items (change title, acceptance criteria, reassign, resize, re-prioritize, remove)
270
- - **Split** → break a large story into smaller ones
271
- - **Merge** combine duplicate or overlapping stories
272
- - **Re-prioritize** → adjust priority assignments
273
- - **Cancel** → stop
274
-
275
- ### Phase 5 — Board Creation Pipeline
276
-
277
- Execute in this order:
278
-
279
- **Step 1: Create Epics**
280
- For each epic:
281
- 1. Call `catalyst_board_create_epic` with title, description, labels
282
- 2. Note the created epic issue ID
283
-
284
- **Step 2: Create User Stories**
285
- For each story:
286
- 1. Build the full description with Summary, User Story statement, Acceptance Criteria, Technical Notes, Customer Context (if applicable), Dependencies
287
- 2. Call `catalyst_board_create` with:
288
- - title
289
- - structured description (see format below)
290
- - assignee
291
- - labels: `["user-story", "epic:<epic-slug>", "size:<t-shirt>", "priority:P{N}"]`
292
- - **If the story was tagged NEEDS_DESIGN in Phase 2**, add `needs-design` to labels
293
- - **If the story was tagged NEEDS_ARCHITECTURE in Phase 2**, add `needs-architecture` to labels
294
- - **If the story was tagged BUG_REPORT in Phase 2**, add `bug` to labels (and `security` if it's a security bug). Use `"bug"` instead of `"user-story"` as the first label. **This is critical** — without the `bug` label, the worker will skip RCA (Phase 2.5c) and jump straight to implementation, meaning the root cause is never properly diagnosed.
295
- - A story can have multiple signal labels (e.g., `bug` + `needs-design` if fixing requires design evaluation)
296
- - priority
297
- - points (Fibonacci story points)
298
- 3. Note the created story issue ID
299
-
300
- **Story description format for board_create (features):**
301
- ```markdown
302
- ## Summary
303
- {what and why — 2-3 sentences}
304
-
305
- ## User Story
306
- As a {persona}, I want {capability}, so that {business value}.
307
-
308
- ## Acceptance Criteria
309
- - [ ] Given {precondition}, when {action}, then {expected result}
310
- - [ ] ...
311
-
312
- ## Technical Notes
313
- - Stack: {relevant technologies}
314
- - Dependencies: {blocking stories or external deps}
315
- - Constraints: {performance, security, compatibility requirements}
316
- ```
317
-
318
- **Bug description format for board_create (BUG_REPORT items):**
319
- ```markdown
320
- ## Summary
321
- Investigate and fix: {symptom description1-2 sentences}
322
-
323
- ## Symptoms
324
- - {what users are experiencing}
325
- - {frequency / affected user count if mentioned}
326
-
327
- ## Reproduction Steps
328
- 1. {step from transcript or "Needs investigation"}
329
- 2. ...
330
-
331
- ## Suspected Area
332
- - {module/file/component mentioned in discussion}
333
- - {related recent changes if mentioned}
334
-
335
- ## Technical Notes
336
- - Severity: {P0-P3 with rationale}
337
- - Stack: {relevant technologies}
338
- - Dependencies: {blocking issues or external deps}
339
-
340
- ## Customer Context
341
- - Requested by: {customer} (if applicable)
342
- - Business justification: {why}
343
- ```
344
-
345
- **Step 3: Create Subtasks**
346
- For each story's subtasks:
347
- 1. Call `catalyst_board_create_subtask` with:
348
- - parent_id: the story's issue ID
349
- - title: `[Backend] Implement user authentication endpoint`
350
- - description: implementation details
351
- - labels: `["subtask", "epic:<epic-slug>"]`
352
- 2. Note created subtask IDs
353
-
354
- **Step 4: Status Updates, Blockers, Decisions**
355
- Same as before:
356
- - STATUS_UPDATE → `catalyst_board_comment` or `catalyst_board_move`
357
- - BLOCKER → `catalyst_board_comment` or create blocker issue
358
- - DECISION → `catalyst_knowledge_store` with type: "decision"
359
- - ACTION_ITEM board issue or knowledge store
360
-
361
- **Step 5: Autopilot (optional)**
362
- If user requested autopilot → call `catalyst_worker_start` for each created story
363
-
364
- ### Phase 6 — Summary
365
-
366
- Present final summary:
367
-
368
- ```
369
- Meeting Backlog Complete
370
-
371
- Epics created: {N} (#{ids})
372
- Stories created: {N} (#{ids})
373
- Subtasks created: {N} (#{ids})
374
- Total points: {N}
375
- Updated: {N} existing items
376
- Blockers: {N} logged
377
- Decisions: {N} stored in knowledge base
378
- Autopilot: {N} workflows started (if any)
379
-
380
- Board: Use catalyst_board_view to see the full board
381
-
382
- Dependency chain:
383
- Story #{X}blocks Story #{Y}
384
- Story #{Z}blocks Story #{W}
385
- ```
386
-
387
- ## Output Format
388
-
389
- Use the structured formats shown in each phase. Group by epic → story → subtask. Always show counts and point totals.
390
-
391
- ## Anti-Patterns
392
-
393
- - Do NOT create issues without showing them to the user first (Phase 4 gate is mandatory)
394
- - Do NOT guess assignees if the transcript doesn't mention names — leave unassigned
395
- - Do NOT extract noise/filler as tasks
396
- - Do NOT create duplicate issues — if the transcript mentions an existing task, UPDATE it
397
- - Do NOT auto-start autopilot without explicit user consent
398
- - Do NOT include meeting transcript verbatim in issue descriptions — summarize
399
- - Do NOT create stories without acceptance criteria — every story needs at least 3 criteria
400
- - Do NOT skip subtask decomposition — every story gets 3-6 subtasks
401
- - Do NOT assign arbitrary story points — use complexity signals from the transcript
402
- - Do NOT create an epic for a single story — epics need 3+ related stories (otherwise standalone)
403
-
404
- ## Chains To
405
-
406
- - `autopilot-worker` — for stories that should be implemented automatically
407
- - `knowledge-base` decisions and customer context are always stored
1
+ # Autopilot Meeting
2
+
3
+ > **Pillar**: Orchestrate | **ID**: `autopilot-meeting`
4
+
5
+ ## Purpose
6
+
7
+ Parse a meeting transcript (standup, planning, retro, customer call) to extract work items — then create **user stories with acceptance criteria and subtasks**, group them under **epics**, and push everything to the board. Turns a 30-minute meeting into a fully structured backlog with zero manual data entry.
8
+
9
+ Specifically supports the **PM workflow**: customer meeting → epics → user stories → subtasks → sized & prioritized → sprint-ready.
10
+
11
+ ## Activation Triggers
12
+
13
+ - meeting, transcript, standup, planning, retro, parse meeting, meeting notes, action items, from meeting, customer call, user stories from meeting, create stories, backlog from meeting
14
+
15
+ ## Tools Required
16
+
17
+ - `catalyst_board_create` — create issues / user stories on board
18
+ - `catalyst_board_create_epic` — create epics to group related stories
19
+ - `catalyst_board_create_subtask` — create subtasks linked to a parent story
20
+ - `catalyst_board_move` — update issue status for status updates
21
+ - `catalyst_board_comment` — log blockers and decisions on existing issues
22
+ - `catalyst_board_assign` — assign tasks to people mentioned in transcript
23
+ - `catalyst_knowledge_store` — store decisions, customer context, and action items
24
+ - `catalyst_worker_start` — optionally kick off autopilot for created tasks
25
+ - `mcp_workiq_accept_eula` — (optional) accept Work IQ EULA before first query
26
+ - `mcp_workiq_ask_work_iq` — (optional, requires Work IQ extension) fetch meeting transcript and details from M365
27
+ - `catalyst_artifact_write` — persist extracted meeting data as artifacts
28
+
29
+ ## Methodology
30
+
31
+ ### Process Flow
32
+
33
+ ```dot
34
+ digraph autopilot_meeting {
35
+ rankdir=TB;
36
+ node [shape=box];
37
+
38
+ ingest [label="Phase 1\nTranscript Ingestion"];
39
+ extract [label="Phase 2\nExtraction & Classification"];
40
+ structure [label="Phase 3\nUser Story Structuring\n(stories, criteria, subtasks,\nsizing, epics)"];
41
+ review_gate [label="Phase 4\nHUMAN GATE:\nReview Backlog", shape=diamond, style=filled, fillcolor="#ffcccc"];
42
+ create [label="Phase 5\nBoard Creation Pipeline"];
43
+ summary [label="Phase 6\nSummary", shape=doublecircle];
44
+
45
+ ingest -> extract;
46
+ extract -> structure;
47
+ structure -> review_gate;
48
+ review_gate -> create [label="approve"];
49
+ review_gate -> structure [label="edit/split/merge"];
50
+ review_gate -> summary [label="cancel"];
51
+ create -> summary;
52
+ }
53
+ ```
54
+
55
+ ### Phase 1 Transcript Ingestion
56
+
57
+ **Work IQ integration (zero-copy flow):** If the user specifies a meeting by name/date/subject (e.g. "parse yesterday's sprint planning" or "check my meeting discussion"):
58
+
59
+ 1. **Accept EULA first**: Call `mcp_workiq_accept_eula` with `eulaUrl: "https://github.com/microsoft/work-iq-mcp"`. This is idempotent — safe to call every time.
60
+ 2. **Query the meeting**: Call `mcp_workiq_ask_work_iq` with a focused question. Use targeted queries for better results:
61
+ - "What was discussed in the {meeting name} meeting on {date}?"
62
+ - "Summarize the transcript from my meeting with {person} on {date}"
63
+ - "What action items came out of the {project} meeting?"
64
+ - "What decisions were made in the {topic} meeting?"
65
+ 3. If Work IQ is available, the transcript, attendees, and action items are fetched automatically no manual paste needed.
66
+ 4. **Cross-meeting context**: Query for prior decisions related to the same topic:
67
+ - "What decisions were made about {topic} in previous meetings?"
68
+ - "What was discussed about {feature/project} in earlier meetings this month?"
69
+ - This surfaces continuity across meetings — ensures new items don't contradict prior agreements.
70
+ 5. **Speaker identity enrichment**: Query the org chart for real names and roles:
71
+ - "Who is {speaker name}? What is their role and team?"
72
+ - Map speaker labels to real identities for accurate assignee attribution and RACI context.
73
+ 6. **Linked document references**: Query for documents referenced or shared during the meeting:
74
+ - "What documents, specs, or design docs were shared in the {meeting name} meeting?"
75
+ - "Find SharePoint/OneDrive documents related to {topic} shared recently"
76
+ - Attach linked docs to the relevant stories as context references.
77
+ 7. If `mcp_workiq_ask_work_iq` is unavailable or errors, fall back to the manual flow below.
78
+
79
+ > **Data sensitivity**: Meeting transcripts may contain confidential information or PII. Do not include raw transcript excerpts with names or customer-identifying details in board items summarize and anonymize.
80
+
81
+ Accept transcript in any format:
82
+ - Pasted text (most common)
83
+ - File path to `.vtt`, `.txt`, or `.md` file (read via tools)
84
+ - Structured notes with speaker labels
85
+
86
+ Identify:
87
+ - **Speaker labels** — look for "Name:", "Speaker 1:", timestamps with names
88
+ - **Meeting type** standup (short updates), planning (task creation), retro (action items), **customer call** (feature requests, requirements)
89
+ - If no speaker labels, treat as unstructured notes and extract items without assignee attribution
90
+ - **Customer context** — if this is a customer/stakeholder meeting, note: who the customer is, what their role is, business justification for requests
91
+
92
+ ### Phase 2 — Extraction & Classification
93
+
94
+ For each speaker turn or paragraph, classify content into:
95
+
96
+ | Type | Pattern Signals |
97
+ |---|---|
98
+ | **FEATURE_REQUEST** | "we need", "customers want", "can we add", "requirement is", "must have", "should support" |
99
+ | **USER_STORY** | "as a user", "when I", "so that", "use case", "scenario", "workflow" |
100
+ | **NEW_TASK** | "we need to", "can you", "let's build", "should implement", "create a", "add support for" |
101
+ | **STATUS_UPDATE** | "I finished", "almost done", "completed", "working on", "made progress on" |
102
+ | **BLOCKER** | "blocked on", "stuck", "waiting for", "can't proceed", "need access to", "depends on" |
103
+ | **DECISION** | "we decided", "agreed to", "let's go with", "consensus is", "chose X over Y" |
104
+ | **ACTION_ITEM** | "will do", "I'll take", "by Friday", "follow up on", name + commitment |
105
+ | **NOISE** | "can you hear me", "you're muted", greetings, filler, tangents — SKIP these |
106
+ | **BUG_REPORT** | "crashes", "broken", "doesn't work", "error", "500", "blank page", "regression", "users reporting", "intermittent", "something's wrong", "used to work", "data is wrong", "wrong result", "security issue", "vulnerability", "can't access", "slow", "performance degraded", "memory", "leak" |
107
+ | **NEEDS_DESIGN** | "figure out the approach", "evaluate options", "which technology", "trade-offs", "compare solutions", "design doc needed", "need to think through", "spike on", "investigate how", "multiple ways to" |
108
+ | **NEEDS_ARCHITECTURE** | "new system", "new module", "architecture plan", "system design", "how do components interact", "service boundary", "data flow", "new service", "infrastructure change", "cross-cutting concern" |
109
+
110
+ ### Phase 3 User Story Structuring
111
+
112
+ For each FEATURE_REQUEST, USER_STORY, or NEW_TASK, generate a **structured user story**.
113
+ For each BUG_REPORT, generate a **structured bug report** instead (see 3a-bug below).
114
+
115
+ #### 3a. User Story Format (for features/tasks)
116
+ ```
117
+ Title: <concise action-oriented title, max 10 words>
118
+
119
+ As a [persona/role],
120
+ I want [capability/action],
121
+ So that [business value/outcome].
122
+ ```
123
+
124
+ #### 3a-bug. Bug Report Format (for BUG_REPORT items)
125
+
126
+ Bugs are NOT user stories. They follow a different structure optimized for investigation:
127
+
128
+ ```
129
+ Title: "Fix: <symptom in plain language>" (e.g., "Fix: Order history crashes for some users")
130
+
131
+ ## Symptoms
132
+ - What users are seeing (exact error messages, behavior)
133
+ - When it started / how often it happens
134
+ - How many users are affected
135
+
136
+ ## Reproduction Steps (extracted from transcript)
137
+ 1. [Step extracted from discussion, or "Needs investigation" if not described]
138
+ 2. ...
139
+
140
+ ## Suspected Area
141
+ - Module/component mentioned in discussion (if any)
142
+ - Related recent changes (if mentioned)
143
+
144
+ ## Severity
145
+ - P0: Security vulnerability, data loss, full outage
146
+ - P1: Feature broken for subset of users, data integrity issue
147
+ - P2: Degraded experience, workaround exists
148
+ - P3: Minor annoyance, cosmetic, performance nit
149
+ ```
150
+
151
+ **Critical rule for bugs**: The first stage when a worker picks up a bug is **Root Cause Analysis (Phase 2.5c)**, NOT implementation. The task description must frame the work as "Investigate and fix" — never "Implement" or "Build". This ensures the worker runs the RCA skill (hypothesis-driven debugging) before writing any code.
152
+
153
+ **Bug severity auto-mapping** (extracted from transcript signals):
154
+ | Signal in Transcript | Severity | Label |
155
+ |---|---|---|
156
+ | "security", "vulnerability", "unauthorized", "bypass", "data exposed" | P0 | `bug`, `security` |
157
+ | "crashes", "500 error", "blank page", "data loss", "wrong totals" | P1 | `bug` |
158
+ | "slow", "degraded", "intermittent", "workaround" | P2 | `bug` |
159
+ | "annoying", "cosmetic", "minor", "eventually" | P3 | `bug` |
160
+
161
+ #### 3b. Acceptance Criteria (generate 3-5 per story)
162
+ ```
163
+ ## Acceptance Criteria
164
+ - [ ] Given [precondition], when [action], then [expected result]
165
+ - [ ] Given [precondition], when [action], then [expected result]
166
+ - [ ] Edge case: [scenario] is handled gracefully
167
+ - [ ] Error state: [failure mode] shows appropriate message
168
+ - [ ] Performance: [action] completes within [threshold] (if applicable)
169
+ ```
170
+
171
+ #### 3c. Subtask Decomposition (generate 3-6 subtasks per story)
172
+ Break each story into implementation subtasks:
173
+ ```
174
+ Subtasks:
175
+ 1. [Backend] <API/data layer work>
176
+ 2. [Frontend] <UI component work> (if applicable)
177
+ 3. [Validation] <input validation, error handling>
178
+ 4. [Tests] <unit + integration tests>
179
+ 5. [Docs] <API docs, user docs> (if applicable)
180
+ 6. [Migration] <data migration, schema changes> (if applicable)
181
+ ```
182
+
183
+ #### 3d. Sizing & Priority
184
+ For each story, estimate:
185
+ - **T-shirt size**: XS (< 2h) | S (half day) | M (1-2 days) | L (3-5 days) | XL (1+ week)
186
+ - **Story points**: 1 | 2 | 3 | 5 | 8 | 13 (Fibonacci, based on complexity + uncertainty)
187
+ - **Priority**: P0 (critical/blocking) | P1 (must-have this sprint) | P2 (should-have) | P3 (nice-to-have)
188
+ - **Priority rationale**: one sentence explaining why this priority
189
+
190
+ Use these signals for priority:
191
+ - P0: "urgent", "blocking", "production issue", "customer escalation"
192
+ - P1: "important", "committed", "this sprint", "promised to customer"
193
+ - P2: "should do", "next sprint candidate", "good improvement"
194
+ - P3: "nice to have", "someday", "low impact"
195
+
196
+ #### 3e. Epic Grouping
197
+ Group related stories under an epic:
198
+ - If 3+ stories share a theme (e.g., "authentication", "dashboard", "API v2") → create an epic
199
+ - Epic title format: `[Epic] <theme name>`
200
+ - Each epic gets a high-level description summarizing the business goal
201
+ - Stories reference their parent epic via label `epic:<epic-title-slug>`
202
+
203
+ #### 3f. Dependency Detection
204
+ Identify dependencies between stories:
205
+ - "before we can do X, we need Y" → Y blocks X
206
+ - "this depends on the API being ready" → dependency noted
207
+ - Add dependency info to the Technical Notes section of the story
208
+
209
+ #### 3g. Customer Context (for customer/stakeholder meetings)
210
+ If customer context was detected in Phase 1, attach to each relevant story:
211
+ ```
212
+ ## Customer Context
213
+ - **Requested by**: [customer name/company]
214
+ - **Business justification**: [why they need this]
215
+ - **Commitment**: [was anything promised? timeline?]
216
+ - **Impact**: [how many users/accounts affected]
217
+ ```
218
+
219
+ ### Phase 4 — HUMAN GATE: Review Structured Backlog
220
+
221
+ <HARD-GATE>
222
+ Do NOT create any issues, epics, or stories on the board until the user has reviewed and approved the structured backlog.
223
+ Do NOT skip this gate even if the user says "just create everything" before seeing the structured output.
224
+ Present the full backlog first, then wait for explicit approval.
225
+ </HARD-GATE>
226
+
227
+ **STOP. Present the full structured backlog for approval:**
228
+
229
+ ```
230
+ 📋 Meeting → Backlog Results
231
+
232
+ Meeting type: {standup|planning|retro|customer-call}
233
+ Speakers identified: {list}
234
+ Customer: {customer name, if applicable}
235
+
236
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
237
+ EPICS ({count}):
238
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
239
+
240
+ 📦 Epic 1: "{epic title}"
241
+ {epic description}
242
+ Stories: {count} | Total points: {sum}
243
+
244
+ 📝 Story 1.1: "{title}" [{T-shirt}] [{points}pts] [P{priority}]
245
+ As a {persona}, I want {X}, so that {Y}
246
+ Acceptance Criteria: {count} items
247
+ Subtasks: {count} items
248
+ Assignee: @{assignee} (or unassigned)
249
+ Dependencies: {list or "none"}
250
+
251
+ 📝 Story 1.2: "{title}" [{T-shirt}] [{points}pts] [P{priority}]
252
+ ...
253
+
254
+ 📦 Epic 2: "{epic title}"
255
+ ...
256
+
257
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
258
+ STANDALONE ITEMS:
259
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
260
+
261
+ BUG REPORTS ({count}):
262
+ 1. 🐛 [P{severity}] "{title}" {symptom summary}
263
+ Labels: bug{, security if applicable}
264
+ Suspected area: {module}
265
+ Worker flow: RCA (Phase 2.5c) → Fix → Test → PR
266
+
267
+ STATUS UPDATES ({count}):
268
+ 1. 🔄 @{person}: {task} {update}
269
+
270
+ BLOCKERS ({count}):
271
+ 1. 🚫 @{person}: {blocker description}
272
+
273
+ DECISIONS ({count}):
274
+ 1. 💡 {decision} — agreed by: {participants}
275
+
276
+ ACTION ITEMS ({count}):
277
+ 1. @{person}: {action} — due: {date if mentioned}
278
+
279
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
280
+ SUMMARY:
281
+ Epics: {N} | Stories: {N} | Bugs: {N} | Subtasks: {N}
282
+ Total points: {N} | Avg priority: P{N}
283
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
284
+
285
+ Options:
286
+ [A] Approve all create everything on board
287
+ [E] Edit modify specific items
288
+ [S] Split → break a story into smaller stories
289
+ [M] Merge combine similar stories
290
+ [R] Re-prioritize → change priorities
291
+ [C] Cancel discard
292
+ ```
293
+
294
+ User can:
295
+ - **Approve all** proceed to create everything
296
+ - **Edit** → modify specific items (change title, acceptance criteria, reassign, resize, re-prioritize, remove)
297
+ - **Split** break a large story into smaller ones
298
+ - **Merge** combine duplicate or overlapping stories
299
+ - **Re-prioritize** → adjust priority assignments
300
+ - **Cancel** stop
301
+
302
+ ### Phase 5 — Board Creation Pipeline
303
+
304
+ Execute in this order:
305
+
306
+ **Step 1: Create Epics**
307
+ For each epic:
308
+ 1. Call `catalyst_board_create_epic` with title, description, labels
309
+ 2. Note the created epic issue ID
310
+
311
+ **Step 2: Create User Stories**
312
+ For each story:
313
+ 1. Build the full description with Summary, User Story statement, Acceptance Criteria, Technical Notes, Customer Context (if applicable), Dependencies
314
+ 2. Call `catalyst_board_create` with:
315
+ - title
316
+ - structured description (see format below)
317
+ - assignee
318
+ - labels: `["user-story", "epic:<epic-slug>", "size:<t-shirt>", "priority:P{N}"]`
319
+ - **If the story was tagged NEEDS_DESIGN in Phase 2**, add `needs-design` to labels
320
+ - **If the story was tagged NEEDS_ARCHITECTURE in Phase 2**, add `needs-architecture` to labels
321
+ - **If the story was tagged BUG_REPORT in Phase 2**, add `bug` to labels (and `security` if it's a security bug). Use `"bug"` instead of `"user-story"` as the first label. **This is critical** without the `bug` label, the worker will skip RCA (Phase 2.5c) and jump straight to implementation, meaning the root cause is never properly diagnosed.
322
+ - A story can have multiple signal labels (e.g., `bug` + `needs-design` if fixing requires design evaluation)
323
+ - priority
324
+ - points (Fibonacci story points)
325
+ 3. Note the created story issue ID
326
+
327
+ **Story description format for board_create (features):**
328
+ ```markdown
329
+ ## Summary
330
+ {what and why — 2-3 sentences}
331
+
332
+ ## User Story
333
+ As a {persona}, I want {capability}, so that {business value}.
334
+
335
+ ## Acceptance Criteria
336
+ - [ ] Given {precondition}, when {action}, then {expected result}
337
+ - [ ] ...
338
+
339
+ ## Technical Notes
340
+ - Stack: {relevant technologies}
341
+ - Dependencies: {blocking stories or external deps}
342
+ - Constraints: {performance, security, compatibility requirements}
343
+ ```
344
+
345
+ **Bug description format for board_create (BUG_REPORT items):**
346
+ ```markdown
347
+ ## Summary
348
+ Investigate and fix: {symptom description 1-2 sentences}
349
+
350
+ ## Symptoms
351
+ - {what users are experiencing}
352
+ - {frequency / affected user count if mentioned}
353
+
354
+ ## Reproduction Steps
355
+ 1. {step from transcript or "Needs investigation"}
356
+ 2. ...
357
+
358
+ ## Suspected Area
359
+ - {module/file/component mentioned in discussion}
360
+ - {related recent changes if mentioned}
361
+
362
+ ## Technical Notes
363
+ - Severity: {P0-P3 with rationale}
364
+ - Stack: {relevant technologies}
365
+ - Dependencies: {blocking issues or external deps}
366
+
367
+ ## Customer Context
368
+ - Requested by: {customer} (if applicable)
369
+ - Business justification: {why}
370
+ ```
371
+
372
+ **Step 3: Create Subtasks**
373
+ For each story's subtasks:
374
+ 1. Call `catalyst_board_create_subtask` with:
375
+ - parent_id: the story's issue ID
376
+ - title: `[Backend] Implement user authentication endpoint`
377
+ - description: implementation details
378
+ - labels: `["subtask", "epic:<epic-slug>"]`
379
+ 2. Note created subtask IDs
380
+
381
+ **Step 4: Status Updates, Blockers, Decisions**
382
+ Same as before:
383
+ - STATUS_UPDATE`catalyst_board_comment` or `catalyst_board_move`
384
+ - BLOCKER`catalyst_board_comment` or create blocker issue
385
+ - DECISION → `catalyst_knowledge_store` with type: "decision"
386
+ - ACTION_ITEM → board issue or knowledge store
387
+
388
+ **Step 5: Autopilot (optional)**
389
+ If user requested autopilot call `catalyst_worker_start` for each created story
390
+
391
+ ### Phase 6 — Summary
392
+
393
+ Present final summary:
394
+
395
+ ```
396
+ Meeting Backlog Complete
397
+
398
+ Epics created: {N} (#{ids})
399
+ Stories created: {N} (#{ids})
400
+ Subtasks created: {N} (#{ids})
401
+ Total points: {N}
402
+ Updated: {N} existing items
403
+ Blockers: {N} logged
404
+ Decisions: {N} stored in knowledge base
405
+ Autopilot: {N} workflows started (if any)
406
+
407
+ Board: Use catalyst_board_view to see the full board
408
+
409
+ Dependency chain:
410
+ Story #{X} → blocks → Story #{Y}
411
+ Story #{Z} → blocks → Story #{W}
412
+ ```
413
+
414
+ ## Output Format
415
+
416
+ Use the structured formats shown in each phase. Group by epic → story → subtask. Always show counts and point totals.
417
+
418
+ ## Anti-Patterns
419
+
420
+ - Do NOT create issues without showing them to the user first (Phase 4 gate is mandatory)
421
+ - Do NOT guess assignees if the transcript doesn't mention names — leave unassigned
422
+ - Do NOT extract noise/filler as tasks
423
+ - Do NOT create duplicate issues — if the transcript mentions an existing task, UPDATE it
424
+ - Do NOT auto-start autopilot without explicit user consent
425
+ - Do NOT include meeting transcript verbatim in issue descriptions — summarize
426
+ - Do NOT create stories without acceptance criteria — every story needs at least 3 criteria
427
+ - Do NOT skip subtask decomposition — every story gets 3-6 subtasks
428
+ - Do NOT assign arbitrary story points — use complexity signals from the transcript
429
+ - Do NOT create an epic for a single story — epics need 3+ related stories (otherwise standalone)
430
+
431
+ ## Chains To
432
+
433
+ - `autopilot-worker` — for stories that should be implemented automatically
434
+ - `knowledge-base` — decisions and customer context are always stored