jettypod 4.4.115 → 4.4.118
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/.env +7 -0
- package/apps/dashboard/app/api/claude/[workItemId]/message/route.ts +25 -9
- package/apps/dashboard/app/api/claude/sessions/[sessionId]/message/route.ts +7 -3
- package/apps/dashboard/app/api/tests/run/stream/route.ts +13 -1
- package/apps/dashboard/app/api/usage/route.ts +17 -0
- package/apps/dashboard/app/connect-claude/page.tsx +24 -0
- package/apps/dashboard/app/install-claude/page.tsx +8 -6
- package/apps/dashboard/app/login/page.tsx +229 -0
- package/apps/dashboard/app/page.tsx +5 -3
- package/apps/dashboard/app/settings/page.tsx +2 -0
- package/apps/dashboard/app/subscribe/page.tsx +11 -0
- package/apps/dashboard/app/welcome/page.tsx +23 -0
- package/apps/dashboard/components/AppShell.tsx +51 -9
- package/apps/dashboard/components/CardMenu.tsx +14 -5
- package/apps/dashboard/components/ClaudePanel.tsx +65 -9
- package/apps/dashboard/components/ConnectClaudeScreen.tsx +223 -0
- package/apps/dashboard/components/DragContext.tsx +73 -64
- package/apps/dashboard/components/DraggableCard.tsx +6 -46
- package/apps/dashboard/components/GateCard.tsx +21 -0
- package/apps/dashboard/components/InstallClaudeScreen.tsx +132 -30
- package/apps/dashboard/components/KanbanBoard.tsx +173 -56
- package/apps/dashboard/components/PlaceholderCard.tsx +9 -19
- package/apps/dashboard/components/ProjectSwitcher.tsx +28 -0
- package/apps/dashboard/components/RealTimeKanbanWrapper.tsx +34 -3
- package/apps/dashboard/components/RealTimeTestsWrapper.tsx +30 -2
- package/apps/dashboard/components/SubscribeContent.tsx +191 -0
- package/apps/dashboard/components/TipCard.tsx +176 -0
- package/apps/dashboard/components/UpgradeBanner.tsx +29 -0
- package/apps/dashboard/components/WelcomeScreen.tsx +14 -4
- package/apps/dashboard/components/settings/AccountSection.tsx +163 -0
- package/apps/dashboard/contexts/ClaudeSessionContext.tsx +292 -29
- package/apps/dashboard/contexts/UsageContext.tsx +131 -0
- package/apps/dashboard/contexts/usageHelpers.js +9 -0
- package/apps/dashboard/electron/ipc-handlers.js +220 -114
- package/apps/dashboard/electron/main.js +415 -37
- package/apps/dashboard/electron/preload.js +23 -4
- package/apps/dashboard/electron/session-manager.js +141 -0
- package/apps/dashboard/electron-builder.config.js +3 -5
- package/apps/dashboard/lib/claude-process-manager.ts +6 -4
- package/apps/dashboard/lib/db-bridge.ts +32 -0
- package/apps/dashboard/lib/db.ts +159 -13
- package/apps/dashboard/lib/session-state-machine.ts +3 -0
- package/apps/dashboard/lib/session-stream-manager.ts +76 -13
- package/apps/dashboard/lib/tests.ts +3 -1
- package/apps/dashboard/next.config.js +19 -14
- package/apps/dashboard/package.json +3 -1
- package/apps/dashboard/scripts/upload-to-r2.js +89 -0
- package/apps/dashboard/tsconfig.tsbuildinfo +1 -0
- package/apps/update-server/package.json +16 -0
- package/apps/update-server/schema.sql +31 -0
- package/apps/update-server/src/index.ts +1074 -0
- package/apps/update-server/tsconfig.json +16 -0
- package/apps/update-server/wrangler.toml +35 -0
- package/docs/bdd-guidance.md +390 -0
- package/jettypod.js +5 -4
- package/lib/migrations/027-plan-at-creation-column.js +31 -0
- package/lib/migrations/028-ready-for-review-column.js +27 -0
- package/lib/schema.js +3 -1
- package/lib/seed-onboarding.js +100 -68
- package/lib/work-commands/index.js +43 -13
- package/lib/work-tracking/index.js +46 -27
- package/package.json +1 -1
- package/skills-templates/bug-mode/SKILL.md +5 -11
- package/skills-templates/request-routing/SKILL.md +24 -11
- package/skills-templates/simple-improvement/SKILL.md +35 -19
- package/skills-templates/stable-mode/SKILL.md +5 -6
- package/templates/bdd-guidance.md +139 -0
- package/templates/bdd-scaffolding/wait.js +18 -0
- package/templates/bdd-scaffolding/world.js +19 -0
- package/.jettypod-backup/work.db +0 -0
- package/apps/dashboard/app/access-code/page.tsx +0 -110
- package/lib/discovery-checkpoint.js +0 -123
- package/skills-templates/project-discovery/SKILL.md +0 -372
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: project-discovery
|
|
3
|
-
description: "Guide new project planning from blank slate to epics. Auto-activates when project has no implementation code. Walks user through journey exploration, UX approach selection, optional prototyping, epic breakdown, and tech stack selection."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Project Discovery Skill
|
|
7
|
-
|
|
8
|
-
Guides users through planning a new project from blank slate to epics. Auto-activates when a blank project (no implementation code) is detected.
|
|
9
|
-
|
|
10
|
-
## Instructions
|
|
11
|
-
|
|
12
|
-
When this skill is activated, you are guiding a user through planning a brand new project. Follow this structured approach:
|
|
13
|
-
|
|
14
|
-
### Step 1: Check for Resume (Checkpoint)
|
|
15
|
-
|
|
16
|
-
**First, check if there's an existing checkpoint** from a previous session:
|
|
17
|
-
|
|
18
|
-
```javascript
|
|
19
|
-
try {
|
|
20
|
-
const checkpoint = require('./lib/discovery-checkpoint');
|
|
21
|
-
const data = checkpoint.getCheckpoint();
|
|
22
|
-
if (data && data.step > 1) {
|
|
23
|
-
// Resume from checkpoint - display resume message
|
|
24
|
-
const resumeMessage = checkpoint.generateResumeMessage(data);
|
|
25
|
-
console.log(resumeMessage);
|
|
26
|
-
// Then skip to appropriate step based on data.step
|
|
27
|
-
}
|
|
28
|
-
} catch (e) {
|
|
29
|
-
// No checkpoint - start fresh
|
|
30
|
-
}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**If resuming from checkpoint:**
|
|
34
|
-
|
|
35
|
-
Use `generateResumeMessage(checkpoint)` from `lib/discovery-checkpoint.js` to display:
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
39
|
-
🔄 RESUMING PROJECT DISCOVERY
|
|
40
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
41
|
-
|
|
42
|
-
📍 Resuming from Step [step]: [step description]
|
|
43
|
-
|
|
44
|
-
📝 User Journey: "[user_journey]" (if exists)
|
|
45
|
-
🎨 UX Approach: "[ux_approach]" (if exists)
|
|
46
|
-
✅ Epics: Already created (if epics_created)
|
|
47
|
-
|
|
48
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
49
|
-
|
|
50
|
-
Continuing where you left off...
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Then skip to the appropriate step based on `checkpoint.step`.
|
|
54
|
-
|
|
55
|
-
**If starting fresh:** Continue to Step 2.
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
### Step 2: Greet and Explore User Goal
|
|
60
|
-
|
|
61
|
-
**Your FIRST words to the user must be:**
|
|
62
|
-
|
|
63
|
-
> 👋 Hey there. It looks like you're kicking off a new project. I'm going to use JettyPod to guide you through building and shipping high quality code.
|
|
64
|
-
>
|
|
65
|
-
> And FYI, JettyPod is fully set up in your project for all future Claude Code sessions.
|
|
66
|
-
>
|
|
67
|
-
> **Ready to do this?**
|
|
68
|
-
|
|
69
|
-
**WAIT FOR USER RESPONSE.**
|
|
70
|
-
|
|
71
|
-
After they respond affirmatively, continue with:
|
|
72
|
-
|
|
73
|
-
> Awesome!
|
|
74
|
-
>
|
|
75
|
-
> Here is how we are going to kick things off:
|
|
76
|
-
>
|
|
77
|
-
> 1. I'll help you explore some prototypes to define what users actually do in your product
|
|
78
|
-
> 2. We'll choose a tech stack that fits
|
|
79
|
-
> 3. I'll break the project into phases so you have a clear plan
|
|
80
|
-
>
|
|
81
|
-
> Let's start simple: What do users DO in this product? Walk me through it.
|
|
82
|
-
>
|
|
83
|
-
> If that's not clear yet, what are you trying to help them accomplish?
|
|
84
|
-
|
|
85
|
-
**WAIT FOR USER RESPONSE.**
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
### Step 3: Explore User Journey
|
|
90
|
-
|
|
91
|
-
After user responds with their goal, ask about the user journey:
|
|
92
|
-
|
|
93
|
-
> Do you have a clear picture of how users will accomplish this? Like, what's the flow from opening your product to getting value from it?
|
|
94
|
-
>
|
|
95
|
-
> If yes, walk me through it. If not, I can suggest some user journey ideas based on what you've described.
|
|
96
|
-
|
|
97
|
-
**If user wants journey suggestions, present exactly 3 journey options:**
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
Here are 3 different ways users could accomplish [their goal]:
|
|
101
|
-
|
|
102
|
-
**Journey Option 1: [Simple/Direct approach name]**
|
|
103
|
-
- **Flow**: [Step-by-step user actions]
|
|
104
|
-
- **Pros**: ✅ [2-3 advantages - fast, familiar, low friction]
|
|
105
|
-
- **Cons**: ❌ [2-3 trade-offs - limitations, constraints]
|
|
106
|
-
|
|
107
|
-
**Journey Option 2: [Balanced approach name]**
|
|
108
|
-
- **Flow**: [Step-by-step user actions]
|
|
109
|
-
- **Pros**: ✅ [2-3 advantages - good balance]
|
|
110
|
-
- **Cons**: ❌ [2-3 trade-offs]
|
|
111
|
-
|
|
112
|
-
**Journey Option 3: [Advanced/Guided approach name]**
|
|
113
|
-
- **Flow**: [Step-by-step user actions]
|
|
114
|
-
- **Pros**: ✅ [2-3 advantages - powerful, guided]
|
|
115
|
-
- **Cons**: ❌ [2-3 trade-offs - complexity, learning curve]
|
|
116
|
-
|
|
117
|
-
**Additional journey patterns considered:**
|
|
118
|
-
- *Alternative 1*: [Brief] - Not recommended because [reason]
|
|
119
|
-
- *Alternative 2*: [Brief] - Not recommended because [reason]
|
|
120
|
-
|
|
121
|
-
Which journey resonates with you? Or do you want to describe your own?
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**WAIT FOR USER RESPONSE.**
|
|
125
|
-
|
|
126
|
-
**After user picks/describes journey, save checkpoint:**
|
|
127
|
-
|
|
128
|
-
```javascript
|
|
129
|
-
try {
|
|
130
|
-
const checkpoint = require('./lib/discovery-checkpoint');
|
|
131
|
-
checkpoint.updateCheckpoint(2, { user_journey: "[their chosen/described journey]" });
|
|
132
|
-
} catch (e) {
|
|
133
|
-
// Checkpoint module optional - skip if not available
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
### Step 4: Explore UX Approach
|
|
140
|
-
|
|
141
|
-
**Present exactly 3 UX approaches** (NOT tech stacks - focus on what it FEELS LIKE to use):
|
|
142
|
-
|
|
143
|
-
Adapt to their workflow. Example patterns:
|
|
144
|
-
- Command-Line Workflow vs Visual Dashboard vs Conversational AI
|
|
145
|
-
- Template Selection vs Drag-and-Drop Editor vs Code-First
|
|
146
|
-
- Linear Document vs Networked Notes vs Canvas-Based
|
|
147
|
-
|
|
148
|
-
```
|
|
149
|
-
**Option 1: [Simple approach]**
|
|
150
|
-
- **Pros**: ✅ [2-3 advantages]
|
|
151
|
-
- **Cons**: ❌ [2-3 trade-offs]
|
|
152
|
-
- **Experience**: [What it feels like to use]
|
|
153
|
-
|
|
154
|
-
**Option 2: [Balanced approach]**
|
|
155
|
-
- **Pros**: ✅ [2-3 advantages]
|
|
156
|
-
- **Cons**: ❌ [2-3 trade-offs]
|
|
157
|
-
- **Experience**: [What it feels like to use]
|
|
158
|
-
|
|
159
|
-
**Option 3: [Advanced approach]**
|
|
160
|
-
- **Pros**: ✅ [2-3 advantages]
|
|
161
|
-
- **Cons**: ❌ [2-3 trade-offs]
|
|
162
|
-
- **Experience**: [What it feels like to use]
|
|
163
|
-
|
|
164
|
-
**Additional approaches considered but not recommended:**
|
|
165
|
-
- *Alternative 1*: [Brief] - Not selected because [reason]
|
|
166
|
-
- *Alternative 2*: [Brief] - Not selected because [reason]
|
|
167
|
-
- *Alternative 3*: [Brief] - Not selected because [reason]
|
|
168
|
-
|
|
169
|
-
**Would you like me to create working prototypes of these experiences?**
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
**WAIT FOR USER RESPONSE.**
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
### Step 4B: Optional Prototyping
|
|
177
|
-
|
|
178
|
-
**If user wants prototypes:**
|
|
179
|
-
|
|
180
|
-
For each prototype approach, run:
|
|
181
|
-
```bash
|
|
182
|
-
jettypod project prototype start <approach-name>
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
This creates a worktree at `.jettypod-work/project-prototype-<approach>/`. Build the prototype using **absolute paths**:
|
|
186
|
-
- `<worktree_path>/prototypes/<approach>/` for prototype files
|
|
187
|
-
- Focus on demonstrating the FEEL, not production code
|
|
188
|
-
- Use whatever tech is FASTEST to show the experience
|
|
189
|
-
|
|
190
|
-
After building, commit and merge:
|
|
191
|
-
```bash
|
|
192
|
-
cd <worktree_path>
|
|
193
|
-
git add .
|
|
194
|
-
git commit -m "Add project prototype: <approach>"
|
|
195
|
-
jettypod project prototype merge
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Repeat for each approach. Each merge lands the prototype on main in `/prototypes/`.
|
|
199
|
-
|
|
200
|
-
**After building prototypes, offer to open them:**
|
|
201
|
-
|
|
202
|
-
> Want me to open these in your browser so you can try them out?
|
|
203
|
-
|
|
204
|
-
If yes, use: `open prototypes/<approach>/index.html`
|
|
205
|
-
|
|
206
|
-
**After ANY prototype modifications or tweaks, always ask:**
|
|
207
|
-
|
|
208
|
-
> Got it - I've updated the prototype.
|
|
209
|
-
>
|
|
210
|
-
> Do you feel like you have enough clarity on the basic user journey now? Like, do you know what users will DO to get value from this?
|
|
211
|
-
>
|
|
212
|
-
> If yes, let's break this down into phases and start building the real thing.
|
|
213
|
-
> If no, what else do you want to explore with the prototype?
|
|
214
|
-
|
|
215
|
-
**Important:** Prototypes are for learning and answering questions, not for building production features. Don't let users iterate endlessly - help them move forward once they have clarity on the user journey.
|
|
216
|
-
|
|
217
|
-
---
|
|
218
|
-
|
|
219
|
-
### Step 5: Epic Breakdown
|
|
220
|
-
|
|
221
|
-
**After user picks UX approach winner, save checkpoint:**
|
|
222
|
-
|
|
223
|
-
```javascript
|
|
224
|
-
try {
|
|
225
|
-
const checkpoint = require('./lib/discovery-checkpoint');
|
|
226
|
-
checkpoint.updateCheckpoint(4, { ux_approach: "[chosen option]" });
|
|
227
|
-
} catch (e) {
|
|
228
|
-
// Checkpoint module optional - skip if not available
|
|
229
|
-
}
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
**Propose epic breakdown:**
|
|
233
|
-
|
|
234
|
-
> Based on what you described, here's how I'd break this into epics.
|
|
235
|
-
>
|
|
236
|
-
> **Quick context:** Epics are phase-level chunks of work that each contain several features. For example, an epic might be "User Authentication" which includes features like "Email/password login", "Password reset", and "Social login".
|
|
237
|
-
>
|
|
238
|
-
> Here's what I'm thinking:
|
|
239
|
-
>
|
|
240
|
-
> **Epic 1: [Name]** - [What it covers - specific capabilities]
|
|
241
|
-
> **Epic 2: [Name]** - [What it covers]
|
|
242
|
-
> **Epic 3: [Name]** - [What it covers]
|
|
243
|
-
>
|
|
244
|
-
> Sound right?
|
|
245
|
-
|
|
246
|
-
**WAIT FOR USER RESPONSE.**
|
|
247
|
-
|
|
248
|
-
After user confirms (with any adjustments), create the epics:
|
|
249
|
-
|
|
250
|
-
```bash
|
|
251
|
-
jettypod work create epic "[Epic Name]" "[Description]"
|
|
252
|
-
```
|
|
253
|
-
|
|
254
|
-
After creating all epics, display:
|
|
255
|
-
|
|
256
|
-
> ✅ Epics created and added to your backlog.
|
|
257
|
-
|
|
258
|
-
**Save checkpoint:**
|
|
259
|
-
|
|
260
|
-
```javascript
|
|
261
|
-
try {
|
|
262
|
-
const checkpoint = require('./lib/discovery-checkpoint');
|
|
263
|
-
checkpoint.updateCheckpoint(5, { epics_created: true });
|
|
264
|
-
} catch (e) {
|
|
265
|
-
// Checkpoint module optional - skip if not available
|
|
266
|
-
}
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
---
|
|
270
|
-
|
|
271
|
-
### Step 6: Tech Stack Selection
|
|
272
|
-
|
|
273
|
-
**Present exactly 3 tech stack options** appropriate for the UX approach they chose:
|
|
274
|
-
|
|
275
|
-
```
|
|
276
|
-
Now let's pick the tech stack. Based on [their chosen UX approach], here are 3 options:
|
|
277
|
-
|
|
278
|
-
**Option 1: [Tech stack name]**
|
|
279
|
-
- **Pros**: ✅ [2-3 advantages - why this is good for their use case]
|
|
280
|
-
- **Cons**: ❌ [2-3 trade-offs - limitations or costs]
|
|
281
|
-
- **What you'll get**: [What development will feel like, deployment complexity, learning curve]
|
|
282
|
-
|
|
283
|
-
**Option 2: [Tech stack name]**
|
|
284
|
-
- **Pros**: ✅ [2-3 advantages]
|
|
285
|
-
- **Cons**: ❌ [2-3 trade-offs]
|
|
286
|
-
- **What you'll get**: [Development experience, deployment, learning curve]
|
|
287
|
-
|
|
288
|
-
**Option 3: [Tech stack name]**
|
|
289
|
-
- **Pros**: ✅ [2-3 advantages]
|
|
290
|
-
- **Cons**: ❌ [2-3 trade-offs]
|
|
291
|
-
- **What you'll get**: [Development experience, deployment, learning curve]
|
|
292
|
-
|
|
293
|
-
**Other options considered:**
|
|
294
|
-
- *Alternative 1*: [Brief] - Not recommended because [reason]
|
|
295
|
-
- *Alternative 2*: [Brief] - Not recommended because [reason]
|
|
296
|
-
|
|
297
|
-
Which tech stack fits best for you?
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
**Important:** If they're building a web application, use shadcn/ui as the default component library (don't ask - just use it when building UI).
|
|
301
|
-
|
|
302
|
-
**WAIT FOR USER RESPONSE.**
|
|
303
|
-
|
|
304
|
-
**Save checkpoint:**
|
|
305
|
-
|
|
306
|
-
```javascript
|
|
307
|
-
try {
|
|
308
|
-
const checkpoint = require('./lib/discovery-checkpoint');
|
|
309
|
-
checkpoint.updateCheckpoint(6, {});
|
|
310
|
-
} catch (e) {
|
|
311
|
-
// Checkpoint module optional - skip if not available
|
|
312
|
-
}
|
|
313
|
-
```
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
### Step 7: Confirm Rationale and Complete Discovery
|
|
318
|
-
|
|
319
|
-
**Propose the rationale to the user first:**
|
|
320
|
-
|
|
321
|
-
> I'm going to record this decision:
|
|
322
|
-
>
|
|
323
|
-
> Winner: prototypes/[path]
|
|
324
|
-
> Rationale: [experience] with [tech] because [reason]
|
|
325
|
-
>
|
|
326
|
-
> Does this capture why you chose this approach? (You can edit the rationale if needed)
|
|
327
|
-
|
|
328
|
-
**WAIT FOR USER RESPONSE.**
|
|
329
|
-
|
|
330
|
-
**After user confirms, record the decision:**
|
|
331
|
-
|
|
332
|
-
```bash
|
|
333
|
-
jettypod project discover complete --winner="prototypes/[path]" --rationale="[user's confirmed/edited rationale]"
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
### Step 8: Educational Transition
|
|
339
|
-
|
|
340
|
-
**After recording decision, provide this educational transition:**
|
|
341
|
-
|
|
342
|
-
> 🎉 Project discovery complete! You've got your epics defined and we know what we're building.
|
|
343
|
-
>
|
|
344
|
-
> **Here's how we'll build this, one piece at a time:**
|
|
345
|
-
>
|
|
346
|
-
> We're entering a repeatable workflow that you'll use for the rest of this project. Think of it like Russian nesting dolls:
|
|
347
|
-
>
|
|
348
|
-
> 📦 **Epic** = A big capability (like "User Authentication" or "Real-time Collaboration")
|
|
349
|
-
> └─ ✨ **Feature** = Something users actually do (like "Email/password login" or "Live cursor tracking")
|
|
350
|
-
> └─ 🔧 **Chore** = Technical tasks to build that feature (like "Create login form" or "Hash passwords")
|
|
351
|
-
>
|
|
352
|
-
> **Two phases for everything you build:**
|
|
353
|
-
>
|
|
354
|
-
> 1️⃣ **Discovery Phase** - Figure out what to build
|
|
355
|
-
> - We'll explore 2-3 different approaches
|
|
356
|
-
> - You pick the winner
|
|
357
|
-
> - We write test scenarios
|
|
358
|
-
> - **You only do this once per feature**
|
|
359
|
-
>
|
|
360
|
-
> 2️⃣ **Implementation Phase** - Build it in 3 modes
|
|
361
|
-
> - **Speed Mode**: Prove it works (happy path only, ~2 hours)
|
|
362
|
-
> - **Stable Mode**: Make it dependable (error handling, edge cases - this is where features live)
|
|
363
|
-
> - **Production Mode**: Safe for customers (security, scale, compliance - only needed if customers use it)
|
|
364
|
-
>
|
|
365
|
-
> **We won't talk about modes yet** - you'll learn those when you start implementing. Right now, focus on discovery.
|
|
366
|
-
>
|
|
367
|
-
> **Next step: Plan your first epic**
|
|
368
|
-
>
|
|
369
|
-
> Pick one epic to start with (usually the foundational one). Then tell me:
|
|
370
|
-
> "Let's plan [epic name]"
|
|
371
|
-
|
|
372
|
-
**Discovery is complete.** Wait for user to choose which epic to plan next.
|