Quality-Driven Development
Structured development methodology inspired by MoAI-ADK's TRUST 5 framework. Automatically selects TDD or DDD based on project state, enforces quality gates, and produces tested, documented code.
Core Philosophy
"바이브 코딩의 목적은 빠른 생산성이 아니라 코드 품질이다."
Logging Strategy
All code must include meaningful logs. Logs are the first line of defense for debugging production issues.
Log Levels
| Level |
Purpose |
Examples |
운영(PRD) |
개발(DEV) |
| ERROR |
예외, 실패, 복구 불가 상황 |
catch 블록, DB 연결 실패, 필수값 누락 |
✅ |
✅ |
| WARN |
예상 밖 상황, 복구 가능 |
fallback 사용, 재시도, deprecated 호출 |
✅ |
✅ |
| INFO |
핵심 흐름만 간결하게 |
API 호출/응답, 상태 변경, 트랜잭션 시작/완료 |
✅ |
✅ |
| DEBUG |
상세 디버깅, 자유롭게 |
함수 진입/종료, 변수값, 조건 분기, 쿼리 파라미터 |
❌ |
✅ |
Log Placement Rules
반드시 로그를 넣어야 하는 곳:
- API 엔드포인트 진입 (INFO: 요청 파라미터 요약)
- 외부 서비스 호출 전/후 (INFO: 호출 대상, 응답 상태)
- 에러/예외 catch 블록 (ERROR: 에러 메시지 + 컨텍스트)
- 비즈니스 로직 분기점 (DEBUG: 어떤 분기로 갔는지)
- 상태 변경 (INFO: before → after)
- 배치/스케줄러 시작/완료 (INFO: 처리 건수, 소요 시간)
로그 작성 원칙:
- 운영에서 INFO만으로 흐름 추적이 가능해야 한다
- DEBUG는 부담 없이 자유롭게 — 운영에선 출력 안 됨
- 민감 정보(비밀번호, 토큰, 개인정보) 절대 로그에 포함 금지
- 로그 메시지에 컨텍스트 포함 (ID, 파라미터 등) —
"처리 실패" ❌ → "주문 처리 실패 [orderId=123, reason=재고부족]" ✅
Workflow
Phase 0: Project Analysis
Before any coding, analyze the project:
- Check if test framework exists (
jest, vitest, pytest, go test, etc.)
- Measure current test coverage (run coverage command if available)
- Detect language, framework, and project structure
- Identify logging framework (
slf4j, winston, pino, logback, print/console.log etc.) — if none exists, recommend and set up one
- Select methodology automatically:
Coverage >= 10% OR new project → TDD (default)
Coverage < 10% AND existing project → DDD
Report the analysis result and selected methodology to the user before proceeding.
Phase 1: SPEC Document
Create a SPEC document before implementation:
# SPEC-{ID}: {Title}
## Goal
One sentence describing what this change achieves.
## Acceptance Criteria
- [ ] Criterion 1 (testable)
- [ ] Criterion 2 (testable)
- [ ] Criterion 3 (testable)
## Scope
- **In scope:** What will be changed
- **Out of scope:** What will NOT be changed
## Technical Approach
Brief description of implementation strategy.
## Log Points
Key locations where logs will be added (level + message summary).
## TRUST 5 Checklist
- [ ] **Tested:** All acceptance criteria have corresponding tests
- [ ] **Readable:** Code is self-documenting with clear naming
- [ ] **Unified:** Follows existing project conventions
- [ ] **Secured:** No new vulnerabilities introduced
- [ ] **Trackable:** Changes are documented and linked to this SPEC
Phase 2A: TDD Execution (New Projects / Coverage >= 10%)
Follow RED → GREEN → REFACTOR strictly:
RED — Write failing tests first
- Write test for first acceptance criterion
- Run test — confirm it FAILS
- Report: "🔴 RED: Test written and failing as expected"
GREEN — Minimal implementation
- Write minimum code to pass the test
- Add appropriate logs at key points (API calls, error handling, state changes)
- Run test — confirm it PASSES
- Report: "🟢 GREEN: Test passing"
REFACTOR — Clean up
- Improve code quality while keeping tests green
- Review log quality — ensure levels are correct, messages are clear with context
- Run all tests — confirm everything still passes
- Report: "♻️ REFACTOR: Code cleaned, all tests green"
Repeat for each acceptance criterion.
Phase 2B: DDD Execution (Existing Projects / Coverage < 10%)
Follow ANALYZE → PRESERVE → IMPROVE:
ANALYZE — Understand existing code
- Read existing code and identify dependencies
- Map domain boundaries and side effects
- Check existing logging — identify gaps where logs are missing
- Report: "🔍 ANALYZE: Current behavior documented"
PRESERVE — Capture current behavior
- Write characterization tests for existing behavior
- Run tests — confirm they pass against current code
- Report: "🛡️ PRESERVE: Characterization tests in place"
IMPROVE — Change under test protection
- Make changes incrementally
- Add/improve logs at changed code paths
- Run tests after each change
- Report: "📈 IMPROVE: Changes verified by tests"
Phase 3: TRUST 5 Quality Gate
Before declaring work complete, verify all 5 principles:
| Principle |
Check |
Action |
| Tested |
Run full test suite |
All tests pass, coverage maintained or improved |
| Readable |
Review naming, comments, log messages |
Fix unclear names, ensure log messages have context |
| Unified |
Check style consistency, log format consistency |
Match existing patterns (indent, naming, log format) |
| Secured |
Security review, log content review |
No hardcoded secrets, no sensitive data in logs |
| Trackable |
Documentation, log coverage |
Changes described, key paths have appropriate logs |
Only proceed to completion when ALL 5 checks pass.
Phase 4: Completion Report
## ✅ SPEC-{ID} Complete
### Methodology: {TDD|DDD}
### Changes:
- {file1}: {what changed}
- {file2}: {what changed}
### Log Points Added:
- {file1:line}: {level} - {description}
- {file2:line}: {level} - {description}
### Test Results:
- Tests: {passed}/{total}
- Coverage: {before}% → {after}%
### TRUST 5:
- ✅ Tested | ✅ Readable | ✅ Unified | ✅ Secured | ✅ Trackable
Agent Roles
When working on complex tasks, delegate to specialized perspectives:
| Role |
Focus |
When to Activate |
| Architect |
System design, API contracts |
New feature, structural change |
| Backend |
API, DB, business logic |
Server-side work |
| Frontend |
UI, UX, components |
Client-side work |
| Security |
Vulnerabilities, auth, input validation |
Auth features, data handling |
| Tester |
Test strategy, edge cases, coverage |
Always (TRUST 5 - Tested) |
| Performance |
Optimization, profiling |
Load-sensitive features |
For each task, identify which roles are relevant and apply their perspective during review.
Reference Guides
| Topic |
Reference |
Load When |
| TDD Patterns |
references/tdd-patterns.md |
TDD methodology selected |
| DDD Patterns |
references/ddd-patterns.md |
DDD methodology selected |
| TRUST 5 Detail |
references/trust5-checklist.md |
Quality gate phase |
| Language-specific |
references/lang-{language}.md |
Language-specific patterns needed |
Constraints
MUST DO:
- Always analyze project before choosing methodology
- Always create SPEC before coding
- Always write tests (TDD: before code, DDD: before changes)
- Always run TRUST 5 gate before completion
- Report progress at each phase transition
- Always add meaningful logs with appropriate levels at key code points
- Always ensure tests are actually executed (not just written) — run the test suite and confirm results before proceeding
MUST NOT:
- Skip test writing for any reason
- Write implementation before tests (TDD mode)
- Modify untested code without characterization tests first (DDD mode)
- Declare complete without all 5 TRUST checks passing
- Change code outside the SPEC scope
- Log sensitive data (passwords, tokens, personal info)
- Skip logging at error/catch blocks
1---2name: quality-driven-dev3description: Quality-driven development with automatic TDD/DDD methodology selection and TRUST 5 quality framework. Use when building features, refactoring code, fixing bugs, or any coding task that needs structured quality assurance.4---5
6# Quality-Driven Development
7
8Structured development methodology inspired by MoAI-ADK's TRUST 5 framework. Automatically selects TDD or DDD based on project state, enforces quality gates, and produces tested, documented code.
9
10## Core Philosophy
11
12> "바이브 코딩의 목적은 빠른 생산성이 아니라 코드 품질이다."
13
14## Logging Strategy
15
16All code must include meaningful logs. Logs are the first line of defense for debugging production issues.
17
18### Log Levels
19
20| Level | Purpose | Examples | 운영(PRD) | 개발(DEV) |
21|-------|---------|----------|:---------:|:---------:|
22| **ERROR** | 예외, 실패, 복구 불가 상황 | catch 블록, DB 연결 실패, 필수값 누락 | ✅ | ✅ |
23| **WARN** | 예상 밖 상황, 복구 가능 | fallback 사용, 재시도, deprecated 호출 | ✅ | ✅ |
24| **INFO** | 핵심 흐름만 간결하게 | API 호출/응답, 상태 변경, 트랜잭션 시작/완료 | ✅ | ✅ |
25| **DEBUG** | 상세 디버깅, 자유롭게 | 함수 진입/종료, 변수값, 조건 분기, 쿼리 파라미터 | ❌ | ✅ |
26
27### Log Placement Rules
28
29**반드시 로그를 넣어야 하는 곳:**
30- API 엔드포인트 진입 (INFO: 요청 파라미터 요약)
31- 외부 서비스 호출 전/후 (INFO: 호출 대상, 응답 상태)
32- 에러/예외 catch 블록 (ERROR: 에러 메시지 + 컨텍스트)
33- 비즈니스 로직 분기점 (DEBUG: 어떤 분기로 갔는지)
34- 상태 변경 (INFO: before → after)
35- 배치/스케줄러 시작/완료 (INFO: 처리 건수, 소요 시간)
36
37**로그 작성 원칙:**
38- 운영에서 INFO만으로 흐름 추적이 가능해야 한다
39- DEBUG는 부담 없이 자유롭게 — 운영에선 출력 안 됨
40- 민감 정보(비밀번호, 토큰, 개인정보) 절대 로그에 포함 금지
41- 로그 메시지에 컨텍스트 포함 (ID, 파라미터 등) — `"처리 실패"` ❌ → `"주문 처리 실패 [orderId=123, reason=재고부족]"` ✅
42
43## Workflow
44
45### Phase 0: Project Analysis
46
47Before any coding, analyze the project:
48
491. Check if test framework exists (`jest`, `vitest`, `pytest`, `go test`, etc.)
502. Measure current test coverage (run coverage command if available)
513. Detect language, framework, and project structure
524. **Identify logging framework** (`slf4j`, `winston`, `pino`, `logback`, `print/console.log` etc.) — if none exists, recommend and set up one
535. Select methodology automatically:
54
55```
56Coverage >= 10% OR new project → TDD (default)
57Coverage < 10% AND existing project → DDD
58```
59
60Report the analysis result and selected methodology to the user before proceeding.
61
62### Phase 1: SPEC Document
63
64Create a SPEC document before implementation:
65
66```markdown
67# SPEC-{ID}: {Title}
68
69## Goal
70One sentence describing what this change achieves.
71
72## Acceptance Criteria
73- [ ] Criterion 1 (testable)
74- [ ] Criterion 2 (testable)
75- [ ] Criterion 3 (testable)
76
77## Scope
78- **In scope:** What will be changed
79- **Out of scope:** What will NOT be changed
80
81## Technical Approach
82Brief description of implementation strategy.
83
84## Log Points
85Key locations where logs will be added (level + message summary).
86
87## TRUST 5 Checklist
88- [ ] **Tested:** All acceptance criteria have corresponding tests
89- [ ] **Readable:** Code is self-documenting with clear naming
90- [ ] **Unified:** Follows existing project conventions
91- [ ] **Secured:** No new vulnerabilities introduced
92- [ ] **Trackable:** Changes are documented and linked to this SPEC
93```
94
95### Phase 2A: TDD Execution (New Projects / Coverage >= 10%)
96
97Follow RED → GREEN → REFACTOR strictly:
98
99**RED — Write failing tests first**
1001. Write test for first acceptance criterion
1012. Run test — confirm it FAILS
1023. Report: "🔴 RED: Test written and failing as expected"
103
104**GREEN — Minimal implementation**
1051. Write minimum code to pass the test
1062. **Add appropriate logs** at key points (API calls, error handling, state changes)
1073. Run test — confirm it PASSES
1084. Report: "🟢 GREEN: Test passing"
109
110**REFACTOR — Clean up**
1111. Improve code quality while keeping tests green
1122. **Review log quality** — ensure levels are correct, messages are clear with context
1133. Run all tests — confirm everything still passes
1144. Report: "♻️ REFACTOR: Code cleaned, all tests green"
115
116Repeat for each acceptance criterion.
117
118### Phase 2B: DDD Execution (Existing Projects / Coverage < 10%)
119
120Follow ANALYZE → PRESERVE → IMPROVE:
121
122**ANALYZE — Understand existing code**
1231. Read existing code and identify dependencies
1242. Map domain boundaries and side effects
1253. **Check existing logging** — identify gaps where logs are missing
1264. Report: "🔍 ANALYZE: Current behavior documented"
127
128**PRESERVE — Capture current behavior**
1291. Write characterization tests for existing behavior
1302. Run tests — confirm they pass against current code
1313. Report: "🛡️ PRESERVE: Characterization tests in place"
132
133**IMPROVE — Change under test protection**
1341. Make changes incrementally
1352. **Add/improve logs** at changed code paths
1363. Run tests after each change
1374. Report: "📈 IMPROVE: Changes verified by tests"
138
139### Phase 3: TRUST 5 Quality Gate
140
141Before declaring work complete, verify all 5 principles:
142
143| Principle | Check | Action |
144|-----------|-------|--------|
145| **Tested** | Run full test suite | All tests pass, coverage maintained or improved |
146| **Readable** | Review naming, comments, **log messages** | Fix unclear names, ensure log messages have context |
147| **Unified** | Check style consistency, **log format consistency** | Match existing patterns (indent, naming, log format) |
148| **Secured** | Security review, **log content review** | No hardcoded secrets, no sensitive data in logs |
149| **Trackable** | Documentation, **log coverage** | Changes described, key paths have appropriate logs |
150
151Only proceed to completion when ALL 5 checks pass.
152
153### Phase 4: Completion Report
154
155```markdown
156## ✅ SPEC-{ID} Complete
157
158### Methodology: {TDD|DDD}
159### Changes:
160- {file1}: {what changed}
161- {file2}: {what changed}
162
163### Log Points Added:
164- {file1:line}: {level} - {description}
165- {file2:line}: {level} - {description}
166
167### Test Results:
168- Tests: {passed}/{total}
169- Coverage: {before}% → {after}%
170
171### TRUST 5:
172- ✅ Tested | ✅ Readable | ✅ Unified | ✅ Secured | ✅ Trackable
173```
174
175## Agent Roles
176
177When working on complex tasks, delegate to specialized perspectives:
178
179| Role | Focus | When to Activate |
180|------|-------|-----------------|
181| **Architect** | System design, API contracts | New feature, structural change |
182| **Backend** | API, DB, business logic | Server-side work |
183| **Frontend** | UI, UX, components | Client-side work |
184| **Security** | Vulnerabilities, auth, input validation | Auth features, data handling |
185| **Tester** | Test strategy, edge cases, coverage | Always (TRUST 5 - Tested) |
186| **Performance** | Optimization, profiling | Load-sensitive features |
187
188For each task, identify which roles are relevant and apply their perspective during review.
189
190## Reference Guides
191
192| Topic | Reference | Load When |
193|-------|-----------|-----------|
194| TDD Patterns | `references/tdd-patterns.md` | TDD methodology selected |
195| DDD Patterns | `references/ddd-patterns.md` | DDD methodology selected |
196| TRUST 5 Detail | `references/trust5-checklist.md` | Quality gate phase |
197| Language-specific | `references/lang-{language}.md` | Language-specific patterns needed |
198
199## Constraints
200
201**MUST DO:**
202- Always analyze project before choosing methodology
203- Always create SPEC before coding
204- Always write tests (TDD: before code, DDD: before changes)
205- Always run TRUST 5 gate before completion
206- Report progress at each phase transition
207- Always add meaningful logs with appropriate levels at key code points
208- Always ensure tests are actually executed (not just written) — run the test suite and confirm results before proceeding
209
210**MUST NOT:**
211- Skip test writing for any reason
212- Write implementation before tests (TDD mode)
213- Modify untested code without characterization tests first (DDD mode)
214- Declare complete without all 5 TRUST checks passing
215- Change code outside the SPEC scope
216- Log sensitive data (passwords, tokens, personal info)
217- Skip logging at error/catch blocks