jdd-sprint-kit 0.3.1
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/LICENSE +21 -0
- package/README.md +253 -0
- package/bin/cli.js +48 -0
- package/compat/baseline.json +6 -0
- package/package.json +40 -0
- package/src/commands/compat-check.js +178 -0
- package/src/commands/init.js +267 -0
- package/src/commands/update.js +132 -0
- package/src/lib/adapters/codex.js +68 -0
- package/src/lib/copy.js +131 -0
- package/src/lib/detect.js +81 -0
- package/src/lib/fingerprint.js +152 -0
- package/src/lib/manifest.js +51 -0
- package/src/lib/merge.js +109 -0
- package/src/lib/prompts.js +196 -0
- package/templates/.claude/agents/auto-sprint.md +882 -0
- package/templates/.claude/agents/brownfield-scanner.md +259 -0
- package/templates/.claude/agents/deliverable-generator.md +429 -0
- package/templates/.claude/agents/judge-business.md +91 -0
- package/templates/.claude/agents/judge-quality.md +82 -0
- package/templates/.claude/agents/judge-security.md +80 -0
- package/templates/.claude/agents/scope-gate.md +219 -0
- package/templates/.claude/agents/worker.md +82 -0
- package/templates/.claude/commands/circuit-breaker.md +106 -0
- package/templates/.claude/commands/parallel.md +110 -0
- package/templates/.claude/commands/preview.md +85 -0
- package/templates/.claude/commands/specs.md +206 -0
- package/templates/.claude/commands/sprint.md +552 -0
- package/templates/.claude/commands/summarize-prd.md +290 -0
- package/templates/.claude/commands/validate.md +143 -0
- package/templates/.claude/hooks/desktop-notify.sh +9 -0
- package/templates/.claude/hooks/protect-readonly-paths.sh +42 -0
- package/templates/.claude/hooks/sprint-pre-compact.sh +42 -0
- package/templates/.claude/hooks/sprint-session-recovery.sh +33 -0
- package/templates/.claude/rules/bmad-mcp-search.md +97 -0
- package/templates/.claude/rules/bmad-sprint-guide.md +176 -0
- package/templates/.claude/rules/bmad-sprint-protocol.md +178 -0
- package/templates/.claude/settings.json +50 -0
- package/templates/.mcp.json.example +16 -0
- package/templates/_bmad/docs/architecture-to-epics-checklist.md +59 -0
- package/templates/_bmad/docs/blueprint-format-guide.md +387 -0
- package/templates/_bmad/docs/brownfield-context-format.md +167 -0
- package/templates/_bmad/docs/prd-format-guide.md +538 -0
- package/templates/_bmad/docs/sprint-input-format.md +496 -0
- package/templates/preview-template/.redocly.yaml +10 -0
- package/templates/preview-template/api/.gitkeep +0 -0
- package/templates/preview-template/index.html +12 -0
- package/templates/preview-template/package-lock.json +5547 -0
- package/templates/preview-template/package.json +33 -0
- package/templates/preview-template/public/mockServiceWorker.js +307 -0
- package/templates/preview-template/src/App.tsx +9 -0
- package/templates/preview-template/src/api/client.ts +32 -0
- package/templates/preview-template/src/components/.gitkeep +0 -0
- package/templates/preview-template/src/components/DevPanel.tsx +76 -0
- package/templates/preview-template/src/main.tsx +26 -0
- package/templates/preview-template/src/mocks/browser.ts +4 -0
- package/templates/preview-template/src/mocks/handlers.ts +3 -0
- package/templates/preview-template/src/pages/.gitkeep +0 -0
- package/templates/preview-template/src/vite-env.d.ts +1 -0
- package/templates/preview-template/tsconfig.json +21 -0
- package/templates/preview-template/vite.config.ts +6 -0
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
# Blueprint Writing Guidelines
|
|
2
|
+
|
|
3
|
+
Format definition for a document that conveys a product's **"why" and "how it works"** to the target audience in a self-contained manner.
|
|
4
|
+
|
|
5
|
+
> **Reference documents:**
|
|
6
|
+
> - PRD format guide: `_bmad/docs/prd-format-guide.md`
|
|
7
|
+
> - Sprint Kit Blueprint (instance): `docs/blueprint.md`
|
|
8
|
+
> - JDD philosophy: `docs/judgment-driven-development.md`
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Self-Containment Principle
|
|
13
|
+
|
|
14
|
+
If the Blueprint's target audience **does not read code**, operational details must be included in the Blueprint.
|
|
15
|
+
|
|
16
|
+
- "See code for details" or "See agent file" is allowed only when the target audience can read code
|
|
17
|
+
- The Blueprint is the **only comprehensive document** for the target audience
|
|
18
|
+
- Even if tool, agent, or workflow descriptions "overlap" with agent definition files, they must be included since this is the **only accessible form** for the target audience
|
|
19
|
+
|
|
20
|
+
**Verification criterion**: Can the target audience recreate this product/service with AI using only this document?
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 2. YAML Frontmatter
|
|
25
|
+
|
|
26
|
+
Every Blueprint starts with a YAML frontmatter.
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
---
|
|
30
|
+
synced_to: "{commit-hash}" # Last commit where non-Blueprint source file changes were reflected
|
|
31
|
+
audience: "{target audience}" # e.g., "non-developer product expert", "entire team", "external investors"
|
|
32
|
+
product: "{product name}"
|
|
33
|
+
version: "{document version}"
|
|
34
|
+
---
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Required Fields
|
|
38
|
+
|
|
39
|
+
| Field | Purpose |
|
|
40
|
+
|-------|---------|
|
|
41
|
+
| `audience` | Target audience definition. Determines self-containment level and terminology depth |
|
|
42
|
+
| `product` | Product/service name covered by the Blueprint |
|
|
43
|
+
|
|
44
|
+
### Optional Fields
|
|
45
|
+
|
|
46
|
+
| Field | Purpose |
|
|
47
|
+
|-------|---------|
|
|
48
|
+
| `synced_to` | Source file sync tracking (last reflected commit of non-Blueprint files) |
|
|
49
|
+
| `version` | Document version |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. Vision Statement
|
|
54
|
+
|
|
55
|
+
Place a **vision statement** in a blockquote immediately below the frontmatter.
|
|
56
|
+
|
|
57
|
+
- Describe what the product aspires to be in 3-5 sentences
|
|
58
|
+
- Target audience must grasp "what this product is" from the first paragraph
|
|
59
|
+
- **Core principle**: State the product's core principle as one sentence at the end of the vision statement
|
|
60
|
+
|
|
61
|
+
```markdown
|
|
62
|
+
> {product} aspires to be a {tool/service/platform} that enables {who} to {what}.
|
|
63
|
+
> ...
|
|
64
|
+
>
|
|
65
|
+
> Core principle: **{one-sentence core principle}**
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 4. 8-Section Structure
|
|
71
|
+
|
|
72
|
+
### Overview
|
|
73
|
+
|
|
74
|
+
| # | Section | One-Line Purpose |
|
|
75
|
+
|---|---------|-----------------|
|
|
76
|
+
| 1 | **Problem** | Why this product exists |
|
|
77
|
+
| 2 | **Thesis** | Core principle + design judgments + preconditions |
|
|
78
|
+
| 3 | **User Model** | Who uses it and what role they play |
|
|
79
|
+
| 4 | **Value Chain** | System components + pipeline + routes + cost |
|
|
80
|
+
| 5 | **Judgment & Feedback** | How judgments are made + feedback mechanisms |
|
|
81
|
+
| 6 | **Constraints & Trade-offs** | What it doesn't do + conscious trade-offs |
|
|
82
|
+
| 7 | **Risk Model** | Assumptions + what breaks + detection signals |
|
|
83
|
+
| 8 | **Current State** | Current status + unvalidated hypotheses + known gaps |
|
|
84
|
+
|
|
85
|
+
### Appendix (optional)
|
|
86
|
+
|
|
87
|
+
| Appendix | Purpose |
|
|
88
|
+
|----------|---------|
|
|
89
|
+
| A. Setup & Operations | Setup, configuration, operations guide |
|
|
90
|
+
| B. File Structure | Directory tree + per-file roles |
|
|
91
|
+
| C. Glossary | Product-specific term definitions |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 5. Per-Section Writing Rules
|
|
96
|
+
|
|
97
|
+
### S1 Problem
|
|
98
|
+
|
|
99
|
+
**Purpose**: Define the problem this product solves.
|
|
100
|
+
|
|
101
|
+
**Required elements**:
|
|
102
|
+
- Current state of the problem (who struggles in what situation)
|
|
103
|
+
- Why existing solutions are insufficient
|
|
104
|
+
- Why this problem matters
|
|
105
|
+
|
|
106
|
+
**Quality criteria**:
|
|
107
|
+
- Non-experts should understand the severity of the problem
|
|
108
|
+
- Describe the problem only, without mentioning the solution
|
|
109
|
+
|
|
110
|
+
**Anti-patterns**:
|
|
111
|
+
- No: Describe the solution first and reverse-engineer the problem
|
|
112
|
+
- No: Use only industry jargon, making it incomprehensible to the target audience
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### S2 Thesis
|
|
117
|
+
|
|
118
|
+
**Purpose**: State the core principle and design judgments for the problem.
|
|
119
|
+
|
|
120
|
+
**Required structure**:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
2. Thesis
|
|
124
|
+
2.1 Core Principle — one sentence. Same as "core principle" in the vision statement
|
|
125
|
+
2.2 Design Judgments — specific judgments to realize the core principle
|
|
126
|
+
2.3 Preconditions — what must be true for the core principle to hold
|
|
127
|
+
2.4 When the Principle Fails — scenarios where the core principle breaks down
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**S2.1 Core Principle**:
|
|
131
|
+
- One sentence
|
|
132
|
+
- Restatement of the principle already declared in the vision statement
|
|
133
|
+
|
|
134
|
+
**S2.2 Design Judgments**:
|
|
135
|
+
- Number and format are flexible (3-10 recommended)
|
|
136
|
+
- Each judgment follows this structure:
|
|
137
|
+
- **Name** (English, short declarative statement)
|
|
138
|
+
- **One-line summary** (blockquote)
|
|
139
|
+
- **Explanation**: Why this judgment + examples
|
|
140
|
+
- **Product implementation**: How this judgment manifests in the product
|
|
141
|
+
|
|
142
|
+
**S2.3 Preconditions**:
|
|
143
|
+
- Things that must be true for the core principle to hold
|
|
144
|
+
- e.g., "AI generation quality must be at a reviewable level"
|
|
145
|
+
|
|
146
|
+
**S2.4 When the Principle Fails**:
|
|
147
|
+
- Scenarios where the core principle fails
|
|
148
|
+
- What happens when it fails
|
|
149
|
+
|
|
150
|
+
**Quality criteria**:
|
|
151
|
+
- Each design judgment in S2.2 must be referenced as rationale in S4 (Value Chain), S5 (Judgment), S6 (Constraints)
|
|
152
|
+
- The causal chain "principle → judgment → implementation" must be clear
|
|
153
|
+
|
|
154
|
+
**Anti-patterns**:
|
|
155
|
+
- No: Number design judgments as "Principle 1, Principle 2" (judgments are not principles)
|
|
156
|
+
- No: List declarations without rationale
|
|
157
|
+
- No: Omit preconditions and failure scenarios
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
### S3 User Model
|
|
162
|
+
|
|
163
|
+
**Purpose**: Who uses this product and what role they play.
|
|
164
|
+
|
|
165
|
+
**Required elements**:
|
|
166
|
+
- Target user definition (affirmative: what expertise they have)
|
|
167
|
+
- What users do (specific role/behavior list)
|
|
168
|
+
- What the system does (what users don't do)
|
|
169
|
+
|
|
170
|
+
**Quality criteria**:
|
|
171
|
+
- Define users by expertise, not by negation ("not a ~")
|
|
172
|
+
- Clear boundary between user role and system role
|
|
173
|
+
|
|
174
|
+
**Anti-patterns**:
|
|
175
|
+
- No: Define by negation ("non-developer", "non-expert")
|
|
176
|
+
- No: Ambiguous boundary between user and system roles
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
### S4 Value Chain
|
|
181
|
+
|
|
182
|
+
**Purpose**: How the product delivers value. Explain system components, process, routes, and cost.
|
|
183
|
+
|
|
184
|
+
**Required structure**:
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
4. Value Chain
|
|
188
|
+
4.1 System Components — tools, agents, external integrations, etc.
|
|
189
|
+
4.2 Pipeline — full workflow details
|
|
190
|
+
4.3 Route Selection — variations by input state/user type
|
|
191
|
+
4.4 Cost Structure — cost formula or ROI analysis
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**S4.1 System Components**:
|
|
195
|
+
- Tools/services/agents/external integrations table
|
|
196
|
+
- One-line role description for each component
|
|
197
|
+
|
|
198
|
+
**S4.2 Pipeline**:
|
|
199
|
+
- **Follow-Along pattern recommended**: Describe "what the user sees (external)" and "system behavior (internal)" in parallel at each step
|
|
200
|
+
- Each step includes:
|
|
201
|
+
- User perspective: what the user does / receives
|
|
202
|
+
- System internals: input → processing → output
|
|
203
|
+
- Artifacts: generated outputs
|
|
204
|
+
- On failure: error situations and responses
|
|
205
|
+
- **Rationale design judgment**: why this step exists (references S2.2)
|
|
206
|
+
- Depth appropriate to target audience
|
|
207
|
+
- Delivery app: summary level like "order → matching → delivery → rating"
|
|
208
|
+
- Dev tool: detailed per-phase walkthrough
|
|
209
|
+
|
|
210
|
+
**S4.3 Route Selection**:
|
|
211
|
+
- Branching by input state/user type
|
|
212
|
+
- Specify convergence points for all routes
|
|
213
|
+
- Whether cross-route transitions (crossover) are possible
|
|
214
|
+
|
|
215
|
+
**S4.4 Cost Structure**:
|
|
216
|
+
- Cost formula or ROI comparison
|
|
217
|
+
- Time/cost comparison with real-world workflow (if applicable)
|
|
218
|
+
|
|
219
|
+
**Quality criteria**:
|
|
220
|
+
- Each step in S4.2 must cite a rationale design judgment
|
|
221
|
+
- Target audience must be able to follow the entire process end-to-end
|
|
222
|
+
|
|
223
|
+
**Anti-patterns**:
|
|
224
|
+
- No: List components without explaining the flow
|
|
225
|
+
- No: Omit failure paths in the pipeline
|
|
226
|
+
- No: "See code for details" (violates self-containment principle)
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
### S5 Judgment & Feedback
|
|
231
|
+
|
|
232
|
+
**Purpose**: How users judge and how feedback is incorporated.
|
|
233
|
+
|
|
234
|
+
**Required elements**:
|
|
235
|
+
- Judgment model (JPs, star ratings, quizzes, reviews, etc. — whatever fits the product)
|
|
236
|
+
- Details at each judgment point (what they see, what they judge, how they respond)
|
|
237
|
+
- Feedback incorporation mechanism (how feedback flows back into the system)
|
|
238
|
+
- Reverse loop (when later stages discover errors in earlier stages)
|
|
239
|
+
|
|
240
|
+
**Quality criteria**:
|
|
241
|
+
- Judgment points are implementations of S2.2 design judgments (cite explicitly)
|
|
242
|
+
- Feedback incorporation paths are specific (what scope is modified/regenerated)
|
|
243
|
+
|
|
244
|
+
**Anti-patterns**:
|
|
245
|
+
- No: "We incorporate user feedback" level of abstract description
|
|
246
|
+
- No: Omit feedback cost/scope
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
### S6 Constraints & Trade-offs
|
|
251
|
+
|
|
252
|
+
**Purpose**: What this product consciously does not do and its trade-offs.
|
|
253
|
+
|
|
254
|
+
**Required elements**:
|
|
255
|
+
- Boundaries: what this product does not do
|
|
256
|
+
- Trade-offs: consciously chosen directions and their costs
|
|
257
|
+
- Left open: what has not been decided yet and why
|
|
258
|
+
|
|
259
|
+
**Quality criteria**:
|
|
260
|
+
- Each trade-off connects to an S2.2 design judgment
|
|
261
|
+
- "What it doesn't do" must be clear enough to prevent scope confusion
|
|
262
|
+
|
|
263
|
+
**Anti-patterns**:
|
|
264
|
+
- No: No constraints, "can do everything"
|
|
265
|
+
- No: Hide the cost of trade-offs
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
### S7 Risk Model
|
|
270
|
+
|
|
271
|
+
**Purpose**: Define core assumptions, what happens if they break, and detection signals.
|
|
272
|
+
|
|
273
|
+
**Required structure**:
|
|
274
|
+
|
|
275
|
+
| Assumption | If Broken | Detection Signal |
|
|
276
|
+
|-----------|-----------|-----------------|
|
|
277
|
+
| {what must be true} | {impact when broken} | {how to detect it} |
|
|
278
|
+
|
|
279
|
+
**Quality criteria**:
|
|
280
|
+
- Connect to S2.3 preconditions
|
|
281
|
+
- Detection signals must be specific and measurable
|
|
282
|
+
|
|
283
|
+
**Anti-patterns**:
|
|
284
|
+
- No: List risks without detection methods
|
|
285
|
+
- No: "No risks"
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
### S8 Current State
|
|
290
|
+
|
|
291
|
+
**Purpose**: Honestly describe the product's current state.
|
|
292
|
+
|
|
293
|
+
**Required elements**:
|
|
294
|
+
- Current version/state
|
|
295
|
+
- Unvalidated hypotheses (not yet validated through real usage)
|
|
296
|
+
- Known gaps (differences between design and implementation)
|
|
297
|
+
|
|
298
|
+
**Quality criteria**:
|
|
299
|
+
- Consistent with CHANGELOG or release notes
|
|
300
|
+
- Unvalidated hypotheses connect to S7 assumptions
|
|
301
|
+
|
|
302
|
+
**Anti-patterns**:
|
|
303
|
+
- No: Hide incomplete state and describe as "complete product"
|
|
304
|
+
- No: Describe unimplemented features as if implemented
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## 6. Appendix Guide
|
|
309
|
+
|
|
310
|
+
Appendices hold reference information without disrupting the main text flow.
|
|
311
|
+
|
|
312
|
+
**Principles**:
|
|
313
|
+
- Appendices also follow the self-containment principle. Do not reference agent files or code
|
|
314
|
+
- Target audience must understand all terms and structures within the Appendix
|
|
315
|
+
|
|
316
|
+
**Common Appendices**:
|
|
317
|
+
|
|
318
|
+
| Appendix | Purpose | Inclusion Criteria |
|
|
319
|
+
|----------|---------|-------------------|
|
|
320
|
+
| Setup & Operations | Setup, configuration, operations guide | When target audience directly installs/operates |
|
|
321
|
+
| File Structure | Directory tree + per-file roles | When file structure understanding is needed |
|
|
322
|
+
| Glossary | Product-specific term definitions | When 10+ product-specific terms exist |
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## 7. Writing Rules
|
|
327
|
+
|
|
328
|
+
### Language
|
|
329
|
+
|
|
330
|
+
- Match the target audience's language (Korean products in Korean, international products in English)
|
|
331
|
+
- Use technical terms at the target audience's level. Define unavoidable terms in the glossary (Appendix C)
|
|
332
|
+
|
|
333
|
+
### Information Density
|
|
334
|
+
|
|
335
|
+
- Every sentence must carry information weight
|
|
336
|
+
- Remove filler words, repetition, decorative prose
|
|
337
|
+
- Use tables when more efficient than prose
|
|
338
|
+
|
|
339
|
+
### Reference Rules
|
|
340
|
+
|
|
341
|
+
- Intra-Blueprint section references: `S{number}` format (e.g., "see S2.2 Design Judgments")
|
|
342
|
+
- External document references: check self-containment principle first. Reference only if target audience can access
|
|
343
|
+
- Design judgment references: use English judgment names when citing rationale in S4, S5, S6
|
|
344
|
+
|
|
345
|
+
### Length Guide
|
|
346
|
+
|
|
347
|
+
| Product Complexity | Expected Length | S4 Proportion |
|
|
348
|
+
|-------------------|----------------|---------------|
|
|
349
|
+
| Simple (single feature) | 200-400 lines | 30% |
|
|
350
|
+
| Medium (multi-feature service) | 400-800 lines | 40% |
|
|
351
|
+
| Complex (platform/toolkit) | 800-1200 lines | 45% |
|
|
352
|
+
|
|
353
|
+
---
|
|
354
|
+
|
|
355
|
+
## 8. Checklist (Self-Review)
|
|
356
|
+
|
|
357
|
+
Verify the following after Blueprint completion:
|
|
358
|
+
|
|
359
|
+
### Structure
|
|
360
|
+
|
|
361
|
+
- [ ] YAML frontmatter has `audience` field
|
|
362
|
+
- [ ] Vision statement exists immediately below frontmatter
|
|
363
|
+
- [ ] All 8 sections exist (S1-S8)
|
|
364
|
+
- [ ] Appendix included if needed
|
|
365
|
+
|
|
366
|
+
### Self-Containment
|
|
367
|
+
|
|
368
|
+
- [ ] Zero occurrences of "see code" or "see agent file"
|
|
369
|
+
- [ ] Target audience can understand the product from this document alone
|
|
370
|
+
- [ ] All terms are defined within the document or in the glossary
|
|
371
|
+
|
|
372
|
+
### Causal Chain
|
|
373
|
+
|
|
374
|
+
- [ ] S2.1 (principle) → S2.2 (judgments) → referenced as rationale in S4/S5/S6
|
|
375
|
+
- [ ] S2.3 (preconditions) → connected in S7 (Risk Model)
|
|
376
|
+
- [ ] Each step in S4.2 cites a rationale design judgment
|
|
377
|
+
|
|
378
|
+
### Information Preservation (when rewriting existing documents)
|
|
379
|
+
|
|
380
|
+
- [ ] All information from the existing document is mapped to the new structure
|
|
381
|
+
- [ ] Verified zero loss items via mapping table
|
|
382
|
+
|
|
383
|
+
### Consistency
|
|
384
|
+
|
|
385
|
+
- [ ] Vision statement core principle = S2.1 core principle (same sentence)
|
|
386
|
+
- [ ] S8 Current State is consistent with CHANGELOG
|
|
387
|
+
- [ ] External reference documents (JDD, etc.) have role division, not overlap
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# Brownfield Context 파일 포맷 가이드
|
|
2
|
+
|
|
3
|
+
## YAML Frontmatter 구조
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
---
|
|
7
|
+
feature: {feature_name}
|
|
8
|
+
layers:
|
|
9
|
+
- name: L1
|
|
10
|
+
source_step: create-product-brief/step-01-init
|
|
11
|
+
created_at: 2026-01-15
|
|
12
|
+
search_keywords:
|
|
13
|
+
- keyword1
|
|
14
|
+
- keyword2
|
|
15
|
+
sources:
|
|
16
|
+
- type: mcp
|
|
17
|
+
name: svc-map
|
|
18
|
+
- type: mcp
|
|
19
|
+
name: figma
|
|
20
|
+
discovered:
|
|
21
|
+
domain_concepts: 5
|
|
22
|
+
user_flows: 3
|
|
23
|
+
screen_ids: ['screen-123', 'screen-456']
|
|
24
|
+
notes: "Optional notes about search limitations"
|
|
25
|
+
|
|
26
|
+
- name: L2
|
|
27
|
+
sub_phase: complete # 'preliminary' | 'complete'
|
|
28
|
+
source_step: prd/step-02-discovery (L2a) + prd/step-08-scoping (L2b)
|
|
29
|
+
created_at: 2026-01-16
|
|
30
|
+
search_keywords:
|
|
31
|
+
# L2a (preliminary) - Input Documents 키워드
|
|
32
|
+
- api_keyword1
|
|
33
|
+
# L2b (refinement) - Scoping/FR 키워드
|
|
34
|
+
- fr_keyword1
|
|
35
|
+
sources:
|
|
36
|
+
- type: mcp
|
|
37
|
+
name: backend-docs
|
|
38
|
+
- type: mcp
|
|
39
|
+
name: client-docs
|
|
40
|
+
discovered:
|
|
41
|
+
existing_apis: 8
|
|
42
|
+
existing_components: 3
|
|
43
|
+
domain_rules: 4
|
|
44
|
+
notes: "L2a: step-02, L2b: step-08"
|
|
45
|
+
|
|
46
|
+
- name: L3
|
|
47
|
+
source_step: create-architecture/step-02-context
|
|
48
|
+
created_at: 2026-01-17
|
|
49
|
+
search_keywords:
|
|
50
|
+
- ServiceName
|
|
51
|
+
- ComponentName
|
|
52
|
+
sources:
|
|
53
|
+
- type: mcp
|
|
54
|
+
name: backend-docs
|
|
55
|
+
- type: mcp
|
|
56
|
+
name: client-docs
|
|
57
|
+
discovered:
|
|
58
|
+
service_integrations: 6
|
|
59
|
+
code_patterns: 5
|
|
60
|
+
data_adjacencies: 3
|
|
61
|
+
|
|
62
|
+
- name: L4
|
|
63
|
+
source_step: specs-generation
|
|
64
|
+
created_at: 2026-01-18
|
|
65
|
+
search_keywords:
|
|
66
|
+
- exact/file/path.java
|
|
67
|
+
- FunctionName
|
|
68
|
+
sources:
|
|
69
|
+
- type: mcp
|
|
70
|
+
name: backend-docs
|
|
71
|
+
- type: mcp
|
|
72
|
+
name: client-docs
|
|
73
|
+
discovered:
|
|
74
|
+
file_paths: 12
|
|
75
|
+
function_signatures: 8
|
|
76
|
+
---
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 레이어별 본문 구조
|
|
80
|
+
|
|
81
|
+
### L1: Domain Concept Layer
|
|
82
|
+
```markdown
|
|
83
|
+
## L1: Domain Concept Layer
|
|
84
|
+
|
|
85
|
+
### Customer Journey Position
|
|
86
|
+
- Flow: {flow_name}
|
|
87
|
+
- Screen IDs: {screen_id_list}
|
|
88
|
+
|
|
89
|
+
### Domain Concepts Found
|
|
90
|
+
| Concept | Source | Reference |
|
|
91
|
+
|---------|--------|-----------|
|
|
92
|
+
| 튜터 | svc-map | screen-123 |
|
|
93
|
+
|
|
94
|
+
### Existing User Flows
|
|
95
|
+
{flow descriptions}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### L2: Behavior Layer
|
|
99
|
+
```markdown
|
|
100
|
+
## L2: Behavior Layer
|
|
101
|
+
|
|
102
|
+
### Existing APIs
|
|
103
|
+
| API | Method | Relevance | Source |
|
|
104
|
+
|-----|--------|-----------|--------|
|
|
105
|
+
| /api/v2/schedule | POST | 매칭 대상 | backend-docs |
|
|
106
|
+
|
|
107
|
+
### Existing UI Components
|
|
108
|
+
| Component | Path | Relevance | Source |
|
|
109
|
+
|-----------|------|-----------|--------|
|
|
110
|
+
| LessonCard | features/lesson/ | 평가 진입점 | client-docs |
|
|
111
|
+
|
|
112
|
+
### Domain Rules Discovered
|
|
113
|
+
{business rules}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### L3: Component Layer
|
|
117
|
+
```markdown
|
|
118
|
+
## L3: Component Layer
|
|
119
|
+
|
|
120
|
+
### Service Integration Points
|
|
121
|
+
| Service | Existing? | Integration | Source |
|
|
122
|
+
|---------|-----------|-------------|--------|
|
|
123
|
+
| PodoScheduleServiceImplV2 | Yes | DI inject ExclusionFilter | backend-docs |
|
|
124
|
+
|
|
125
|
+
### Existing Code Patterns to Follow
|
|
126
|
+
| Pattern | Example Location | Source |
|
|
127
|
+
|---------|-----------------|--------|
|
|
128
|
+
| DslRepository | TutorDslRepository.java | backend-docs |
|
|
129
|
+
|
|
130
|
+
### Data Model Adjacencies
|
|
131
|
+
{adjacent tables and relationships}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### L4: Code Layer
|
|
135
|
+
```markdown
|
|
136
|
+
## L4: Code Layer
|
|
137
|
+
|
|
138
|
+
### File Paths
|
|
139
|
+
| File | Modification Type | Owner Task |
|
|
140
|
+
|------|-------------------|------------|
|
|
141
|
+
| src/main/.../PodoScheduleServiceImplV2.java | Extend | task-2.6 |
|
|
142
|
+
|
|
143
|
+
### Function Signatures
|
|
144
|
+
| Function | File | Change Required |
|
|
145
|
+
|----------|------|-----------------|
|
|
146
|
+
| matchTutor() | PodoScheduleServiceImplV2.java | Add exclusion filter param |
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Source Types
|
|
150
|
+
|
|
151
|
+
`sources` 배열의 각 항목은 `type`과 `name`으로 구성된다:
|
|
152
|
+
|
|
153
|
+
| type | 설명 | name 예시 |
|
|
154
|
+
|------|------|----------|
|
|
155
|
+
| `mcp` | MCP 서버에서 수집한 데이터 | `svc-map`, `backend-docs`, `client-docs`, `figma` |
|
|
156
|
+
| `document-project` | BMad document-project 워크플로우 산출물 | `project-overview.md`, `api-contracts.md`, `data-models.md` |
|
|
157
|
+
| `local-codebase` | 로컬 코드베이스 직접 스캔 결과 | `src/`, `lib/`, `app/` |
|
|
158
|
+
|
|
159
|
+
- 하나의 레이어에 여러 타입의 소스가 혼합될 수 있다
|
|
160
|
+
- 동일 정보가 여러 소스에서 발견되면 양쪽 모두 기록하고 우선순위를 명시한다
|
|
161
|
+
|
|
162
|
+
## 키 원칙
|
|
163
|
+
|
|
164
|
+
1. **점진적 구체화**: L1(어디) → L2(무엇을) → L3(어떻게) → L4(정확히 어디에)
|
|
165
|
+
2. **중복 방지**: 각 레이어의 search_keywords를 확인하여 이전 레이어에서 이미 검색한 키워드 제외
|
|
166
|
+
3. **추적 가능성**: source_step으로 어느 워크플로우 단계에서 생성되었는지 추적
|
|
167
|
+
4. **발견 수량 기록**: discovered 필드로 각 레이어의 검색 효과를 정량화
|