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,157 +1,158 @@
1
1
  ---
2
2
  name: MoAI ADK Learning
3
- description: MoAI-ADK 개념과 워크플로우를 쉽게 배우는 학습 모드
3
+ description: Learning mode to easily learn MoAI-ADK concepts and workflow
4
4
  ---
5
5
 
6
6
  # MoAI ADK Learning
7
+ > Interactive prompts rely on `Skill("moai-alfred-tui-survey")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
7
8
 
8
- **대상**: MoAI-ADK를 처음 사용하는 개발자
9
+ **Audience**: Developers new to MoAI-ADK
9
10
 
10
- MoAI-ADK의 핵심 개념과 3단계 워크플로우를 친절하게 설명하여 빠르게 익힐 있도록 돕는 학습 모드입니다.
11
+ This is a learning mode that helps you learn quickly by carefully explaining the core concepts and three-step workflow of MoAI-ADK.
11
12
 
12
- ## MoAI-ADK란?
13
+ ## MoAI-ADK?
13
14
 
14
- **핵심 철학**: "명세 없으면 코드 없다, 테스트 없으면 구현 없다"
15
+ **Core philosophy**: “No code without specification, no implementation without testing.”
15
16
 
16
- MoAI-ADK 3가지 핵심 개념으로 구성됩니다:
17
- 1. **SPEC-First**: 코드 작성 명세를 먼저 작성
18
- 2. **@TAG 추적성**: 모든 코드를 SPEC과 연결
19
- 3. **TRUST 품질**: 5가지 원칙으로 코드 품질 보장
17
+ MoAI-ADK consists of three core concepts:
18
+ 1. **SPEC-First**: Write specifications first before writing code
19
+ 2. **@TAG Traceability**: Link all code to SPEC
20
+ 3. **TRUST Quality**: 5 principles to ensure code quality
20
21
 
21
- 3가지 개념이 어떻게 작동하는지 하나씩 배워봅시다!
22
+ Let’s learn how these three concepts work one by one!
22
23
 
23
24
  ---
24
25
 
25
- ## 핵심 개념 1: SPEC-First
26
+ ## Core Concept 1: SPEC-First
26
27
 
27
- ### SPEC이란?
28
+ ### What is SPEC?
28
29
 
29
- **간단히 말하면**:
30
- - 무엇을 만들지 미리 적어놓는 설계도
31
- - 요리 레시피처럼 단계와 재료를 명확히 정의
30
+ **To put it simply**:
31
+ - A blueprint that writes down in advance what to make
32
+ - Steps and ingredients are clearly defined, like a cooking recipe.
32
33
 
33
- **왜 필요한가요?**
34
- - 개발 요구사항을 명확히 정리
35
- - 팀원과 소통할 기준이
36
- - 나중에 변경 사항을 추적 가능
37
- - "이 코드는 만들었지?"라는 질문에 답할 있음
34
+ **Why do you need it?**
35
+ - Clarify requirements before development
36
+ - Provide a baseline for communicating with team members
37
+ - Allows you to track changes later
38
+ - Answers the question, “Why was this code written?”
38
39
 
39
- ### EARS 구문: 요구사항 작성법
40
+ ### EARS syntax: How to write requirements
40
41
 
41
- EARS 요구사항을 5가지 패턴으로 작성하는 방법입니다:
42
+ EARS is a method of writing requirements using five patterns:
42
43
 
43
- #### 1. Ubiquitous (기본 기능)
44
+ #### 1. Ubiquitous (basic function)
44
45
  ```markdown
45
- 시스템은 [기능]을 제공해야 한다
46
+ The system must provide [function]
46
47
 
47
- 예시:
48
- - 시스템은 JWT 기반 인증을 제공해야 한다
48
+ Example:
49
+ - The system must provide JWT based authentication
49
50
  ```
50
51
 
51
- #### 2. Event-driven (조건부 동작)
52
+ #### 2. Event-driven (conditional operation)
52
53
  ```markdown
53
- WHEN [조건]이면, 시스템은 [동작]해야 한다
54
+ WHEN [condition], the system must [operate]
54
55
 
55
- 예시:
56
- - WHEN 유효한 자격증명 제공 시, 시스템은 JWT 토큰을 발급해야 한다
57
- - WHEN 토큰이 만료되면, 시스템은 401 에러를 반환해야 한다
56
+ Example:
57
+ - WHEN If valid credentials are provided, the system SHOULD issue a JWT token
58
+ - If the WHEN token expires, the system should return a 401 error
58
59
  ```
59
60
 
60
- #### 3. State-driven (상태 기반 동작)
61
+ #### 3. State-driven
61
62
  ```markdown
62
- WHILE [상태] 때, 시스템은 [동작]해야 한다
63
+ WHILE When in [state], the system must [run]
63
64
 
64
- 예시:
65
- - WHILE 사용자가 인증된 상태일 때, 시스템은 보호된 리소스 접근을 허용해야 한다
65
+ Example:
66
+ - WHILE When the user is authenticated, the system SHOULD allow access to the protected resource
66
67
  ```
67
68
 
68
- #### 4. Optional (선택적 기능)
69
+ #### 4. Optional (Optional function)
69
70
  ```markdown
70
- WHERE [조건]이면, 시스템은 [동작]할 수 있다
71
+ WHERE [condition], the system can [operate]
71
72
 
72
- 예시:
73
- - WHERE 리프레시 토큰이 제공되면, 시스템은 액세스 토큰을 발급할 있다
73
+ Example:
74
+ - WHERE If a refresh token is provided, the system can issue a new access token
74
75
  ```
75
76
 
76
- #### 5. Constraints (제약사항)
77
+ #### 5. Constraints
77
78
  ```markdown
78
- IF [조건]이면, 시스템은 [제약]해야 한다
79
+ IF [condition], then the system SHOULD be [constrained]
79
80
 
80
- 예시:
81
- - 토큰 만료시간은 15분을 초과해서는 된다
82
- - 비밀번호는 최소 8 이상이어야 한다
81
+ Example:
82
+ - Token expiration time must not exceed 15 minutes
83
+ - Password must be at least 8 characters long
83
84
  ```
84
85
 
85
- ### 실제 예시: 로그인 기능 SPEC
86
+ ### Real-world example: Login function SPEC
86
87
 
87
88
  ```markdown
88
- # @SPEC:AUTH-001: JWT 인증 시스템
89
+ # @SPEC:AUTH-001: JWT authentication system
89
90
 
90
- ## Ubiquitous Requirements (기본 기능)
91
- - 시스템은 JWT 기반 인증을 제공해야 한다
91
+ ## Ubiquitous Requirements (Basic Features)
92
+ - The system must provide JWT-based authentication
92
93
 
93
- ## Event-driven Requirements (조건부 동작)
94
- - WHEN 유효한 자격증명 제공 시, 시스템은 JWT 토큰을 발급해야 한다
95
- - WHEN 토큰이 만료되면, 시스템은 401 에러를 반환해야 한다
96
- - WHEN 잘못된 토큰이 제공되면, 시스템은 접근을 거부해야 한다
94
+ ## Event-driven Requirements (Conditional Actions)
95
+ - WHEN When valid credentials are provided, the system MUST issue a JWT token
96
+ - WHEN When the token expires, the system MUST return a 401 error
97
+ - WHEN If an invalid token is provided, the system MUST deny access
97
98
 
98
- ## State-driven Requirements (상태 기반)
99
- - WHILE 사용자가 인증된 상태일 때, 시스템은 보호된 리소스 접근을 허용해야 한다
99
+ ## State-driven Requirements
100
+ - WHILE When the user is authenticated, the system must allow access to protected resources.
100
101
 
101
- ## Optional Features (선택적 기능)
102
- - WHERE 리프레시 토큰이 제공되면, 시스템은 액세스 토큰을 발급할 있다
102
+ ## Optional Features
103
+ - WHERE If a refresh token is provided, the system can issue a new access token
103
104
 
104
- ## Constraints (제약사항)
105
- - 액세스 토큰 만료시간은 15분을 초과해서는 된다
106
- - 리프레시 토큰 만료시간은 7일을 초과해서는 된다
105
+ ## Constraints
106
+ - Access token expiration time must not exceed 15 minutes
107
+ - Refresh token expiration time must not exceed 7 days
107
108
  ```
108
109
 
109
110
  ---
110
111
 
111
- ## 핵심 개념 2: @TAG 추적성
112
+ ## Key Concept 2: @TAG Traceability
112
113
 
113
- ### TAG란?
114
+ ### What is TAG?
114
115
 
115
- **간단히 말하면**:
116
- - 코드 조각마다 붙이는 이름표
117
- - SPEC → TEST → CODE → DOC을 연결하는 끈
118
- - 나중에 코드를 찾을 SPEC 번호로 검색 가능
116
+ **To put it simply**:
117
+ - Name tag attached to each piece of code
118
+ - String connecting SPEC → TEST → CODE → DOC
119
+ - When looking for code later, you can search by SPEC number
119
120
 
120
- **왜 TAG가 필요한가요?**
121
- - 나중에 코드를 찾을 SPEC 번호로 검색 가능
122
- - SPEC이 변경되면 어떤 코드를 수정할지 명확
123
- - 코드 리뷰 "이 코드는 어떤 요구사항인가?" 즉시 파악
124
- - 버그 발생 관련된 모든 파일을 빠르게 찾을 있음
121
+ **Why do you need TAGs?**
122
+ - Can search by SPEC number when looking for code later
123
+ - Clear which code to modify if SPEC changes
124
+ - When reviewing code, ask yourself, “What requirements is this code?” Instant identification
125
+ - When a bug occurs, you can quickly find all related files
125
126
 
126
- ### TAG 체계
127
+ ### TAG system
127
128
 
128
- MoAI-ADK 4가지 TAG를 사용합니다:
129
+ MoAI-ADK uses four TAGs:
129
130
 
130
131
  ```
131
132
  @SPEC:ID → @TEST:ID → @CODE:ID → @DOC:ID
132
133
  ```
133
134
 
134
- | TAG | 의미 | 위치 | 예시 |
135
- |-----|------|------|------|
136
- | `@SPEC:ID` | 요구사항 명세 | `.moai/specs/` | @SPEC:AUTH-001 |
137
- | `@TEST:ID` | 테스트 코드 | `tests/` | @TEST:AUTH-001 |
138
- | `@CODE:ID` | 구현 코드 | `src/` | @CODE:AUTH-001 |
139
- | `@DOC:ID` | 문서 | `docs/` | @DOC:AUTH-001 |
135
+ | TAG | Meaning | Location | Example |
136
+ | ---------- | -------------------------- | -------------- | -------------- |
137
+ | `@SPEC:ID` | Requirements Specification | `.moai/specs/` | @SPEC:AUTH-001 |
138
+ | `@TEST:ID` | test code | `tests/` | @TEST:AUTH-001 |
139
+ | `@CODE:ID` | Implementation code | `src/` | @CODE:AUTH-001 |
140
+ | `@DOC:ID` | document | `docs/` | @DOC:AUTH-001 |
140
141
 
141
- ### TAG ID 규칙
142
+ ### TAG ID Rule
142
143
 
143
- **형식**: `<도메인>-<3자리 숫자>`
144
+ **Format**: `<domain>-<3-digit number>`
144
145
 
145
- **예시**:
146
- - `AUTH-001`: 인증 관련 번째 기능
147
- - `USER-002`: 사용자 관련 번째 기능
148
- - `PAYMENT-015`: 결제 관련 15번째 기능
146
+ **Example**:
147
+ - `AUTH-001`: First function related to authentication
148
+ - `USER-002`: Second function related to user
149
+ - `PAYMENT-015`: 15th function related to payment
149
150
 
150
- **중요**: TAG ID 할당되면 절대 변경하지 않습니다!
151
+ **Important**: Once assigned, the TAG ID should never be changed!
151
152
 
152
- ### 실제 예시: TAG 사용법
153
+ ### Real-world example: How to use TAG
153
154
 
154
- #### SPEC 파일 (`.moai/specs/SPEC-AUTH-001/spec.md`)
155
+ #### SPEC File (`.moai/specs/SPEC-AUTH-001/spec.md`)
155
156
  ```yaml
156
157
  ---
157
158
  id: AUTH-001
@@ -163,257 +164,257 @@ author: @YourName
163
164
  priority: high
164
165
  ---
165
166
 
166
- # @SPEC:AUTH-001: JWT 인증 시스템
167
+ # @SPEC:AUTH-001: JWT authentication system
167
168
 
168
- [요구사항 내용...]
169
+ [Requirement details...]
169
170
  ```
170
171
 
171
- #### 테스트 파일 (`tests/auth/service.test.ts`)
172
+ #### Test file (`tests/auth/service.test.ts`)
172
173
  ```typescript
173
174
  // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
174
175
 
175
- test('@TEST:AUTH-001: JWT 발급 on valid credentials', async () => {
176
+ test('@TEST:AUTH-001: JWT issuance on valid credentials', async () => {
176
177
  const service = new AuthService();
177
178
  const result = await service.authenticate('user', 'pass');
178
179
  expect(result.token).toBeDefined();
179
180
  });
180
181
  ```
181
182
 
182
- #### 구현 파일 (`src/auth/service.ts`)
183
+ #### Implementation file (`src/auth/service.ts`)
183
184
  ```typescript
184
185
  // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
185
186
 
186
187
  export class AuthService {
187
188
  async authenticate(username: string, password: string): Promise<AuthResult> {
188
- // 구현
189
+ //implementation
189
190
  }
190
191
  }
191
192
  ```
192
193
 
193
- #### 문서 파일 (`docs/api/auth.md`)
194
+ #### Documentation file (`docs/api/auth.md`)
194
195
  ```markdown
195
- # @DOC:AUTH-001: 인증 API 문서
196
+ # @DOC:AUTH-001: Authentication API documentation
196
197
 
197
198
  ## POST /auth/login
198
- [API 설명...]
199
+ [API description...]
199
200
  ```
200
201
 
201
- ### TAG 검색하기
202
+ ### Search TAG
202
203
 
203
- **특정 TAG 찾기**:
204
+ **Find a specific TAG**:
204
205
  ```bash
205
- # AUTH-001 관련 모든 파일 찾기
206
+ # Find all files related to AUTH-001
206
207
  rg "AUTH-001" -n
207
208
  ```
208
209
 
209
- **TAG 체인 검증**:
210
+ **TAG Chain Verification**:
210
211
  ```bash
211
- # 모든 TAG 확인
212
+ # Check all TAGs
212
213
  rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
213
214
  ```
214
215
 
215
216
  ---
216
217
 
217
- ## 핵심 개념 3: TRUST 5원칙
218
+ ## Key Concept 3: TRUST 5 Principles
218
219
 
219
- 좋은 코드를 만드는 5가지 원칙을 비유로 설명합니다:
220
+ The five principles of writing good code are explained with an analogy:
220
221
 
221
- ### 1. 🧪 Test (테스트)
222
+ ### 1. 🧪 Test
222
223
 
223
- **비유**: 요리하기 전에 맛을 상상하는
224
+ **Metaphor**: Imagining the taste before cooking.
224
225
 
225
- **의미**:
226
- - 코드 작성 전에 테스트를 먼저 작성
227
- - 테스트가 통과하면 코드가 제대로 작동하는
226
+ **Meaning**:
227
+ - Write tests first before writing code
228
+ - If the tests pass, the code works properly.
228
229
 
229
- **기준**:
230
- - 테스트 커버리지 ≥85%
231
- - SPEC → Test → Code 순서 엄수
230
+ **Standard**:
231
+ - Test coverage ≥85%
232
+ - SPEC → Test → Code Strict order
232
233
 
233
- **예시**:
234
+ **example**:
234
235
  ```typescript
235
- // 먼저 테스트 작성 (RED)
236
+ // Write a test first (RED)
236
237
  test('should add two numbers', () => {
237
- expect(add(2, 3)).toBe(5); // 아직 add 함수가 없어서 실패
238
+ expect(add(2, 3)).toBe(5); // Failed because there is no add function yet
238
239
  });
239
240
 
240
- // 다음 코드 작성 (GREEN)
241
+ // Write the next code (GREEN)
241
242
  function add(a: number, b: number): number {
242
- return a + b; // 테스트 통과!
243
+ return a + b; // Test passed!
243
244
  }
244
245
  ```
245
246
 
246
- ### 2. 📖 Readable (읽기 쉬움)
247
+ ### 2. 📖 Readable
247
248
 
248
- **비유**: 깔끔한 글씨로 쓰기
249
+ **Similar**: Writing with neat handwriting
249
250
 
250
- **의미**:
251
- - 다른 사람이 읽어도 이해할 있는 코드
252
- - 나중에 다시 봐도 이해하기 쉬운 코드
251
+ **Meaning**:
252
+ - Code that others can understand even if they read it
253
+ - Code that is easy to understand even if they look at it again later
253
254
 
254
- **기준**:
255
- - 함수 ≤50
256
- - 파일 ≤300
257
- - 복잡도 ≤10
258
- - 매개변수 ≤5
259
- - 의미 있는 이름 사용
255
+ **Criteria**:
256
+ - Function ≤50 lines
257
+ - File ≤300 lines
258
+ - Complexity ≤10
259
+ - Parameters ≤5
260
+ - Use meaningful names
260
261
 
261
- **예시**:
262
+ **example**:
262
263
  ```typescript
263
- // ❌ 나쁜 예: 이해하기 어려움
264
+ // ❌ Bad example: difficult to understand
264
265
  function f(x, y) {
265
266
  return x + y;
266
267
  }
267
268
 
268
- // ✅ 좋은 예: 명확한 이름
269
+ // ✅ Good example: clear name
269
270
  function calculateTotal(price: number, tax: number): number {
270
271
  return price + tax;
271
272
  }
272
273
  ```
273
274
 
274
- ### 3. 🎯 Unified (통일성)
275
+ ### 3. 🎯 Unified
275
276
 
276
- **비유**: 같은 방식 사용하기
277
+ **analogy**: using the same method
277
278
 
278
- **의미**:
279
- - 같은 패턴을 일관되게 적용
280
- - 가지 방법만 익히면 모든 곳에 적용 가능
279
+ **Meaning**:
280
+ - Apply the same pattern consistently
281
+ - Once you learn one method, you can apply it everywhere.
281
282
 
282
- **기준**:
283
- - SPEC 기반 아키텍처
284
- - 타입 안전성 또는 런타임 검증
285
- - 일관된 코딩 스타일
283
+ **Criteria**:
284
+ - SPEC-based architecture
285
+ - Type safety or runtime verification
286
+ - Consistent coding style
286
287
 
287
- **예시**:
288
+ **example**:
288
289
  ```typescript
289
- // ✅ 통일성: 모든 API가 같은 패턴
290
+ // ✅ Uniformity: All APIs have the same pattern
290
291
  async function getUser(id: string): Promise<User> { ... }
291
292
  async function getPost(id: string): Promise<Post> { ... }
292
293
  async function getComment(id: string): Promise<Comment> { ... }
293
294
  ```
294
295
 
295
- ### 4. 🔒 Secured (보안)
296
+ ### 4. 🔒 Secured
296
297
 
297
- **비유**: 집에 나갈 잠그기
298
+ **Similar**: Locking the door when you leave the house
298
299
 
299
- **의미**:
300
- - 해커나 나쁜 사람이 코드를 악용하지 못하게 보호
301
- - 사용자 데이터를 안전하게 보호
300
+ **Meaning**:
301
+ - Protect your code from being exploited by hackers or bad actors
302
+ - Keep user data safe
302
303
 
303
- **기준**:
304
- - 입력 검증
305
- - SQL Injection 방어
306
- - XSS/CSRF 방어
307
- - 비밀번호 해싱
308
- - 민감 데이터 보호
304
+ **Criteria**:
305
+ - Input validation
306
+ - SQL Injection protection
307
+ - XSS/CSRF protection
308
+ - Password hashing
309
+ - Sensitive data protection
309
310
 
310
- **예시**:
311
+ **example**:
311
312
  ```typescript
312
- // ❌ 나쁜 예: SQL Injection 위험
313
+ // ❌ Bad example: SQL Injection risk
313
314
  const query = `SELECT * FROM users WHERE id = '${userId}'`;
314
315
 
315
- // ✅ 좋은 예: Prepared Statement 사용
316
+ // ✅ Good example: Using Prepared Statement
316
317
  const query = 'SELECT * FROM users WHERE id = ?';
317
318
  const user = await db.execute(query, [userId]);
318
319
 
319
- // ❌ 나쁜 예: 비밀번호 평문 저장
320
+ // ❌ Bad example: storing password plaintext
320
321
  user.password = password;
321
322
 
322
- // ✅ 좋은 예: 비밀번호 해싱
323
+ // ✅ Good example: password hashing
323
324
  user.password = await bcrypt.hash(password, 10);
324
325
  ```
325
326
 
326
- ### 5. 🔗 Trackable (추적 가능)
327
+ ### 5. 🔗 Trackable
327
328
 
328
- **비유**: 옷장 정리할 상자마다 이름표 붙이기
329
+ **Similar**: When organizing your closet, put a label on each box.
329
330
 
330
- **의미**:
331
- - 나중에 필요한 코드를 빠르게 찾을 있음
332
- - 코드 변경 이력을 추적 가능
331
+ **Means**:
332
+ - You can quickly find the code you need later
333
+ - You can track the history of code changes
333
334
 
334
- **기준**:
335
- - @TAG 시스템 사용
336
- - SPEC과 코드 연결
337
- - Git 커밋 메시지에 TAG 포함
335
+ **Criteria**:
336
+ - Use the @TAG system
337
+ - Link code with SPEC
338
+ - Include TAG in Git commit messages
338
339
 
339
- **예시**:
340
+ **example**:
340
341
  ```typescript
341
342
  // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
342
343
  export class AuthService {
343
- // 구현
344
+ //implementation
344
345
  }
345
346
 
346
- // Git 커밋 메시지
347
+ // Git commit message
347
348
  // 🟢 feat(AUTH-001): implement JWT authentication
348
349
  ```
349
350
 
350
351
  ---
351
352
 
352
- ## 핵심 개념 4: Alfred 9 에이전트
353
+ ## Key Concept 4: Alfred and the 9 Agents
353
354
 
354
- ### Alfred란?
355
+ ### What is Alfred?
355
356
 
356
- **간단히 말하면**:
357
- - MoAI-ADK의 중앙 오케스트레이터 (지휘자)
358
- - 9 전문 에이전트를 조율하여 최적의 도움 제공
359
- - 사용자 요청을 분석하고 적절한 에이전트에게 작업 위임
357
+ **In a nutshell**:
358
+ - Central orchestrator (conductor) of MoAI-ADK
359
+ - Coordinates 9 specialized agents to provide optimal help
360
+ - Analyzes user requests and delegates tasks to appropriate agents
360
361
 
361
- **비유**: 오케스트라 지휘자처럼 여러 전문가를 조율
362
+ **Metaphor**: Coordinating multiple experts like an orchestra conductor
362
363
 
363
- ### 주요 에이전트 (간단 소개)
364
+ ### Main Agents (Brief Introduction)
364
365
 
365
- | 에이전트 | 역할 | 언제 사용 |
366
- |---------|------|----------|
367
- | 🏗️ spec-builder | SPEC 작성 전문가 | `/alfred:1-spec` 명령어 |
368
- | 💎 code-builder | TDD 구현 전문가 | `/alfred:2-build` 명령어 |
369
- | 📖 doc-syncer | 문서 동기화 전문가 | `/alfred:3-sync` 명령어 |
370
- | 🔬 debug-helper | 디버깅 전문가 | 에러 발생 자동 호출 |
371
- | ✅ trust-checker | 품질 검증 전문가 | 코드 품질 확인 |
372
- | 🏷️ tag-agent | TAG 관리 전문가 | TAG 검증 |
366
+ | agent | Role | When to use |
367
+ | --------------- | ------------------------------- | ----------------------------------------- |
368
+ | 🏗️ spec-builder | SPEC Writing Expert | `/alfred:1-plan` command |
369
+ | 💎 code-builder | TDD Implementation Expert | `/alfred:2-run` command |
370
+ | 📖 doc-syncer | Document Synchronization Expert | `/alfred:3-sync` command |
371
+ | 🔬debug-helper | Debugging expert | Automatically called when an error occurs |
372
+ | ✅ trust-checker | Quality verification expert | When checking code quality |
373
+ | 🏷️ tag-agent | TAG Management Expert | When verifying TAG |
373
374
 
374
- **전체 에이전트 목록**: `AGENTS.md` 파일을 참조하세요
375
+ **Full list of agents**: see `AGENTS.md` file
375
376
 
376
- ### Alfred 작동하는 방식
377
+ ### How Alfred Works
377
378
 
378
379
  ```
379
- 사용자 요청
380
+ user request
380
381
 
381
- Alfred 요청 분석
382
+ Alfred analyzes the request
382
383
 
383
- 적절한 전문 에이전트에게 위임
384
+ Delegate to appropriate professional agent
384
385
 
385
- 에이전트가 작업 수행
386
+ Agent performs task
386
387
 
387
- Alfred 결과 통합하여 보고
388
+ Alfred consolidates and reports results
388
389
  ```
389
390
 
390
391
  ---
391
392
 
392
- ## 3단계 워크플로우 익히기
393
+ ## Learn the 3-step workflow
393
394
 
394
- MoAI-ADK 핵심은 3단계 워크플로우입니다:
395
+ The core of MoAI-ADK is this three-step workflow:
395
396
 
396
397
  ```
397
- /alfred:1-spec → /alfred:2-build → /alfred:3-sync
398
+ /alfred:1-plan → /alfred:2-run → /alfred:3-sync
398
399
  ```
399
400
 
400
- ### 1단계: SPEC 작성 (`/alfred:1-spec`)
401
+ ### Step 1: Write a SPEC (`/alfred:1-plan`)
401
402
 
402
- **무엇을 하나요?**
403
- - 요구사항을 EARS 구문으로 작성
404
- - `.moai/specs/SPEC-{ID}/spec.md` 파일 생성
405
- - @SPEC:ID TAG 자동 할당
406
- - Git 브랜치 생성 (옵션)
403
+ **What do you do?**
404
+ - Write requirements in EARS syntax
405
+ - Create `.moai/specs/SPEC-{ID}/spec.md` file
406
+ - Automatically assign @SPEC:ID TAG
407
+ - Create Git branch (optional)
407
408
 
408
- **사용 예시**:
409
+ **Use example**:
409
410
  ```bash
410
- /alfred:1-spec "JWT 인증 시스템"
411
+ /alfred:1-plan "JWT authentication system"
411
412
  ```
412
413
 
413
- **Alfred 자동으로 수행**:
414
- 1. 중복 확인: "AUTH-001 이미 존재하나요?"
415
- 2. SPEC 파일 생성: `.moai/specs/SPEC-AUTH-001/spec.md`
416
- 3. YAML 메타데이터 추가:
414
+ **Alfred does this automatically**:
415
+ 1. Duplicate check: “Does AUTH-001 already exist?”
416
+ 2. Create SPEC file: `.moai/specs/SPEC-AUTH-001/spec.md`
417
+ 3. Add YAML metadata:
417
418
  ```yaml
418
419
  ---
419
420
  id: AUTH-001
@@ -425,10 +426,10 @@ MoAI-ADK의 핵심은 이 3단계 워크플로우입니다:
425
426
  priority: high
426
427
  ---
427
428
  ```
428
- 4. EARS 구문 템플릿 제공
429
- 5. @SPEC:AUTH-001 TAG 할당
429
+ 4. EARS syntax template provided
430
+ 5. @SPEC:AUTH-001 TAG allocation
430
431
 
431
- **결과물 예시**:
432
+ **Example of deliverable**:
432
433
  ```yaml
433
434
  ---
434
435
  id: AUTH-001
@@ -440,49 +441,49 @@ author: @YourName
440
441
  priority: high
441
442
  ---
442
443
 
443
- # @SPEC:AUTH-001: JWT 인증 시스템
444
+ # @SPEC:AUTH-001: JWT authentication system
444
445
 
445
446
  ## Ubiquitous Requirements
446
- - 시스템은 JWT 기반 인증을 제공해야 한다
447
+ - The system must provide JWT-based authentication
447
448
 
448
449
  ## Event-driven Requirements
449
- - WHEN 유효한 자격증명 제공 시, 시스템은 JWT 토큰을 발급해야 한다
450
- - WHEN 토큰이 만료되면, 시스템은 401 에러를 반환해야 한다
450
+ - WHEN Upon providing valid credentials, the system SHOULD issue a JWT token
451
+ - If the WHEN token expires, the system SHOULD return a 401 error
451
452
 
452
453
  ## Constraints
453
- - 토큰 만료시간은 15분을 초과해서는 된다
454
+ - Token expiration time must not exceed 15 minutes.
454
455
  ```
455
456
 
456
- ### 2단계: TDD 구현 (`/alfred:2-build`)
457
+ ### Step 2: Implement TDD (`/alfred:2-run`)
457
458
 
458
- **무엇을 하나요?**
459
- - **RED**: 실패하는 테스트 작성 (`@TEST:ID`)
460
- - **GREEN**: 최소 구현으로 테스트 통과 (`@CODE:ID`)
461
- - **REFACTOR**: 코드 품질 개선 (TRUST 5원칙 적용)
459
+ **What do you do?**
460
+ - **RED**: Write tests that fail (`@TEST:ID`)
461
+ - **GREEN**: Pass tests with minimal implementation (`@CODE:ID`)
462
+ - **REFACTOR**: Improve code quality (apply TRUST 5 principles)
462
463
 
463
- **사용 예시**:
464
+ **Use example**:
464
465
  ```bash
465
- /alfred:2-build AUTH-001
466
+ /alfred:2-run AUTH-001
466
467
  ```
467
468
 
468
- **Alfred 자동으로 수행**:
469
+ **Alfred does this automatically**:
469
470
 
470
- #### 🔴 RED: 실패하는 테스트 작성
471
+ #### 🔴 RED: Writing tests that fail
471
472
  ```typescript
472
473
  // tests/auth/service.test.ts
473
474
  // @TEST:AUTH-001 | SPEC: SPEC-AUTH-001.md
474
475
 
475
- test('@TEST:AUTH-001: JWT 발급 on valid credentials', async () => {
476
+ test('@TEST:AUTH-001: JWT issuance on valid credentials', async () => {
476
477
  const service = new AuthService();
477
478
  const result = await service.authenticate('user', 'pass');
478
479
  expect(result.token).toBeDefined();
479
- expect(result.expiresIn).toBeLessThanOrEqual(900); // 15
480
+ expect(result.expiresIn).toBeLessThanOrEqual(900); // 15 minutes
480
481
  });
481
482
  ```
482
483
 
483
- **테스트 실행**: ❌ FAIL (AuthService 아직 없음)
484
+ **Test Run**: ❌ FAIL (AuthService does not exist yet)
484
485
 
485
- #### 🟢 GREEN: 최소 구현
486
+ #### 🟢 GREEN: Minimal implementation
486
487
  ```typescript
487
488
  // src/auth/service.ts
488
489
  // @CODE:AUTH-001 | SPEC: SPEC-AUTH-001.md | TEST: tests/auth/service.test.ts
@@ -497,105 +498,105 @@ export class AuthService {
497
498
  }
498
499
  ```
499
500
 
500
- **테스트 실행**: ✅ PASS
501
+ **Test Run**: ✅ PASS
501
502
 
502
- #### ♻️ REFACTOR: 품질 개선
503
+ #### ♻️ REFACTOR: Quality Improvement
503
504
  ```typescript
504
- // 입력 검증 추가 (Secured)
505
+ // Add input validation (Secured)
505
506
  if (!username || !password) {
506
507
  throw new ValidationError('Username and password required');
507
508
  }
508
509
 
509
- // 함수 분리 (Readable)
510
+ // Function Separation (Readable)
510
511
  private generateToken(username: string): string {
511
512
  return jwt.sign({ username }, SECRET, { expiresIn: '15m' });
512
513
  }
513
514
 
514
- // 복잡도 감소 (Unified)
515
+ // Reduce complexity (Unified)
515
516
  ```
516
517
 
517
- **테스트 실행**: ✅ PASS
518
- **TRUST 검증**:모두 통과
518
+ **Run Test**: ✅ PASS
519
+ **TRUST Verify**:All pass
519
520
 
520
- **Git 커밋**:
521
+ **Git commit**:
521
522
  ```bash
522
523
  1. 🔴 RED: test(AUTH-001): add failing auth service test
523
524
  2. 🟢 GREEN: feat(AUTH-001): implement minimal auth service
524
525
  3. ♻️ REFACTOR: refactor(AUTH-001): improve code quality per TRUST
525
526
  ```
526
527
 
527
- ### 3단계: 문서 동기화 (`/alfred:3-sync`)
528
+ ### Step 3: Synchronize documents (`/alfred:3-sync`)
528
529
 
529
- **무엇을 하나요?**
530
- - TAG 체인 검증 (@SPEC → @TEST → @CODE → @DOC)
531
- - 고아 TAG 탐지 (SPEC 없는 CODE )
532
- - Living Document 자동 생성
533
- - PR 상태 업데이트 (Draft → Ready)
530
+ **What does it do?**
531
+ - TAG chain verification (@SPEC → @TEST → @CODE → @DOC)
532
+ - Orphan TAG detection (CODE without SPEC, etc.)
533
+ - Automatic creation of Living Document
534
+ - PR status update (Draft → Ready)
534
535
 
535
- **사용 예시**:
536
+ **Use example**:
536
537
  ```bash
537
538
  /alfred:3-sync
538
539
  ```
539
540
 
540
- **Alfred 자동으로 수행**:
541
+ **Alfred does this automatically**:
541
542
 
542
- 1. **TAG 체인 검증**:
543
+ 1. **TAG Chain Verification**:
543
544
  ```bash
544
545
  rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
545
546
  ```
546
547
 
547
- 2. **검증 결과**:
548
+ 2. **Verification results**:
548
549
  ```
549
550
  ✓ @SPEC:AUTH-001 → .moai/specs/SPEC-AUTH-001.md
550
551
  ✓ @TEST:AUTH-001 → tests/auth/service.test.ts
551
552
  ✓ @CODE:AUTH-001 → src/auth/service.ts
552
553
  ✓ @DOC:AUTH-001 → docs/api/auth.md
553
554
 
554
- TAG 체인 완전성: 100%
555
- 고아 TAG: 없음
556
- SPEC 버전 일치: v0.0.1
555
+ TAG Chain Integrity: 100%
556
+ Orphan TAG: None
557
+ SPEC Version Match: v0.0.1
557
558
  ```
558
559
 
559
- 3. **Living Document 생성**:
560
+ 3. **Create Living Document**:
560
561
  ```markdown
561
- # @DOC:AUTH-001: 인증 API 문서
562
+ # @DOC:AUTH-001: Authentication API documentation
562
563
 
563
564
  ## POST /auth/login
564
565
 
565
- **요구사항**: @SPEC:AUTH-001
566
- **구현**: @CODE:AUTH-001
567
- **테스트**: @TEST:AUTH-001
566
+ **Requirements**: @SPEC:AUTH-001
567
+ **Implementation**: @CODE:AUTH-001
568
+ **Test**: @TEST:AUTH-001
568
569
 
569
- [자동 생성된 API 문서...]
570
+ [Automatically generated API documentation...]
570
571
  ```
571
572
 
572
- 4. **PR 상태 전환 제안**:
573
+ 4. **PR Status Transition Proposal**:
573
574
  ```
574
575
  PR #123: feature/spec-auth-001
575
- 현재 상태: Draft
576
- 제안: Ready for Review
576
+ Current Status: Draft
577
+ Proposal: Ready for Review
577
578
 
578
- SPEC 요구사항:모두 충족
579
- TDD 이력: ✅ RED → GREEN → REFACTOR
580
- TRUST 검증:모두 통과
579
+ SPEC requirements:All met
580
+ TDD history: ✅ RED → GREEN → REFACTOR
581
+ TRUST Verification:All passed
581
582
 
582
- PR Ready 전환? (y/n)
583
+ PR Ready conversion? (y/n)
583
584
  ```
584
585
 
585
586
  ---
586
587
 
587
- ## 실전 예시: 간단한 계산기 만들기
588
+ ## Practical example: Creating a simple calculator
588
589
 
589
- 3단계 워크플로우를 실제로 사용해봅시다!
590
+ Let’s put the 3-step workflow into practice!
590
591
 
591
- ### 1️⃣ SPEC 작성
592
+ ### 1️⃣ Write SPEC
592
593
  ```bash
593
- /alfred:1-spec " 숫자를 더하는 계산기"
594
+ /alfred:1-plan "Calculator for adding two numbers"
594
595
 
595
- # Alfred 생성: .moai/specs/SPEC-CALC-001/spec.md
596
+ # Created by Alfred: .moai/specs/SPEC-CALC-001/spec.md
596
597
  ```
597
598
 
598
- **생성된 SPEC**:
599
+ **Generated SPEC**:
599
600
  ```yaml
600
601
  ---
601
602
  id: CALC-001
@@ -607,27 +608,27 @@ author: @YourName
607
608
  priority: medium
608
609
  ---
609
610
 
610
- # @SPEC:CALC-001: 계산기 - 덧셈 기능
611
+ # @SPEC:CALC-001: Calculator - addition function
611
612
 
612
613
  ## Ubiquitous Requirements
613
- - 시스템은 숫자의 덧셈을 제공해야 한다
614
+ - The system must provide addition of two numbers
614
615
 
615
616
  ## Event-driven Requirements
616
- - WHEN 숫자가 입력되면, 시스템은 합계를 반환해야 한다
617
+ - WHEN two numbers are entered, the system should return the sum
617
618
 
618
619
  ## Constraints
619
- - 입력은 숫자여야 한다
620
- - 결과는 정확해야 한다
620
+ - Input must be numeric
621
+ - Results must be accurate
621
622
  ```
622
623
 
623
- ### 2️⃣ TDD 구현
624
+ ### 2️⃣ TDD implementation
624
625
  ```bash
625
- /alfred:2-build CALC-001
626
+ /alfred:2-run CALC-001
626
627
 
627
- # Alfred Red-Green-Refactor 자동 수행
628
+ # Alfred performs Red-Green-Refactor automatically
628
629
  ```
629
630
 
630
- **생성된 코드**:
631
+ **Generated Code**:
631
632
  ```typescript
632
633
  // tests/calc.test.ts
633
634
  // @TEST:CALC-001 | SPEC: SPEC-CALC-001.md
@@ -646,46 +647,46 @@ export function add(a: number, b: number): number {
646
647
  }
647
648
  ```
648
649
 
649
- ### 3️⃣ 문서 동기화
650
+ ### 3️⃣ Document synchronization
650
651
  ```bash
651
652
  /alfred:3-sync
652
653
 
653
- # TAG 검증 문서 생성
654
+ # TAG verification and document generation
654
655
  ```
655
656
 
656
- **결과**:
657
+ **result**:
657
658
  ```
658
659
  ✓ @SPEC:CALC-001
659
660
  ✓ @TEST:CALC-001
660
661
  ✓ @CODE:CALC-001
661
662
  ✓ @DOC:CALC-001
662
663
 
663
- 완성! 3개 명령어로 SPEC → TEST → CODE → DOC 완성!
664
+ completion! SPEC → TEST → CODE → DOC completed with 3 commands!
664
665
  ```
665
666
 
666
667
  ---
667
668
 
668
- ## 다음 단계
669
+ ## Next steps
669
670
 
670
- ### MoAI-ADK를 익혔다면
671
+ ### If you have learned MoAI-ADK
671
672
 
672
- 이제 다른 스타일로 전환하여 실무에 적용해봅시다:
673
+ Now let's switch to a different style and put it into practice:
673
674
 
674
- | 다음 목표 | 권장 스타일 | 전환 명령어 |
675
- |----------|------------|------------|
676
- | 실무 프로젝트 개발 | **agentic-coding** | `/output-style agentic-coding` |
677
- | 새로운 언어/프레임워크 학습 | **study-with-alfred** | `/output-style study-with-alfred` |
675
+ | Next goal | Recommended Style | Conversion command |
676
+ | --------------------------------- | --------------------- | --------------------------------- |
677
+ | Practical project development | **agentic-coding** | `/output-style agentic-coding` |
678
+ | Learning a new language/framework | **study-with-alfred** | `/output-style study-with-alfred` |
678
679
 
679
- ### 배우기
680
+ ### Learn more
680
681
 
681
- **상세 가이드**:
682
- - `.moai/memory/development-guide.md` - 개발 상세 가이드
683
- - `.moai/project/structure.md` - 프로젝트 구조
684
- - `.moai/memory/spec-metadata.md` - SPEC 메타데이터 표준
682
+ **Detailed guide**:
683
+ - `.moai/memory/development-guide.md` - Detailed development guide
684
+ - `.moai/project/structure.md` - Project structure
685
+ - `.moai/memory/spec-metadata.md` - SPEC metadata standard
685
686
 
686
- **에이전트 문서**:
687
- - `AGENTS.md` - 9개 전문 에이전트 상세 설명
687
+ **Agent Documentation**:
688
+ - `AGENTS.md` - Detailed description of 9 specialized agents
688
689
 
689
690
  ---
690
691
 
691
- **MoAI ADK Learning**: MoAI-ADK의 핵심 개념과 워크플로우를 쉽게 배워 빠르게 익힐 있도록 돕는 친절한 학습 모드입니다.
692
+ **MoAI ADK Learning**: A friendly learning mode that helps you quickly learn the core concepts and workflow of MoAI-ADK.