목적
제품 요구사항을 구현 가능한 기술 구조로 변환한다.
이 단계의 목적은 기능을 정의하는 것이 아니다.
기능을 구현할 수 있는 구조를 정의하는 것이다.
산출물
ARCHITECTURE.md
사용 방법
PRODUCT_SPEC.md가 완료된 이후 사용한다.
AI는 제품 요구사항을 만족할 수 있는 기술 구조를 설계해야 한다.
기술 선택은 제품 요구사항을 지원하기 위한 수단이어야 한다.
프롬프트
Generate ARCHITECTURE.md.
Assume PRODUCT_SPEC.md already exists and is correct.
The purpose of ARCHITECTURE.md is to define:
```text
How the product works internally.
How responsibilities are separated.
How information flows through the system.
Which invariants must always remain true.
```
Do not describe implementation technologies.
Do not describe frameworks.
Do not describe programming languages.
Do not describe libraries.
Do not describe deployment.
Do not describe coding conventions.
Architecture must remain technology-agnostic.
The document must include:
- Purpose
- Core Concepts
- System Flow
- Components
- Component Responsibilities
- Responsibility Boundaries
- Data Flow
- Architectural Rules
- Failure Boundaries
- Non-Goals
- Architectural Invariants
Every component must have:
- Responsibilities
- Inputs
- Outputs
- Explicit ownership boundaries
Identify:
- missing responsibilities
- conflicting responsibilities
- ambiguous flows
Resolve them before generating the document.
Prefer clear ownership over abstraction.
Optimize for implementation certainty.
The document is intended for AI implementation, not human documentation.