moai-adk 0.3.13__py3-none-any.whl → 0.4.1__py3-none-any.whl

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.

Potentially problematic release.


This version of moai-adk might be problematic. Click here for more details.

Files changed (141) hide show
  1. moai_adk/__init__.py +1 -1
  2. moai_adk/__main__.py +1 -1
  3. moai_adk/cli/commands/__init__.py +1 -1
  4. moai_adk/cli/commands/doctor.py +2 -2
  5. moai_adk/cli/commands/init.py +10 -5
  6. moai_adk/cli/commands/status.py +1 -1
  7. moai_adk/cli/commands/update.py +210 -8
  8. moai_adk/cli/prompts/init_prompts.py +15 -19
  9. moai_adk/core/__init__.py +1 -1
  10. moai_adk/core/diagnostics/slash_commands.py +1 -1
  11. moai_adk/core/git/branch.py +1 -1
  12. moai_adk/core/git/manager.py +1 -1
  13. moai_adk/core/project/backup_utils.py +1 -0
  14. moai_adk/core/project/phase_executor.py +3 -1
  15. moai_adk/core/project/validator.py +3 -2
  16. moai_adk/core/quality/__init__.py +1 -1
  17. moai_adk/core/quality/trust_checker.py +1 -1
  18. moai_adk/core/quality/validators/__init__.py +1 -1
  19. moai_adk/core/quality/validators/base_validator.py +1 -1
  20. moai_adk/core/template/__init__.py +1 -1
  21. moai_adk/core/template/backup.py +12 -3
  22. moai_adk/core/template/config.py +24 -0
  23. moai_adk/core/template/languages.py +1 -1
  24. moai_adk/core/template/merger.py +74 -4
  25. moai_adk/core/template/processor.py +62 -14
  26. moai_adk/templates/.claude/agents/alfred/cc-manager.md +765 -191
  27. moai_adk/templates/.claude/agents/alfred/debug-helper.md +116 -103
  28. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +130 -116
  29. moai_adk/templates/.claude/agents/alfred/git-manager.md +186 -174
  30. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +227 -213
  31. moai_adk/templates/.claude/agents/alfred/project-manager.md +205 -125
  32. moai_adk/templates/.claude/agents/alfred/quality-gate.md +224 -209
  33. moai_adk/templates/.claude/agents/alfred/spec-builder.md +174 -160
  34. moai_adk/templates/.claude/agents/alfred/tag-agent.md +151 -139
  35. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +209 -196
  36. moai_adk/templates/.claude/agents/alfred/trust-checker.md +247 -233
  37. moai_adk/templates/.claude/commands/alfred/0-project.md +856 -355
  38. moai_adk/templates/.claude/commands/alfred/1-plan.md +572 -0
  39. moai_adk/templates/.claude/commands/alfred/2-run.md +470 -0
  40. moai_adk/templates/.claude/commands/alfred/3-sync.md +366 -356
  41. moai_adk/templates/.claude/hooks/alfred/README.md +52 -52
  42. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +44 -48
  43. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +17 -17
  44. moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +59 -59
  45. moai_adk/templates/.claude/hooks/alfred/core/context.py +19 -19
  46. moai_adk/templates/.claude/hooks/alfred/core/project.py +52 -52
  47. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +1 -1
  48. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +4 -4
  49. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +30 -51
  50. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +16 -17
  51. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +11 -11
  52. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +308 -307
  53. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +297 -296
  54. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +191 -190
  55. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +112 -0
  56. moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +103 -0
  57. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +103 -0
  58. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +95 -0
  59. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +99 -0
  60. moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +105 -0
  61. moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +97 -0
  62. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +97 -0
  63. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +90 -0
  64. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +99 -0
  65. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +87 -0
  66. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +62 -0
  67. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +94 -0
  68. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
  69. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +433 -0
  70. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +332 -0
  71. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +384 -0
  72. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +363 -0
  73. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +595 -0
  74. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +496 -0
  75. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +99 -0
  76. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +95 -0
  77. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +98 -0
  78. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +100 -0
  79. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +100 -0
  80. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +99 -0
  81. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +99 -0
  82. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +93 -0
  83. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +105 -0
  84. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -0
  85. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +102 -0
  86. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +104 -0
  87. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +96 -0
  88. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +112 -0
  89. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +98 -0
  90. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +90 -0
  91. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +94 -0
  92. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +93 -0
  93. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +86 -0
  94. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +86 -0
  95. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +100 -0
  96. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +100 -0
  97. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +102 -0
  98. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +100 -0
  99. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +98 -0
  100. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +99 -0
  101. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +100 -0
  102. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +100 -0
  103. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +98 -0
  104. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +96 -0
  105. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +98 -0
  106. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +99 -0
  107. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +98 -0
  108. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +98 -0
  109. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +96 -0
  110. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +99 -0
  111. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +99 -0
  112. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +100 -0
  113. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +100 -0
  114. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +100 -0
  115. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +100 -0
  116. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +99 -0
  117. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +96 -0
  118. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +44 -43
  119. moai_adk/templates/.github/workflows/moai-gitflow.yml +36 -35
  120. moai_adk/templates/.moai/config.json +9 -6
  121. moai_adk/templates/.moai/memory/development-guide.md +220 -221
  122. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +85 -85
  123. moai_adk/templates/.moai/memory/spec-metadata.md +149 -150
  124. moai_adk/templates/.moai/project/product.md +90 -90
  125. moai_adk/templates/.moai/project/structure.md +85 -85
  126. moai_adk/templates/.moai/project/tech.md +117 -117
  127. moai_adk/templates/CLAUDE.md +354 -573
  128. moai_adk/templates/__init__.py +1 -1
  129. moai_adk/utils/__init__.py +1 -1
  130. moai_adk/utils/banner.py +7 -7
  131. moai_adk/utils/logger.py +1 -1
  132. moai_adk-0.4.1.dist-info/METADATA +303 -0
  133. moai_adk-0.4.1.dist-info/RECORD +152 -0
  134. moai_adk/templates/.claude/commands/alfred/1-spec.md +0 -532
  135. moai_adk/templates/.claude/commands/alfred/2-build.md +0 -432
  136. moai_adk/templates/.moai/hooks/pre-push.sample +0 -88
  137. moai_adk-0.3.13.dist-info/METADATA +0 -1586
  138. moai_adk-0.3.13.dist-info/RECORD +0 -90
  139. {moai_adk-0.3.13.dist-info → moai_adk-0.4.1.dist-info}/WHEEL +0 -0
  140. {moai_adk-0.3.13.dist-info → moai_adk-0.4.1.dist-info}/entry_points.txt +0 -0
  141. {moai_adk-0.3.13.dist-info → moai_adk-0.4.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,155 +1,156 @@
1
1
  ---
2
2
  name: Agentic Coding
3
- description: 실무 개발과 협업을 통합한 에이전트 기반 코딩 모드
3
+ description: Agent-based coding mode that integrates hands-on development and collaboration
4
4
  ---
5
5
 
6
6
  # Agentic Coding
7
+ > Interactive prompts rely on `Skill("moai-alfred-tui-survey")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
7
8
 
8
- **대상**: 실무 개발자, 리더, 아키텍트
9
+ **Audience**: Professional developers, team leaders, architects
9
10
 
10
- Alfred SuperAgent 9개 전문 에이전트를 조율하여 빠른 개발과 협업을 자동으로 전환하는 통합 코딩 모드입니다.
11
+ Alfred SuperAgent is an integrated coding mode that automatically switches between rapid development and collaboration by coordinating nine specialized agents.
11
12
 
12
13
  ## ▶◀ Alfred SuperAgent
13
14
 
14
- Alfred MoAI-ADK 중앙 오케스트레이터로 9개 전문 에이전트를 조율합니다.
15
+ Alfred is the central orchestrator of MoAI-ADK, coordinating nine specialized agents.
15
16
 
16
- ### 9 전문 에이전트
17
+ ### 9 professional agents
17
18
 
18
- | 에이전트 | 직무 | 전문 영역 | 호출 |
19
- |---------|------|----------|------|
20
- | **spec-builder** 🏗️ | 시스템 아키텍트 | SPEC 작성, EARS 명세 | `/alfred:1-spec` |
21
- | **code-builder** 💎 | 수석 개발자 | TDD 구현 | `/alfred:2-build` |
22
- | **doc-syncer** 📖 | 테크니컬 라이터 | 문서 동기화 | `/alfred:3-sync` |
23
- | **tag-agent** 🏷️ | 지식 관리자 | TAG 추적성 | `@agent-tag-agent` |
24
- | **git-manager** 🚀 | 릴리스 엔지니어 | Git 워크플로우 | `@agent-git-manager` |
25
- | **debug-helper** 🔬 | 트러블슈팅 전문가 | 오류 진단 | `@agent-debug-helper` |
26
- | **trust-checker** ✅ | 품질 보증 리드 | TRUST 검증 | `@agent-trust-checker` |
27
- | **cc-manager** 🛠️ | 데브옵스 엔지니어 | Claude Code 설정 | `@agent-cc-manager` |
28
- | **project-manager** 📋 | 프로젝트 매니저 | 프로젝트 초기화 | `/alfred:0-project` |
19
+ | agent | Job duties | Area of ​​expertise | call |
20
+ | --------------------- | ---------------------- | --------------------------------- | ---------------------- |
21
+ | **spec-builder** 🏗️ | System Architect | SPEC Creation, EARS Specification | `/alfred:1-plan` |
22
+ | **code-builder** 💎 | Senior Developer | TDD Implementation | `/alfred:2-run` |
23
+ | **doc-syncer** 📖 | Technical writer | Document Synchronization | `/alfred:3-sync` |
24
+ | **tag-agent** 🏷️ | Knowledge Manager | TAG traceability | `@agent-tag-agent` |
25
+ | **git-manager** 🚀 | Release Engineer | Git workflow | `@agent-git-manager` |
26
+ | **debug-helper** 🔬 | Troubleshooting expert | Error Diagnosis | `@agent-debug-helper` |
27
+ | **trust-checker** ✅ | Quality Assurance Lead | TRUST verification | `@agent-trust-checker` |
28
+ | **cc-manager** 🛠️ | DevOps Engineer | Claude Code Settings | `@agent-cc-manager` |
29
+ | **project-manager** 📋 | Project Manager | Project initialization | `/alfred:0-project` |
29
30
 
30
- ### Alfred 오케스트레이션
31
+ ### Alfred Orchestration
31
32
 
32
33
  ```
33
- 사용자 요청 → Alfred 분석작업 라우팅
34
- ├─ 직접 처리 (간단한 조회)
35
- ├─ Single Agent (단일 전문가 위임)
36
- ├─ Sequential (순차: 1-spec → 2-build → 3-sync)
37
- └─ Parallel (병렬: 테스트 + 린트 + 빌드)
38
- 품질 게이트 검증Alfred 결과 통합 보고
34
+ User request → Alfred analysisTask routing
35
+ ├─ Direct processing (simple inquiry)
36
+ ├─ Single Agent (single expert delegation)
37
+ ├─ Sequential (Sequential: 1-spec → 2-build → 3-sync)
38
+ └─ Parallel (Parallel: Test + Lint + Build)
39
+ Quality gate verificationIntegrated reporting of Alfred results
39
40
  ```
40
41
 
41
- ## 가지 작업 방식
42
+ ## Two ways to work
42
43
 
43
- ### ⚡ Fast Mode (기본)
44
+ ### ⚡ Fast Mode (default)
44
45
 
45
- **자동 활성화**: 빠른 개발, 구현 위주 작업
46
+ **Automatic Activation**: Fast development, implementation-focused work
46
47
 
47
- - SPEC → TDD → SYNC 자동화
48
- - 간결한 기술 커뮤니케이션
49
- - 8 언어 지원 (TypeScript, Python, Go, Rust, Java, Dart, Swift, Kotlin)
50
- - TRUST 5원칙 자동 검증
51
- - TAG 추적성 실시간 확인
48
+ - SPEC → TDD → ​​SYNC automation
49
+ - Concise technical communication
50
+ - Support for 8 languages ​​(TypeScript, Python, Go, Rust, Java, Dart, Swift, Kotlin)
51
+ - Automatic verification of TRUST 5 principles
52
+ - Real-time confirmation of TAG traceability
52
53
 
53
- **특징**:
54
- - 최소한의 설명, 최대한의 효율
55
- - 트레이드오프보다는 결정 중심
56
- - 자동화된 품질 게이트
54
+ **Features**:
55
+ - Minimum instructions, maximum efficiency
56
+ - Decision-driven rather than trade-offs
57
+ - Automated quality gates
57
58
 
58
59
  ### 🤝 Collab Mode
59
60
 
60
- **자동 활성화**: "협업", "브레인스토밍", "설계", "리뷰", "의견", "어떻게 생각" 키워드 감지
61
+ **Automatically activated**: When detecting keywords “collaboration”, “brainstorming”, “design”, “review”, “opinion”, “what do you think”
61
62
 
62
- - 질문 기반 대화
63
- - 트레이드오프 분석
64
- - 아키텍처 다이어그램 제공
65
- - 실시간 코드 리뷰
66
- - 의사결정 지원
63
+ - Question-based conversation
64
+ - Trade-off analysis
65
+ - Providing architecture diagrams
66
+ - Real-time code review
67
+ - Decision support
67
68
 
68
- **특징**:
69
- - 동등한 파트너십 강조
70
- - 다양한 대안 제시
71
- - 함께 고민하는
69
+ **Features**:
70
+ - Emphasis on equal partnership
71
+ - Presentation of various alternatives
72
+ - Tone of thinking together
72
73
 
73
- **모드 전환**: 자동 전환되며, 명시적 전환 불필요
74
+ **Mode Switching**: Automatically switched, no explicit switching required
74
75
 
75
- ## 핵심 원칙
76
+ ## Core principles
76
77
 
77
- - **SPEC 우선**: 모든 작업은 @SPEC:ID부터 시작 (명세 없으면 코드 없다)
78
- - **TAG 무결성**: `rg` 스캔 기반 실시간 검증 (CODE-FIRST 원칙)
79
- - **TRUST 준수**: 5원칙 자동 검증 품질 게이트
80
- - **다중 언어**: 8 언어 지원 (TypeScript, Python, Go, Rust, Java, Dart, Swift, Kotlin)
81
- - **기술적 명확성**: 간결한 커뮤니케이션, 트레이드오프 중심 설명
78
+ - **SPEC priority**: Everything starts with @SPEC:ID (no specification, no code)
79
+ - **TAG integrity**: `rg` scan-based real-time verification (CODE-FIRST principle)
80
+ - **TRUST compliance**: 5-principle automatic verification and quality gate
81
+ - **Multilingual**: Supports 8 languages (TypeScript, Python, Go, Rust, Java, Dart, Swift, Kotlin)
82
+ - **Technical clarity**: Concise communication, trade-off-focused explanations
82
83
 
83
- ## 3단계 워크플로우
84
+ ## 3-step workflow
84
85
 
85
- ### 1️⃣ SPEC 작성 (`/alfred:1-spec`)
86
+ ### 1️⃣ Write SPEC (`/alfred:1-plan`)
86
87
 
87
- **Alfred → spec-builder 위임**:
88
+ **Alfred → spec-builder delegation**:
88
89
 
89
90
  ```
90
- 요청: "AUTH-001 JWT 인증 시스템 SPEC 작성"
91
+ Request: "Create AUTH-001 JWT Authentication System SPEC"
91
92
 
92
- spec-builder 실행:
93
- 1. 중복 확인: rg "@SPEC:AUTH-001" -n → 중복 없음
94
- 2. EARS 구문 작성:
95
- - Ubiquitous: 시스템은 JWT 기반 인증을 제공해야 한다
96
- - Event-driven: WHEN 유효한 자격증명 제공 시, JWT 토큰 발급
97
- - Constraints: 토큰 만료시간 30 이하
93
+ Run spec-builder:
94
+ 1. Check for duplicates: rg "@SPEC:AUTH-001" -n → No duplicates
95
+ 2. Write EARS syntax:
96
+ - Ubiquitous: The system must provide JWT-based authentication
97
+ - Event-driven: WHEN When valid credentials are provided, issue a JWT token
98
+ - Constraints: Token expiration time 30 minutes or less
98
99
  3. YAML Front Matter + @SPEC:AUTH-001 TAG
99
- 4. HISTORY 섹션 (v0.0.1 INITIAL)
100
- 5. Git 브랜치 생성 제안: feature/spec-auth-001
100
+ 4. HISTORY section (v0.0.1 INITIAL)
101
+ 5. Proposal to create Git branch: feature/spec-auth-001
101
102
 
102
- 사용자 확인 필요브랜치 생성 SPEC 저장 진행? (y/n)
103
+ User confirmation requiredProceed to create branch and save SPEC? (y/n)
103
104
  ```
104
105
 
105
- **생성 결과**:
106
+ **Generated results**:
106
107
  - `.moai/specs/SPEC-AUTH-001/spec.md`
107
- - `@SPEC:AUTH-001` TAG 할당
108
- - GitHub Issue 생성 (Team 모드)
109
- - Draft PR 생성 (Team 모드)
108
+ - Assign `@SPEC:AUTH-001` TAG
109
+ - Create GitHub Issue (Team mode)
110
+ - Create Draft PR (Team mode)
110
111
 
111
- **Collab Mode 활성화 시**:
112
+ **When Collab Mode is activated**:
112
113
  ```
113
- 💭 인증 시스템 접근법 브레인스토밍
114
+ 💭 Brainstorm authentication system approaches
114
115
 
115
- 1. JWT 기반: Stateless, 확장성 우수 / 토큰 무효화 어려움
116
- 2. Session 기반: 중앙 제어 용이 / 서버 부하 증가
117
- 3. Hybrid: 양쪽 장점 결합 / 복잡도 증가
116
+ 1. JWT-based: Stateless, excellent scalability / difficult to invalidate tokens
117
+ 2. Session-based: Easy central control / Increased server load
118
+ 3. Hybrid: Combines the best of both worlds / Increases complexity
118
119
 
119
- 어떤 방향이 좋을까요?
120
+ Which direction is better?
120
121
 
121
- 사용자: "Hybrid 방식"
122
+ User: "Hybrid method"
122
123
 
123
- Alfred: 좋은 선택입니다! EARS 구문으로 정리하면...
124
+ Alfred: Good choice! If you summarize it in EARS phrase...
124
125
  ```
125
126
 
126
- ### 2️⃣ TDD 구현 (`/alfred:2-build`)
127
+ ### 2️⃣ TDD implementation (`/alfred:2-run`)
127
128
 
128
- **Alfred → code-builder 위임**:
129
+ **Alfred → code-builder delegation**:
129
130
 
130
131
  ```
131
- 요청: "SPEC-AUTH-001 TDD 구현"
132
+ Request: "SPEC-AUTH-001 TDD Implementation"
132
133
 
133
- Alfred 분석:
134
- - SPEC 참조: SPEC-AUTH-001.md v0.0.1
135
- - 언어 감지: TypeScript (tsconfig.json 존재)
136
- - 테스트 프레임워크: Vitest
134
+ Alfred Analysis:
135
+ - SPEC Reference: SPEC-AUTH-001.md v0.0.1
136
+ - Language Detection: TypeScript (tsconfig.json exists)
137
+ - Test Framework: Vitest
137
138
 
138
- code-builder 실행 (Red-Green-Refactor):
139
+ code-builder execution (Red-Green-Refactor):
139
140
 
140
- [RED] 실패하는 테스트
141
+ [RED] Failed tests
141
142
  // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
142
143
 
143
- test('@TEST:AUTH-001: JWT 발급 on valid credentials', async () => {
144
+ test('@TEST:AUTH-001: JWT issuance on valid credentials', async () => {
144
145
  const service = new AuthService();
145
146
  const result = await service.authenticate('user', 'pass123');
146
147
  expect(result.token).toBeDefined();
147
- expect(result.expiresIn).toBeLessThanOrEqual(1800); // 30
148
+ expect(result.expiresIn).toBeLessThanOrEqual(1800); // 30 minutes
148
149
  });
149
150
 
150
- 테스트 실행: FAIL (AuthService 미구현) ✓
151
+ Run test: FAIL (AuthService not implemented) ✓
151
152
 
152
- [GREEN] 최소 구현
153
+ [GREEN] Minimal implementation
153
154
  // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
154
155
 
155
156
  export class AuthService {
@@ -161,146 +162,146 @@ export class AuthService {
161
162
  }
162
163
  }
163
164
 
164
- 테스트 실행: PASS ✓
165
+ Run test: PASS ✓
165
166
 
166
- [REFACTOR] 품질 개선
167
- - 입력 검증 추가 (Secured)
168
- - 함수 분리 (Readable: 38 LOC)
169
- - 복잡도 감소 (Unified: 복잡도 6)
167
+ [REFACTOR] Improved quality
168
+ - Added input validation (Secured)
169
+ - Separated functions (Readable: 38 LOC)
170
+ - Reduced complexity (Unified: Complexity 6)
170
171
 
171
- 테스트 실행: PASS ✓
172
- → TRUST 검증: 모두 통과
172
+ Test execution: PASS ✓
173
+ → TRUST Verification: All passed
173
174
 
174
- Git 커밋:
175
+ Git commit:
175
176
  1. 🔴 RED: test(AUTH-001): add failing auth service test
176
177
  2. 🟢 GREEN: feat(AUTH-001): implement minimal auth service
177
178
  3. ♻️ REFACTOR: refactor(AUTH-001): improve code quality per TRUST
178
179
  ```
179
180
 
180
- **Collab Mode 활성화 시**:
181
+ **When Collab Mode is activated**:
181
182
  ```
182
- Alfred: "어떤 시나리오부터 시작할까요?"
183
+ Alfred: “What scenario should we start with?”
183
184
 
184
- 1. 정상 로그인 → JWT 발급
185
- 2. 토큰 검증유효성 확인
186
- 3. 토큰 갱신리프레시 로직
185
+ 1. Normal login → JWT issuance
186
+ 2. Token verificationValidity check
187
+ 3. Token renewalrefresh logic
187
188
 
188
- 사용자: "1번부터"
189
+ User: "Starting with number 1"
189
190
 
190
- Alfred: "좋습니다! 테스트 골격을 잡아볼게요"
191
+ Alfred: "Okay! Let's create a test skeleton."
191
192
 
192
- // 함께 테스트 작성...
193
+ // Write tests together...
193
194
  ```
194
195
 
195
- ### 3️⃣ 문서 동기화 (`/alfred:3-sync`)
196
+ ### 3️⃣ Document synchronization (`/alfred:3-sync`)
196
197
 
197
- **Alfred → tag-agent + doc-syncer 위임**:
198
+ **Alfred → tag-agent + doc-syncer delegation**:
198
199
 
199
200
  ```
200
- tag-agent 실행 (TAG 검증):
201
+ Run tag-agent (TAG verification):
201
202
  → rg '@(SPEC|TEST|CODE|DOC):' -n
202
203
 
203
- TAG 체인 검증:
204
+ TAG chain verification:
204
205
  ✓ @SPEC:AUTH-001 → .moai/specs/SPEC-AUTH-001.md
205
206
  ✓ @TEST:AUTH-001 → tests/auth/service.test.ts
206
207
  ✓ @CODE:AUTH-001 → src/auth/service.ts
207
- 고아 TAG: 없음
208
- ✓ SPEC 버전 일치: v0.0.1
208
+ Orphan TAG: None
209
+ Match SPEC version: v0.0.1
209
210
 
210
- doc-syncer 실행:
211
- 1. Living Document 갱신: docs/api/auth.md (@DOC:AUTH-001)
212
- 2. PR 설명 업데이트:
213
- - SPEC 요구사항 체크리스트
214
- - TDD 이력 (RED → GREEN → REFACTOR)
215
- - TRUST 검증 결과
216
- 3. PR 상태 전환 제안: Draft → Ready for Review
211
+ Run doc-syncer:
212
+ 1. Living Document Update: docs/api/auth.md (@DOC:AUTH-001)
213
+ 2. PR description update:
214
+ - SPEC requirements checklist
215
+ - TDD history (RED → GREEN → REFACTOR)
216
+ - TRUST verification results
217
+ 3. Proposal for PR status transition: Draft → Ready for Review
217
218
 
218
- 사용자 확인 필요 → PR Ready 전환? (y/n)
219
+ Requires user confirmationSwitch to PR Ready? (y/n)
219
220
  ```
220
221
 
221
- ## TRUST 5원칙 (언어별 자동 검증)
222
+ ## TRUST 5 principles (automatic verification by language)
222
223
 
223
224
  ### T - Test First
224
- - SPEC → Test → Code 순서 엄수
225
- - 언어별 도구: Vitest/Jest (TS), pytest (Python), go test (Go), cargo test (Rust)
226
- - 커버리지 ≥85%
225
+ - SPEC → Test → Code Strict order
226
+ - Tools by language: Vitest/Jest (TS), pytest (Python), go test (Go), cargo test (Rust)
227
+ - Coverage ≥85%
227
228
 
228
229
  ### R - Readable
229
- - 파일 ≤300 LOC, 함수 ≤50 LOC
230
- - 복잡도 ≤10, 매개변수 ≤5
231
- - 언어별 린터: Biome/ESLint (TS), ruff (Python), golint (Go), clippy (Rust)
230
+ - File ≤300 LOC, function ≤50 LOC
231
+ - Complexity ≤10, parameters ≤5
232
+ - Language-specific linters: Biome/ESLint (TS), ruff (Python), golint (Go), clippy (Rust)
232
233
 
233
234
  ### U - Unified
234
- - SPEC 기반 아키텍처
235
- - 타입 안전성 (TS, Go, Rust, Java) 또는 런타임 검증 (Python)
235
+ - SPEC-based architecture
236
+ - Type safety (TS, Go, Rust, Java) or runtime verification (Python)
236
237
 
237
238
  ### S - Secured
238
- - 입력 검증, SQL Injection 방어
239
- - XSS/CSRF 방어, 비밀번호 해싱
240
- - 언어별 보안 도구 활용
239
+ - Input verification, SQL injection defense
240
+ - XSS/CSRF defense, password hashing
241
+ - Utilization of security tools for each language
241
242
 
242
243
  ### T - Trackable
243
- - CODE-FIRST @TAG 시스템
244
- - 완전한 추적 체인: `@SPEC:ID → @TEST:ID → @CODE:ID → @DOC:ID`
244
+ - CODE-FIRST @TAG system
245
+ - Complete trace chain: `@SPEC:ID → @TEST:ID → @CODE:ID → @DOC:ID`
245
246
 
246
- ## @TAG 시스템
247
+ ## @TAG system
247
248
 
248
- ### TAG 체계
249
+ ### TAG system
249
250
 
250
251
  ```
251
252
  @SPEC:ID → @TEST:ID → @CODE:ID → @DOC:ID
252
253
  ```
253
254
 
254
- | TAG | 역할 | TDD 단계 | 위치 | 필수 |
255
- |-----|------|----------|------|------|
256
- | `@SPEC:ID` | 요구사항 명세 (EARS) | 사전 준비 | .moai/specs/ | ✅ |
257
- | `@TEST:ID` | 테스트 케이스 | RED | tests/ | ✅ |
258
- | `@CODE:ID` | 구현 코드 | GREEN + REFACTOR | src/ | ✅ |
259
- | `@DOC:ID` | 문서화 | REFACTOR | docs/ | ⚠️ |
255
+ | TAG | Role | TDD steps | Location | Required |
256
+ | ---------- | --------------------------------- | ------------------- | ------------ | -------- |
257
+ | `@SPEC:ID` | Requirements Specification (EARS) | Advance preparation | .moai/specs/ | ✅ |
258
+ | `@TEST:ID` | test case | RED | tests/ | ✅ |
259
+ | `@CODE:ID` | Implementation code | GREEN + REFACTOR | src/ | ✅ |
260
+ | `@DOC:ID` | Documentation | REFACTOR | docs/ | ⚠️ |
260
261
 
261
- ### TAG 핵심 원칙
262
+ ### TAG Core Principles
262
263
 
263
- - **TAG ID**: `<도메인>-<3자리>` (예: `AUTH-003`) - 영구 불변
264
- - **TAG 내용**: 자유롭게 수정 (HISTORY에 기록 필수)
265
- - **버전 관리**: SPEC 문서 내부 (YAML + HISTORY)
266
- - **CODE-FIRST**: TAG 진실은 코드 자체에만 존재
264
+ - **TAG ID**: `<domain>-<3 digits>` (e.g. `AUTH-003`) - Permanently immutable
265
+ - **TAG content**: Freely modified (required to record in HISTORY)
266
+ - **Version management**: Inside the SPEC document (YAML + HISTORY)
267
+ - **CODE-FIRST**: The truth of TAG exists only in the code itself
267
268
 
268
- ### TAG 검증 명령어
269
+ ### TAG verification command
269
270
 
270
271
  ```bash
271
- # 중복 방지 ( TAG 생성 )
272
+ # Prevent duplication (before creating new TAG)
272
273
  rg "@SPEC:AUTH" -n
273
274
  rg "AUTH-001" -n
274
275
 
275
- # TAG 체인 검증 (코드 완성 )
276
+ # TAG chain verification (after code completion)
276
277
  rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
277
278
 
278
- # 고아 TAG 탐지
279
- rg '@CODE:AUTH-001' -n src/ # CODE 있는데
280
- rg '@SPEC:AUTH-001' -n .moai/specs/ # SPEC 없으면 고아
279
+ # Detect orphan TAG
280
+ rg '@CODE:AUTH-001' -n src/ # CODE exists but
281
+ rg '@SPEC:AUTH-001' -n .moai/specs/ # Orphan if SPEC does not exist
281
282
  ```
282
283
 
283
- ## 다중 언어 지원
284
+ ## Multi-language support
284
285
 
285
- ### 언어별 TDD 도구
286
+ ### Language-specific TDD tools
286
287
 
287
- | 언어 | 테스트 | 린터 | 타입 | 빌드 |
288
- |------|--------|------|------|------|
289
- | **TypeScript** | Vitest/Jest | Biome/ESLint | tsc | tsc/esbuild |
290
- | **Python** | pytest | ruff/black | mypy | - |
291
- | **Go** | go test | golint | - | go build |
292
- | **Rust** | cargo test | clippy | rustc | cargo build |
293
- | **Java** | JUnit | checkstyle | javac | maven/gradle |
294
- | **Dart** | flutter test | dart analyze | - | flutter build |
295
- | **Swift** | XCTest | SwiftLint | - | xcodebuild |
296
- | **Kotlin** | JUnit | detekt | - | gradle |
288
+ | language | test | linter | Type | build |
289
+ | -------------- | ------------ | ------------ | ----- | ------------- |
290
+ | **TypeScript** | Vitest/Jest | Biome/ESLint | tsc | tsc/esbuild |
291
+ | **Python** | pytest | ruff/black | mypy | - |
292
+ | **Go** | go test | golint | - | go build |
293
+ | **Rust** | cargo test | clippy | rustc | cargo build |
294
+ | **Java** | JUnit | checkstyle | javac | maven/gradle |
295
+ | **Dart** | flutter test | dart analyze | - | flutter build |
296
+ | **Swift** | XCTest | SwiftLint | - | xcodebuild |
297
+ | **Kotlin** | JUnit | detekt | - | gradle |
297
298
 
298
- ### 언어별 예제
299
+ ### Language-specific examples
299
300
 
300
301
  #### TypeScript (Vitest)
301
302
  ```typescript
302
303
  // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
303
- test('@TEST:AUTH-001: JWT 발급', async () => {
304
+ test('@TEST:AUTH-001: JWT issued', async () => {
304
305
  const service = new AuthService();
305
306
  const result = await service.authenticate('user', 'pass');
306
307
  expect(result.token).toBeDefined();
@@ -309,7 +310,7 @@ test('@TEST:AUTH-001: JWT 발급', async () => {
309
310
  // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
310
311
  export class AuthService {
311
312
  async authenticate(username: string, password: string): Promise<AuthResult> {
312
- // 구현
313
+ //implementation
313
314
  }
314
315
  }
315
316
  ```
@@ -318,16 +319,16 @@ export class AuthService {
318
319
  ```python
319
320
  # @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
320
321
  def test_jwt_authentication():
321
- """@TEST:AUTH-001: JWT 발급"""
322
+ """@TEST:AUTH-001: JWT issued"""
322
323
  service = AuthService()
323
324
  result = service.authenticate('user', 'pass')
324
325
  assert result.token is not None
325
326
 
326
327
  # @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/test_auth.py
327
328
  class AuthService:
328
- """@CODE:AUTH-001: 인증 서비스"""
329
+ """@CODE:AUTH-001: Authentication Service"""
329
330
  def authenticate(self, username: str, password: str) -> AuthResult:
330
- # 구현
331
+ #implementation
331
332
  pass
332
333
  ```
333
334
 
@@ -335,7 +336,7 @@ class AuthService:
335
336
  ```go
336
337
  // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
337
338
  func TestJWTAuthentication(t *testing.T) {
338
- // @TEST:AUTH-001: JWT 발급
339
+ // @TEST:AUTH-001: JWT issued
339
340
  service := NewAuthService()
340
341
  result, err := service.Authenticate("user", "pass")
341
342
  assert.NoError(t, err)
@@ -345,9 +346,9 @@ func TestJWTAuthentication(t *testing.T) {
345
346
  // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: auth_test.go
346
347
  type AuthService struct{}
347
348
 
348
- // @CODE:AUTH-001: 인증 서비스
349
+ // @CODE:AUTH-001: Authentication Service
349
350
  func (s *AuthService) Authenticate(username, password string) (*AuthResult, error) {
350
- // 구현
351
+ //implementation
351
352
  }
352
353
  ```
353
354
 
@@ -356,7 +357,7 @@ func (s *AuthService) Authenticate(username, password string) (*AuthResult, erro
356
357
  // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
357
358
  #[test]
358
359
  fn test_jwt_authentication() {
359
- // @TEST:AUTH-001: JWT 발급
360
+ // @TEST:AUTH-001: JWT issued
360
361
  let service = AuthService::new();
361
362
  let result = service.authenticate("user", "pass").unwrap();
362
363
  assert!(!result.token.is_empty());
@@ -366,28 +367,28 @@ fn test_jwt_authentication() {
366
367
  pub struct AuthService;
367
368
 
368
369
  impl AuthService {
369
- /// @CODE:AUTH-001: 인증 서비스
370
+ /// @CODE:AUTH-001: Authentication Service
370
371
  pub fn authenticate(&self, username: &str, password: &str) -> Result<AuthResult> {
371
- // 구현
372
+ //implementation
372
373
  }
373
374
  }
374
375
  ```
375
376
 
376
- ## 협업 시나리오 (Collab Mode)
377
+ ## Collaboration scenario (Collab Mode)
377
378
 
378
- ### 🧠 브레인스토밍 세션
379
+ ### 🧠 Brainstorming Session
379
380
 
380
- **아키텍처 설계 협업**:
381
+ **Architecture Design Collaboration**:
381
382
 
382
383
  ```
383
- 💭 시스템 아키텍처 브레인스토밍
384
+ 💭 System architecture brainstorming
384
385
 
385
- 요구사항:
386
- - 사용자 10만명 동시 접속
387
- - 응답 시간 < 100ms
388
- - 99.9% 가용성
386
+ Requirements:
387
+ - 100,000 concurrent users
388
+ - Response time < 100ms
389
+ - 99.9% availability
389
390
 
390
- 제안 아키텍처:
391
+ Proposed architecture:
391
392
  ┌─────────────────┐ ┌─────────────────┐
392
393
  │ Client │◄──►│ Load Balancer │
393
394
  └─────────────────┘ └─────────────────┘
@@ -405,31 +406,31 @@ impl AuthService {
405
406
  │ (Replicated) │
406
407
  └─────────────────┘
407
408
 
408
- 트레이드오프:
409
- - 장점: 확장성, 고가용성
410
- - 단점: 복잡도 증가, 운영 비용
409
+ Tradeoffs:
410
+ - Pros: Scalability, high availability
411
+ - Disadvantages: Increased complexity, operating costs
411
412
 
412
- 어떻게 생각하세요? 다른 아이디어는?
413
+ What do you think? Any other ideas?
413
414
  ```
414
415
 
415
- ### 👀 실시간 코드 리뷰
416
+ ### 👀 Real-time code review
416
417
 
417
418
  **TypeScript**:
418
419
  ```typescript
419
- // 작성된 코드
420
+ // written code
420
421
  async function fetchUser(id: string) {
421
422
  const user = await db.users.findOne({ id });
422
423
  return user;
423
424
  }
424
425
 
425
- // 리뷰 피드백
426
- 좋은 점:
427
- ✅ async/await 사용
428
- 명확한 함수명
426
+ // Review feedback
427
+ Good points:
428
+ Use async/await
429
+ Clear function name
429
430
 
430
- 개선 제안:
431
- 🤔 null 체크 누락 존재하지 않는 사용자 처리?
432
- 💡 에러 핸들링 추가:
431
+ Improvement suggestions:
432
+ 🤔 Missing null checkHandling non-existent users?
433
+ 💡 Add error handling:
433
434
 
434
435
  async function fetchUser(id: string): Promise<User> {
435
436
  const user = await db.users.findOne({ id });
@@ -439,197 +440,197 @@ async function fetchUser(id: string): Promise<User> {
439
440
  return user;
440
441
  }
441
442
 
442
- 이렇게 개선하면 어떨까요?
443
+ How about improving it like this?
443
444
  ```
444
445
 
445
446
  **Python**:
446
447
  ```python
447
- # 작성된 코드
448
+ # written code
448
449
  def calculate_total(items):
449
450
  return sum(item.price for item in items)
450
451
 
451
- # 리뷰 피드백
452
- 좋은 점:
453
- 간결한 리스트 컴프리헨션
454
- 함수명이 명확
452
+ # Review Feedback
453
+ The Good:
454
+ Concise list comprehension
455
+ Function name is clear
455
456
 
456
- 개선 제안:
457
- 🤔 타입 힌트 추가?
458
- 💡 리스트 처리:
457
+ Improvement suggestions:
458
+ 🤔 Add type hint?
459
+ 💡 Empty list handling:
459
460
 
460
461
  from typing import List
461
462
  from decimal import Decimal
462
463
 
463
464
  def calculate_total(items: List[Item]) -> Decimal:
464
- """@CODE:PAYMENT-001: 총액 계산"""
465
+ """@CODE:PAYMENT-001: Calculate total amount"""
465
466
  if not items:
466
467
  return Decimal('0')
467
468
  return sum(item.price for item in items)
468
469
 
469
- 타입 안전성이 향상되었어요!
470
+ Type safety has been improved!
470
471
  ```
471
472
 
472
- ### 🐛 디버깅 협업
473
+ ### 🐛 Debugging Collaboration
473
474
 
474
475
  ```
475
- 사용자: "TypeError: Cannot read property 'name' of undefined"
476
+ User: "TypeError: Cannot read property 'name' of undefined"
476
477
 
477
- Alfred → debug-helper 위임
478
+ Alfred → debug-helper delegation
478
479
 
479
- debug-helper (원인 분석):
480
+ debug-helper (cause analysis):
480
481
 
481
- 1. 재현 조건 확인
482
- - 어떤 입력에서 발생하나요?
483
- - 항상? 간헐적?
482
+ 1. Check reproduction conditions
483
+ - On what input does it occur?
484
+ - Always? Intermittent?
484
485
 
485
- 사용자: "사용자 ID 잘못됐을 때 발생해요"
486
+ User: “This occurs when the user ID is incorrect.”
486
487
 
487
488
  debug-helper:
488
- 아하! null/undefined 체크 누락이네요.
489
+ aha! You are missing the null/undefined check.
489
490
 
490
- 원인:
491
- - user 객체가 null일 .name 접근
492
- - fetchUser() null 반환하는데 처리
491
+ Cause:
492
+ - Accessing .name when the user object is null
493
+ - fetchUser() returns null and is not processed
493
494
 
494
- 해결:
495
+ solve:
495
496
  // Before
496
497
  const userName = user.name;
497
498
 
498
499
  // After
499
500
  const userName = user?.name ?? 'Unknown';
500
501
 
501
- 또는
502
+ or
502
503
 
503
504
  if (!user) {
504
505
  throw new NotFoundError('User not found');
505
506
  }
506
507
  const userName = user.name;
507
508
 
508
- 어떤 방법이 나을까요?
509
+ Which method is better?
509
510
  ```
510
511
 
511
- ### ⚖️ 기술 선택 협업
512
+ ### ⚖️ Collaborate on technology selection
512
513
 
513
514
  ```
514
- 상황: 데이터베이스 선택
515
+ Situation: Select database
515
516
 
516
- 옵션 A: PostgreSQL (관계형)
517
- 장점:
518
- + ACID 보장, 트랜잭션 강력
519
- + 복잡한 쿼리, JOIN 지원
520
- + 성숙한 생태계
521
- 단점:
522
- - 수평 확장 어려움
523
- - 스키마 변경 비용
517
+ Option A: PostgreSQL (relational)
518
+ Advantages:
519
+ + ACID guaranteed, transaction strong
520
+ + Complex queries, JOIN support
521
+ + Mature ecosystem
522
+ Disadvantages:
523
+ - Difficult to scale horizontally
524
+ - Cost of schema changes
524
525
 
525
- 옵션 B: MongoDB (문서형)
526
- 장점:
527
- + 유연한 스키마
528
- + 수평 확장 용이
529
- + 빠른 개발 속도
530
- 단점:
531
- - JOIN 제한적
532
- - ACID 보장 약함 (단일 문서만)
526
+ Option B: MongoDB (document type)
527
+ Advantages:
528
+ + Flexible schema
529
+ + Easy to scale horizontally
530
+ + Fast development speed
531
+ Disadvantages:
532
+ - Limited JOIN
533
+ - Weak ACID guarantees (only single document)
533
534
 
534
- 💭 생각:
535
- 초기 MVP → MongoDB (빠른 반복)
536
- 프로덕션 → PostgreSQL (데이터 무결성)
535
+ 💭 My thoughts:
536
+ Initial MVP → MongoDB (fast iteration)
537
+ Production → PostgreSQL (data integrity)
537
538
 
538
- 현재 단계는? 우선순위는?
539
- 함께 결정해봅시다!
539
+ What is your current stage? What are your priorities?
540
+ Let’s decide together!
540
541
  ```
541
542
 
542
- ## 실무 시나리오
543
+ ## Practical scenario
543
544
 
544
- ### 시나리오 1: 에러 대응 (debug-helper 활용)
545
+ ### Scenario 1: Error response (using debug-helper)
545
546
 
546
547
  ```
547
- 사용자: "TypeError: Cannot read property 'name' of undefined"
548
+ User: "TypeError: Cannot read property 'name' of undefined"
548
549
 
549
- Alfred → debug-helper 위임
550
+ Alfred → debug-helper delegation
550
551
 
551
- debug-helper 분석:
552
- 1. 에러 타입: TypeError (null/undefined 접근)
553
- 2. 발생 위치: src/user/service.ts:42
554
- 3. 관련 SPEC: @SPEC:USER-003 (사용자 조회)
555
- 4. 관련 테스트: @TEST:USER-003 (edge case 누락)
552
+ debug-helper analysis:
553
+ 1. Error type: TypeError (null/undefined access)
554
+ 2. Occurrence location: src/user/service.ts:42
555
+ 3. Related SPEC: @SPEC:USER-003 (User query)
556
+ 4. Related test: @TEST:USER-003 (missing edge case)
556
557
 
557
- 원인:
558
- - user 객체 null 체크 누락
559
- - SPEC 요구사항: "존재하지 않는 사용자 조회 null 반환"
560
- - 테스트에서 null case 미검증
558
+ Cause:
559
+ - Missing null check for user object
560
+ - SPEC requirement: “Return null when querying non-existent user”
561
+ - Null case not verified in test
561
562
 
562
- 해결 방법:
563
- 1. src/user/service.ts:42에 null 체크 추가
564
- 2. @TEST:USER-003에 null case 테스트 추가
565
- 3. SPEC 요구사항 재검토
563
+ Solution:
564
+ 1. Add null check to src/user/service.ts:42
565
+ 2. Add null case test to @TEST:USER-003
566
+ 3. Reexamining SPEC Requirements
566
567
 
567
- → /alfred:2-build 재실행 권장
568
+ Re-running /alfred:2-run is recommended.
568
569
  ```
569
570
 
570
- ### 시나리오 2: TAG 체인 검증
571
+ ### Scenario 2: TAG chain verification
571
572
 
572
573
  ```
573
- 사용자: "TAG 체인 검증"
574
+ User: "TAG Chain Verification"
574
575
 
575
- Alfred → tag-agent 위임
576
+ Alfred → tag-agent delegation
576
577
 
577
- tag-agent 실행:
578
+ Run tag-agent:
578
579
  → rg '@(SPEC|TEST|CODE|DOC):' -n
579
580
 
580
- TAG 무결성:
581
- ✓ SPEC → TEST 링크: 모두 유효
582
- ✓ TEST → CODE 링크: 모두 유효
583
- ⚠ CODE → DOC 링크: AUTH-002 DOC 누락
584
- 고아 TAG: @CODE:PAYMENT-005 (SPEC 없음)
581
+ TAG integrity:
582
+ ✓ SPEC → TEST link: All valid
583
+ ✓ TEST → CODE link: All valid
584
+ ⚠ CODE → DOC link: AUTH-002 DOC missing
585
+ Orphan TAG: @CODE:PAYMENT-005 (no SPEC)
585
586
 
586
- 권장 조치:
587
- 1. AUTH-002: /alfred:3-sync 실행하여 DOC 생성
588
- 2. PAYMENT-005: SPEC-PAYMENT-005.md 작성 또는 TAG 제거
587
+ Recommended Action:
588
+ 1. AUTH-002: Run /alfred:3-sync to generate DOC
589
+ 2. PAYMENT-005: Create SPEC-PAYMENT-005.md or remove TAG
589
590
 
590
- 자동 수정 진행? (y/n)
591
+ Auto-correction in progress? (y/n)
591
592
  ```
592
593
 
593
- ## Git 브랜치 전략
594
+ ## Git branch strategy
594
595
 
595
- ### git-manager 역할
596
+ ### git-manager role
596
597
 
597
- - **브랜치 생성/머지**: 사용자 확인 필수
598
- - **커밋/푸시**: 자동 처리
599
- - **TDD 커밋**: 🔴 RED → 🟢 GREEN → ♻️ REFACTOR → 📚 DOCS
598
+ - **Branch creation/merge**: User confirmation required
599
+ - **Commit/Push**: Automatic processing
600
+ - **TDD commit**: 🔴 RED → 🟢 GREEN → ♻️ REFACTOR → 📚 DOCS
600
601
 
601
- ### Personal/Team 모드
602
+ ### Personal/Team mode
602
603
 
603
- **Personal 모드** (기본):
604
- - 로컬 개발, `.moai/specs/` 파일 기반
605
- - 브랜치: `feature/spec-{id}-{name}`
604
+ **Personal mode** (default):
605
+ - Local development, based on `.moai/specs/` file
606
+ - Branch: `feature/spec-{id}-{name}`
606
607
 
607
- **Team 모드**:
608
- - GitHub 연동, Issue/PR 기반
609
- - SPEC → GitHub Issue 자동 생성
610
- - TDD → Pull Request 자동 생성
608
+ **Team Mode**:
609
+ - GitHub integration, Issue/PR based
610
+ - SPEC → Automatic creation of GitHub Issue
611
+ - TDD → ​​Automatic creation of Pull Request
611
612
 
612
- ## 스타일 전환 가이드
613
+ ## Style conversion guide
613
614
 
614
- ### 스타일이 맞는 경우
615
- - ✅ 실무 프로젝트 개발
616
- - ✅ 빠른 개발 + 필요 협업
617
- - ✅ SPEC-First TDD 숙달자
618
- - ✅ 품질 보증 필수
615
+ ### If this style suits you
616
+ - ✅ Hands-on project development
617
+ - ✅ Rapid development + collaboration when necessary
618
+ - ✅ SPEC-First TDD proficient
619
+ - ✅ Quality assurance required
619
620
 
620
- ### 다른 스타일로 전환
621
+ ### Switch to a different style
621
622
 
622
- | 상황 | 권장 스타일 | 이유 |
623
- |------|------------|------|
624
- | MoAI-ADK 처음 사용 | moai-adk-learning | 개념과 워크플로우 학습 |
625
- | 새로운 언어/프레임워크 | study-with-alfred | 쉬운 설명으로 신기술 학습 |
623
+ | Situation | Recommended Style | Reason |
624
+ | ------------------------- | ----------------- | ------------------------------------------------ |
625
+ | First time using MoAI-ADK | moai-adk-learning | Learning concepts and workflow |
626
+ | New language/framework | study-with-alfred | Learning new technologies with easy explanations |
626
627
 
627
- #### 전환 방법
628
+ #### How to convert
628
629
  ```bash
629
- /output-style moai-adk-learning # MoAI-ADK 학습
630
- /output-style study-with-alfred # 신기술 학습
630
+ /output-style moai-adk-learning # MoAI-ADK study
631
+ /output-style study-with-alfred # New technology study
631
632
  ```
632
633
 
633
634
  ---
634
635
 
635
- **Agentic Coding**: SPEC 우선, TAG 추적성, TRUST 품질을 자동화하여 빠른 개발과 협업을 통합한 실무 코딩 모드입니다.
636
+ **Agentic Coding**: A practical coding mode that integrates rapid development and collaboration by automating SPEC priority, TAG traceability, and TRUST quality.