@crewpilot/agent 2.0.0 → 3.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.
- package/README.md +131 -131
- package/dist-npm/cli.js +5 -5
- package/dist-npm/index.js +100 -100
- package/package.json +69 -69
- package/prompts/agent.md +282 -282
- package/prompts/copilot-instructions.md +36 -36
- package/prompts/{catalyst.config.json → crewpilot.config.json} +72 -72
- package/prompts/skills/assure-code-quality/SKILL.md +112 -112
- package/prompts/skills/assure-pr-intelligence/SKILL.md +148 -148
- package/prompts/skills/assure-review-functional/SKILL.md +114 -114
- package/prompts/skills/assure-review-standards/SKILL.md +106 -106
- package/prompts/skills/assure-threat-model/SKILL.md +182 -182
- package/prompts/skills/assure-vulnerability-scan/SKILL.md +146 -146
- package/prompts/skills/autopilot-meeting/SKILL.md +434 -434
- package/prompts/skills/autopilot-worker/SKILL.md +737 -737
- package/prompts/skills/daily-digest/SKILL.md +188 -188
- package/prompts/skills/deliver-change-management/SKILL.md +132 -132
- package/prompts/skills/deliver-deploy-guard/SKILL.md +144 -144
- package/prompts/skills/deliver-doc-governance/SKILL.md +130 -130
- package/prompts/skills/engineer-feature-builder/SKILL.md +270 -270
- package/prompts/skills/engineer-root-cause-analysis/SKILL.md +150 -150
- package/prompts/skills/engineer-test-first/SKILL.md +148 -148
- package/prompts/skills/insights-knowledge-base/SKILL.md +202 -202
- package/prompts/skills/insights-pattern-detection/SKILL.md +142 -142
- package/prompts/skills/strategize-architecture-planner/SKILL.md +141 -141
- package/prompts/skills/strategize-solution-design/SKILL.md +118 -118
- package/scripts/postinstall.js +108 -108
|
@@ -1,434 +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
|
-
- `
|
|
18
|
-
- `
|
|
19
|
-
- `
|
|
20
|
-
- `
|
|
21
|
-
- `
|
|
22
|
-
- `
|
|
23
|
-
- `
|
|
24
|
-
- `
|
|
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
|
-
- `
|
|
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 `
|
|
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 `
|
|
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 `
|
|
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 → `
|
|
384
|
-
- BLOCKER → `
|
|
385
|
-
- DECISION → `
|
|
386
|
-
- ACTION_ITEM → board issue or knowledge store
|
|
387
|
-
|
|
388
|
-
**Step 5: Autopilot (optional)**
|
|
389
|
-
If user requested autopilot → call `
|
|
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
|
|
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
|
|
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
|
+
- `crewpilot_board_create` — create issues / user stories on board
|
|
18
|
+
- `crewpilot_board_create_epic` — create epics to group related stories
|
|
19
|
+
- `crewpilot_board_create_subtask` — create subtasks linked to a parent story
|
|
20
|
+
- `crewpilot_board_move` — update issue status for status updates
|
|
21
|
+
- `crewpilot_board_comment` — log blockers and decisions on existing issues
|
|
22
|
+
- `crewpilot_board_assign` — assign tasks to people mentioned in transcript
|
|
23
|
+
- `crewpilot_knowledge_store` — store decisions, customer context, and action items
|
|
24
|
+
- `crewpilot_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
|
+
- `crewpilot_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 `crewpilot_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 `crewpilot_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 `crewpilot_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 → `crewpilot_board_comment` or `crewpilot_board_move`
|
|
384
|
+
- BLOCKER → `crewpilot_board_comment` or create blocker issue
|
|
385
|
+
- DECISION → `crewpilot_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 `crewpilot_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 crewpilot_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
|