flight-rules 0.15.7 → 0.15.8

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.
@@ -6,10 +6,10 @@ export declare function copyCommandsWithConflictHandling(sourceDir: string, dest
6
6
  skipped: string[];
7
7
  }>;
8
8
  /**
9
- * Copy skill files to a destination directory with conflict handling.
10
- * Source skills are flat .md files (e.g., web-prototype.md).
11
- * They are deployed as directories containing SKILL.md (e.g., web-prototype/SKILL.md),
12
- * which is the format Claude Code expects.
9
+ * Copy skill directories to a destination directory with conflict handling.
10
+ * Source skills are directories containing SKILL.md (e.g., web-prototype/SKILL.md).
11
+ * The entire directory is copied recursively, preserving any bundled resources
12
+ * (scripts/, references/, assets/, etc.).
13
13
  */
14
14
  export declare function copySkillsWithConflictHandling(sourceDir: string, destDir: string, skipPrompts?: boolean): Promise<{
15
15
  copied: string[];
@@ -1,6 +1,6 @@
1
1
  import * as p from '@clack/prompts';
2
2
  import pc from 'picocolors';
3
- import { writeFileSync, existsSync, readdirSync, cpSync } from 'fs';
3
+ import { writeFileSync, existsSync, readdirSync, cpSync, statSync } from 'fs';
4
4
  import { join } from 'path';
5
5
  import { ensureDir, getFlightRulesDir } from '../utils/files.js';
6
6
  import { isInteractive } from '../utils/interactive.js';
@@ -141,10 +141,10 @@ async function promptForConflict(filename, showBatchOptions) {
141
141
  return action;
142
142
  }
143
143
  /**
144
- * Copy skill files to a destination directory with conflict handling.
145
- * Source skills are flat .md files (e.g., web-prototype.md).
146
- * They are deployed as directories containing SKILL.md (e.g., web-prototype/SKILL.md),
147
- * which is the format Claude Code expects.
144
+ * Copy skill directories to a destination directory with conflict handling.
145
+ * Source skills are directories containing SKILL.md (e.g., web-prototype/SKILL.md).
146
+ * The entire directory is copied recursively, preserving any bundled resources
147
+ * (scripts/, references/, assets/, etc.).
148
148
  */
149
149
  export async function copySkillsWithConflictHandling(sourceDir, destDir, skipPrompts = false) {
150
150
  const copied = [];
@@ -152,21 +152,22 @@ export async function copySkillsWithConflictHandling(sourceDir, destDir, skipPro
152
152
  if (!existsSync(sourceDir)) {
153
153
  return { copied, skipped };
154
154
  }
155
- const files = readdirSync(sourceDir).filter(f => f.endsWith('.md'));
155
+ const entries = readdirSync(sourceDir).filter(entry => {
156
+ const entryPath = join(sourceDir, entry);
157
+ return statSync(entryPath).isDirectory() && existsSync(join(entryPath, 'SKILL.md'));
158
+ });
156
159
  let batchAction = null;
157
- for (const file of files) {
158
- const skillName = file.replace(/\.md$/, '');
159
- const srcPath = join(sourceDir, file);
160
+ for (const skillName of entries) {
161
+ const srcSkillDir = join(sourceDir, skillName);
160
162
  const destSkillDir = join(destDir, skillName);
161
- const destPath = join(destSkillDir, 'SKILL.md');
162
- if (existsSync(destPath)) {
163
+ if (existsSync(destSkillDir)) {
163
164
  if (skipPrompts) {
164
- cpSync(srcPath, destPath);
165
+ cpSync(srcSkillDir, destSkillDir, { recursive: true });
165
166
  copied.push(skillName);
166
167
  continue;
167
168
  }
168
169
  if (batchAction === 'replace_all') {
169
- cpSync(srcPath, destPath);
170
+ cpSync(srcSkillDir, destSkillDir, { recursive: true });
170
171
  copied.push(skillName);
171
172
  continue;
172
173
  }
@@ -174,10 +175,10 @@ export async function copySkillsWithConflictHandling(sourceDir, destDir, skipPro
174
175
  skipped.push(skillName);
175
176
  continue;
176
177
  }
177
- const action = await promptForConflict(skillName, files.length > 1);
178
+ const action = await promptForConflict(skillName, entries.length > 1);
178
179
  if (action === 'replace_all') {
179
180
  batchAction = 'replace_all';
180
- cpSync(srcPath, destPath);
181
+ cpSync(srcSkillDir, destSkillDir, { recursive: true });
181
182
  copied.push(skillName);
182
183
  }
183
184
  else if (action === 'skip_all') {
@@ -185,7 +186,7 @@ export async function copySkillsWithConflictHandling(sourceDir, destDir, skipPro
185
186
  skipped.push(skillName);
186
187
  }
187
188
  else if (action === 'replace') {
188
- cpSync(srcPath, destPath);
189
+ cpSync(srcSkillDir, destSkillDir, { recursive: true });
189
190
  copied.push(skillName);
190
191
  }
191
192
  else {
@@ -193,8 +194,7 @@ export async function copySkillsWithConflictHandling(sourceDir, destDir, skipPro
193
194
  }
194
195
  }
195
196
  else {
196
- ensureDir(destSkillDir);
197
- cpSync(srcPath, destPath);
197
+ cpSync(srcSkillDir, destSkillDir, { recursive: true });
198
198
  copied.push(skillName);
199
199
  }
200
200
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flight-rules",
3
- "version": "0.15.7",
3
+ "version": "0.15.8",
4
4
  "description": "An opinionated framework for AI-assisted software development",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/payload/AGENTS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Flight Rules – Agent Guidelines
2
2
 
3
- flight_rules_version: 0.15.7
3
+ flight_rules_version: 0.15.8
4
4
 
5
5
  This file defines how agents (Claude Code, Cursor, etc.) should work on software projects using the Flight Rules system.
6
6
 
@@ -0,0 +1,507 @@
1
+ ---
2
+ name: idea-explorer
3
+ description: >
4
+ Explore and refine early-stage ideas before they become formal requirements.
5
+ Use this skill whenever someone has a raw idea, concept, or "what if" they want
6
+ to think through — before it's ready for a PRD. Trigger when the user says things
7
+ like "I have an idea", "what if we built...", "I'm thinking about...", "explore
8
+ this concept", "help me think through...", "is this idea viable?", or "I want to
9
+ build something that...". Also trigger when someone pastes a rough description,
10
+ voice-to-text dump, or brainstorm notes and wants to make sense of them. This
11
+ skill is the first step in turning a vague thought into something concrete enough
12
+ to share with others or feed into a PRD.
13
+ compatibility:
14
+ tools:
15
+ - WebSearch
16
+ - Agent
17
+ ---
18
+
19
+ # Idea Explorer
20
+
21
+ Turn a raw, unstructured idea into a clear, well-examined **Idea Brief** — a
22
+ document that captures what the idea is, why it matters, what already exists in
23
+ the space, what customers would want to know, and how it might be built. The
24
+ brief is meant to be the bridge between "I had a thought" and "let's write a PRD."
25
+
26
+ ## Why this exists
27
+
28
+ Ideas at their earliest stage are fragile and fuzzy. People know they want
29
+ *something* but can't always articulate it clearly. The gap between a raw idea
30
+ and a structured requirements document is where most good ideas die — not because
31
+ they're bad, but because no one helped the person think them through. This skill
32
+ fills that gap by deploying a team of specialized agents to examine the idea from
33
+ multiple angles simultaneously, then synthesizing everything into a document that
34
+ communicates the thought clearly.
35
+
36
+ ## Prerequisites
37
+
38
+ This skill requires **web search** capability. The Market Scout and Technical
39
+ Scout agents need to search the internet to find existing products, services,
40
+ and technical approaches. If web search is not available, inform the user and
41
+ suggest they enable it before proceeding.
42
+
43
+ ## Step 1: Receive the idea
44
+
45
+ The user's input could be anything — a single sentence, a rambling paragraph, a
46
+ pasted voice transcription, bullet points, a screenshot of notes. Accept whatever
47
+ format they give you. Don't ask them to restructure it.
48
+
49
+ Read the input carefully and identify:
50
+ - **The core intent** — What does this person actually want to exist in the world?
51
+ - **The problem space** — What pain or gap is motivating this?
52
+ - **Obvious gaps** — What critical information is missing that the agents will
53
+ need to do their work?
54
+
55
+ ## Step 2: Brief interview
56
+
57
+ Before launching the agents, ask a few focused questions to fill the most
58
+ critical gaps. Keep this short — 3-5 questions maximum. The agents will surface
59
+ deeper questions later. The goal here is just to give them enough context to be
60
+ effective.
61
+
62
+ Good interview questions target:
63
+ - **Who is this for?** (if not obvious from the input)
64
+ - **What exists today?** (how do people currently solve this problem, if at all?)
65
+ - **What's the motivation?** (personal itch, business opportunity, noticed gap?)
66
+ - **Any constraints?** (budget, timeline, technical environment, team size)
67
+ - **Scale and ambition** — Is this a weekend project, a startup, a feature within
68
+ an existing product?
69
+
70
+ Don't ask all of these. Pick the ones that matter most given what the user
71
+ already told you. If the user's input was detailed enough, you might only need
72
+ 1-2 clarifying questions, or even none.
73
+
74
+ Once you have the answers (or the user says "just go with what I gave you"),
75
+ compile a concise **Idea Context Brief** — a paragraph or two that summarizes
76
+ the idea and its context. This is what you'll hand to each agent.
77
+
78
+ ## Step 3: Launch the agent team
79
+
80
+ Spawn all 7 agents in parallel. Each agent gets the Idea Context Brief plus
81
+ their specific mission. The agents are:
82
+
83
+ ### 1. Intent Clarifier
84
+
85
+ **Mission:** Deeply understand what the user actually wants and surface the
86
+ questions that will sharpen the idea.
87
+
88
+ **Prompt pattern:**
89
+ ```
90
+ You are the Intent Clarifier. Your job is to deeply analyze an idea and
91
+ identify what's clear, what's ambiguous, and what questions would most help
92
+ refine it.
93
+
94
+ Here is the idea:
95
+ [Idea Context Brief]
96
+
97
+ Analyze this idea and produce:
98
+
99
+ 1. **Core Intent Statement** — In 1-2 sentences, what does this person
100
+ actually want to exist? Strip away implementation details and get to the
101
+ essence.
102
+
103
+ 2. **What's Clear** — List the aspects of this idea that are well-defined
104
+ and don't need further clarification.
105
+
106
+ 3. **What's Ambiguous** — List the aspects that could be interpreted
107
+ multiple ways. For each, explain the different interpretations.
108
+
109
+ 4. **Clarifying Questions** — Generate 5-8 questions that would most help
110
+ sharpen this idea. Prioritize questions that would change the direction
111
+ of the project depending on the answer. Frame them as conversational
112
+ questions the user could easily answer, not technical interrogations.
113
+
114
+ 5. **Hidden Complexity** — Identify 2-3 aspects that seem simple on the
115
+ surface but are likely more complex than the user realizes.
116
+ ```
117
+
118
+ ### 2. Problem Decomposer
119
+
120
+ **Mission:** Separate the problem from the proposed solution and break the
121
+ problem space into its components.
122
+
123
+ **Prompt pattern:**
124
+ ```
125
+ You are the Problem Decomposer. Your job is to untangle the problem being
126
+ solved from the solution being proposed, and break the problem into its
127
+ constituent parts.
128
+
129
+ Here is the idea:
130
+ [Idea Context Brief]
131
+
132
+ Produce:
133
+
134
+ 1. **Problem Statement** — What is the actual problem or pain point? State
135
+ it without referencing any particular solution. A good problem statement
136
+ makes someone nod and say "yes, that IS annoying / hard / broken."
137
+
138
+ 2. **Current State** — How do people deal with this problem today? What
139
+ workarounds exist? What are people settling for?
140
+
141
+ 3. **Problem Components** — Break the problem into 3-5 sub-problems. For
142
+ each, explain:
143
+ - What it is
144
+ - How painful it is (high/medium/low)
145
+ - Whether existing solutions address it
146
+
147
+ 4. **Solution vs. Problem Separation** — Is the user describing a problem
148
+ or a solution? If they jumped straight to a solution, what's the
149
+ underlying problem? Are there other solutions to that same problem they
150
+ might not have considered?
151
+
152
+ 5. **Who Feels This Pain** — List 2-4 different types of people or roles
153
+ who experience this problem, and how their experience of it differs.
154
+ ```
155
+
156
+ ### 3. Assumptions Auditor
157
+
158
+ **Mission:** Surface the hidden assumptions baked into the idea and challenge
159
+ them.
160
+
161
+ **Prompt pattern:**
162
+ ```
163
+ You are the Assumptions Auditor. Your job is to find the things the idea
164
+ takes for granted — the beliefs, conditions, and expectations that haven't
165
+ been stated or examined.
166
+
167
+ Here is the idea:
168
+ [Idea Context Brief]
169
+
170
+ Produce:
171
+
172
+ 1. **Explicit Assumptions** — Things the idea openly relies on (e.g., "users
173
+ have smartphones", "data is available via API").
174
+
175
+ 2. **Hidden Assumptions** — Things the idea takes for granted without
176
+ stating them. These are the dangerous ones. Common categories:
177
+ - User behavior assumptions ("people will want to...")
178
+ - Market assumptions ("there's demand for...")
179
+ - Technical assumptions ("it's possible to...")
180
+ - Economic assumptions ("people will pay for..." / "this can be built
181
+ within budget")
182
+ - Data assumptions ("this information exists and is accessible")
183
+
184
+ 3. **Assumption Risk Assessment** — For each hidden assumption, rate:
185
+ - How critical is it? (If wrong, does the whole idea fall apart?)
186
+ - How confident should we be? (Is this well-established or a guess?)
187
+ - How could we test it cheaply?
188
+
189
+ 4. **The Hardest Question** — What's the single most uncomfortable question
190
+ someone could ask about this idea? The one the user probably doesn't
191
+ want to hear but needs to?
192
+ ```
193
+
194
+ ### 4. Market Scout
195
+
196
+ **Mission:** Search the internet for existing products, services, and projects
197
+ in the same space. This agent needs web search.
198
+
199
+ **Prompt pattern:**
200
+ ```
201
+ You are the Market Scout. Your job is to research what already exists in the
202
+ market that's similar to or overlaps with this idea. Use web search
203
+ extensively.
204
+
205
+ Here is the idea:
206
+ [Idea Context Brief]
207
+
208
+ Research and produce:
209
+
210
+ 1. **Direct Competitors** — Products or services that solve the same core
211
+ problem. For each, note:
212
+ - Name and URL
213
+ - What they do
214
+ - How they approach the problem
215
+ - Pricing model (if known)
216
+ - Apparent strengths and weaknesses
217
+
218
+ 2. **Adjacent Solutions** — Products that solve a related problem or serve
219
+ the same audience but with a different approach. These might become
220
+ competitors or potential partners.
221
+
222
+ 3. **Failed Attempts** — If you can find them, products or startups that
223
+ tried something similar and failed. What went wrong? (This is
224
+ incredibly valuable signal.)
225
+
226
+ 4. **Market Gaps** — Based on your research, where are the existing
227
+ solutions falling short? What do users complain about? What's missing?
228
+
229
+ 5. **Landscape Summary** — In 2-3 sentences, characterize the competitive
230
+ landscape. Is it crowded? Emerging? Dominated by one player? Wide open?
231
+
232
+ Search broadly — try different phrasings of the problem, look at Product
233
+ Hunt, search for Reddit discussions, check GitHub for open-source
234
+ alternatives. Cast a wide net.
235
+ ```
236
+
237
+ ### 5. Customer Voice
238
+
239
+ **Mission:** Role-play as potential customers and surface the questions and
240
+ concerns real users would have.
241
+
242
+ **Prompt pattern:**
243
+ ```
244
+ You are the Customer Voice. Your job is to think like 3-4 different
245
+ potential customers and anticipate their reactions, questions, and concerns
246
+ about this idea.
247
+
248
+ Here is the idea:
249
+ [Idea Context Brief]
250
+
251
+ Create 3-4 distinct customer personas, each representing a different
252
+ segment that might use this. For each persona:
253
+
254
+ 1. **Who they are** — Name, role, context. Make them feel like real people,
255
+ not marketing abstractions.
256
+
257
+ 2. **Their reaction** — How would they respond when first hearing about
258
+ this idea? Excited? Skeptical? Confused? Indifferent?
259
+
260
+ 3. **Their questions** — What would they immediately want to know? List
261
+ 5-7 questions in their natural voice. Include both practical questions
262
+ ("Does this work with X?") and emotional ones ("Can I trust this with
263
+ my data?").
264
+
265
+ 4. **Their dealbreakers** — What would make them say "no thanks"?
266
+
267
+ 5. **Their "shut up and take my money" moment** — What would make them
268
+ immediately want this?
269
+
270
+ Make the personas genuinely different — don't just vary demographics. Vary
271
+ their relationship to the problem, their technical sophistication, their
272
+ willingness to pay, and their current workarounds.
273
+ ```
274
+
275
+ ### 6. Technical Scout
276
+
277
+ **Mission:** Research the technical landscape — what technologies, APIs,
278
+ frameworks, and approaches could make this idea real. This agent needs web
279
+ search.
280
+
281
+ **Prompt pattern:**
282
+ ```
283
+ You are the Technical Scout. Your job is to research how this idea could
284
+ be built from a technical perspective. Use web search to find relevant
285
+ technologies, APIs, and approaches.
286
+
287
+ Here is the idea:
288
+ [Idea Context Brief]
289
+
290
+ Research and produce:
291
+
292
+ 1. **Technical Approaches** — 2-3 different ways this could be built.
293
+ For each, describe:
294
+ - The core architecture
295
+ - Key technologies/frameworks/services involved
296
+ - Rough complexity level (weekend project → multi-team effort)
297
+ - Major trade-offs
298
+
299
+ 2. **Key Technologies** — Specific APIs, services, libraries, or platforms
300
+ that would be central to building this. For each, note:
301
+ - What it does
302
+ - Maturity level (production-ready, beta, experimental)
303
+ - Cost implications
304
+ - Alternatives
305
+
306
+ 3. **Technical Risks** — What are the hardest technical challenges? What
307
+ might not work as expected? Where are the unknowns?
308
+
309
+ 4. **Build vs. Buy** — Are there components that should be built custom
310
+ vs. using existing services? Where would you spend engineering time
311
+ vs. money?
312
+
313
+ 5. **Feasibility Assessment** — Overall, how technically feasible is this?
314
+ Rate as: Straightforward / Moderate / Challenging / Research-required.
315
+ Explain your rating.
316
+
317
+ Search for relevant documentation, GitHub repos, technical blog posts,
318
+ and Stack Overflow discussions. Look for people who've built similar things
319
+ and what they learned.
320
+ ```
321
+
322
+ ### 7. Elevator Pitch Crafter
323
+
324
+ **Mission:** Distill everything into a clear, compelling description. This
325
+ agent runs *after* the other 6 complete — it needs their outputs as input.
326
+
327
+ **Important:** Do NOT spawn this agent with the others. Wait for agents 1-6
328
+ to finish, then launch this agent with their combined outputs.
329
+
330
+ **Prompt pattern:**
331
+ ```
332
+ You are the Elevator Pitch Crafter. Your job is to take the outputs from
333
+ six research agents and distill them into a clear, compelling description
334
+ of this idea.
335
+
336
+ Here is the original idea:
337
+ [Idea Context Brief]
338
+
339
+ Here are the outputs from the research team:
340
+ [Intent Clarifier output]
341
+ [Problem Decomposer output]
342
+ [Assumptions Auditor output]
343
+ [Market Scout output]
344
+ [Customer Voice output]
345
+ [Technical Scout output]
346
+
347
+ Produce:
348
+
349
+ 1. **Elevator Pitch** — 2-3 sentences that clearly communicate what this
350
+ idea is, who it's for, and why it matters. This should be immediately
351
+ understandable by anyone — no jargon, no hand-waving. If you can't
352
+ write a clear pitch, explain what's still too fuzzy and what questions
353
+ need to be answered first.
354
+
355
+ 2. **One-Paragraph Description** — Expand the pitch into a paragraph that
356
+ adds enough detail for someone to evaluate whether they're interested
357
+ in learning more.
358
+
359
+ 3. **Key Differentiator** — Based on the market research, what would make
360
+ this idea stand out? What's the "why this, why now" argument?
361
+
362
+ 4. **Remaining Questions** — What are the 3-5 most important questions
363
+ that still need answers before this idea is ready for a formal PRD?
364
+ Prioritize them.
365
+
366
+ 5. **Readiness Assessment** — Is this idea ready to move to PRD stage?
367
+ Rate as: Ready / Almost (needs X) / Needs More Work (because Y).
368
+ ```
369
+
370
+ ## Step 4: Synthesize the Idea Brief
371
+
372
+ Once all agents have reported back, compile their outputs into a single
373
+ markdown document. The brief should be structured to tell a clear story,
374
+ not just dump agent outputs.
375
+
376
+ ### Idea Brief structure
377
+
378
+ ```markdown
379
+ # Idea Brief: [Idea Name]
380
+
381
+ > [Elevator pitch — 2-3 sentences from the Pitch Crafter]
382
+
383
+ ## Overview
384
+
385
+ [One-paragraph description from the Pitch Crafter]
386
+
387
+ ## The Problem
388
+
389
+ [Problem statement from Problem Decomposer]
390
+
391
+ ### How people deal with this today
392
+ [Current state from Problem Decomposer]
393
+
394
+ ### Who feels this pain
395
+ [From Problem Decomposer — the different types of people affected]
396
+
397
+ ## Market Landscape
398
+
399
+ [Landscape summary from Market Scout]
400
+
401
+ ### Existing solutions
402
+ [Direct competitors and adjacent solutions from Market Scout]
403
+
404
+ ### Market gaps
405
+ [Gaps identified by Market Scout]
406
+
407
+ ### Failed attempts
408
+ [If any were found — valuable cautionary context]
409
+
410
+ ## Customer Perspective
411
+
412
+ [For each persona from Customer Voice:]
413
+ ### [Persona Name] — [Role/Context]
414
+ - **Reaction:** [Their likely reaction]
415
+ - **Key questions:** [Their top questions]
416
+ - **Dealbreakers:** [What would turn them away]
417
+ - **Hook:** [What would make them want this immediately]
418
+
419
+ ## Technical Feasibility
420
+
421
+ [Feasibility assessment from Technical Scout]
422
+
423
+ ### Possible approaches
424
+ [Technical approaches with trade-offs]
425
+
426
+ ### Key technologies
427
+ [Relevant APIs, services, frameworks]
428
+
429
+ ### Technical risks
430
+ [What's hard, what's unknown]
431
+
432
+ ## Assumptions to Test
433
+
434
+ [From Assumptions Auditor — the critical hidden assumptions]
435
+
436
+ ### Highest-risk assumptions
437
+ [The ones that could sink the whole idea]
438
+
439
+ ### How to test them
440
+ [Cheap validation approaches]
441
+
442
+ ## Open Questions
443
+
444
+ [Combined from Intent Clarifier, Assumptions Auditor, and Pitch Crafter.
445
+ Deduplicate and prioritize. These are the questions that need answers
446
+ before moving to a PRD.]
447
+
448
+ ## Key Differentiator
449
+
450
+ [From Pitch Crafter — why this, why now]
451
+
452
+ ## Readiness Assessment
453
+
454
+ [From Pitch Crafter — is this ready for PRD stage?]
455
+
456
+ ---
457
+ *Generated by idea-explorer on [date]*
458
+ ```
459
+
460
+ ### Writing the brief
461
+
462
+ When assembling the brief:
463
+ - Don't just paste agent outputs verbatim. Synthesize, deduplicate, and
464
+ create a coherent narrative.
465
+ - Use the agents' outputs as raw material, but write the brief in a
466
+ consistent voice.
467
+ - If agents contradicted each other (e.g., Market Scout found competitors
468
+ but Assumptions Auditor assumed there were none), flag the contradiction
469
+ explicitly — that's valuable signal.
470
+ - Keep the tone conversational and honest. This isn't a pitch deck trying
471
+ to sell someone — it's a thinking document trying to understand something.
472
+
473
+ ## Step 5: Present and iterate
474
+
475
+ After generating the brief:
476
+
477
+ 1. Save it to `docs/idea-brief.md`
478
+ 2. Present a summary to the user highlighting:
479
+ - The elevator pitch
480
+ - The most surprising findings (competitors they didn't know about,
481
+ assumptions they hadn't considered, technical challenges)
482
+ - The top 3-5 open questions
483
+ - The readiness assessment
484
+ 3. Ask if they want to:
485
+ - **Dig deeper** on any section (re-run specific agents with updated
486
+ context)
487
+ - **Answer open questions** (update the brief with new information and
488
+ re-run relevant agents)
489
+ - **Move to PRD** (if the readiness assessment says it's ready, suggest
490
+ using `/prd.create` with the brief as input)
491
+ - **Shelve it** (save the brief for later consideration)
492
+
493
+ ## Tips for the interview
494
+
495
+ - Match the user's energy. If they're excited, be encouraging. If they're
496
+ uncertain, be supportive. Don't be falsely enthusiastic about every idea,
497
+ but don't be a wet blanket either.
498
+ - If the idea sounds like something that clearly already exists, don't say
499
+ "that already exists" — let the Market Scout find it. There might be a
500
+ nuance you're missing, or the user might be aware and planning to
501
+ differentiate.
502
+ - If the user gives you very little to work with ("I want to build an app"),
503
+ ask more questions in the interview. If they give you a detailed dump,
504
+ ask fewer. Scale the interview to the gap.
505
+ - Some users think in problems ("I hate how X works"), some think in
506
+ solutions ("I want to build Y"). Both are valid starting points. The
507
+ Problem Decomposer will sort out which is which.