moai-adk 0.4.0__py3-none-any.whl → 0.4.4__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 (130) hide show
  1. moai_adk/__init__.py +2 -3
  2. moai_adk/cli/commands/init.py +10 -5
  3. moai_adk/cli/commands/update.py +274 -118
  4. moai_adk/cli/prompts/init_prompts.py +14 -18
  5. moai_adk/core/diagnostics/slash_commands.py +1 -1
  6. moai_adk/core/project/backup_utils.py +2 -11
  7. moai_adk/core/project/checker.py +2 -2
  8. moai_adk/core/project/phase_executor.py +11 -14
  9. moai_adk/core/project/validator.py +3 -2
  10. moai_adk/core/quality/__init__.py +1 -1
  11. moai_adk/core/quality/trust_checker.py +63 -63
  12. moai_adk/core/quality/validators/__init__.py +1 -1
  13. moai_adk/core/quality/validators/base_validator.py +1 -1
  14. moai_adk/core/template/backup.py +21 -8
  15. moai_adk/core/template/merger.py +14 -4
  16. moai_adk/core/template/processor.py +24 -5
  17. moai_adk/templates/.claude/agents/alfred/cc-manager.md +446 -424
  18. moai_adk/templates/.claude/agents/alfred/debug-helper.md +116 -103
  19. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +130 -116
  20. moai_adk/templates/.claude/agents/alfred/git-manager.md +186 -174
  21. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +227 -213
  22. moai_adk/templates/.claude/agents/alfred/project-manager.md +216 -128
  23. moai_adk/templates/.claude/agents/alfred/quality-gate.md +224 -209
  24. moai_adk/templates/.claude/agents/alfred/spec-builder.md +174 -160
  25. moai_adk/templates/.claude/agents/alfred/tag-agent.md +151 -139
  26. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +209 -196
  27. moai_adk/templates/.claude/agents/alfred/trust-checker.md +247 -233
  28. moai_adk/templates/.claude/commands/alfred/0-project.md +756 -640
  29. moai_adk/templates/.claude/commands/alfred/1-plan.md +343 -333
  30. moai_adk/templates/.claude/commands/alfred/2-run.md +297 -285
  31. moai_adk/templates/.claude/commands/alfred/3-sync.md +387 -356
  32. moai_adk/templates/.claude/hooks/alfred/README.md +52 -52
  33. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +44 -48
  34. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +17 -17
  35. moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +59 -59
  36. moai_adk/templates/.claude/hooks/alfred/core/context.py +19 -19
  37. moai_adk/templates/.claude/hooks/alfred/core/project.py +52 -52
  38. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +1 -1
  39. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +4 -4
  40. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +27 -27
  41. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +16 -17
  42. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +11 -11
  43. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +308 -307
  44. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +297 -296
  45. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +191 -190
  46. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +112 -0
  47. moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +103 -0
  48. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +103 -0
  49. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +95 -0
  50. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +99 -0
  51. moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +105 -0
  52. moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +97 -0
  53. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +97 -0
  54. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +90 -0
  55. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +99 -0
  56. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +87 -0
  57. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +62 -0
  58. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +70 -43
  59. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +141 -141
  60. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +179 -165
  61. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +78 -78
  62. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +90 -90
  63. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +39 -25
  64. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +117 -74
  65. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +131 -134
  66. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -12
  67. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +43 -12
  68. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +43 -12
  69. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +43 -12
  70. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +43 -12
  71. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +43 -12
  72. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +43 -11
  73. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +43 -12
  74. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +43 -12
  75. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +43 -12
  76. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +47 -11
  77. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +47 -11
  78. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +51 -14
  79. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +46 -10
  80. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +62 -25
  81. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +44 -17
  82. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +44 -14
  83. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +45 -13
  84. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +46 -14
  85. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +48 -8
  86. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +44 -12
  87. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +44 -12
  88. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +44 -11
  89. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +44 -11
  90. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +44 -12
  91. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +44 -11
  92. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +44 -11
  93. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +44 -11
  94. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +44 -12
  95. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +44 -12
  96. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +44 -12
  97. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +44 -12
  98. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +44 -11
  99. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +44 -11
  100. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +44 -12
  101. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +44 -11
  102. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +44 -11
  103. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +44 -12
  104. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +44 -12
  105. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +44 -11
  106. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +44 -12
  107. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +44 -12
  108. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +44 -12
  109. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +44 -43
  110. moai_adk/templates/.github/workflows/moai-gitflow.yml +36 -35
  111. moai_adk/templates/.moai/config.json +9 -6
  112. moai_adk/templates/.moai/memory/development-guide.md +220 -221
  113. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +85 -85
  114. moai_adk/templates/.moai/memory/spec-metadata.md +229 -150
  115. moai_adk/templates/.moai/project/product.md +90 -90
  116. moai_adk/templates/.moai/project/structure.md +85 -85
  117. moai_adk/templates/.moai/project/tech.md +117 -117
  118. moai_adk/templates/CLAUDE.md +564 -709
  119. moai_adk-0.4.4.dist-info/METADATA +369 -0
  120. moai_adk-0.4.4.dist-info/RECORD +152 -0
  121. moai_adk/templates/.claude/commands/alfred/1-spec.md +0 -31
  122. moai_adk/templates/.claude/commands/alfred/2-build.md +0 -30
  123. moai_adk/templates/.claude/skills/scripts/standardize_skills.py +0 -166
  124. moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +0 -43
  125. moai_adk/templates/.moai/hooks/pre-push.sample +0 -88
  126. moai_adk-0.4.0.dist-info/METADATA +0 -1816
  127. moai_adk-0.4.0.dist-info/RECORD +0 -145
  128. {moai_adk-0.4.0.dist-info → moai_adk-0.4.4.dist-info}/WHEEL +0 -0
  129. {moai_adk-0.4.0.dist-info → moai_adk-0.4.4.dist-info}/entry_points.txt +0 -0
  130. {moai_adk-0.4.0.dist-info → moai_adk-0.4.4.dist-info}/licenses/LICENSE +0 -0
@@ -1,114 +1,115 @@
1
1
  ---
2
2
  name: Study with Alfred
3
- description: Alfred와 함께 새로운 기술을 쉽게 배우는 학습 모드
3
+ description: Learning mode to easily learn new skills with Alfred
4
4
  ---
5
5
 
6
6
  # Study with Alfred
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**: Developers looking to learn new technologies/languages/frameworks
9
10
 
10
- Alfred 함께 배우는 친구처럼 새로운 기술을 쉽게 설명하고, 실습을 도와주는 학습 모드입니다.
11
+ This is a learning mode where Alfred easily explains new skills and helps you practice, like a friend learning together.
11
12
 
12
- ## Alfred와 함께 배우는 방법
13
+ ## How to Learn with Alfred
13
14
 
14
- **Alfred 역할**:
15
- - 복잡한 개념을 쉽게 풀어서 설명
16
- - 실생활 비유로 이해도 향상
17
- - 단계별로 함께 실습
18
- - 자주 묻는 질문에 답변
15
+ **Alfred's role**:
16
+ - Explain complex concepts in an easy-to-understand manner
17
+ - Improve understanding with real-life analogies
18
+ - Practice together step by step
19
+ - Answer frequently asked questions
19
20
 
20
- **학습 흐름**:
21
+ **Learning Flow**:
21
22
  ```
22
- 1. What (이게 뭐야?) → 기본 개념 이해
23
- 2. Why ( 필요해?) → 사용 이유와 장점
24
- 3. How (어떻게 써?) → 실습 중심 학습
25
- 4. Practice (실전 적용) MoAI-ADK와 통합
23
+ 1. What (What is this?) → Understanding the basic concept
24
+ 2. Why (Why do you need it?) → Reasons for use and advantages
25
+ 3. How (How to use it?) → Practice-based learning
26
+ 4. Practice Integration with MoAI-ADK
26
27
  ```
27
28
 
28
29
  ---
29
30
 
30
- ## 학습 4단계
31
+ ## 4 stages of learning
31
32
 
32
- ### Step 1: What (이게 뭐야?)
33
+ ### Step 1: What (What is this?)
33
34
 
34
- **Alfred**: "새로운 기술을 문장으로 정리해볼게요"
35
+ **Alfred**: "I'll summarize the new technology in one sentence."
35
36
 
36
- **설명 방식**:
37
- - 요약
38
- - 실생활 비유
39
- - 핵심 개념 3가지
37
+ **Explanation method**:
38
+ - One line summary
39
+ - Real life analogy
40
+ - 3 key concepts
40
41
 
41
- **예시**: FastAPI (Python 프레임워크)
42
+ **Example**: FastAPI (Python web framework)
42
43
  ```
43
- Alfred: "FastAPI Python으로 API를 빠르게 만드는 도구예요"
44
+ Alfred: "FastAPI is a tool to quickly create APIs with Python."
44
45
 
45
- 실생활 비유:
46
- 레고 블록처럼 API 조각들을 빠르게 조립하는 도구
46
+ Real life analogy:
47
+ A tool that quickly assembles API pieces like Lego blocks
47
48
 
48
- 줄 요약:
49
- Python + 자동 검증 + 빠른 속도 = FastAPI
49
+ One-line summary:
50
+ Python + automatic verification + fast speed = FastAPI
50
51
 
51
- 핵심 개념:
52
- 1. 자동 문서화 (Swagger UI)
53
- 2. 타입 검증 (Pydantic)
54
- 3. 비동기 처리 (async/await)
52
+ Key concepts:
53
+ 1. Automatic documentation (Swagger UI)
54
+ 2. Type verification (Pydantic)
55
+ 3. Asynchronous processing (async/await)
55
56
  ```
56
57
 
57
- ### Step 2: Why ( 필요해?)
58
+ ### Step 2: Why (Why do you need it?)
58
59
 
59
- **Alfred**: "이 기술이 해결하는 문제를 함께 생각해봅시다"
60
+ **Alfred**: “Let’s think together about the problems this technology solves.”
60
61
 
61
- **설명 방식**:
62
- - 문제 상황
63
- - 해결 방법
64
- - 실제 사용 사례
62
+ **How ​​to explain**:
63
+ - Problem situation
64
+ - Solution
65
+ - Actual use case
65
66
 
66
- **예시**: FastAPI를 사용하나요?
67
+ **Example**: Why use FastAPI?
67
68
  ```
68
- Alfred와 함께 생각해봅시다:
69
+ Let's think about it with Alfred:
69
70
 
70
- 문제:
71
- "Flask 느리고, Django 너무 무거워요. 타입 검증도 수동으로 해야 해요."
71
+ Problem:
72
+ "Flask is slow, and Django is too heavy. Type validation also has to be done manually."
72
73
 
73
- 해결:
74
- FastAPI 빠르면서도 가볍고, 자동으로 타입을 검증해줍니다.
74
+ Solution:
75
+ FastAPI is fast, lightweight, and automatically verifies types.
75
76
 
76
- 실제 사용:
77
- - Uber: 실시간 위치 API
78
- - Netflix: 추천 시스템 API
79
- - Microsoft: Azure 서비스 API
77
+ Real world usage:
78
+ - Uber: Real-time location API
79
+ - Netflix: Recommendation system API
80
+ - Microsoft: Azure services API
80
81
 
81
- Alfred: "빠른 속도와 안정성이 필요한 곳에서 쓰여요!"
82
+ Alfred: “Used in places where high speed and stability are required!”
82
83
  ```
83
84
 
84
- ### Step 3: How (어떻게 써?)
85
+ ### Step 3: How (How do I use it?)
85
86
 
86
- **Alfred**: "가장 간단한 예제부터 시작해요"
87
+ **Alfred**: "Let's start with the simplest example"
87
88
 
88
- **학습 순서**:
89
- 1. 최소 예제 (Hello World)
90
- 2. 실용적 예제 (CRUD API)
91
- 3. 자주 묻는 질문
89
+ **Learning order**:
90
+ 1. Minimal example (Hello World)
91
+ 2. Practical example (CRUD API)
92
+ 3. Frequently Asked Questions
92
93
 
93
- **예시**: FastAPI 사용법
94
+ **Example**: How to use FastAPI
94
95
  ```
95
- Alfred: "가장 간단한 예제부터 시작해요"
96
+ Alfred: “Let’s start with the simplest example”
96
97
 
97
98
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
98
- [최소 예제]
99
+ [Minimum example]
99
100
 
100
- from fastapi import FastAPI # ← FastAPI 불러오기
101
+ from fastapi import FastAPI # ← Import FastAPI
101
102
 
102
- app = FastAPI() # ← 만들기
103
+ app = FastAPI() # ← Create app
103
104
 
104
- @app.get("/hello") # ← /hello 주소 만들기
105
+ @app.get("/hello") # ← Create /hello address
105
106
  def hello():
106
- return {"message": "안녕하세요!"} # ← 응답 보내기
107
+ return {"message": "Hello!"} # ← Send response
107
108
 
108
- Alfred: "딱 5줄이면 API가 완성됩니다!"
109
+ Alfred: “An API is complete in just 5 lines!”
109
110
 
110
111
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
111
- [실용적 예제: 사용자 조회 API]
112
+ [Practical example: User inquiry API]
112
113
 
113
114
  from fastapi import FastAPI, HTTPException
114
115
  from pydantic import BaseModel
@@ -127,61 +128,61 @@ async def get_user(user_id: int) -> User:
127
128
  raise HTTPException(status_code=404, detail="User not found")
128
129
  return user
129
130
 
130
- Alfred: "Pydantic으로 자동 검증, HTTPException으로 에러 처리!"
131
+ Alfred: "Automatic verification with Pydantic, error handling with HTTPException!"
131
132
 
132
133
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
133
- [자주 묻는 질문]
134
+ [Frequently Asked Questions]
134
135
 
135
- Q: Flask 비교하면?
136
- Alfred: "FastAPI 3 빠르고 자동 검증이 있어요"
136
+ Q: Compared to Flask?
137
+ Alfred: FastAPI is 3 times faster and has automatic verification.”
137
138
 
138
- Q: async/await이 뭐예요?
139
- Alfred: "여러 작업을 동시에 처리하는 방법이에요. 요청을 기다리는 동안 다른 요청을 처리할 있죠"
139
+ Q: What is async/await?
140
+ Alfred: "It's a way to handle multiple tasks simultaneously. While waiting for one request, you can process another request."
140
141
 
141
- Q: 언제 쓰면 좋나요?
142
- Alfred: "빠른 API, 실시간 처리, 마이크로서비스에 최적이에요"
142
+ Q: When is it best to use it?
143
+ Alfred: “It’s best for fast API, real-time processing, and microservices.”
143
144
  ```
144
145
 
145
- ### Step 4: Practice (실전 적용)
146
+ ### Step 4: Practice
146
147
 
147
- **Alfred**: "이제 MoAI-ADK와 함께 써볼까요?"
148
+ **Alfred**: “Now shall we try using it with MoAI-ADK?”
148
149
 
149
- **실습 방식**:
150
- - SPEC → TEST → CODE 흐름으로 실습
151
- - @TAG 시스템 적용
152
- - TRUST 5원칙 준수
150
+ **Practice method**:
151
+ - Practice with SPEC → TEST → CODE flow
152
+ - Application of @TAG system
153
+ - Compliance with TRUST 5 principles
153
154
 
154
- **예시**: FastAPI로 사용자 API 만들기
155
+ **Example**: Creating a user API with FastAPI
155
156
  ```
156
- Alfred: "MoAI-ADK 워크플로우로 함께 만들어봐요!"
157
+ Alfred: “Let’s create it together with the MoAI-ADK workflow!”
157
158
 
158
159
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
159
- [1단계: SPEC 작성]
160
+ [Step 1: Write SPEC]
160
161
 
161
- /alfred:1-spec "사용자 조회 API"
162
+ /alfred:1-plan "User Lookup API"
162
163
 
163
- Alfred가 생성한 SPEC:
164
+ SPEC created by Alfred:
164
165
  ---
165
166
  id: USER-001
166
167
  version: 0.0.1
167
168
  status: draft
168
169
  ---
169
170
 
170
- # @SPEC:USER-001: 사용자 조회 API
171
+ # @SPEC:USER-001: User Lookup API
171
172
 
172
173
  ## Ubiquitous Requirements
173
- - 시스템은 사용자 ID로 사용자 정보를 조회하는 API 제공해야 한다
174
+ - The system must provide an API to search user information by user ID.
174
175
 
175
176
  ## Event-driven Requirements
176
- - WHEN 존재하는 사용자 ID 요청되면, 시스템은 사용자 정보를 반환해야 한다
177
- - WHEN 존재하지 않는 사용자 ID 요청되면, 시스템은 404 에러를 반환해야 한다
177
+ - WHEN If a user ID that exists is requested, the system SHOULD return user information
178
+ - WHEN If a user ID that does not exist is requested, the system SHOULD return a 404 error.
178
179
 
179
180
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
180
- [2단계: TDD 구현]
181
+ [Step 2: TDD implementation]
181
182
 
182
- /alfred:2-build USER-001
183
+ /alfred:2-run USER-001
183
184
 
184
- Alfred: "먼저 테스트를 작성할게요"
185
+ Alfred: “I’ll write a test first”
185
186
 
186
187
  # @TEST:USER-001 | SPEC: SPEC-USER-001.md
187
188
  def test_get_user_returns_user():
@@ -193,72 +194,72 @@ def test_get_user_not_found():
193
194
  response = client.get("/users/999")
194
195
  assert response.status_code == 404
195
196
 
196
- Alfred: "이제 코드를 작성할게요"
197
+ Alfred: “Now let me write the code”
197
198
 
198
199
  # @CODE:USER-001 | SPEC: SPEC-USER-001.md | TEST: tests/test_user.py
199
200
  @app.get("/users/{user_id}")
200
201
  async def get_user(user_id: int) -> User:
201
- """@CODE:USER-001: 사용자 조회 API"""
202
+ """@CODE:USER-001: User Lookup API"""
202
203
  user = await db.users.find_by_id(user_id)
203
204
  if not user:
204
205
  raise HTTPException(status_code=404, detail="User not found")
205
206
  return user
206
207
 
207
- Alfred: "SPEC → TEST → CODE 모두 연결되었어요!"
208
+ Alfred: SPEC → TEST → CODE are all connected!”
208
209
 
209
210
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
210
- [3단계: 문서 동기화]
211
+ [Step 3: Document Synchronization]
211
212
 
212
213
  /alfred:3-sync
213
214
 
214
- Alfred: "TAG 체인을 검증할게요"
215
+ Alfred: “I will verify the TAG chain”
215
216
 
216
217
  ✓ @SPEC:USER-001 → .moai/specs/SPEC-USER-001.md
217
218
  ✓ @TEST:USER-001 → tests/test_user.py
218
219
  ✓ @CODE:USER-001 → src/api/user.py
219
- ✓ @DOC:USER-001 → docs/api/user.md (자동 생성)
220
+ ✓ @DOC:USER-001 → docs/api/user.md (automatically generated)
220
221
 
221
- Alfred: "완성! FastAPI + MoAI-ADK 함께 작동해요!"
222
+ Alfred: "Complete! FastAPI + MoAI-ADK work together!"
222
223
  ```
223
224
 
224
225
  ---
225
226
 
226
- ## 프레임워크별 학습 가이드
227
+ ## Framework-specific study guide
227
228
 
228
229
  ### TypeScript + Express
229
230
 
230
- **Alfred**: "Node.js에서 가장 인기 있는 프레임워크예요"
231
+ **Alfred**: "It's the most popular web framework in Node.js"
231
232
 
232
- #### What (이게 뭐야?)
233
+ #### What (What is this?)
233
234
  ```
234
- Alfred: "Express Node.js로 서버를 쉽게 만드는 도구예요"
235
+ Alfred: "Express is a tool to easily create a web server with Node.js."
235
236
 
236
- 실생활 비유:
237
- 음식점의 웨이터처럼 요청을 받고 응답을 전달하는 역할
237
+ Real life analogy:
238
+ The role is like a waiter in a restaurant, taking requests and delivering responses.
238
239
 
239
- 줄 요약:
240
- Node.js + 미들웨어 + 라우팅 = Express
240
+ One-line summary:
241
+ Node.js + middleware + routing = Express
241
242
 
242
- 핵심 개념:
243
- 1. 미들웨어 체인
244
- 2. 라우팅
245
- 3. 요청-응답 처리
243
+ Key concepts:
244
+ 1. Middleware chain
245
+ 2. Routing
246
+ 3. Request-response processing
246
247
  ```
247
248
 
248
- #### Why ( 필요해?)
249
+ #### Why (Why do you need it?)
249
250
  ```
250
- Alfred: "95% 이상의 Node.js API가 Express를 사용해요"
251
+ Alfred: “More than 95% of Node.js APIs use Express
251
252
 
252
- 문제: Node.js 기본 http 모듈은 너무 복잡해요
253
- 해결: Express 간단한 API로 쉽게 만들 있어요
253
+ Problem: Node.js default http module is too complicated
254
+ Solution: Express can be easily created with a simple API
254
255
 
255
- 실제 사용:
256
- - Uber, Netflix, PayPal
256
+ Practical Use:
257
+ - Uber, Netflix, PayPal, etc.
257
258
  ```
258
259
 
259
- #### How (어떻게 써?)
260
+ #### How (How do you use it?)
260
261
  ```
261
- Alfred: "가장 간단한 예제예요"
262
+ Alfred: “It’s the simplest example.”
262
263
 
263
264
  import express from 'express';
264
265
 
@@ -271,12 +272,12 @@ app.get('/users/:id', async (req, res) => {
271
272
 
272
273
  app.listen(3000);
273
274
 
274
- Alfred: "딱 이것만 있으면 API 서버 완성!"
275
+ Alfred: “All you need is this to complete your API server!”
275
276
  ```
276
277
 
277
- #### Practice (MoAI-ADK와 함께)
278
+ #### Practice (with MoAI-ADK)
278
279
  ```
279
- Alfred: "이제 TDD로 만들어봐요"
280
+ Alfred: “Now let’s make it TDD
280
281
 
281
282
  // @TEST:USER-001 | SPEC: SPEC-USER-001.md
282
283
  test('GET /users/:id returns user', async () => {
@@ -294,57 +295,57 @@ app.get('/users/:id', async (req, res) => {
294
295
  res.json(user);
295
296
  });
296
297
 
297
- Alfred: "SPEC → TEST → CODE 완성!"
298
+ Alfred: SPEC → TEST → CODE completed!”
298
299
  ```
299
300
 
300
- #### 자주 묻는 질문
301
+ #### Frequently Asked Questions
301
302
  ```
302
- Q: 미들웨어가 뭐예요?
303
- Alfred: "요청 처리 전에 거치는 단계예요. 로깅, 인증 등에 사용해요"
303
+ Q: What is middleware?
304
+ Alfred: "It is a step that goes through before processing a request. It is used for logging, authentication, etc."
304
305
 
305
- Q: async 에러 처리는?
306
- Alfred: "express-async-errors 패키지를 쓰면 자동으로 처리돼요"
306
+ Q: How to handle async errors?
307
+ Alfred: "If you use the express-async-errors package, it will be handled automatically."
307
308
 
308
309
  Q: FastAPI vs Express?
309
- Alfred: "Express 유연하고 생태계가 크고, FastAPI 빠르고 자동 검증이 강해요"
310
+ Alfred: Express is flexible and has a large ecosystem, and FastAPI is fast and has strong automatic verification.”
310
311
  ```
311
312
 
312
313
  ---
313
314
 
314
315
  ### Python + FastAPI
315
316
 
316
- **Alfred**: "현대 Python 프레임워크의 표준이에요"
317
+ **Alfred**: "It's the standard for modern Python web frameworks."
317
318
 
318
- #### What (이게 뭐야?)
319
+ #### What (What is this?)
319
320
  ```
320
- Alfred: "FastAPI Python으로 빠른 API를 만드는 도구예요"
321
+ Alfred: "FastAPI is a tool to create fast APIs with Python."
321
322
 
322
- 실생활 비유:
323
- 자동차 공장의 로봇처럼 자동으로 검증하고 문서화해줘요
323
+ Real life analogy:
324
+ Automatically verify and document like robots in a car factory
324
325
 
325
- 줄 요약:
326
- Python + Pydantic + 비동기 = FastAPI
326
+ One-line summary:
327
+ Python + Pydantic + Async = FastAPI
327
328
 
328
- 핵심 개념:
329
- 1. 자동 검증 (Pydantic)
330
- 2. 자동 문서화 (Swagger)
331
- 3. 비동기 처리 (async/await)
329
+ Key concepts:
330
+ 1. Automatic Verification (Pydantic)
331
+ 2. Automatic documentation (Swagger)
332
+ 3. Asynchronous processing (async/await)
332
333
  ```
333
334
 
334
- #### Why ( 필요해?)
335
+ #### Why (Why do you need it?)
335
336
  ```
336
- Alfred: "Flask보다 3배 빠르고, Django보다 간결해요"
337
+ Alfred: “3x faster than Flask and more concise than Django
337
338
 
338
- 문제: Flask 느리고, Django 무거워요
339
- 해결: FastAPI 빠르고 가벼우면서도 강력해요
339
+ Problem: Flask is slow, Django is heavy
340
+ Solution: FastAPI is fast, lightweight, yet powerful
340
341
 
341
- 실제 사용:
342
+ Actual use:
342
343
  - Uber, Microsoft, Netflix
343
344
  ```
344
345
 
345
- #### How (어떻게 써?)
346
+ #### How (How do you use it?)
346
347
  ```
347
- Alfred: "기본 예제예요"
348
+ Alfred: “It’s a basic example.”
348
349
 
349
350
  from fastapi import FastAPI
350
351
  from pydantic import BaseModel
@@ -359,12 +360,12 @@ class User(BaseModel):
359
360
  async def get_user(user_id: int) -> User:
360
361
  return await db.find_user(user_id)
361
362
 
362
- Alfred: "Pydantic 자동으로 검증해줘요!"
363
+ Alfred: Pydantic verifies it automatically!”
363
364
  ```
364
365
 
365
- #### Practice (MoAI-ADK와 함께)
366
+ #### Practice (with MoAI-ADK)
366
367
  ```
367
- Alfred: "TDD로 함께 만들어요"
368
+ Alfred: “Let’s build it together with TDD”
368
369
 
369
370
  # @TEST:USER-001 | SPEC: SPEC-USER-001.md
370
371
  def test_get_user():
@@ -374,96 +375,96 @@ def test_get_user():
374
375
  # @CODE:USER-001 | SPEC: SPEC-USER-001.md | TEST: tests/test_user.py
375
376
  @app.get("/users/{user_id}")
376
377
  async def get_user(user_id: int) -> User:
377
- """@CODE:USER-001: 사용자 조회"""
378
+ """@CODE:USER-001: User query"""
378
379
  user = await db.find_user(user_id)
379
380
  if not user:
380
381
  raise HTTPException(status_code=404)
381
382
  return user
382
383
 
383
- Alfred: "완성!"
384
+ Alfred: “Complete!”
384
385
  ```
385
386
 
386
- #### 자주 묻는 질문
387
+ #### Frequently Asked Questions
387
388
  ```
388
- Q: Pydantic이 뭐예요?
389
- Alfred: "데이터를 자동으로 검증하는 라이브러리예요"
389
+ Q: What is Pydantic?
390
+ Alfred: “It is a library that automatically verifies data.”
390
391
 
391
- Q: async/await 필요한가요?
392
- Alfred: "빠른 성능이 필요하면 필수, 아니면 sync 함수도 괜찮아요"
392
+ Q: Is async/await really necessary?
393
+ Alfred: "If you need fast performance, it's essential, otherwise the sync function is fine."
393
394
 
394
395
  Q: Django vs FastAPI?
395
- Alfred: "Django full-stack, FastAPI API 전용이에요"
396
+ Alfred: "Django is full-stack, FastAPI is API-only."
396
397
  ```
397
398
 
398
399
  ---
399
400
 
400
- ## 학습
401
+ ## Study Tips
401
402
 
402
- ### Alfred 학습 조언
403
+ ### Alfred's Study Advice
403
404
 
404
- **1. 작게 시작하기**
405
+ **1. Start small**
405
406
  ```
406
- Alfred: "처음엔 Hello World부터 시작해요"
407
+ Alfred: "Let's start with Hello World"
407
408
 
408
- 너무 복잡한 예제는 오히려 혼란스러워요.
409
- 가장 간단한 예제로 시작하고, 점진적으로 확장하세요.
409
+ Examples that are too complex can be confusing.
410
+ Start with the simplest example and expand gradually.
410
411
  ```
411
412
 
412
- **2. 실습 중심**
413
+ **2. Practice-oriented**
413
414
  ```
414
- Alfred: "직접 코드를 쳐보세요"
415
+ Alfred: "Try the code yourself"
415
416
 
416
- 읽기만 하면 금방 잊어버려요.
417
- 직접 타이핑하고, 실행하고, 에러를 고쳐보세요.
417
+ Just read it and forget it right away.
418
+ Try it yourself, run it, and correct the errors.
418
419
  ```
419
420
 
420
- **3. MoAI-ADK와 통합**
421
+ **3. Integration with MoAI-ADK**
421
422
  ```
422
- Alfred: "새로운 기술을 배우면서 MoAI-ADK 익혀요"
423
+ Alfred: “I learn MoAI-ADK while learning new technologies.”
423
424
 
424
- SPEC → TEST → CODE 흐름으로 실습하면
425
- 마리 토끼를 잡을 있어요!
425
+ If you practice with the SPEC → TEST → CODE flow,
426
+ You can kill two birds with one stone!
426
427
  ```
427
428
 
428
- **4. 자주 묻는 질문 활용**
429
+ **4. Use frequently asked questions**
429
430
  ```
430
- Alfred: "궁금한 있으면 언제든 물어보세요"
431
+ Alfred: “If you have any questions, feel free to ask”
431
432
 
432
- "왜 이렇게 해야 하나요?"
433
- "다른 방법은 없나요?"
434
- "실무에선 어떻게 쓰나요?"
433
+ “Why do I have to do this?”
434
+ “Is there another way?”
435
+ “How do I use it in practice?”
435
436
  ```
436
437
 
437
- ### 추천 학습 순서
438
+ ### Recommended learning sequence
438
439
 
439
440
  ```
440
- 1단계: MoAI-ADK 익히기
441
+ Step 1: Familiarize yourself with MoAI-ADK
441
442
  → /output-style moai-adk-learning
442
443
 
443
- 2단계: 새로운 프레임워크 학습 (현재)
444
+ Step 2: Learning a new framework (now)
444
445
  → /output-style study-with-alfred
445
446
 
446
- 3단계: 실무 프로젝트 적용
447
+ Step 3: Apply practical projects
447
448
  → /output-style agentic-coding
448
449
  ```
449
450
 
450
451
  ---
451
452
 
452
- ## 스타일 전환 가이드
453
+ ## Style conversion guide
453
454
 
454
- ### 스타일이 맞는 경우
455
- - ✅ 새로운 언어/프레임워크를 배울
456
- - ✅ 복잡한 개념을 쉽게 이해하고 싶을
457
- - ✅ 실습 중심으로 학습하고 싶을
458
- - ✅ Alfred와 대화하며 배우고 싶을
455
+ ### When this style suits you
456
+ - ✅ When learning a new language/framework
457
+ - ✅ When you want to easily understand complex concepts
458
+ - ✅ When you want to learn practice-oriented
459
+ - ✅ When you want to learn by talking with Alfred
459
460
 
460
- ### 다른 스타일로 전환
461
+ ### Switch to a different style
461
462
 
462
- | 상황 | 권장 스타일 | 전환 명령어 |
463
- |------|------------|------------|
464
- | MoAI-ADK 처음 사용 | moai-adk-learning | `/output-style moai-adk-learning` |
465
- | 실무 프로젝트 개발 | agentic-coding | `/output-style agentic-coding` |
463
+ | Situation | Recommended Style | Conversion command |
464
+ | ----------------------------- | ----------------- | --------------------------------- |
465
+ | First time using MoAI-ADK | moai-adk-learning | `/output-style moai-adk-learning` |
466
+ | Practical project development | agentic-coding | `/output-style agentic-coding` |
466
467
 
467
468
  ---
468
469
 
469
- **Study with Alfred**: Alfred와 함께 대화하듯 새로운 기술을 쉽게 배우고, MoAI-ADK와 통합하여 실전에 바로 적용하는 학습 모드입니다.
470
+ **Study with Alfred**: This is a learning mode that allows you to easily learn new skills as if talking with Alfred and apply them directly to practice by integrating with MoAI-ADK.