| name | sysdesign-sdd |
| description | Promote a filled mock-interview.md into a formal Software Design Document (sdd.md) following the IEEE 1016 / Atlassian / Google design-doc style. Activated when the user says they are ready to write the SDD. Reads the topic's mock-interview.md AND the topic's conversation log files (which capture the back-and-forth detail not preserved in the structured mock-interview), then asks the user the SDD-specific questions that mock-interview doesn't cover (Constraints, ADRs, Risk Register, Rollout, Testing strategy). Writes sdd.md incrementally as decisions land. |
| triggers | ["SDD ์์ฑ","sdd ์์ฑ","sdd ๋ง๋ค","sdd๋ก ๋์ด๊ฐ","SDD๋ก ๋์ด๊ฐ","์ ์ ์ค๊ณ ๋ฌธ์","์ ์ ์ค๊ณ ๋ฌธ์ ๋ง๋ค","software design document","์ค๊ณ ๋ฌธ์ ์ ๋ฆฌ","์ค๊ณ ๋ฌธ์ ์์ฑ","design document ์์ฑ","design doc ๋ง๋ค"] |
| allowed-tools | Read, Write, Edit, Glob, Grep, Bash |
sysdesign-sdd โ Phase 5 (Formal SDD)
You are promoting a working mock-interview into a formal SDD that another
engineer (or future-you) could pick up six months later. The mock-interview
captures decisions; the SDD captures decisions + their rationale + risks +
rollout + traceability.
Operating procedure
Step 0. Identify active topic
TOPIC=$(cat .omc/state/active-sysdesign-topic.txt 2>/dev/null)
If empty โ ask user which topic. If non-empty, confirm: "ํ์ฌ ํ์ฑ ํ ํฝ:
<TOPIC>. ์ด ํ ํฝ์ SDD ์์ฑํ๋ค. ๋ง์ง?"
Step 1. Inventory inputs
For the active topic, locate and read in this order:
-
<TOPIC>/System-Design-Document/mock-interview.md โ primary structured input.
If missing, abort: "mock-interview.md๊ฐ ์์ด. ๋จผ์ sysdesign-design์ผ๋ก ์ฑ์ฐ์."
-
Conversation logs โ <TOPIC>/conversation-log/*.log (glob all available).
The retention policy means at most ~14 days of history; report what's available:
ls -la "$TOPIC/conversation-log/" 2>/dev/null
Tell user: "์ฌ์ฉ ๊ฐ๋ฅํ ๋ก๊ทธ: {N๊ฐ ํ์ผ, {oldest_date} ~ {newest_date}}.
์ด ๋ฒ์ ์ธ ์์
์ด ๋ ์์๋ค๋ฉด ์๋ ค์ค โ ๋ฐฑ์
๋ณธ ์์น ๋ฑ."
-
templates/System-Design-Document/software-design-document-style.md โ the SDD
template structure (do NOT copy this verbatim; use as section reference).
Step 2. Bootstrap sdd.md
If <TOPIC>/System-Design-Document/sdd.md does NOT exist, copy the template:
cp templates/System-Design-Document/software-design-document-style.md \
"$TOPIC/System-Design-Document/sdd.md"
If it exists, the user is resuming an SDD draft โ read its current state
and pick up from the first un-filled {...} placeholder.
Step 3. Migrate from mock-interview.md (auto-fill what you can)
Read mock-interview.md and conversation logs together. Bulk-fill the SDD
sections that have a 1:1 source:
| SDD section | Source |
|---|
| ยง1.1 Purpose / ยง1.2 Scope | mock-interview ยง1 (Functional + Out-of-Scope) |
| ยง2 System Overview | mock-interview ยง2.4 (Architecture Diagram) + intro paragraph from logs |
| ยง3.1 Goals | mock-interview ยง1.2 (NFRs as quantified goals โ "p99 < 100ms" โ "G-1: API p99 latency < 100ms") |
| ยง5 System Architecture | mock-interview ยง2.4 + logs (architectural style: monolith vs microservices โ infer from logs or ask) |
| ยง6 Data Design | mock-interview ยง2.2 (Core Entities) + ยง3.1 (DB choice + sharding + replication) |
| ยง7 Component Design | mock-interview ยง3.x (each component) โ flesh out Inputs / Outputs / Dependencies / Core Logic |
| ยง8 Interface Design | mock-interview ยง2.3 (API Contract) โ add Request/Response/Errors columns |
| ยง9 NFRs | mock-interview ยง1.2 โ add Acceptance Criteria column |
| ยง10 Cross-Cutting | mock-interview ยง3.5 / ยง3.6 / ยง3.7 (Failure Modes / Monitoring / Security) |
After bulk fill, surface to user: "๊ธฐ๋ณธ ๊ณจ๊ฒฉ ์ฑ์ ์ด. ์ด์ SDD์๋ง ์๋ ํญ๋ชฉ ์ฐจ๋ก๋ก ๋ฌผ์ด๋ณผ๊ฒ."
Step 4. Ask SDD-only questions (one section at a time)
Walk the user through the SDD-specific sections. Don't dump 20 questions at
once โ one section per turn, wait for answer, fill, move on.
Order (matches software-design-document-style.md):
- ยง3.2 Non-Goals โ "์ด SDD์์ ๋ช
์์ ์ผ๋ก ์ ๋ค๋ฃฐ ๊ฑฐ ๋ญ๊ฐ ์์ด? (์: ๋ฉํฐ
๋ฆฌ์ , ์์ฒด ML)"
- ยง4 Constraints โ Technical / Organizational / Regulatory
- "ํ์ฌ ํ์ค ์คํ ๊ฐ์ ? (์: Java 21, Spring Boot)"
- "ํ ๊ท๋ชจ / ์์ฐ ์ํ?"
- "GDPR / PCI / HIPAA ๊ฐ์ ๊ท์ ์ ์ฉ?"
- ยง5.3 Deployment Topology โ "Runtime์? K8s? ECS? Lambda? ๋จ์ผ ๋ฆฌ์ ?"
- ยง6.3 Data Lifecycle โ Creation / Retention / Archival / Deletion 4๋จ๊ณ
- ยง11 ADRs โ ๊ฐ์ฅ ์ค์ํ ๊ฒฐ์ 3โ5๊ฐ. mock-interview์์ "์ ํ ๊ทผ๊ฑฐ"๊ฐ ์ ํ
๊ณณ์ ADR๋ก ๋ณํํ์๊ณ ์ ์:
- "mock-interview์์ 'PostgreSQL (๊ฐํ ์ผ๊ด์ฑ + ๋จ์ access pattern)' ๊ฐ์
๊ฒฐ์ ์ด ์์์ด. ์ด๊ฑฐ ADR-001๋ก ๋ง๋ค๊น? Status / Context / Decision /
Consequences ํ์์ผ๋ก ์ ๋ฆฌํ ๊ฒ."
- ยง12 Alternatives Considered โ ๊ฑฐ์ ๋ ๋์๋ค. ๋ก๊ทธ์์ ํ๋ณด ์ถ์ถ ๊ฐ๋ฅํ
๊ฒฝ์ฐ ์๋ ์ฑ์ฐ๊ณ ์ฌ์ฉ์ ํ์ธ.
- ยง13 Risk Register (์ ํ) โ "์ด์ ์ํ ์๋ณํ ๊น? (likelihood/impact/mitigation/owner)"
- ยง14 Requirements Traceability (์ ํ) โ FR/NFR โ ยง7/ยง8 + Test Case ID ๋งคํ
- ยง15 Testing Strategy โ Unit / Integration / E2E / Load / Chaos / Acceptance.
sysdesign-impl ๋จ๊ณ์์ ์ด๋ค ํ
์คํธ๋ง ์ฐ์ ์๋ํํ ์ง๋ ๊ฐ์ด ์ ํจ.
- ยง16 Rollout โ Phased rollout / Feature flags / Data migration / Rollback
ํธ๋ฆฌ๊ฑฐ. ๋จ์ ์ฐ์ต ํ๋ก์ ํธ๋ฉด "skip"์ผ๋ก ํฉ์ ๊ฐ๋ฅ โ ์ฌ์ฉ์ ์์ฌ ํ์ธ.
- ยง17 Glossary โ ๋๋ฉ์ธ ์ฝ์ด / ์ฉ์ด. ๋ก๊ทธ์์ ๋น์ถ ์ฝ์ด ์๋ ์ถ์ถ ํ ์ ์ ์์ฒญ.
Step 5. Update Revision History
๋งค turn ๋์ ยง0.1 Revision History ์
๋ฐ์ดํธ:
| 0.1 | 2026-05-04 | (์ฌ์ฉ์ ์ด๋ฆ ๋๋ 'collab') | Initial draft from mock-interview migration |
| 0.2 | 2026-05-04 | collab | ADR-001 to ADR-003 added |
| ... |
Step 6. Sign-off
When all sections (or all the sections the user wants) are filled, run the SDD
checklist from software-design-document-style.md ๋ถ๋ก and report:
"โ SDD ์ด์ ์๋ฃ. <TOPIC>/System-Design-Document/sdd.md. ๋ถ๋ก ์ฒดํฌ๋ฆฌ์คํธ
๊ฒฐ๊ณผ:
๊ฒํ ํด์ ์์ /์ถ๊ฐํ๊ณ ์ถ์ ๊ฑฐ ์์ผ๋ฉด ์๋ ค์ค. ๊ตฌํ์ผ๋ก ๋์ด๊ฐ๋ ค๋ฉด '๊ตฌํํ์'
/ '์ต์ ๊ตฌํ ๋ง๋ค์' ๋ผ๊ณ ํ๋ฉด sysdesign-impl๋ก ์ง์
."
Hard rules
| Rule | Why |
|---|
| Bulk-fill first (Step 3), then ask only what mock-interview doesn't have. | ์ฌ์ฉ์๊ฐ ๊ฐ์ ์ ๋ณด ๋ ๋ฒ ๋งํ๋ฉด ์ ๋จ. |
| One SDD-only section per turn (Step 4). | Q 20๊ฐ ํ ๋ฒ์ ๋์ง๋ฉด ๋ต๋ณ ํ์ง ๋จ์ด์ง. |
| Always check log files for context โ they have the rationale that mock-interview's bullet form lost. | mock-interview๋ "๊ฒฐ์ ๊ฒฐ๊ณผ" / ๋ก๊ทธ๋ "์ ๊ทธ๋ ๊ฒ ๊ฒฐ์ ํ๋์ง". |
| Update ยง0.1 Revision History every turn. | SDD๊ฐ ํ ์์ฐ์ด ๋๋ ค๋ฉด ๋ณ๊ฒฝ ์ถ์ ํ์. |
| Never reduce mock-interview content. SDD is augmentation. | Loss of decisions = bug. |
| If a log file referenced earlier is now missing (3-day catchall window passed before topic was set), surface the gap explicitly. | User must know what's reconstructed vs documented. |
| ADRs cite mock-interview turn or log timestamp as source. | Traceability. |