aiwf 0.3.2 → 0.3.4
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.
- package/.aiwf/config/language.json +1 -1
- package/.aiwf/installed.flag +1 -0
- package/.aiwf/sessions/session_1752877859489_1t7n2fhdb.json +7 -0
- package/.aiwf/sessions/session_1752877859515_cwdv211ry.json +7 -0
- package/.aiwf/sessions/session_1752877860664_huziadmbo.json +7 -0
- package/.aiwf/sessions/session_1752877860666_kyr5u1np6.json +7 -0
- package/.aiwf/sessions/session_1752877861848_9yinepw3t.json +7 -0
- package/.aiwf/sessions/session_1752877861874_y32sputuc.json +7 -0
- package/.aiwf/sessions/session_1752877862685_ivxbl5rhz.json +7 -0
- package/.aiwf/sessions/session_1752877862820_wnq4glvxi.json +7 -0
- package/.aiwf/sessions/session_1752877864632_3ebnpaelb.json +7 -0
- package/.aiwf/sessions/session_1752877864879_b9zgjcb7d.json +7 -0
- package/.aiwf/sessions/session_1752877865533_x14m1vodi.json +7 -0
- package/.aiwf/sessions/session_1752877865562_gkoh19n7d.json +7 -0
- package/.aiwf/sessions/session_1752877866333_wp8qpdcoh.json +7 -0
- package/.aiwf/sessions/session_1752877866509_dawntfpab.json +7 -0
- package/.aiwf/sessions/session_1752877866890_plc5vfucl.json +7 -0
- package/.aiwf/sessions/session_1752877866895_ga8hmq3oi.json +7 -0
- package/.aiwf/sessions/session_1752877867761_ayjp4v5f5.json +7 -0
- package/.aiwf/sessions/session_1752877867892_lfz6jy252.json +7 -0
- package/.aiwf/sessions/session_1752877868139_7bqd9ubli.json +7 -0
- package/.aiwf/sessions/session_1752877868162_zq3ofjbsh.json +7 -0
- package/.aiwf/sessions/session_1752877869054_7rlgm9jt6.json +7 -0
- package/.aiwf/sessions/session_1752877869477_ax3nhbxzr.json +7 -0
- package/.aiwf/sessions/session_1752877870095_6hgp4vl1e.json +7 -0
- package/.aiwf/sessions/session_1752877870381_qfcrdg4li.json +7 -0
- package/.aiwf/sessions/session_1752877871895_pgd5vllhz.json +7 -0
- package/.aiwf/sessions/session_1752877872199_jbhv2g2da.json +7 -0
- package/.aiwf/sessions/session_1752877872680_x04wpffu6.json +7 -0
- package/.aiwf/sessions/session_1752877872895_3y4vbeauo.json +7 -0
- package/.aiwf/sessions/session_1752877873178_3maolzc6b.json +7 -0
- package/.aiwf/sessions/session_1752877873180_ytm83j07f.json +7 -0
- package/.aiwf/sessions/session_1752877874217_dp56c9t42.json +7 -0
- package/.aiwf/sessions/session_1752877874415_epwp1g1og.json +7 -0
- package/.aiwf/sessions/session_1752877874454_heicyuryb.json +7 -0
- package/.aiwf/sessions/session_1752877874869_1c2illeu5.json +7 -0
- package/.aiwf/sessions/session_1752877874879_k1vo4vxyx.json +7 -0
- package/.aiwf/sessions/session_1752877874913_bwgyiz9bp.json +7 -0
- package/.aiwf/sessions/session_1752877876218_44807kztz.json +7 -0
- package/.aiwf/sessions/session_1752877876515_qkhjv5kpw.json +7 -0
- package/.aiwf/sessions/session_1752877876543_p605aud1m.json +7 -0
- package/.aiwf/sessions/session_1752877876819_l65w7ifck.json +7 -0
- package/.aiwf/sessions/session_1752877876867_xrhzss4we.json +7 -0
- package/.aiwf/sessions/session_1752877876872_u7aso54qb.json +7 -0
- package/.aiwf/sessions/session_1752877877705_telnfg4o6.json +7 -0
- package/.aiwf/sessions/session_1752877878285_6s45im2ib.json +7 -0
- package/.aiwf/sessions/session_1752877878506_v0dvguqhz.json +7 -0
- package/.aiwf/sessions/session_1752877878581_3ri3yc66a.json +7 -0
- package/.aiwf/sessions/session_1752877878756_a82x9s2pd.json +7 -0
- package/.aiwf/sessions/session_1752877878886_20pjsfour.json +7 -0
- package/.aiwf/sessions/session_1752877880266_fm1ydjw0g.json +7 -0
- package/.aiwf/sessions/session_1752877881149_xbat4z03d.json +7 -0
- package/.aiwf/sessions/session_1752877881551_qy5sic9qs.json +7 -0
- package/.aiwf/sessions/session_1752877881554_24ugd96wu.json +7 -0
- package/.aiwf/sessions/session_1752877881797_e9mm25uh0.json +7 -0
- package/.aiwf/sessions/session_1752877881822_bxvjj8c9g.json +7 -0
- package/.aiwf/sessions/session_1752877881890_jv7l6jve3.json +7 -0
- package/.aiwf/sessions/session_1752877881991_f0qugdtcq.json +7 -0
- package/.aiwf/sessions/session_1752877883387_0bvw9rvnx.json +7 -0
- package/.aiwf/sessions/session_1752877883820_q6g2md2up.json +7 -0
- package/.aiwf/sessions/session_1752877884393_sqr7trvjl.json +7 -0
- package/.aiwf/sessions/session_1752877884500_whtypmzlf.json +7 -0
- package/.aiwf/sessions/session_1752877884645_y9mvvxli1.json +7 -0
- package/.aiwf/sessions/session_1752877884733_hk46eenel.json +7 -0
- package/.aiwf/sessions/session_1752877884738_c62j6214r.json +7 -0
- package/.aiwf/sessions/session_1752877884771_temhxehoz.json +7 -0
- package/.aiwf/sessions/session_1752877885643_6v5fcktc7.json +7 -0
- package/.aiwf/sessions/session_1752877886426_ee8di2fqh.json +7 -0
- package/.aiwf/sessions/session_1752877886549_3xj6tdoew.json +7 -0
- package/.aiwf/sessions/session_1752877886604_aj80yyfco.json +7 -0
- package/.aiwf/sessions/session_1752877886702_2b8841vyg.json +7 -0
- package/.aiwf/sessions/session_1752877886712_ntqc8b8bz.json +7 -0
- package/.aiwf/sessions/session_1752877886968_946m8tbw6.json +7 -0
- package/.aiwf/sessions/session_1752877887008_wg6zfg8dn.json +7 -0
- package/.aiwf/sessions/session_1752877888479_ciiu2qiqs.json +7 -0
- package/.aiwf/sessions/session_1752877889330_ravg8l66k.json +7 -0
- package/.aiwf/sessions/session_1752877889542_7zepkhjkc.json +7 -0
- package/.aiwf/sessions/session_1752877889638_ev4htqiu0.json +7 -0
- package/.aiwf/sessions/session_1752877889956_szphy2qma.json +7 -0
- package/.aiwf/sessions/session_1752877890220_o6aaa57tt.json +7 -0
- package/.aiwf/sessions/session_1752877890527_v2loy5vu1.json +7 -0
- package/.aiwf/sessions/session_1752877890572_cwq8fiuma.json +7 -0
- package/.aiwf/sessions/session_1752877892200_sgcwq1alt.json +7 -0
- package/.aiwf/sessions/session_1752877892268_v8kexpbc5.json +7 -0
- package/.aiwf/sessions/session_1752877892384_1gbbgrp4y.json +7 -0
- package/.aiwf/sessions/session_1752877893568_9p2n5p31a.json +7 -0
- package/.aiwf/sessions/session_1752877893727_un34a5tvp.json +7 -0
- package/.aiwf/sessions/session_1752877893778_01j79sw9i.json +7 -0
- package/.aiwf/sessions/session_1752877894053_jrhba6wko.json +7 -0
- package/.aiwf/sessions/session_1752877894082_x3bghawox.json +7 -0
- package/.aiwf/sessions/session_1752877894500_iytiav2ku.json +7 -0
- package/.aiwf/sessions/session_1752877894667_ucn0gc2ge.json +7 -0
- package/.aiwf/test-results-s02.json +4 -4
- package/.claude/commands/aiwf/aiwf_changelog.md +82 -0
- package/.claude/commands/aiwf/aiwf_code_review.md +88 -0
- package/.claude/commands/aiwf/aiwf_commit.md +160 -0
- package/.claude/commands/aiwf/aiwf_compress_context.md +116 -0
- package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +54 -0
- package/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
- package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
- package/.claude/commands/aiwf/aiwf_create_prd.md +280 -0
- package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
- package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
- package/.claude/commands/aiwf/aiwf_default_mode.md +44 -0
- package/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
- package/.claude/commands/aiwf/aiwf_do_task.md +109 -0
- package/.claude/commands/aiwf/aiwf_docs.md +225 -0
- package/.claude/commands/aiwf/aiwf_get_feature_details.md +78 -0
- package/.claude/commands/aiwf/aiwf_infinite.md +202 -0
- package/.claude/commands/aiwf/aiwf_initialize.md +134 -0
- package/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
- package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +57 -0
- package/.claude/commands/aiwf/aiwf_list_features.md +54 -0
- package/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
- package/.claude/commands/aiwf/aiwf_persona_architect.md +48 -0
- package/.claude/commands/aiwf/aiwf_persona_backend.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_frontend.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_security.md +48 -0
- package/.claude/commands/aiwf/aiwf_persona_status.md +50 -0
- package/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
- package/.claude/commands/aiwf/aiwf_prime.md +9 -0
- package/.claude/commands/aiwf/aiwf_project_review.md +261 -0
- package/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
- package/.claude/commands/aiwf/aiwf_test.md +124 -0
- package/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
- package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +210 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_general.md +305 -0
- package/.claude/commands/aiwf/aiwf_update_docs_kr.md +25 -0
- package/.claude/commands/aiwf/aiwf_update_feature_status.md +53 -0
- package/.claude/commands/aiwf/aiwf_yolo.md +300 -0
- package/.eslintrc.json +26 -0
- package/.prettierrc +10 -0
- package/CLAUDE.md +154 -54
- package/README.ko.md +25 -0
- package/README.md +25 -0
- package/TEST_RECOVERY_PLAN.md +68 -0
- package/docs/CLEANUP_RECOMMENDATIONS.md +86 -0
- package/docs/CLI_USAGE_GUIDE.md +479 -0
- package/package.json +9 -9
- package/scripts/update-feature-status.js +70 -0
- package/{lib → src/cli}/cache-cli.js +4 -4
- package/src/cli/index.js +165 -0
- package/{language-cli.js → src/cli/language-cli.js} +11 -4
- package/src/commands/cache-templates.js +209 -0
- package/src/commands/create-offline.js +86 -0
- package/src/commands/create-project.js +151 -0
- package/src/lib/backup-manager.js +270 -0
- package/src/lib/file-downloader.js +208 -0
- package/src/lib/installer.js +676 -0
- package/src/lib/rollback-manager.js +418 -0
- package/src/lib/validator.js +561 -0
- package/src/utils/git-integration.js +173 -0
- package/{language-utils.js → src/utils/language-utils.js} +2 -1
- package/src/utils/messages.js +136 -0
- package/src/utils/paths.js +130 -0
- package/tests/application.test.js +2 -2
- package/tests/installer.test.js +2 -2
- package/tests/integration/ai-persona-system.test.js +4 -4
- package/tests/integration/test-persona-system/docs/README.md +1 -0
- package/tests/integration/test-persona-system/package.json +1 -0
- package/tests/integration/test-persona-system/src/auth.js +1 -0
- package/tests/integration/test-persona-system/src/index.js +1 -0
- package/tests/integration/test-persona-system/test/test.js +1 -0
- package/tests/language-utils.test.js +1 -1
- package/tests/temp_invalid_json/invalid.json +1 -0
- package/tests/unit/ai-persona-manager.test.js +7 -7
- package/.aiwf/05_DOCUMENTATION/performance-report.md +0 -33
- package/.aiwf/test-cache/86c7f9e80251abb8bedd58953ab0d1779e46b4f43ea33b63bffdb778106373b0.json +0 -6
- package/.aiwf/test-cache/9e252a90b80fce0585d7ed0646e7a9b4343e109f661f42a3ae678ba1ec5e22c7.json +0 -7
- package/.aiwf/token-data/alerts.json +0 -293
- package/.aiwf/token-data/monitor-config.json +0 -12
- package/CHANGELOG_M02.md +0 -52
- package/claude-code/aiwf/ko/bin/aiwf-create.js +0 -56
- package/claude-code/aiwf/ko/bin/aiwf.js +0 -21
- package/claude-code/aiwf/ko/docs/00_PROJECT_MANIFEST.md +0 -183
- package/claude-code/aiwf/ko/docs/ARCHITECTURE.md +0 -121
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_API_REFERENCE.md +0 -361
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_FAQ.md +0 -365
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_USER_GUIDE.md +0 -416
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_/354/213/234/354/236/221_/352/260/200/354/235/264/353/223/234.md +0 -247
- package/claude-code/aiwf/ko/token-data/alerts.json +0 -293
- package/claude-code/aiwf/ko/token-data/monitor-config.json +0 -12
- package/docs/m02-dod-checklist.md +0 -125
- package/docs/m02-gap-analysis.md +0 -214
- package/docs/m02-milestone-completion-report.md +0 -186
- package/docs/m02-milestone-executive-summary.md +0 -68
- package/index.js +0 -1947
- package/lib/cache-integration.js +0 -401
- package/lib/file-batch-processor.js +0 -401
- package/lib/performance-benchmark.js +0 -621
- package/lib/template-manager.js +0 -310
- package/scripts/validate-commands.cjs +0 -338
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_minimal_persona.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_stats.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_with_persona.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_evaluate.md +0 -0
- /package/{lib → src/lib}/ai-persona-manager.js +0 -0
- /package/{lib → src/lib}/cache-system.js +0 -0
- /package/{lib → src/lib}/context-engine.js +0 -0
- /package/{lib → src/lib}/memory-profiler.js +0 -0
- /package/{lib → src/lib}/metrics-collector.js +0 -0
- /package/{lib → src/lib}/offline-detector.js +0 -0
- /package/{lib → src/lib}/task-analyzer.js +0 -0
- /package/{lib → src/lib}/template-cache-system.js +0 -0
- /package/{lib → src/lib}/template-downloader.js +0 -0
- /package/{lib → src/lib}/template-version-manager.js +0 -0
- /package/{lib → src/lib}/token-optimizer.js +0 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# 스프린트 태스크 생성 - 탑 다운 실행
|
|
2
|
+
|
|
3
|
+
통합된 구현 가이드와 함께 기존 스프린트에 대한 상세한 태스크를 생성합니다.
|
|
4
|
+
|
|
5
|
+
## 정확히 다음 8개 항목으로 TODO 생성
|
|
6
|
+
|
|
7
|
+
1. 대상 스프린트 식별 및 존재 확인
|
|
8
|
+
2. 스프린트 컨텍스트 및 관련 문서 로드
|
|
9
|
+
3. 기존 ADR 및 기술 가이드 확인
|
|
10
|
+
4. 태스크 분할을 위한 스프린트 결과물 분석
|
|
11
|
+
5. 구현 가이드와 함께 개별 태스크 파일 생성
|
|
12
|
+
6. 관련 태스크에 ADR 연결
|
|
13
|
+
7. 태스크 참조로 스프린트 메타 업데이트
|
|
14
|
+
8. 작업 품질 확인
|
|
15
|
+
|
|
16
|
+
단계별로 따라가며 각 단계에 대한 다음 지침을 엄격히 준수하세요.
|
|
17
|
+
|
|
18
|
+
## 모든 TODO 항목에 대한 세부사항
|
|
19
|
+
|
|
20
|
+
### 1. 대상 스프린트 식별 및 존재 확인
|
|
21
|
+
|
|
22
|
+
확인: <$ARGUMENTS>
|
|
23
|
+
|
|
24
|
+
**필수:** 스프린트 ID가 제공되어야 함 (예: S02). 비어있다면 사용자에게 상세화할 스프린트를 지정하도록 요청.
|
|
25
|
+
|
|
26
|
+
- `.aiwf/03_SPRINTS/`에 스프린트 디렉토리 존재 확인
|
|
27
|
+
- 스프린트 메타 파일 존재 확인 (예: `S02_sprint_meta.md`)
|
|
28
|
+
- 스프린트 상태가 이미 "completed"가 아닌지 확인
|
|
29
|
+
- 태스크가 이미 존재한다면, 사용자에게 재생성할지 또는 다른 가이드가 필요한지 문의
|
|
30
|
+
|
|
31
|
+
### 2. 스프린트 컨텍스트 및 관련 문서 로드
|
|
32
|
+
|
|
33
|
+
병렬 서브에이전트를 사용하여 프로젝트 컨텍스트를 읽고 이해:
|
|
34
|
+
|
|
35
|
+
- 프로젝트 컨텍스트를 위해 `.aiwf/00_PROJECT_MANIFEST.md` 읽기
|
|
36
|
+
- 목표와 결과물을 이해하기 위해 스프린트 메타 파일 완전히 읽기
|
|
37
|
+
- `.aiwf/02_REQUIREMENTS/`에서 상위 마일스톤 요구사항 읽기
|
|
38
|
+
- 기술적 컨텍스트를 위해 `.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md` 읽기
|
|
39
|
+
- 아키텍처 결정을 이해하기 위해 `.aiwf/01_PROJECT_DOCS/LONG_TERM_VISION.md` 읽기
|
|
40
|
+
|
|
41
|
+
**중요:** 스프린트 태스크는 문서화된 스프린트 목표와 일치해야 하며, 범위를 확장하면 안 됨.
|
|
42
|
+
|
|
43
|
+
### 3. 기존 ADR 및 기술 가이드 확인
|
|
44
|
+
|
|
45
|
+
**병렬 서브에이전트 사용**하여 다음 명령 실행:
|
|
46
|
+
|
|
47
|
+
- 스프린트 ID와 일치하는 ADR을 위해 `.aiwf/05_ARCHITECTURE_DECISIONS/` 검색 (예: `ADR*_S02_*.md`)
|
|
48
|
+
- 기술적 결정을 이해하기 위해 발견된 모든 ADR 읽기
|
|
49
|
+
- ADR 참조 섹션에 대한 스프린트 메타 확인
|
|
50
|
+
- 태스크 구현에 영향을 줄 기술적 결정 주목
|
|
51
|
+
- 태스크와 서브태스크에서 관계 구축하고 구현할 내용을 명확히 하기
|
|
52
|
+
|
|
53
|
+
**범위에서 충돌**이 ADR과 스프린트 목표 사이에 있다면, 고민해보고 사용자에게 충돌 해결을 요청.
|
|
54
|
+
|
|
55
|
+
**ADR이 발견되지 않은 경우:** 진행하되 구현 중에 태스크가 명확화가 필요할 수 있음을 주목.
|
|
56
|
+
|
|
57
|
+
### 4. 태스크 분할을 위한 스프린트 결과물 분석
|
|
58
|
+
|
|
59
|
+
스프린트 목표와 결과물을 바탕으로 (병렬 서브에이전트에서 실행):
|
|
60
|
+
|
|
61
|
+
- 고수준 결과물을 구체적이고 구현 가능한 태스크로 분할
|
|
62
|
+
- 각 태스크가 일관된 기능이나 구성요소를 나타내도록 보장
|
|
63
|
+
- 태스크 간의 논리적 종속성 고려
|
|
64
|
+
- 기술 가이드를 위해 태스크를 관련 ADR에 매핑
|
|
65
|
+
- 서브태스크와 함께 태스크가 완전히 생성된 후까지 복잡성 평가 연기
|
|
66
|
+
|
|
67
|
+
### 5. 구현 가이드와 함께 개별 태스크 파일 생성
|
|
68
|
+
|
|
69
|
+
**이제** 식별된 각 태스크에 대해 다음 지침과 함께 병렬 서브에이전트를 시작:
|
|
70
|
+
|
|
71
|
+
#### 각 태스크에 대한 TODO 생성
|
|
72
|
+
|
|
73
|
+
1. 기본 태스크 구조 생성
|
|
74
|
+
2. 코드베이스 인터페이스 조사
|
|
75
|
+
3. 기술 가이드 추가
|
|
76
|
+
4. 태스크 완전성 검증
|
|
77
|
+
|
|
78
|
+
### 1. 기본 태스크 구조 생성
|
|
79
|
+
|
|
80
|
+
- 모든 태스크 파일은 스프린트 디렉토리(스프린트 메타 파일이 있는 곳)에 생성되어야 함
|
|
81
|
+
- `T<NN>_S<NN>_<설명적_이름>.md` 명명으로 파일 생성
|
|
82
|
+
- T01부터 시작하는 순차적 번호 사용
|
|
83
|
+
- `.aiwf/99_TEMPLATES/task_template.md`의 태스크 템플릿 구조를 정확히 따름
|
|
84
|
+
- 스프린트 목표에서 기본 설명과 목표 추가
|
|
85
|
+
|
|
86
|
+
### 2. 코드베이스 인터페이스 조사
|
|
87
|
+
|
|
88
|
+
- 유사한 패턴과 인터페이스를 위해 기존 코드베이스 검토
|
|
89
|
+
- 필요한 특정 클래스, 함수, 임포트 식별
|
|
90
|
+
- 기존 모듈과의 통합 지점 찾기
|
|
91
|
+
- 인터페이스할 데이터베이스 모델, API 엔드포인트 또는 서비스 주목
|
|
92
|
+
- 기존 오류 처리 및 로깅 패턴 확인
|
|
93
|
+
|
|
94
|
+
### 3. 기술 가이드 추가
|
|
95
|
+
|
|
96
|
+
태스크 파일에 다음 섹션 추가 (템플릿에 없으면 추가):
|
|
97
|
+
|
|
98
|
+
**기술 가이드 섹션:**
|
|
99
|
+
|
|
100
|
+
- 코드베이스의 주요 인터페이스 및 통합 지점
|
|
101
|
+
- 특정 임포트 및 모듈 참조
|
|
102
|
+
- 따라야 할 기존 패턴
|
|
103
|
+
- 작업할 데이터베이스 모델 또는 API 계약
|
|
104
|
+
- 유사한 코드에서 사용되는 오류 처리 접근법
|
|
105
|
+
|
|
106
|
+
**구현 노트 섹션:**
|
|
107
|
+
|
|
108
|
+
- 단계별 구현 접근법
|
|
109
|
+
- 존중해야 할 주요 아키텍처 결정
|
|
110
|
+
- 기존 테스트 패턴을 바탕으로 한 테스트 접근법
|
|
111
|
+
- 관련된 경우 성능 고려사항
|
|
112
|
+
|
|
113
|
+
**중요:** 코드 예제를 포함하지 마세요. 구조적 가이드와 참조만 제공.
|
|
114
|
+
|
|
115
|
+
#### 4. 태스크 완전성 검증
|
|
116
|
+
|
|
117
|
+
- 태스크가 명확한 구현 경로를 가지는지 확인
|
|
118
|
+
- 모든 통합 지점이 문서화되었는지 확인
|
|
119
|
+
- 가이드가 실제 코드베이스 요소를 참조하는지 확인
|
|
120
|
+
- 태스크가 자체 완결적이고 실행 가능한지 확인
|
|
121
|
+
|
|
122
|
+
**반복** `### 5. 구현 가이드와 함께 개별 태스크 파일 생성`을 모든 태스크에 대해
|
|
123
|
+
|
|
124
|
+
### 6. 관련 태스크에 ADR 연결
|
|
125
|
+
|
|
126
|
+
- 관련 ADR이 존재하는 경우
|
|
127
|
+
- 관련된 ADR 참조
|
|
128
|
+
- 각 ADR이 어떻게 적용되는지에 대한 설명을 기술 가이드 섹션에 추가
|
|
129
|
+
- 태스크가 구현에 영향을 주는 ADR만 참조하도록 보장
|
|
130
|
+
|
|
131
|
+
### 7. 태스크 참조로 스프린트 메타 업데이트
|
|
132
|
+
|
|
133
|
+
- 태스크 목록을 추가/업데이트하기 위해 스프린트 메타 파일 편집
|
|
134
|
+
- 논리적 그룹화 또는 종속성 순서로 태스크 구성
|
|
135
|
+
- 각 태스크에 대한 간단한 설명 추가
|
|
136
|
+
|
|
137
|
+
### 8. 작업 품질 확인
|
|
138
|
+
|
|
139
|
+
복잡성에 대해 생성된 모든 태스크를 검토하고 높은 복잡성 태스크를 분할:
|
|
140
|
+
|
|
141
|
+
**복잡성 평가 프로세스:**
|
|
142
|
+
|
|
143
|
+
- 설명, 목표, 수용 기준, 서브태스크를 포함하여 각 태스크 파일을 완전히 읽기
|
|
144
|
+
- 전체 범위와 도전에 대한 판단을 사용하여 복잡성 평가
|
|
145
|
+
- 파일 수나 예상 시간과 같은 단순한 지표를 기반으로 복잡성을 평가하지 마세요
|
|
146
|
+
- 개념적 어려움, 통합 도전, 미지수 고려
|
|
147
|
+
- 태스크 프론트매터에서 복잡성을 낮음, 보통, 높음으로 표시
|
|
148
|
+
|
|
149
|
+
**어떤 태스크든 높은 복잡성으로 표시된 경우:**
|
|
150
|
+
|
|
151
|
+
- 태스크를 낮음 또는 보통 복잡성의 2-3개 작은 태스크로 분할
|
|
152
|
+
- 적절한 순차적 번호로 새 태스크 파일 생성
|
|
153
|
+
- 원래 높은 복잡성 태스크 파일을 업데이트하거나 삭제
|
|
154
|
+
- 분할된 태스크들이 함께 원래 목표를 달성하도록 보장
|
|
155
|
+
- 논리적 그룹화와 종속성 유지
|
|
156
|
+
|
|
157
|
+
**모든 태스크가 완료된 후:**
|
|
158
|
+
|
|
159
|
+
- 모든 태스크가 낮음 또는 보통 복잡성만 있는지 확인
|
|
160
|
+
- 태스크 번호가 순차적인지 확인 (T01, T02, T03...)
|
|
161
|
+
- 최종 태스크 목록으로 스프린트 메타 파일 업데이트
|
|
162
|
+
- 실제로 생성된 태스크를 반영하도록 프로젝트 매니페스트 스프린트 섹션 업데이트
|
|
163
|
+
- 완료 보고서 생성
|
|
164
|
+
|
|
165
|
+
**출력 형식:**
|
|
166
|
+
|
|
167
|
+
```Markdown
|
|
168
|
+
## 스프린트 상세화 완료 - [YYYY-MM-DD HH:MM]
|
|
169
|
+
|
|
170
|
+
**스프린트:** [스프린트 ID] - [스프린트 이름]
|
|
171
|
+
**상태:** 계획 완료
|
|
172
|
+
|
|
173
|
+
**생성된 태스크:** [분할 후 최종 개수]
|
|
174
|
+
- 보통 복잡성: [개수]
|
|
175
|
+
- 낮은 복잡성: [개수]
|
|
176
|
+
|
|
177
|
+
**태스크 분할 요약:**
|
|
178
|
+
- [원래 T03이 범위로 인해 T03과 T04로 분할됨]
|
|
179
|
+
- [다른 분할 필요 없음]
|
|
180
|
+
|
|
181
|
+
**최종 태스크 목록:**
|
|
182
|
+
1. T01_S02 - [제목] (복잡성: [수준])
|
|
183
|
+
2. T02_S02 - [제목] (복잡성: [수준])
|
|
184
|
+
[모든 태스크에 대해 계속]
|
|
185
|
+
|
|
186
|
+
**다음 단계:**
|
|
187
|
+
- 완전성에 대한 태스크 검토
|
|
188
|
+
- 구현을 시작하기 위해 `/do_task [스프린트의_첫_번째_태스크]` 실행
|
|
189
|
+
```
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# 마일스톤에서 스프린트 생성 - 탑 다운 실행
|
|
2
|
+
|
|
3
|
+
마일스톤의 범위를 스프린트로 분할하기 위해 다음 지침을 따르세요
|
|
4
|
+
|
|
5
|
+
## 정확히 다음 8개 항목으로 TODO 생성
|
|
6
|
+
|
|
7
|
+
1. 현재 마일스톤 상태 분석
|
|
8
|
+
2. 완료된 작업과 마일스톤 요구사항 평가
|
|
9
|
+
3. 남은 작업과 종속성 식별
|
|
10
|
+
4. 논리적 스프린트 경계 설계
|
|
11
|
+
5. 스프린트 디렉토리와 메타 파일 생성
|
|
12
|
+
6. 스프린트 로드맵으로 PROJECT_MANIFEST 업데이트
|
|
13
|
+
7. 스프린트 일관성과 종속성 검증
|
|
14
|
+
8. 마일스톤 계획 보고
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 1 · 현재 마일스톤 상태 분석
|
|
19
|
+
|
|
20
|
+
**치명적:** 추가 인수가 제공됩니다: <$ARGUMENTS>
|
|
21
|
+
|
|
22
|
+
**병렬 서브에이전트 사용**하여 다음 태스크 수행:
|
|
23
|
+
|
|
24
|
+
- 마일스톤 ID에 대한 인수 파싱 (PROJECT_MANIFEST의 현재 마일스톤이 기본값)
|
|
25
|
+
- 현재 진행 상황을 이해하기 위해 `.aiwf/00_PROJECT_MANIFEST.md` 읽기
|
|
26
|
+
- 대상 마일스톤의 기존 스프린트를 식별하기 위해 `.aiwf/03_SPRINTS/` 스캔
|
|
27
|
+
- 각 기존 스프린트에 대해, YAML 프론트매터에서 상태를 확인하기 위해 스프린트 메타 파일 읽기
|
|
28
|
+
- 완료된 작업을 이해하기 위해 스프린트의 태스크를 분석 (서브태스크에서)
|
|
29
|
+
|
|
30
|
+
## 2 · 완료된 작업과 마일스톤 요구사항 평가
|
|
31
|
+
|
|
32
|
+
- `.aiwf/02_REQUIREMENTS/$MILESTONE_ID/`에서 마일스톤 메타 파일 읽기
|
|
33
|
+
- **치명적:** 마일스톤 메타에서 연결된 모든 문서를 따라가며 읽기:
|
|
34
|
+
- 제품 요구사항 (PRD.md)
|
|
35
|
+
- 데이터베이스 사양 (SPECS_DB.md)
|
|
36
|
+
- API 사양 (SPECS_API.md)
|
|
37
|
+
- 도구 사양 (SPECS_TOOLS.md)
|
|
38
|
+
- 기타 연결된 사양들
|
|
39
|
+
- 마일스톤의 완료 정의(DoD)를 신중히 학습하고 각 DoD 기준이 실제로 특정 결과물 측면에서 무엇을 요구하는지 **깊이 생각**하기
|
|
40
|
+
- 각 기존 스프린트에 대해, 스프린트 메타와 태스크 파일을 읽어 완료된 결과물 분석
|
|
41
|
+
- 격차 분석에 대해 **더 신중히 생각하기**: 완료된 각 결과물을 특정 DoD 요구사항에 대응시키고 진정으로 누락된 것과 이미 다뤄진 것을 식별
|
|
42
|
+
- 명확한 그림 생성: "완료된 것 vs 마일스톤 완성을 위해 필요한 것"에 대해 식별된 각 격차에 대한 구체적 근거 제시
|
|
43
|
+
|
|
44
|
+
## 3 · 남은 작업과 종속성 식별
|
|
45
|
+
|
|
46
|
+
- 격차 분석을 바탕으로, 마일스톤 완성을 위한 남은 결과물 식별
|
|
47
|
+
- 자연스러운 종속성을 가진 관련 결과물을 그룹화
|
|
48
|
+
- **치명적:** 각 결과물 그룹은 다음과 같아야 함:
|
|
49
|
+
- **독립적으로 가치 있음** (배포 가능한 증분)
|
|
50
|
+
- **한 사람이 ~1주일 내에 완료 가능**
|
|
51
|
+
- **명확한 검증 기준 보유**
|
|
52
|
+
- 기술적 종속성 고려 (예: UI 전에 인증, 도구 전에 LLM 통합)
|
|
53
|
+
|
|
54
|
+
## 4 · 논리적 스프린트 경계 설계
|
|
55
|
+
|
|
56
|
+
- 마일스톤을 완성하기 위한 스프린트 구조 설계
|
|
57
|
+
- 각 스프린트는 다음을 보유해야 함:
|
|
58
|
+
- **명확한 집중점**: 하나의 주요 결과물 테마
|
|
59
|
+
- **자연스러운 경계**: 스프린트 간 최소한의 종속성
|
|
60
|
+
- **점진적 가치**: 각 스프린트가 마일스톤 DoD를 향해 전진
|
|
61
|
+
- 스프린트 명명: `S<nn>_$milestone_id_$focus_slug`
|
|
62
|
+
- **중요:** 이미 완료된 작업에 대한 스프린트를 생성하지 마세요
|
|
63
|
+
|
|
64
|
+
## 5 · 스프린트 디렉토리와 메타 파일 생성
|
|
65
|
+
|
|
66
|
+
- 존재하지 않는 각 계획된 스프린트에 대해:
|
|
67
|
+
- 디렉토리 생성 `.aiwf/03_SPRINTS/$FULL_SPRINT_NAME/` ("S02_M01_LLM_Integration"과 같은 완전한 스프린트 이름 사용)
|
|
68
|
+
- `.aiwf/99_TEMPLATES/sprint_meta_template.md`에서 템플릿 사용
|
|
69
|
+
- 스프린트 메타를 다음으로 채우기:
|
|
70
|
+
- 고수준 목표와 범위
|
|
71
|
+
- 주요 결과물 (자세한 태스크가 아닌 불릿 포인트)
|
|
72
|
+
- 스프린트에 대한 명확한 완료 정의
|
|
73
|
+
- 상태: "planned"
|
|
74
|
+
|
|
75
|
+
## 6 · 스프린트 로드맵으로 PROJECT_MANIFEST 업데이트
|
|
76
|
+
|
|
77
|
+
- `.aiwf/00_PROJECT_MANIFEST.md` 업데이트:
|
|
78
|
+
- `highest_sprint_in_milestone`을 계획된 가장 높은 스프린트로 설정
|
|
79
|
+
- 남은 스프린트의 개요로 스프린트 요약 섹션 업데이트
|
|
80
|
+
- 완료된 스프린트를 ✅ COMPLETED로 표시
|
|
81
|
+
- 계획된 스프린트를 그들의 집중 영역과 함께 표시
|
|
82
|
+
- `last_updated` 타임스탬프 업데이트
|
|
83
|
+
|
|
84
|
+
## 7 · 스프린트 일관성과 종속성 검증
|
|
85
|
+
|
|
86
|
+
- 논리적 흐름을 위해 계획된 스프린트 순서 검토
|
|
87
|
+
- 각 스프린트가 이전 작업을 자연스럽게 구축하는지 확인
|
|
88
|
+
- 불가능한 종속성을 가진 스프린트가 없는지 확인
|
|
89
|
+
- 스프린트 순서가 마일스톤 DoD 완성으로 이어지는지 확인
|
|
90
|
+
- 각 스프린트가 독립적으로 테스트 가능하고 가치 있는지 **생각하기**
|
|
91
|
+
|
|
92
|
+
## 8 · 마일스톤 계획 보고
|
|
93
|
+
|
|
94
|
+
포괄적인 요약 제공:
|
|
95
|
+
|
|
96
|
+
**마일스톤 상태:**
|
|
97
|
+
|
|
98
|
+
- 대상 마일스톤: $milestone_id
|
|
99
|
+
- 완료된 스프린트: $count
|
|
100
|
+
- 계획된 스프린트: $count
|
|
101
|
+
- 예상 완료: $sprint_sequence
|
|
102
|
+
|
|
103
|
+
**스프린트 로드맵:**
|
|
104
|
+
|
|
105
|
+
각 스프린트에 대해 (기존 및 계획된):
|
|
106
|
+
|
|
107
|
+
- **$Sprint_ID**: $status - $focus_description
|
|
108
|
+
- 주요 결과물: $bullet_list
|
|
109
|
+
- 종속성: $if_any
|
|
110
|
+
|
|
111
|
+
**다음 단계:**
|
|
112
|
+
|
|
113
|
+
- 상세화할 즉시 다음 스프린트: $sprint_id
|
|
114
|
+
|
|
115
|
+
**검증:**
|
|
116
|
+
|
|
117
|
+
다음을 포함한 검증 분석 요약:
|
|
118
|
+
|
|
119
|
+
- 모든 마일스톤 DoD 항목이 스프린트 계획에 포함됨
|
|
120
|
+
- 스프린트 종속성이 논리적이고 최소한임
|
|
121
|
+
- 각 스프린트가 독립적인 가치를 제공함
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# 기본 모드로 복원
|
|
2
|
+
|
|
3
|
+
AI를 기본 모드로 복원합니다.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
cd .aiwf && node ../claude-code/aiwf/ko/commands/ai-persona.js default
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## 설명
|
|
10
|
+
이 명령어는 현재 활성화된 페르소나를 비활성화하고 AI를 기본 범용 모드로 복원합니다.
|
|
11
|
+
|
|
12
|
+
## 동작
|
|
13
|
+
- 현재 페르소나 비활성화
|
|
14
|
+
- 페르소나별 컨텍스트 규칙 해제
|
|
15
|
+
- 기본 AI 동작 모드로 전환
|
|
16
|
+
- 세션 통계 저장
|
|
17
|
+
|
|
18
|
+
## 사용 시나리오
|
|
19
|
+
- 특정 페르소나가 더 이상 필요하지 않을 때
|
|
20
|
+
- 일반적인 개발 작업으로 돌아갈 때
|
|
21
|
+
- 다른 페르소나로 전환하기 전
|
|
22
|
+
- 페르소나 관련 문제 해결 시
|
|
23
|
+
|
|
24
|
+
## 출력 예시
|
|
25
|
+
```
|
|
26
|
+
🎭 페르소나 모드 해제
|
|
27
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
28
|
+
이전 페르소나: [페르소나명]
|
|
29
|
+
세션 시간: [시간]
|
|
30
|
+
기본 모드로 복원되었습니다.
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 참고사항
|
|
34
|
+
- 페르소나 세션 통계는 자동으로 저장됩니다
|
|
35
|
+
- 언제든지 다른 페르소나를 활성화할 수 있습니다
|
|
36
|
+
- 기본 모드에서도 모든 AI 기능을 사용할 수 있습니다
|
|
37
|
+
|
|
38
|
+
## 관련 명령어
|
|
39
|
+
- `/project:aiwf:persona_status` - 페르소나 상태 확인
|
|
40
|
+
- `/project:aiwf:architect` - Architect 페르소나 활성화
|
|
41
|
+
- `/project:aiwf:security` - Security 페르소나 활성화
|
|
42
|
+
- `/project:aiwf:frontend` - Frontend 페르소나 활성화
|
|
43
|
+
- `/project:aiwf:backend` - Backend 페르소나 활성화
|
|
44
|
+
- `/project:aiwf:data_analyst` - Data Analyst 페르소나 활성화
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 리뷰 결과 논의
|
|
2
|
+
|
|
3
|
+
Engage in technical discussion about recent review findings based on discussion starter.
|
|
4
|
+
|
|
5
|
+
Discussion Starter: <$ARGUMENTS>
|
|
6
|
+
|
|
7
|
+
## Discussion Primer
|
|
8
|
+
|
|
9
|
+
**IMPORTANT:** Maintain John Carmack perspective - brutally honest, practical, focused on shipping working software.
|
|
10
|
+
|
|
11
|
+
### Discussion Tone
|
|
12
|
+
|
|
13
|
+
- **Be conversational** but maintain technical depth
|
|
14
|
+
- **Challenge assumptions** - question if issues are real problems for current development stage
|
|
15
|
+
- **Explore trade-offs** - suggest multiple approaches with pros/cons
|
|
16
|
+
- **Focus on decisions** - what to do next, not just analysis
|
|
17
|
+
- **Consider context** - balance technical perfection vs delivery timeline
|
|
18
|
+
|
|
19
|
+
### Potential Discussion Outcomes
|
|
20
|
+
|
|
21
|
+
Based on the conversation, you may suggest:
|
|
22
|
+
|
|
23
|
+
- **Amending review findings** if new context changes severity/priority
|
|
24
|
+
- **Updating documentation** in `.aiwf/01_PROJECT_DOCS/` if architectural decisions need clarification
|
|
25
|
+
- **Revising requirements** in `.aiwf/02_REQUIREMENTS/` if scope understanding was incorrect
|
|
26
|
+
- **Creating tasks** for specific technical debt items that need addressing
|
|
27
|
+
- **Adjusting sprint priorities** based on refined understanding
|
|
28
|
+
|
|
29
|
+
**IMPORTANT:** Help make practical engineering decisions. Be John Carmack: direct, experienced, and focused on what actually matters for shipping.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# 인수 기반 AIWF 태스크 처리
|
|
2
|
+
|
|
3
|
+
**중요:** 위에서 아래로 순서대로 진행하세요 - 단계를 건너뛰지 마세요!
|
|
4
|
+
|
|
5
|
+
**정확히 다음 8개 항목으로 할 일 목록을 생성하세요**
|
|
6
|
+
|
|
7
|
+
1. 인수에서 범위 분석
|
|
8
|
+
2. 태스크 파일 식별
|
|
9
|
+
3. 태스크 분석
|
|
10
|
+
4. 상태를 진행 중으로 설정
|
|
11
|
+
5. 태스크 작업 실행
|
|
12
|
+
6. 플레이스홀더
|
|
13
|
+
7. 코드 리뷰 실행
|
|
14
|
+
8. 태스크 상태 완료 처리
|
|
15
|
+
|
|
16
|
+
## 1 · 인수에서 범위 분석
|
|
17
|
+
|
|
18
|
+
<$ARGUMENTS> ⇒ 태스크 ID, 스프린트 ID, 또는 빈 값 (현재 스프린트에서 다음 열린 태스크 선택).
|
|
19
|
+
|
|
20
|
+
## 2 · 태스크 파일 식별
|
|
21
|
+
|
|
22
|
+
.aiwf/03_SPRINTS/와 .aiwf/04_GENERAL_TASKS/에서 검색합니다.
|
|
23
|
+
일치하는 열린 태스크가 없으면 일시정지하고 사용자에게 진행 방법을 문의합니다.
|
|
24
|
+
|
|
25
|
+
## 3 · 태스크 분석
|
|
26
|
+
|
|
27
|
+
태스크 설명을 읽습니다. 불분명한 점이 있으면 계속하기 전에 명확화 질문을 합니다.
|
|
28
|
+
|
|
29
|
+
**중요한 맥락 검증:** 태스크를 실행하기 전에 다음 작업들을 위한 병렬 서브에이전트를 실행합니다:
|
|
30
|
+
|
|
31
|
+
1. **스프린트 맥락:** 태스크가 현재 스프린트 범위에 속하는지 확인
|
|
32
|
+
2. **의존성:** 먼저 완료해야 할 의존 태스크가 있는지 확인
|
|
33
|
+
3. **요구사항:** `.aiwf/02_REQUIREMENTS/`에서 관련 요구사항 문서 읽기
|
|
34
|
+
4. **범위 검증:** 태스크가 현재 스프린트 목표와 일치하는지 확인
|
|
35
|
+
5. **GitHub 이슈 확인:** 태스크 파일에 `github_issue` 필드가 있는지 확인
|
|
36
|
+
|
|
37
|
+
**중요:** 태스크가 미래 스프린트의 기능을 참조하거나 충족되지 않은 의존성이 있으면 일시정지하고 명확화를 요청합니다.
|
|
38
|
+
|
|
39
|
+
**GitHub 이슈 생성 (선택사항):**
|
|
40
|
+
|
|
41
|
+
- 태스크에 GitHub 이슈가 없고 사용자가 이슈 추적을 원하는 경우
|
|
42
|
+
- `/project:aiwf:issue_create {task_id}` 명령어 사용을 제안합니다
|
|
43
|
+
|
|
44
|
+
## 4 · 상태를 진행 중으로 설정
|
|
45
|
+
|
|
46
|
+
- 현재 로컬 타임스탬프 확인 (YYYY-MM-DD HH:MM)
|
|
47
|
+
- 프론트매터의 **status: in_progress**로 업데이트하고 업데이트 시간 설정
|
|
48
|
+
- ./aiwf/00_PROJECT_MANIFEST.md에서 태스크 진행 중, 업데이트 시간, 현재 스프린트 상태로 업데이트
|
|
49
|
+
- **GitHub 이슈 업데이트 (존재하는 경우):**
|
|
50
|
+
```bash
|
|
51
|
+
gh issue comment {issue_number} --body "🚀 태스크 작업이 시작되었습니다."
|
|
52
|
+
gh issue edit {issue_number} --add-label "in-progress"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 5 · 태스크 작업 실행
|
|
56
|
+
|
|
57
|
+
- 설명, 목표, 승인 기준을 따릅니다
|
|
58
|
+
- .aiwf/01_PROJECT_DOCS/와 .aiwf/02_REQUIREMENTS/의 지원 문서를 참조합니다
|
|
59
|
+
- 하위 태스크를 반복 처리:
|
|
60
|
+
1. 다음 미완료 하위 태스크를 선택합니다
|
|
61
|
+
2. 필요에 따라 문서를 참조하여 필요한 변경사항을 구현합니다
|
|
62
|
+
3. 하위 태스크를 완료로 표시합니다
|
|
63
|
+
4. `[YYYY-MM-DD HH:MM]: <메시지>` 형식으로 **## 출력 로그**에 로그 항목을 추가합니다
|
|
64
|
+
5. 모든 하위 태스크가 완료될 때까지 반복합니다
|
|
65
|
+
|
|
66
|
+
## 6 · 플레이스홀더
|
|
67
|
+
|
|
68
|
+
플레이스홀더 - 다음 단계로 진행하세요
|
|
69
|
+
|
|
70
|
+
## 7 · 코드 리뷰 실행
|
|
71
|
+
|
|
72
|
+
코드 리뷰를 위해 다음 단계를 순서대로 수행합니다
|
|
73
|
+
|
|
74
|
+
- @.claude/commands/aiwf/aiwf_code_review.md를 포함하고 태스크 ID를 범위로 사용합니다
|
|
75
|
+
- 파일의 지침에 따라 **병렬 서브에이전트**에서 코드 리뷰를 실행합니다
|
|
76
|
+
- 완료되면 결과에 따라 적절히 조치합니다
|
|
77
|
+
- 결과를 이해하고 분석합니다
|
|
78
|
+
- **실패** 시:
|
|
79
|
+
- 문제를 철저히 이해합니다
|
|
80
|
+
- 리뷰에서 식별된 하위 태스크로 현재 태스크를 확장합니다
|
|
81
|
+
- "5 · 태스크 작업 실행"으로 돌아갑니다
|
|
82
|
+
- **통과** 시:
|
|
83
|
+
- 다음 단계로 진행합니다
|
|
84
|
+
|
|
85
|
+
## 8 · 태스크 상태 완료 처리
|
|
86
|
+
|
|
87
|
+
- 태스크 상태를 **completed**로 설정합니다
|
|
88
|
+
- 파일명에서 완료 인식이 가능하도록 태스크 파일명을 적절히 변경합니다 (TX[TASK_ID]...)
|
|
89
|
+
- .aiwf/00_PROJECT_MANIFEST.md를 업데이트하여 새 상태를 반영합니다
|
|
90
|
+
- **GitHub 이슈 업데이트 (존재하는 경우):**
|
|
91
|
+
```bash
|
|
92
|
+
gh issue comment {issue_number} --body "✅ 태스크가 완료되었습니다."
|
|
93
|
+
gh issue edit {issue_number} --remove-label "in-progress" --add-label "completed"
|
|
94
|
+
```
|
|
95
|
+
- 사용자에게 **결과 보고**
|
|
96
|
+
|
|
97
|
+
✅ **결과**: 성공에 대한 간단한 설명
|
|
98
|
+
|
|
99
|
+
🔎 **범위**: 식별된 태스크 또는 처리되지 않은 이유
|
|
100
|
+
|
|
101
|
+
💬 **요약**: 수행된 작업 또는 차단된 이유에 대한 한 문단 요약
|
|
102
|
+
|
|
103
|
+
⏭️ **다음 단계**: 권장 후속 조치
|
|
104
|
+
|
|
105
|
+
- 사용자를 위한 **제안**:
|
|
106
|
+
|
|
107
|
+
- 🛠️ /project:aiwf:commit `TASK_ID`를 사용하여 변경사항을 git에 커밋
|
|
108
|
+
- 🔀 /project:aiwf:pr_create `TASK_ID`를 사용하여 Pull Request 생성
|
|
109
|
+
- 🧹 /clear를 사용하여 다음 태스크 시작 전 컨텍스트 정리
|