| name | aidlc-requirements-analysis |
| description | Use when user requirements need to be analyzed, structured into a requirements document, or when open questions from a previous analysis need resolution. |
| metadata | {"version":"0.6.0","author":"Jay","category":"ai-dlc-workflow","invoke_mode":"orchestrator-only","return_behavior":"stop-no-gate","output_path":"devflow-docs/inception/requirements.md","skill_nature":"amplification","lifecycle":"active"} |
aidlc-requirements-analysis
Purpose
Analyze and document requirements at a depth appropriate to the request's complexity.
Execution Modes
Normal Mode (๊ธฐ๋ณธ)
์ผ๋ฐ ํธ์ถ. Step 1๋ถํฐ ์์๋๋ก ์คํ.
QUESTIONS Mode
ํธ์ถ ํ
์คํธ์ QUESTIONS ํค์๋ ํฌํจ ์ ํ์ฑํ:
"aidlc-requirements-analysis: QUESTIONS โ ๊ธฐ์กด ๋ถ์ ์ ์ง, ๋ฏธํด๊ฒฐ ์ง๋ฌธ๋ง ์ฒ๋ฆฌ"
QUESTIONS ๋ชจ๋์์๋:
devflow-docs/inception/requirements.md ์ฝ๊ธฐ
## Open Questions ์น์
์ ๋ฏธํด๊ฒฐ ์ง๋ฌธ๋ง one-at-a-time์ผ๋ก ์ฒ๋ฆฌ
- ๋ต๋ณ์
## Assumptions ๋๋ ํด๋น ์๊ตฌ์ฌํญ ์น์
์ ๋ฐ์
requirements.md ์
๋ฐ์ดํธ ํ STOP
Step 1, 2, 3, 4๋ ์คํํ์ง ์๋๋ค.
QUESTIONS ๋ชจ๋ ๋ฐํ๊ฐ
๋ฏธํด๊ฒฐ ์ง๋ฌธ์ด ๋จ์์์ผ๋ฉด ์ด๋ฆฐ ์ง๋ฌธ: [N]๊ฐ ํจํด์ ํฌํจํ์ฌ ๋ฐํ. ๋ชจ๋ ํด๊ฒฐ๋๋ฉด ์ด๋ฆฐ ์ง๋ฌธ: 0๊ฐ.
UPDATE ๋ชจ๋
ํธ์ถ ํ
์คํธ์ UPDATE ํค์๋ ํฌํจ ์ ํ์ฑํ:
"aidlc-requirements-analysis: UPDATE โ ๊ธฐ์กด ๋ถ์ ์ ์ง, [๋ณ๊ฒฝ ๋ด์ฉ] ๋ฐ์"
UPDATE ๋ชจ๋์์๋:
devflow-docs/inception/requirements.md ์ฝ๊ธฐ (๊ธฐ์กด ๋ถ์)
- ๋ณ๊ฒฝ ์์ฒญ๊ณผ ๊ธฐ์กด ์๊ตฌ์ฌํญ์ ๋์กฐํ์ฌ ์ฐ๊ด์ฑ ํ๋จ:
- ์ฐ๊ด ์๊ตฌ์ฌํญ ์์ (๋์ผ ๊ธฐ๋ฅ/์์ญ) โ ํด๋น ํญ๋ชฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ /ํ์ฅ (์ฐ์ ์์ ๋ณ๊ฒฝ, ๊ธฐ์ค ๋ณด๊ฐ ๋ฑ). Edit ๋๊ตฌ๋ก ํด๋น ์น์
๋ง ๊ต์ฒด
- ์ฐ๊ด ์๊ตฌ์ฌํญ ์์ (์๋ก์ด ๊ธฐ๋ฅ) โ ์ ๊ท ํญ๋ชฉ์ผ๋ก ๊ธฐ์กด ๋ชฉ๋ก์ ์ถ๊ฐ. Edit ๋๊ตฌ๋ก ์ฝ์
- ์๊ตฌ์ฌํญ ์ญ์ โ ํด๋น ํญ๋ชฉ ์ญ์ + ์ฐ์ ์ํฅ ํ์ธ (Assumptions, Open Questions์์ ๊ด๋ จ ํญ๋ชฉ ์ ๊ฑฐ/๊ฐฑ์ )
- ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ์น์
์ ์ํฅ์ ์ฃผ๋์ง ํ์ธ:
- Assumptions: ๋ณ๊ฒฝ์ผ๋ก ๋ฌดํจํ๋ ๊ฐ์ ์ด ์์ผ๋ฉด ์ ๊ฑฐ ๋๋ ๊ฐฑ์
- Open Questions: ๋ณ๊ฒฝ์์ ์ ์ง๋ฌธ์ด ๋ฐ์ํ๋ฉด ์ถ๊ฐ
- Technology Stack, Non-Functional Requirements: ์ํฅ์ด ์์ผ๋ฉด ๊ฐฑ์
## Change Log ์น์
์ ๋ณ๊ฒฝ ๋ด์ญ ๊ธฐ๋ก: - [ISO 8601] UPDATE: [๋ณ๊ฒฝ ์์ฝ]
requirements.md ์
๋ฐ์ดํธ ํ STOP
๋๊ตฌ ์ ํ: ๋ถ๋ถ ์
๋ฐ์ดํธ์๋ ๋ฐ๋์ Edit ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค. Write ๋๊ตฌ๋ก ์ ์ฒด ๋ฎ์ด์ฐ๊ธฐ ๊ธ์ง.
Step 1, 2, 3, 4, 5๋ ์คํํ์ง ์๋๋ค.
UPDATE ๋ฒ์ ์ ํ: User Intent ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ์์ฒญ์ UPDATE ๋์์ด ์๋๋ค. "๋ฐฉํฅ์ ๋ฐ๊พธ๊ณ ์ถ๋ค"๋ ์์ฒญ์๋ "์ ์ฒด ์ฌ๋ถ์์ด ํ์ํฉ๋๋ค"๋ผ๊ณ ์๋ดํ๊ณ ์ผ๋ฐ ๋ชจ๋๋ก ์ฌํธ์ถ์ ์ ๋ํ๋ค.
Execute
Step 1: Load complexity
ํธ์ถ ํ
์คํธ์์ complexity ํ์ธ (Primary):
ํธ์ถ ํ
์คํธ์ Complexity: [level] ํจํด์ด ์์ผ๋ฉด ๊ทธ ๊ฐ์ ์ฌ์ฉ:
- "aidlc-requirements-analysis ์คํ. Complexity: Standard" โ Standard ์ฌ์ฉ
- "[Complexity: Standard] ์ค์ผ์คํธ๋ ์ดํฐ์์ ํ์ ๋ ๋ณต์ก๋๋ก ๋ถ์ํฉ๋๋ค." ํ์
devflow-state์์ ํ์ธ (Fallback):
ํธ์ถ ํ
์คํธ์ complexity ์ ๋ณด๊ฐ ์์ผ๋ฉด devflow-docs/devflow-state.md์ ## Complexity ํ๋๋ฅผ ์ฝ๋๋ค.
ํด๋น ํ๋๋ ์์ผ๋ฉด ๊ธฐ์กด ๊ธฐ์ค์ผ๋ก ์์ฒด ํ๋จ:
Choose Minimal if ALL of:
- Single, clearly defined feature
- No ambiguity in requirements
- No cross-component dependencies
- Low risk (reversible, isolated)
Choose Comprehensive if ANY of:
- Multiple components or services affected
- High risk or irreversible changes
- Ambiguous requirements
- External integrations involved
- Performance or security critical
Otherwise: Standard
Step 2: Interpretation check (Minimal ์ ์ธ)
Skip this step entirely if depth is Minimal.
For Standard and Comprehensive, ask: "์ด ์์ฒญ์ ๋๋ฑํ๊ฒ ์ ํจํ ํด์์ด 2๊ฐ์ง ์ด์ ์กด์ฌํ๋๊ฐ?"
ํ๋จ ๊ธฐ์ค โ ํด์์ด ๋ถ๊ธฐ๋๋ ์ ํธ:
- ์์ฒญ ํค์๋๊ฐ ์ฌ๋ฌ ๊ตฌํ ๋ฐฉ์์ ๊ฐ๋ฆฌํด (์: "๊ฒ์", "์๋ฆผ", "์ธ์ฆ")
- ๊ธฐ์ ์ ํ์ด ์๊ตฌ์ฌํญ ์์ฒด๋ฅผ ๋ฐ๊ฟ ์ ์์ (์: ์ค์๊ฐ vs ๋ฐฐ์น)
- ์ฌ์ฉ์๊ฐ ์ต์ข
์ฌ์ฉ์ ์ ํ์ด๋ ์ฌ์ฉ ๋งฅ๋ฝ์ ๋ช
์ํ์ง ์์
ํด์์ด ๋ถ๊ธฐ๋์ง ์์ผ๋ฉด: Step 3์ผ๋ก ๋ฐ๋ก ์งํ.
ํด์์ด ๋ถ๊ธฐ๋๋ฉด: 2-3๊ฐ์ง ํด์์ ์ ์ํ๊ณ ์ฌ์ฉ์์ ํ์ธ์ ๋ฐ์ ํ Step 3์ผ๋ก ์งํ.
์ด ์์ฒญ์ ๋ค์ ์ค ์ด๋ค ๋ฐฉํฅ์ธ๊ฐ์?
A) [ํด์ 1] โ [ํ ์ค ์ค๋ช
]
B) [ํด์ 2] โ [ํ ์ค ์ค๋ช
]
C) [ํด์ 3] โ [ํ ์ค ์ค๋ช
, ์๋ ๊ฒฝ์ฐ]
์ง์ ์ค๋ช
ํ์
๋ ๋ฉ๋๋ค.
์ ํ๋ ํด์์ requirements.md์ ## User Intent์ ๋ฐ์ํ๋ค.
session-summary ์ค๊ฐ ๊ธฐ๋ก: ํด์ ํ์ ํ session-summary.md์ ## Completed Work์ [~] requirements-analysis โ ํด์ ํ์ ([์ ํ]์) ์
๋ฐ์ดํธ + ## For Next Session์ ๋ฏธ๊ฒฐ ์ง๋ฌธ ๋ชฉ๋ก ๊ธฐ๋ก.
Ambiguity Resolution Loop (Standard / Comprehensive)
ํด์ ์ ํ ํ, ๋ค์ ๋ชจํธ์ฑ ์ ํธ๋ฅผ ํ์งํ๋ค:
- "~ํ๊ฑฐ๋", "๋ ๋ค", "์ํฉ์ ๋ฐ๋ผ", "์์ง ๋ชจ๋ฅด๊ฒ ์ด", "์ ๋นํ"
- ์ค๊ณ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ์ ๋ถ์ถฉ๋ถํ ๋ต๋ณ (์กฐ๊ฑด๋ถ ํํ, ์์น ์๋ ๋ชจํธํ ํํ)
์ ํธ ๊ฐ์ง ์: ํ์ ์ง๋ฌธ ONE at a time:
[์ด์ ๋ต๋ณ]์ ๋ ๊ตฌ์ฒดํํด์ผ ํฉ๋๋ค.
A์ B ์ค์์ ์์ถฉํ ๋ ์ด๋ ์ชฝ์ ์ฐ์ ํ์๊ฒ ์ด์?
๋ชจํธ์ฑ์ด ํด์๋ ๋๊น์ง ๋ฐ๋ณต.
์ฌ์ฉ์๊ฐ "๊ทธ๋ฅ ์งํํด" ๋๋ "๊ณ์ํด" ์์ฒญ ์:
- ํด์๋์ง ์์ ํญ๋ชฉ์ ๊ฐ์ ์ผ๋ก ํ์
- requirements.md์
## Assumptions์ ๊ธฐ๋ก
- ๋ฐํ ํ
์คํธ์ "๊ฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ ํญ๋ชฉ: [N]๊ฐ โ [๋ชฉ๋ก]" ํฌํจ
- STOP (์น์ธ ๋๊ธฐ ์์ โ ์ค์ผ์คํธ๋ ์ดํฐ gate์์ ํ์)
Step 2b: Tech Stack Selection (์กฐ๊ฑด๋ถ)
Minimal depth์์๋ ์คํํ๋ค. ๊ธฐ์ ์คํ์ ์ดํ ๋ชจ๋ ๋จ๊ณ์ ์ ์ ์กฐ๊ฑด์ด๋ฏ๋ก.
2b-1: ์คํต ํ๋จ (์นดํ๋ก๊ทธ Read ์์ด)
๋ค์ 3๊ฐ์ง ์์ค๋ฅผ ์์๋๋ก ํ์ธํ๋ค:
| ์ฐ์ ์์ | ์์ค | ํ์ธ ๋ฐฉ๋ฒ |
|---|
| 1 | CLAUDE.md ์ฌ์ ์ง์ | workspace.md์ ## Pre-specified Tech Stack ์น์
์กด์ฌ ์ฌ๋ถ. ์์ผ๋ฉด ํด๋น ํญ๋ชฉ์ ํ์ |
| 2 | Brownfield ๊ฐ์ง | workspace.md์ ## Technology Stack (Brownfield) ์น์
. Language, Framework, DB ๋ฑ์ด ๊ฐ์ง๋์์ผ๋ฉด ํด๋น ํญ๋ชฉ์ ํ์ |
| 3 | ์ฌ์ฉ์ ํ๋ฆฌ์
| tech-stack-defaults.md์ ## ์ฌ์ฉ์ ํ๋ฆฌ์
์น์
ํ์ธ |
์คํต ํ๋จ ๊ฒฐ๊ณผ:
- ์ ์ฒด ์คํต: ์์ค 1 ๋๋ 2์์ Language + Framework + DB + Testing์ด ๋ชจ๋ ํ์ ๋จ โ
[๊ธฐ์ ์คํ: ์ฌ์ ์ง์ โ ์ง๋ฌธ ์คํต] ๊ธฐ๋ก, Step 3์ผ๋ก
- ๋ถ๋ถ ์คํต: ์ผ๋ถ๋ง ํ์ โ ๋ฏธํ์ ๊ณ์ธต๋ง 2b-2๋ก
- ์คํต ๋ถ๊ฐ: Greenfield + CLAUDE.md ๋ฏธ์ง์ โ ๋ชจ๋ ๊ณ์ธต 2b-2๋ก
2b-2: ์นดํ๋ก๊ทธ ์ ํ (ํ์ํ ๋๋ง Read)
๋ฏธ์ปค๋ฒ ๊ณ์ธต์ ๋ํด ์์๋๋ก ์ฒ๋ฆฌ:
1. ํ๋ฆฌ์
ํ์ธ: tech-stack-defaults.md์ ํด๋น ๊ณ์ธต์ ํ๋ฆฌ์
์ด ์์ผ๋ฉด:
[๊ณ์ธต] ๊ธฐ์ ์คํ์ ํ๋ฆฌ์
์ด ์์ต๋๋ค:
โ [ํ๋ฆฌ์
๊ธฐ์ ์กฐํฉ]
์ด๋๋ก ์ฌ์ฉํ์๊ฒ ์ต๋๊น? (Y/n)
- Y โ ํ๋ฆฌ์
์์ฉ, ๋ค์ ๊ณ์ธต์ผ๋ก (์นดํ๋ก๊ทธ Read ๋ถํ์)
- n โ ์นดํ๋ก๊ทธ์์ ์ ํ (์๋)
2. ์นดํ๋ก๊ทธ ์ ํ: tech-stack-catalog.md์ ํด๋น ๊ณ์ธต ์น์
์ Read
tech-stack-catalog.md๊ฐ ์์ผ๋ฉด ์นดํ๋ก๊ทธ ์ ํ์ ์คํตํ๊ณ , ํด๋น ๊ณ์ธต์ ์์ ์
๋ ฅ์ผ๋ก ์ง๋ฌธํ๋ค.
- ์ ํ์ง 2~5๊ฐ ๊ตฌ์ฑ, ์ฒซ ๋ฒ์งธ ์ต์
์
(๊ถ์ฅ) ํ์ (question-format-guide.md ์์น)
- "์ง์ ์
๋ ฅ" ํฌํจ ์ฌ๋ถ๋
tech-stack-defaults.md์ ์ ์ฑ
๋ชจ๋์ ๋ฐ๋ฆ:
- open:
X) ์ง์ ์
๋ ฅ ํฌํจ
- guided:
X) ์ง์ ์
๋ ฅ (์ฌ์ ํ์) โ ์ ํ ์ ์ฌ์ ์ง๋ฌธ โ requirements.md์ ๊ธฐ๋ก
- strict: ์ง์ ์
๋ ฅ ๋ฏธํฌํจ
๊ฒฐ๊ณผ ๊ธฐ๋ก: requirements.md์ ## Technology Stack ์น์
์:
## Technology Stack
| ๊ณ์ธต | ์ ํ | ์์ค | ๋น๊ณ |
|------|------|------|------|
| [๊ณ์ธต๋ช
] | [๊ธฐ์ ๋ช
] | [CLAUDE.md | Brownfield ๊ฐ์ง | ํ๋ฆฌ์
| ์นดํ๋ก๊ทธ ์ ํ | ์ง์ ์
๋ ฅ] | [๋น๊ณ ] |
guided ๋ชจ๋์์ ์นดํ๋ก๊ทธ ์ธ ๊ธฐ์ ์ ํ ์ ## ๊ธฐ์ ์คํ ๊ฒฐ์ ์น์
์ ์ฌ์ ํ
์ด๋ธ ์ถ๊ฐ.
Step 3: Execute at chosen depth
Minimal
- Document user's intent in one paragraph
- List 3-5 key acceptance criteria
- Note any assumptions made
Standard
- Analyze user intent (Step 2์์ ํ์ ๋ ํด์ ๊ธฐ๋ฐ)
- List functional requirements (what the system must do)
- List non-functional requirements (performance, security, etc.)
- Identify constraints and assumptions
- Note open questions (if any)
- ํต์ฌ ์ง๋ฌธ (์ต๋ 2๊ฐ, one at a time): ์๊ตฌ์ฌํญ์์ ์ค๊ณ ๋ฐฉํฅ์ ๋ฐ๊ฟ ์ ์๋ ๋ถํ์ค์ฑ์ด ์์ผ๋ฉด ์ง๋ฌธ. ์์ผ๋ฉด ์คํต.
- ์ฒ๋ฆฌ ๋ฐฉ์: "์ค์๊ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ๊ฐ์, ๋ฐฐ์น๋ก ์ถฉ๋ถํ๊ฐ์?"
- ์ฌ์ฉ์ ์ ํ: "๋จ์ผ ์ฌ์ฉ์์ธ๊ฐ์, ๋ค์ค ์ฌ์ฉ์์ธ๊ฐ์?"
- ๊ฐ ๋ต๋ณ ํ Ambiguity Resolution Loop ๋ฐ๋ ์ฌ๋ถ ํ๋จ.
- session-summary ์ค๊ฐ ๊ธฐ๋ก: ๊ฐ ํต์ฌ ์ง๋ฌธ ๋ต๋ณ ํ
[~] requirements-analysis โ ์ง๋ฌธ N/M ์๋ฃ ์
๋ฐ์ดํธ.
Comprehensive
- Full intent analysis (Step 2์์ ํ์ ๋ ํด์ ๊ธฐ๋ฐ)
- Detailed functional requirements with priority (Must/Should/Could)
- Non-functional requirements with measurable criteria
- Risk assessment (High/Medium/Low per requirement)
- Dependencies and constraints
- Open questions โ ask user ONE at a time before proceeding
Depth๋ณ ์ง๋ฌธ ์ ์ฑ
| Depth | ํด์ ๋ถ๊ธฐ | ํต์ฌ ์ง๋ฌธ | Ambiguity Loop |
|---|
| Minimal | ์์ | ์์ | ์์ |
| Standard | ์์ | ์ต๋ 2๊ฐ (each โ loop) | ์์ |
| Comprehensive | ์์ | ์ ํ ์์ (each โ loop) | ์์ |
Step 4: Ask clarifying questions (Comprehensive only)
์ด๋ฆฐ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ, ์ง๋ฌธ์ ์์ํ๊ธฐ ์ ์ ๋งฅ๋ฝ์ ๋จผ์ ์ ์ธํ๋ค:
์๊ตฌ์ฌํญ์ ํ์ ํ๊ธฐ ์ ์ ๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
[์ง๋ฌธ ์]๊ฐ์ ์ด๋ฆฐ ์ง๋ฌธ์ด ์์ต๋๋ค.
๊ทธ ํ ONE question at a time. Wait for answer before asking next.
Step 5: Save artifact
Create devflow-docs/inception/requirements.md:
# Requirements Analysis
**Depth**: [Minimal | Standard | Comprehensive]
**Timestamp**: [ISO 8601]
## User Intent
[What the user wants to achieve โ Step 2์์ ํ์ ๋ ํด์ ํฌํจ]
## Functional Requirements
[List of requirements]
## Non-Functional Requirements
[Performance, security, etc.]
## Technology Stack
| ๊ณ์ธต | ์ ํ | ์์ค | ๋น๊ณ |
|------|------|------|------|
[Step 2b ๊ฒฐ๊ณผ]
## Assumptions
[List of assumptions made]
## Open Questions
[Any unresolved questions]
Review
conventions Review Workflow ์ ์ฉ.
- ์ฐ์ถ๋ฌผ: devflow-docs/inception/requirements.md
- ๋ฆฌ๋ทฐ์ด: artifact-reviewer-prompt.md
Return to Orchestrator
conventions ํ์ค ํ์. ๋ฐํ ํ๋:
- ๋ถ์ ๊น์ด: [Minimal | Standard | Comprehensive]
- ํด์ ํ์ : [ํ์ ๋ ํด์ ํ ์ค ์์ฝ, ๋๋ "๋จ์ผ ํด์ โ ํ์ธ ๋ถํ์"]
- ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ: [count]๊ฐ
- ๊ธฐ์ ์คํ: [์ฌ์ ์ง์ (์ง๋ฌธ ์คํต) | ํ๋ฆฌ์
N๊ฐ + ์ ํ M๊ฐ | ์ ์ฒด ์ ํ N๊ฐ]
- ์ด๋ฆฐ ์ง๋ฌธ: [count]๊ฐ
- ๊ฐ์ ์ผ๋ก ์ฒ๋ฆฌ๋ ํญ๋ชฉ: [0๊ฐ | N๊ฐ โ ํญ๋ชฉ๋ช
๋ชฉ๋ก]
- ์ฐ์ถ๋ฌผ: devflow-docs/inception/requirements.md
- ๋ฆฌ๋ทฐ: [โ
์น์ธ๋จ | โญ ์คํต (Minimal)]
Common Issues
User provides no requirements context
์์ฒญ์ด ๋๋ฌด ๋ชจํธํ๋ฉด:
- Comprehensive depth ๊ธฐ๋ณธ ์ ์ฉ
- Step 2์์ ๊ฐ๋ฅํ ํด์ ์ ์
Step 2์์ ํด์์ด 3๊ฐ์ง ์ด์์ผ๋ก ๋์ด๋ ๋
- ๊ฐ์ฅ ๊ฐ๋ฅ์ฑ ๋์ 2-3๊ฐ์ง๋ก ์์ถ
- ๋๋จธ์ง๋ "๊ธฐํ: ๋ค๋ฅธ ๋ฐฉํฅ์ด๋ผ๋ฉด ์ง์ ์ค๋ช
ํด์ฃผ์ธ์"๋ก ์ด์ด๋๊ธฐ
Step 2b: tech-stack-defaults.md์ ์ ์ฑ
๋ชจ๋๊ฐ ์์ ๋
- ๊ธฐ๋ณธ๊ฐ: open (์ง์ ์
๋ ฅ ์์ ํ์ฉ)
- tech-stack-defaults.md ํ์ผ ์์ฒด๊ฐ ์์ผ๋ฉด Step 2b ์ ์ฒด๋ฅผ ์คํตํ๊ณ , ์ฌ์ฉ์์๊ฒ ๊ธฐ์ ์คํ์ ์์ ์
๋ ฅ์ผ๋ก ์ง๋ฌธ