@silbaram/artifact-driven-agent 0.1.5 → 0.1.6

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.
Files changed (44) hide show
  1. package/README.md +294 -661
  2. package/bin/cli.js +8 -1
  3. package/core/artifacts/decision.md +1 -1
  4. package/core/artifacts/plan.md +5 -5
  5. package/core/artifacts/project.md +4 -2
  6. package/core/artifacts/sprints/_template/docs/release-notes.md +37 -0
  7. package/core/artifacts/sprints/_template/meta.md +54 -0
  8. package/core/artifacts/sprints/_template/retrospective.md +50 -0
  9. package/core/artifacts/sprints/_template/review-reports/review-template.md +49 -0
  10. package/core/artifacts/sprints/_template/tasks/task-template.md +43 -0
  11. package/core/roles/analyzer.md +6 -33
  12. package/core/roles/developer.md +69 -99
  13. package/core/roles/documenter.md +293 -0
  14. package/core/roles/manager.md +391 -341
  15. package/core/roles/planner.md +61 -79
  16. package/core/roles/reviewer.md +71 -129
  17. package/core/rules/document-priority.md +40 -38
  18. package/core/rules/escalation.md +15 -14
  19. package/core/rules/iteration.md +24 -24
  20. package/core/rules/rfc.md +1 -1
  21. package/core/rules/rollback.md +4 -4
  22. package/package.json +1 -1
  23. package/src/commands/run.js +95 -46
  24. package/src/commands/sessions.js +21 -1
  25. package/src/commands/sprint.js +262 -0
  26. package/src/commands/validate.js +133 -64
  27. package/src/commands/validate.test.js +84 -0
  28. package/src/utils/files.js +134 -134
  29. package/src/utils/sessionState.js +30 -11
  30. package/core/artifacts/architecture-options.md +0 -85
  31. package/core/artifacts/backlog.md +0 -177
  32. package/core/artifacts/current-sprint.md +0 -125
  33. package/core/artifacts/qa-report.md +0 -104
  34. package/core/artifacts/review-report.md +0 -103
  35. package/core/roles/architect.md +0 -270
  36. package/core/roles/qa.md +0 -306
  37. package/core/rules/role-state-protocol.md +0 -281
  38. package/core/rules/session-state.md +0 -255
  39. package/templates/cli/roles/cli-developer.md +0 -243
  40. package/templates/game/roles/game-logic.md +0 -198
  41. package/templates/game/roles/rendering.md +0 -142
  42. package/templates/library/roles/library-developer.md +0 -184
  43. package/templates/web-dev/roles/backend.md +0 -139
  44. package/templates/web-dev/roles/frontend.md +0 -166
package/bin/cli.js CHANGED
@@ -9,6 +9,7 @@ import { sessions } from '../src/commands/sessions.js';
9
9
  import { logs } from '../src/commands/logs.js';
10
10
  import { run } from '../src/commands/run.js';
11
11
  import { interactive } from '../src/commands/interactive.js';
12
+ import sprint from '../src/commands/sprint.js';
12
13
  import { createRequire } from 'node:module';
13
14
 
14
15
  const require = createRequire(import.meta.url);
@@ -56,6 +57,12 @@ program
56
57
  .description('세션 로그 확인')
57
58
  .action(logs);
58
59
 
60
+ // Sprint command
61
+ program
62
+ .command('sprint <action> [tasks...]')
63
+ .description('스프린트 관리 (create, add, close, list)')
64
+ .action(sprint);
65
+
59
66
  // Run command
60
67
  program
61
68
  .command('run <role> <tool>')
@@ -68,7 +75,7 @@ const args = process.argv.slice(2);
68
75
  if (args.length === 0) {
69
76
  // 인자 없으면 대화형 모드
70
77
  interactive();
71
- } else if (args.length === 2 && !args[0].startsWith('-') && !['setup', 'status', 'reset', 'validate', 'sessions', 'logs', 'run'].includes(args[0])) {
78
+ } else if (args.length === 2 && !args[0].startsWith('-') && !['setup', 'status', 'reset', 'validate', 'sessions', 'logs', 'run', 'sprint'].includes(args[0])) {
72
79
  // 두 개의 인자가 명령어가 아니면 role tool로 간주
73
80
  run(args[0], args[1]);
74
81
  } else {
@@ -1,6 +1,6 @@
1
1
  # Decision Log
2
2
 
3
- > Manager의 모든 판단을 기록
3
+ > 사용자의 모든 판단을 기록
4
4
  > 시간순으로 기록
5
5
 
6
6
  ---
@@ -26,7 +26,7 @@
26
26
 
27
27
  ### 연결성 체크 (Linkage)
28
28
  - [ ] 각 기능이 최소 1개 이상의 Task로 분해됨
29
- - [ ] 모든 Task가 backlog.md에 등록됨
29
+ - [ ] 모든 Task가 backlog/ 디렉토리에 등록됨
30
30
 
31
31
  ---
32
32
 
@@ -125,7 +125,7 @@
125
125
  | TBD-001 | [항목] | [설명] | [시점] |
126
126
  | TBD-002 | [항목] | [설명] | [시점] |
127
127
 
128
- > ⚠️ 미확정 항목 3개 초과 시 Architect 단계 진행 불가
128
+ > ⚠️ 미확정 항목 3개 초과 시 개발 진행 전 명확화 필요
129
129
 
130
130
  ---
131
131
 
@@ -182,6 +182,6 @@
182
182
 
183
183
  plan.md가 Confirmed 상태가 되면:
184
184
 
185
- 1. **Architect**: project.md 작성 (기술 스택 결정)
186
- 2. **Planner**: backlog.md Task 분해
187
- 3. **Manager**: 첫 스프린트 계획
185
+ 1. **사용자**: project.md 작성 (기술 스택 결정, 선택사항)
186
+ 2. **Planner**: backlog/ 디렉토리에 Task 분해 (task-NNN.md 파일 생성)
187
+ 3. **사용자**: 첫 스프린트 계획 (ada sprint create)
@@ -4,6 +4,9 @@
4
4
  > 변경 시 RFC(Request for Change) 절차 필수.
5
5
  > 모든 개발자는 이 문서의 규칙을 따릅니다.
6
6
 
7
+ **작성 주체:** 사용자와 팀이 함께 프로젝트 초기에 작성합니다.
8
+ **작성 시점:** plan.md 확정 후, 개발 시작 전에 작성하여 Frozen 상태로 전환합니다.
9
+
7
10
  ---
8
11
 
9
12
  ## ✅ 문서 완성도 체크리스트
@@ -23,7 +26,6 @@
23
26
  - [ ] 금지 사항이 명확히 정의됨
24
27
 
25
28
  ### 연결성 체크 (Linkage)
26
- - [ ] architecture-options.md의 선택이 반영됨
27
29
  - [ ] plan.md의 비기능 요구사항과 일관성 확인됨
28
30
 
29
31
  ---
@@ -64,7 +66,7 @@
64
66
 
65
67
  ## 1. 선택 요약 (Decision Summary)
66
68
 
67
- > architecture-options.md에서 확정된 선택들
69
+ > 프로젝트 기술 스택 및 아키텍처 선택 사항
68
70
 
69
71
  | 항목 | 선택 | 근거 |
70
72
  |------|------|------|
@@ -0,0 +1,37 @@
1
+ # Release Notes - Sprint N
2
+
3
+ ## 버전: v1.N.0
4
+
5
+ ## 날짜: YYYY-MM-DD
6
+
7
+ ### 새로운 기능
8
+
9
+ - [기능명]: [설명]
10
+ - [기능명]: [설명]
11
+
12
+ ### 개선 사항
13
+
14
+ - [개선 내용]
15
+ - [개선 내용]
16
+
17
+ ### 버그 수정
18
+
19
+ - task-NNN: [버그 설명] → [수정 내용]
20
+ - task-NNN: [버그 설명] → [수정 내용]
21
+
22
+ ### Breaking Changes
23
+
24
+ > ⚠️ 기존 사용자에게 영향있는 변경
25
+
26
+ - [변경 내용]
27
+ - Migration: [마이그레이션 가이드]
28
+
29
+ ### 알려진 이슈
30
+
31
+ - [알려진 문제와 임시 해결책]
32
+
33
+ ### 의존성 변경
34
+
35
+ - 추가: [라이브러리명@버전]
36
+ - 업데이트: [라이브러리명] v1.0 → v2.0
37
+ - 제거: [라이브러리명]
@@ -0,0 +1,54 @@
1
+ # Sprint N 메타정보
2
+
3
+ | 항목 | 값 |
4
+ |------|-----|
5
+ | 스프린트 번호 | N |
6
+ | 상태 | active / completed |
7
+ | 시작일 | YYYY-MM-DD |
8
+ | 종료 예정 | YYYY-MM-DD (또는 완료일) |
9
+ | 목표 | [스프린트 목표 설명] |
10
+
11
+ ## Task 요약
12
+
13
+ | Task | 상태 | 담당 | 우선순위 | 크기 |
14
+ |------|:----:|------|:--------:|:----:|
15
+ | task-NNN | BACKLOG | - | P0/P1/P2 | S/M/L |
16
+
17
+ **상태 범례:**
18
+ - BACKLOG: 스프린트에 할당됨, 작업 미시작
19
+ - IN_DEV: 개발 중
20
+ - DONE: 완료
21
+ - REJECTED: 리뷰 거부 (재작업 필요)
22
+
23
+ ## 이월된 Task
24
+
25
+ > 이전 스프린트에서 미완료된 Task
26
+
27
+ | Task | 원 스프린트 | 이월 사유 |
28
+ |------|------------|----------|
29
+ | - | - | - |
30
+
31
+ ## 차단 사항
32
+
33
+ > 현재 진행을 막고 있는 이슈
34
+
35
+ | Task | 차단 사유 | 담당자 | 상태 |
36
+ |------|----------|--------|------|
37
+ | - | - | - | - |
38
+
39
+ ## 스프린트 회고 (완료 시 작성)
40
+
41
+ ### 완료된 Task
42
+ - task-NNN: [설명]
43
+
44
+ ### 미완료 Task (이월/취소)
45
+ - task-NNN: [사유]
46
+
47
+ ### 잘된 점
48
+ - [내용]
49
+
50
+ ### 개선할 점
51
+ - [내용]
52
+
53
+ ### 다음 스프린트 제안
54
+ - [제안]
@@ -0,0 +1,50 @@
1
+ # Sprint N 회고
2
+
3
+ ## 기간
4
+ - 시작: YYYY-MM-DD
5
+ - 종료: YYYY-MM-DD
6
+
7
+ ## 목표 달성도
8
+
9
+ | 목표 | 달성 여부 | 비고 |
10
+ |------|:--------:|------|
11
+ | [목표 1] | ✅ / ⚠️ / ❌ | [설명] |
12
+ | [목표 2] | ✅ / ⚠️ / ❌ | [설명] |
13
+
14
+ ## 완료된 Task (N개)
15
+
16
+ - task-001: [설명]
17
+ - task-002: [설명]
18
+
19
+ ## 미완료 Task (N개)
20
+
21
+ | Task | 사유 | 처리 |
22
+ |------|------|------|
23
+ | task-NNN | [사유] | 이월 / 취소 |
24
+
25
+ ## 잘된 점 (Keep)
26
+
27
+ - [구체적 내용]
28
+ - [구체적 내용]
29
+
30
+ ## 개선할 점 (Problem)
31
+
32
+ - [구체적 문제점]
33
+ - [구체적 문제점]
34
+
35
+ ## 시도할 것 (Try)
36
+
37
+ - [다음 스프린트에서 시도할 개선 방안]
38
+ - [다음 스프린트에서 시도할 개선 방안]
39
+
40
+ ## 메트릭
41
+
42
+ - 계획 Task 수: N개
43
+ - 완료 Task 수: N개
44
+ - 완료율: X%
45
+ - 이월 Task 수: N개
46
+
47
+ ## 다음 스프린트 제안
48
+
49
+ - [제안 1]
50
+ - [제안 2]
@@ -0,0 +1,49 @@
1
+ # Review Report: task-NNN
2
+
3
+ ## Task 정보
4
+ - Task: task-NNN [Task 이름]
5
+ - Reviewer: reviewer
6
+ - Review Date: YYYY-MM-DD
7
+
8
+ ## 수용 조건 체크
9
+
10
+ - [x] 조건 1 - 충족
11
+ - [x] 조건 2 - 충족
12
+ - [ ] 조건 3 - 미충족 (사유: ...)
13
+
14
+ ## 기술 품질 체크
15
+
16
+ - [x] project.md 규칙 준수 (있으면)
17
+ - [x] 코드 스타일 준수
18
+ - [x] 테스트 작성 (필요 시)
19
+ - [ ] 문제 항목 (있으면)
20
+
21
+ ## 판정: PASS / REJECT / WARN
22
+
23
+ **PASS** - 모든 조건 충족
24
+
25
+ 또는
26
+
27
+ **REJECT** - 수용 조건 미충족
28
+ - 사유 1: [구체적 설명]
29
+ - 사유 2: [구체적 설명]
30
+
31
+ 또는
32
+
33
+ **WARN** - 개선 권장
34
+ - 경미한 문제: [설명]
35
+ - 개선 제안: [내용]
36
+
37
+ ## 코멘트
38
+
39
+ - [리뷰어의 전반적인 의견]
40
+ - [개선 제안 또는 칭찬]
41
+
42
+ ## 수정 필요 사항 (REJECT인 경우)
43
+
44
+ 1. [구체적 수정 지시]
45
+ 2. [구체적 수정 지시]
46
+
47
+ ### 참고
48
+ - project.md 섹션 X.X (있으면)
49
+ - 수용 조건 N번
@@ -0,0 +1,43 @@
1
+ # TASK-NNN: [Task 이름]
2
+
3
+ | 항목 | 값 |
4
+ |------|-----|
5
+ | 상태 | BACKLOG / IN_DEV / DONE / REJECTED |
6
+ | 우선순위 | P0 / P1 / P2 |
7
+ | 크기 | S / M / L |
8
+ | 출처 | F001 (plan.md 기능 ID) |
9
+ | 담당 | - / developer |
10
+ | 의존성 | - 또는 task-NNN |
11
+
12
+ ## 수용 조건 (Acceptance Criteria)
13
+
14
+ - [ ] 조건 1
15
+ - [ ] 조건 2
16
+ - [ ] 조건 3
17
+
18
+ ## 구현 노트 (Developer 작성)
19
+
20
+ > Developer가 작업하면서 기록
21
+
22
+ - 구현 방식 설명
23
+ - 기술적 결정 사항
24
+ - 알려진 제약사항
25
+
26
+ ## 이슈 (있으면)
27
+
28
+ > 작업 중 발견된 문제나 질문
29
+
30
+ ### 이슈 제목
31
+ - 상황: [설명]
32
+ - 영향: [영향도]
33
+ - 제안: [해결 방안]
34
+
35
+ → 사용자 승인 대기 / 해결됨
36
+
37
+ ## 변경 이력
38
+
39
+ | 날짜 | 상태 변경 | 작성자 | 비고 |
40
+ |------|----------|--------|------|
41
+ | YYYY-MM-DD | BACKLOG 생성 | planner | 초기 생성 |
42
+ | YYYY-MM-DD | IN_DEV | developer | 작업 시작 |
43
+ | YYYY-MM-DD | DONE | developer | 구현 완료 |
@@ -86,8 +86,8 @@
86
86
  [다음 단계]
87
87
  - 문서 검토 후 수정이 필요하면 알려주세요
88
88
  - 새 기능 추가: Planner 세션 시작
89
- - 기술 변경: Architect 세션에서 RFC 작성
90
- - 바로 개발: Manager 세션에서 스프린트 시작
89
+ - 기술 변경: 사용자가 project.md 수정 또는 RFC 작성
90
+ - 바로 개발: 사용자가 스프린트 시작 (ada sprint create)
91
91
  ```
92
92
 
93
93
  ---
@@ -188,13 +188,13 @@ Planner가 plan.md와 backlog.md를 작성합니다."
188
188
 
189
189
  ### 기술 스택 변경 시
190
190
  ```
191
- "기술 변경이 필요하면 Architect 세션에서 RFC를 작성하세요."
191
+ "기술 변경이 필요하면 사용자가 project.md를 수정하거나 RFC를 작성하세요."
192
192
  ```
193
193
 
194
194
  ### 바로 개발 진행 시
195
195
  ```
196
196
  "project.md 검토가 완료되면 Planner에게 plan.md 작성을 요청하거나,
197
- Manager 세션에서 바로 스프린트를 시작할 수 있습니다."
197
+ 사용자가 바로 스프린트를 시작할 수 있습니다 (ada sprint create)."
198
198
  ```
199
199
 
200
200
  ---
@@ -236,35 +236,8 @@ Analyzer: ./my-project 분석을 시작합니다.
236
236
 
237
237
  [다음 단계]
238
238
  - 새 기능 추가 → Planner 세션
239
- - 기술 변경 → Architect 세션 (RFC)
240
- - 바로 개발 → Manager 세션
239
+ - 기술 변경 → 사용자가 project.md 수정 또는 RFC 작성
240
+ - 바로 개발 → 사용자가 스프린트 시작 (ada sprint create)
241
241
  ```
242
242
 
243
243
 
244
- ---
245
-
246
- ## 12. 멀티 세션 상태 관리
247
-
248
- > 📖 상세 규칙: `core/rules/role-state-protocol.md` 참조
249
-
250
- ### 필수 동작
251
-
252
- | 시점 | 동작 |
253
- |------|------|
254
- | 세션 시작 | `.ada-status.json`에 자신 등록 |
255
- | 질문 발생 | `pendingQuestions`에 등록, 응답 대기 |
256
- | 작업 진행 | `taskProgress` 업데이트 |
257
- | 세션 종료 | `activeSessions`에서 제거 |
258
-
259
- ### CLI 예시
260
-
261
- ```
262
- ━━━━━━━━━━━━━━━━━━━━━━
263
- 📨 질문 등록됨 [QA001]
264
- ━━━━━━━━━━━━━━━━━━━━━━
265
- 질문: project.md에 명시되지 않은 라이브러리입니다. 허용할까요?
266
- 옵션: (y) 허용 / (n) 거부
267
-
268
- Manager 세션에서 응답 가능합니다.
269
- 또는 이 터미널에서 응답: (y/n): _
270
- ```
@@ -17,22 +17,18 @@ Task 단위로 작업하며, 스프린트 범위를 벗어나지 않는다.
17
17
 
18
18
  ## 2. 입력 문서 (Mandatory)
19
19
 
20
- - ai-dev-team/artifacts/plan.md
21
- - ai-dev-team/artifacts/project.md
22
- - ai-dev-team/artifacts/backlog.md (Task 목록)
23
- - ai-dev-team/artifacts/current-sprint.md (현재 작업 범위)
24
-
25
- (선택)
26
- - ai-dev-team/artifacts/architecture-options.md (배경 참고용)
27
- - ai-dev-team/artifacts/decision.md (Manager 지시사항이 있으면 우선)
20
+ - ai-dev-team/artifacts/plan.md (전체 요구사항)
21
+ - ai-dev-team/artifacts/project.md (기술 기준, 있으면)
22
+ - ai-dev-team/artifacts/sprints/sprint-N/meta.md (현재 스프린트)
23
+ - ai-dev-team/artifacts/sprints/sprint-N/tasks/task-NNN.md ( Task)
28
24
 
29
25
  ---
30
26
 
31
27
  ## 3. 산출물 (Outputs)
32
28
 
33
- - 소스 코드 (src/ 디렉토리)
34
- - 인터페이스 문서 (프로젝트 유형에 따라)
35
- - (선택) ai-dev-team/artifacts/dev-notes.md (구현상 중요한 결정 기록)
29
+ - 소스 코드 (프로젝트 루트 디렉토리)
30
+ - Task 파일 업데이트 (구현 노트, 상태 변경)
31
+ - 인터페이스 문서 (프로젝트 유형에 따라, API/UI 문서 등)
36
32
 
37
33
  ---
38
34
 
@@ -48,21 +44,22 @@ Task 단위로 작업하며, 스프린트 범위를 벗어나지 않는다.
48
44
 
49
45
  ### 작업 시작 전 체크리스트
50
46
 
51
- 1. current-sprint.md에서 Task 확인
52
- 2. backlog.md에서 해당 Task 수용 조건 확인
53
- 3. 의존성 있는 Task가 완료되었는지 확인
54
- 4. project.md 기술 규칙 재확인
47
+ 1. 현재 스프린트 디렉토리 확인 (sprints/sprint-N/)
48
+ 2. meta.md에서 Task 확인
49
+ 3. tasks/task-NNN.md에서 수용 조건 확인
50
+ 4. 의존성 있는 Task가 완료되었는지 확인
51
+ 5. project.md 기술 규칙 확인 (있으면)
55
52
 
56
53
  ### 작업 범위 제한
57
54
 
58
55
  ```
59
56
  ✅ 허용
60
- - current-sprint.md에 있는 내 Task
57
+ - 현재 스프린트의 내 Task
61
58
  - 해당 Task의 수용 조건 구현
62
- - Task 필요한 문서 갱신
59
+ - Task 파일에 구현 노트 작성
63
60
 
64
61
  ❌ 금지
65
- - 스프린트 기능 구현
62
+ - 다른 스프린트의 Task
66
63
  - "김에" 리팩토링
67
64
  - 수용 조건 외 기능 추가
68
65
  - 다른 Task 영역 수정
@@ -70,21 +67,33 @@ Task 단위로 작업하며, 스프린트 범위를 벗어나지 않는다.
70
67
 
71
68
  ### Task 상태 전환
72
69
 
73
- ```
74
- IN_SPRINT → IN_DEV : 작업 시작 시
75
- IN_DEV → IN_REVIEW : 구현 완료 시
76
- ```
70
+ 작업 시작 시 Task 파일 업데이트:
77
71
 
78
- ### Task별 문서 갱신
72
+ ```markdown
73
+ | 항목 | 값 |
74
+ |------|-----|
75
+ | 상태 | IN_DEV | ← 변경
76
+ | 담당 | developer | ← 추가
77
+ ```
79
78
 
80
- 구현 완료 시 인터페이스 문서에 [TASK-XXX] 태그로 변경 기록:
79
+ 작업 완료 시:
81
80
 
82
81
  ```markdown
82
+ | 항목 | 값 |
83
+ |------|-----|
84
+ | 상태 | DONE | ← IN_DEV → DONE
85
+
86
+ ## 구현 노트
87
+
88
+ - 구현 방식 설명
89
+ - 기술적 결정 사항
90
+ - 알려진 제약사항
91
+
83
92
  ## 변경 이력
84
- | Task | 날짜 | 변경 내용 |
85
- |------|------|----------|
86
- | [TASK-001] | 2024-01-15 | 초기 구현 |
87
- | [TASK-003] | 2024-01-17 | 기능 추가 |
93
+ | 날짜 | 상태 변경 | 작성자 | 비고 |
94
+ |------|----------|--------|------|
95
+ | 2024-01-15 | IN_DEV | developer | 작업 시작 |
96
+ | 2024-01-16 | DONE | developer | 구현 완료 |
88
97
  ```
89
98
 
90
99
  ---
@@ -123,7 +132,7 @@ IN_DEV → IN_REVIEW : 구현 완료 시
123
132
  - ❌ **코드 리뷰 수행 (Reviewer 역할)**
124
133
  - ❌ **QA 테스트 수행 (QA 역할)**
125
134
 
126
- > ⚠️ **중요**: Developer는 current-sprint.md에 할당된 Task의 코드만 구현합니다.
135
+ > ⚠️ **중요**: Developer는 현재 스프린트 meta.md에 할당된 Task의 코드만 구현합니다.
127
136
  > 다른 역할의 작업은 절대 수행하지 않습니다.
128
137
 
129
138
  ---
@@ -133,34 +142,36 @@ IN_DEV → IN_REVIEW : 구현 완료 시
133
142
  Task 완료 = 다음 조건 충족:
134
143
 
135
144
  - [ ] 수용 조건 100% 구현
136
- - [ ] project.md 규칙 준수
137
- - [ ] 인터페이스 문서 갱신
138
- - [ ] 테스트 작성 (기준 충족)
145
+ - [ ] project.md 규칙 준수 (있으면)
146
+ - [ ] Task 파일에 구현 노트 작성
147
+ - [ ] 테스트 작성 (필요 )
139
148
  - [ ] 코드 정리 (린트 통과)
140
- - [ ] Task 상태 → IN_REVIEW
149
+ - [ ] Task 상태 → DONE
141
150
 
142
151
  ---
143
152
 
144
153
  ## 8. 에스컬레이션
145
154
 
146
- 다음 상황에서 **작업 중단** Manager에게 보고:
155
+ 다음 상황에서 **Task 파일에 이슈 기록** 또는 사용자에게 질문:
147
156
 
148
157
  | 상황 | 조치 |
149
158
  |------|------|
150
- | project.md에 없는 기술 필요 | BLOCK - 즉시 보고 |
151
- | 요구사항 모호 | BLOCK - Planner 명확화 요청 |
152
- | 예상보다 규모 큼 | 작업 보고 |
153
- | 다른 Task와 충돌 | BLOCK - 즉시 보고 |
159
+ | project.md에 없는 기술 필요 | 사용자에게 질문 |
160
+ | 요구사항 모호 | Task 파일에 질문 기록, 사용자에게 확인 |
161
+ | 예상보다 규모 큼 | Task 파일에 기록, 분할 제안 |
162
+ | 다른 Task와 충돌 | 사용자에게 보고 |
154
163
 
155
- ### 에스컬레이션 형식
164
+ ### 이슈 기록 형식 (Task 파일 내)
156
165
 
157
166
  ```markdown
158
- ## Issue: [제목]
167
+ ## 이슈
168
+
169
+ ### 기술 스택 추가 필요
170
+ - 상황: Redis 캐시가 필요함
171
+ - 영향: 성능 개선
172
+ - 제안: project.md에 Redis 추가
159
173
 
160
- - Task: TASK-XXX
161
- - 유형: BLOCK / WARN
162
- - 상황: [구체적 설명]
163
- - 필요 조치: [제안]
174
+ 사용자 승인 대기
164
175
  ```
165
176
 
166
177
  ---
@@ -173,11 +184,11 @@ Task 구현 완료 후:
173
184
  "TASK-XXX 구현을 완료했습니다.
174
185
 
175
186
  ✅ 수용 조건 충족
176
- 테스트 작성
177
- 문서 갱신
187
+ 구현 노트 작성
188
+ 코드 정리
178
189
 
179
- Task 상태를 IN_REVIEW로 변경합니다.
180
- Reviewer 리뷰를 진행할 있습니다."
190
+ Task 상태를 DONE으로 변경했습니다.
191
+ Reviewer 세션을 시작하여 리뷰를 진행하세요."
181
192
  ```
182
193
 
183
194
  ---
@@ -191,63 +202,22 @@ Reviewer가 리뷰를 진행할 수 있습니다."
191
202
 
192
203
  📋 문서 확인
193
204
  ✅ plan.md - 확인됨
194
- ✅ project.md - Frozen (v1.0)
195
- current-sprint.md - Sprint 1 진행 중
205
+ ✅ project.md - 확인됨 (있으면)
206
+ sprints/sprint-2/ - 현재 스프린트
196
207
 
197
- 📌 내 Task (current-sprint.md 기준)
198
- - TASK-001: [기능명] - IN_DEV
199
- - TASK-003: [기능명] - IN_SPRINT
208
+ 📌 내 Task (sprints/sprint-2/meta.md 기준)
209
+ - task-004: 로그인 API 구현 - IN_DEV (내 작업)
210
+ - task-005: 회원가입 API - IN_SPRINT (대기)
200
211
 
201
- 현재 작업: TASK-001
212
+ 현재 작업: task-004
202
213
  수용 조건:
203
- - [ ] 조건 1
204
- - [ ] 조건 2
205
- - [ ] 조건 3
214
+ - [ ] POST /api/auth/login 구현
215
+ - [ ] JWT 토큰 발급
216
+ - [ ] 실패 시 에러 응답
206
217
 
207
218
  ━━━━━━━━━━━━━━━━━━━━━━
208
219
 
209
- TASK-001부터 시작하겠습니다.
220
+ task-004부터 시작하겠습니다.
210
221
  ```
211
222
 
212
223
 
213
- ---
214
-
215
- ## 11. 멀티 세션 상태 관리
216
-
217
- > 📖 상세 규칙: `core/rules/role-state-protocol.md` 참조
218
-
219
- ### 필수 동작
220
-
221
- | 시점 | 동작 |
222
- |------|------|
223
- | 세션 시작 | `.ada-status.json`에 자신 등록 |
224
- | 질문 발생 | `pendingQuestions`에 등록, 응답 대기 |
225
- | 작업 진행 | `taskProgress` 업데이트 (진행률 %) |
226
- | Task 완료 | 상태 변경, Reviewer에게 알림 |
227
- | 세션 종료 | `activeSessions`에서 제거 |
228
-
229
- ### 진행 상황 업데이트
230
-
231
- ```json
232
- {
233
- "T001": {
234
- "status": "IN_DEV",
235
- "assignee": "developer",
236
- "progress": 70,
237
- "note": "API 구현 완료, 테스트 작성 중"
238
- }
239
- }
240
- ```
241
-
242
- ### 질문 예시
243
-
244
- ```
245
- ━━━━━━━━━━━━━━━━━━━━━━
246
- 📨 질문 등록됨 [QD001]
247
- ━━━━━━━━━━━━━━━━━━━━━━
248
- 질문: Redis 캐시를 적용할까요?
249
- 옵션: (y) 적용 / (n) 미적용
250
-
251
- Manager 세션에서 응답 가능합니다.
252
- 또는 이 터미널에서 응답: (y/n): _
253
- ```