moai-adk 0.4.0__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 (125) hide show
  1. moai_adk/__init__.py +1 -8
  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 +1 -0
  7. moai_adk/core/project/phase_executor.py +3 -1
  8. moai_adk/core/project/validator.py +3 -2
  9. moai_adk/core/template/backup.py +11 -3
  10. moai_adk/core/template/merger.py +16 -3
  11. moai_adk/core/template/processor.py +22 -3
  12. moai_adk/templates/.claude/agents/alfred/cc-manager.md +443 -424
  13. moai_adk/templates/.claude/agents/alfred/debug-helper.md +116 -103
  14. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +130 -116
  15. moai_adk/templates/.claude/agents/alfred/git-manager.md +186 -174
  16. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +227 -213
  17. moai_adk/templates/.claude/agents/alfred/project-manager.md +205 -125
  18. moai_adk/templates/.claude/agents/alfred/quality-gate.md +224 -209
  19. moai_adk/templates/.claude/agents/alfred/spec-builder.md +174 -160
  20. moai_adk/templates/.claude/agents/alfred/tag-agent.md +151 -139
  21. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +209 -196
  22. moai_adk/templates/.claude/agents/alfred/trust-checker.md +247 -233
  23. moai_adk/templates/.claude/commands/alfred/0-project.md +673 -640
  24. moai_adk/templates/.claude/commands/alfred/1-plan.md +342 -333
  25. moai_adk/templates/.claude/commands/alfred/2-run.md +295 -285
  26. moai_adk/templates/.claude/commands/alfred/3-sync.md +366 -356
  27. moai_adk/templates/.claude/hooks/alfred/README.md +52 -52
  28. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +44 -48
  29. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +17 -17
  30. moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +59 -59
  31. moai_adk/templates/.claude/hooks/alfred/core/context.py +19 -19
  32. moai_adk/templates/.claude/hooks/alfred/core/project.py +52 -52
  33. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +1 -1
  34. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +4 -4
  35. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +27 -27
  36. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +16 -17
  37. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +11 -11
  38. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +308 -307
  39. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +297 -296
  40. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +191 -190
  41. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +112 -0
  42. moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +103 -0
  43. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +103 -0
  44. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +95 -0
  45. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +99 -0
  46. moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +105 -0
  47. moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +97 -0
  48. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +97 -0
  49. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +90 -0
  50. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +99 -0
  51. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +87 -0
  52. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +62 -0
  53. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +70 -43
  54. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +141 -141
  55. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +179 -165
  56. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +78 -78
  57. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +90 -90
  58. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +39 -25
  59. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +117 -74
  60. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +131 -134
  61. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -12
  62. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +43 -12
  63. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +43 -12
  64. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +43 -12
  65. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +43 -12
  66. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +43 -12
  67. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +43 -11
  68. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +43 -12
  69. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +43 -12
  70. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +43 -12
  71. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +47 -11
  72. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +47 -11
  73. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +51 -14
  74. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +46 -10
  75. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +62 -25
  76. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +44 -17
  77. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +44 -14
  78. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +45 -13
  79. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +46 -14
  80. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +48 -8
  81. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +44 -12
  82. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +44 -12
  83. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +44 -11
  84. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +44 -11
  85. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +44 -12
  86. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +44 -11
  87. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +44 -11
  88. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +44 -11
  89. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +44 -12
  90. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +44 -12
  91. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +44 -12
  92. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +44 -12
  93. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +44 -11
  94. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +44 -11
  95. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +44 -12
  96. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +44 -11
  97. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +44 -11
  98. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +44 -12
  99. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +44 -12
  100. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +44 -11
  101. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +44 -12
  102. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +44 -12
  103. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +44 -12
  104. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +44 -43
  105. moai_adk/templates/.github/workflows/moai-gitflow.yml +36 -35
  106. moai_adk/templates/.moai/config.json +9 -6
  107. moai_adk/templates/.moai/memory/development-guide.md +220 -221
  108. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +85 -85
  109. moai_adk/templates/.moai/memory/spec-metadata.md +149 -150
  110. moai_adk/templates/.moai/project/product.md +90 -90
  111. moai_adk/templates/.moai/project/structure.md +85 -85
  112. moai_adk/templates/.moai/project/tech.md +117 -117
  113. moai_adk/templates/CLAUDE.md +350 -722
  114. moai_adk-0.4.1.dist-info/METADATA +303 -0
  115. moai_adk-0.4.1.dist-info/RECORD +152 -0
  116. moai_adk/templates/.claude/commands/alfred/1-spec.md +0 -31
  117. moai_adk/templates/.claude/commands/alfred/2-build.md +0 -30
  118. moai_adk/templates/.claude/skills/scripts/standardize_skills.py +0 -166
  119. moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +0 -43
  120. moai_adk/templates/.moai/hooks/pre-push.sample +0 -88
  121. moai_adk-0.4.0.dist-info/METADATA +0 -1816
  122. moai_adk-0.4.0.dist-info/RECORD +0 -145
  123. {moai_adk-0.4.0.dist-info → moai_adk-0.4.1.dist-info}/WHEEL +0 -0
  124. {moai_adk-0.4.0.dist-info → moai_adk-0.4.1.dist-info}/entry_points.txt +0 -0
  125. {moai_adk-0.4.0.dist-info → moai_adk-0.4.1.dist-info}/licenses/LICENSE +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Session event handlers
3
3
 
4
- SessionStart, SessionEnd 이벤트 처리
4
+ SessionStart, SessionEnd event handling
5
5
  """
6
6
 
7
7
  from core import HookPayload, HookResult
@@ -10,43 +10,43 @@ from core.project import count_specs, detect_language, get_git_info
10
10
 
11
11
 
12
12
  def handle_session_start(payload: HookPayload) -> HookResult:
13
- """SessionStart 이벤트 핸들러 (Checkpoint 목록 포함)
13
+ """SessionStart event handler (with Checkpoint list)
14
14
 
15
- Claude Code 세션 시작 프로젝트 상태를 요약하여 표시합니다.
16
- 언어, Git 상태, SPEC 진행도, Checkpoint 목록을 한눈에 확인할 있습니다.
15
+ When Claude Code Session starts, it displays a summary of project status.
16
+ You can check the language, Git status, SPEC progress, and checkpoint list at a glance.
17
17
 
18
18
  Args:
19
- payload: Claude Code 이벤트 페이로드 (cwd 필수)
19
+ payload: Claude Code event payload (cwd key required)
20
20
 
21
21
  Returns:
22
- HookResult(message=프로젝트 상태 요약 메시지, systemMessage=사용자 표시용)
22
+ HookResult(message=project status summary message, systemMessage=for user display)
23
23
 
24
24
  Message Format:
25
25
  🚀 MoAI-ADK Session Started
26
- Language: {언어}
27
- Branch: {브랜치} ({커밋 해시})
28
- Changes: {변경 파일 }
29
- SPEC Progress: {완료}/{전체} ({퍼센트}%)
30
- Checkpoints: {개수} available (최신 3 표시)
26
+ Language: {language}
27
+ Branch: {branch} ({commit hash})
28
+ Changes: {Number of Changed Files}
29
+ SPEC Progress: {Complete}/{Total} ({percent}%)
30
+ Checkpoints: {number} available (showing the latest 3 items)
31
31
 
32
32
  Note:
33
- - Claude Code SessionStart 여러 단계로 처리 (clear → compact)
34
- - 중복 출력 방지를 위해 "compact" 단계에서만 메시지 표시
35
- - "clear" 단계는 결과 반환 (사용자에게 보이지 않음)
33
+ - Claude Code processes SessionStart in several stages (clear → compact)
34
+ - Display message only at compact stage to prevent duplicate output
35
+ - "clear" step returns empty result (invisible to user)
36
36
 
37
37
  TDD History:
38
- - RED: 세션 시작 메시지 형식 테스트
39
- - GREEN: helper 함수 조합하여 상태 메시지 생성
40
- - REFACTOR: 메시지 포맷 개선, 가독성 향상, checkpoint 목록 추가
41
- - FIX: clear 단계 중복 출력 방지 (compact 단계만 표시)
38
+ - RED: Session startup message format test
39
+ - GREEN: Generate status message by combining helper functions
40
+ - REFACTOR: Improved message format, improved readability, added checkpoint list
41
+ - FIX: Prevent duplicate output of clear step (only compact step is displayed)
42
42
 
43
43
  @TAG:CHECKPOINT-EVENT-001
44
44
  """
45
- # Claude Code SessionStart 여러 단계로 실행됨 (clear, compact )
46
- # "clear" 단계는 무시하고 "compact" 단계에서만 메시지 출력
45
+ # Claude Code SessionStart runs in several stages (clear, compact, etc.)
46
+ # Ignore the "clear" stage and output messages only at the "compact" stage
47
47
  event_phase = payload.get("phase", "")
48
48
  if event_phase == "clear":
49
- return HookResult() # 결과 반환 (중복 출력 방지)
49
+ return HookResult() # returns an empty result (prevents duplicate output)
50
50
 
51
51
  cwd = payload.get("cwd", ".")
52
52
  language = detect_language(cwd)
@@ -59,7 +59,7 @@ def handle_session_start(payload: HookPayload) -> HookResult:
59
59
  changes = git_info.get("changes", 0)
60
60
  spec_progress = f"{specs['completed']}/{specs['total']}"
61
61
 
62
- # systemMessage: 사용자에게 직접 표시
62
+ # systemMessage: displayed directly to the user
63
63
  lines = [
64
64
  "🚀 MoAI-ADK Session Started",
65
65
  f" Language: {language}",
@@ -68,10 +68,10 @@ def handle_session_start(payload: HookPayload) -> HookResult:
68
68
  f" SPEC Progress: {spec_progress} ({specs['percentage']}%)",
69
69
  ]
70
70
 
71
- # Checkpoint 목록 추가 (최신 3개만 표시)
71
+ # Add Checkpoint list (show only the latest 3 items)
72
72
  if checkpoints:
73
73
  lines.append(f" Checkpoints: {len(checkpoints)} available")
74
- for cp in reversed(checkpoints[-3:]): # 최신 3
74
+ for cp in reversed(checkpoints[-3:]): # Latest 3 items
75
75
  branch_short = cp["branch"].replace("before-", "")
76
76
  lines.append(f" - {branch_short}")
77
77
  lines.append(" Restore: /alfred:0-project restore")
@@ -79,13 +79,13 @@ def handle_session_start(payload: HookPayload) -> HookResult:
79
79
  system_message = "\n".join(lines)
80
80
 
81
81
  return HookResult(
82
- message=system_message, # Claude 컨텍스트용
83
- systemMessage=system_message, # 사용자 표시용
82
+ message=system_message, # for Claude context
83
+ systemMessage=system_message, # For user display
84
84
  )
85
85
 
86
86
 
87
87
  def handle_session_end(payload: HookPayload) -> HookResult:
88
- """SessionEnd 이벤트 핸들러 (기본 구현)"""
88
+ """SessionEnd event handler (default implementation)"""
89
89
  return HookResult()
90
90
 
91
91
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """Tool usage handlers
3
3
 
4
- PreToolUse, PostToolUse 이벤트 처리
4
+ PreToolUse, PostToolUse event handling
5
5
  """
6
6
 
7
7
  from core import HookPayload, HookResult
@@ -9,19 +9,19 @@ from core.checkpoint import create_checkpoint, detect_risky_operation
9
9
 
10
10
 
11
11
  def handle_pre_tool_use(payload: HookPayload) -> HookResult:
12
- """PreToolUse 이벤트 핸들러 (Event-Driven Checkpoint 통합)
12
+ """PreToolUse event handler (Event-Driven Checkpoint integration)
13
13
 
14
- 위험한 작업 자동으로 checkpoint를 생성합니다.
15
- Claude Code tool 사용 전에 호출되며, 위험 감지 사용자에게 알립니다.
14
+ Automatically creates checkpoints before dangerous operations.
15
+ Called before using the Claude Code tool, it notifies the user when danger is detected.
16
16
 
17
17
  Args:
18
- payload: Claude Code 이벤트 페이로드
19
- (tool, arguments, cwd 키 포함)
18
+ payload: Claude Code event payload
19
+ (includes tool, arguments, cwd keys)
20
20
 
21
21
  Returns:
22
22
  HookResult(
23
- message=checkpoint 생성 알림 (위험 감지 ),
24
- blocked=False (항상 작업 계속 진행)
23
+ message=checkpoint creation notification (when danger is detected);
24
+ blocked=False (always continue operation)
25
25
  )
26
26
 
27
27
  Checkpoint Triggers:
@@ -30,13 +30,13 @@ def handle_pre_tool_use(payload: HookPayload) -> HookResult:
30
30
  - MultiEdit: ≥10 files
31
31
 
32
32
  Examples:
33
- Bash tool (rm -rf) 감지:
33
+ Bash tool (rm -rf) detection:
34
34
  → "🛡️ Checkpoint created: before-delete-20251015-143000"
35
35
 
36
36
  Notes:
37
- - 위험 감지 후에도 blocked=False 반환 (작업 계속)
38
- - Checkpoint 실패 시에도 작업 진행 (무시)
39
- - 투명한 백그라운드 동작
37
+ - Return blocked=False even after detection of danger (continue operation)
38
+ - Work continues even when checkpoint fails (ignores)
39
+ - Transparent background operation
40
40
 
41
41
  @TAG:CHECKPOINT-EVENT-001
42
42
  """
@@ -44,18 +44,17 @@ def handle_pre_tool_use(payload: HookPayload) -> HookResult:
44
44
  tool_args = payload.get("arguments", {})
45
45
  cwd = payload.get("cwd", ".")
46
46
 
47
- # 위험한 작업 감지
47
+ # Dangerous operation detection
48
48
  is_risky, operation_type = detect_risky_operation(tool_name, tool_args, cwd)
49
49
 
50
- # 위험 감지 checkpoint 생성
50
+ # Create checkpoint when danger is detected
51
51
  if is_risky:
52
52
  checkpoint_branch = create_checkpoint(cwd, operation_type)
53
53
 
54
54
  if checkpoint_branch != "checkpoint-failed":
55
55
  message = (
56
56
  f"🛡️ Checkpoint created: {checkpoint_branch}\n"
57
- f" Operation: {operation_type}\n"
58
- f" Restore: /alfred:0-project restore"
57
+ f" Operation: {operation_type}"
59
58
  )
60
59
 
61
60
  return HookResult(message=message, blocked=False)
@@ -64,7 +63,7 @@ def handle_pre_tool_use(payload: HookPayload) -> HookResult:
64
63
 
65
64
 
66
65
  def handle_post_tool_use(payload: HookPayload) -> HookResult:
67
- """PostToolUse 이벤트 핸들러 (기본 구현)"""
66
+ """PostToolUse event handler (default implementation)"""
68
67
  return HookResult()
69
68
 
70
69
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python3
2
2
  """User interaction handlers
3
3
 
4
- UserPromptSubmit 이벤트 처리
4
+ Handling the UserPromptSubmit event
5
5
  """
6
6
 
7
7
  from core import HookPayload, HookResult
@@ -9,25 +9,25 @@ from core.context import get_jit_context
9
9
 
10
10
 
11
11
  def handle_user_prompt_submit(payload: HookPayload) -> HookResult:
12
- """UserPromptSubmit 이벤트 핸들러
12
+ """UserPromptSubmit event handler
13
13
 
14
- 사용자 프롬프트를 분석하여 관련 문서를 자동으로 컨텍스트에 추가합니다.
15
- JIT (Just-in-Time) Retrieval 원칙에 따라 필요한 문서만 로드합니다.
14
+ Analyze user prompts and automatically add relevant documents into context.
15
+ Follow the just-in-time (JIT) retrieval principle to load only the documents you need.
16
16
 
17
17
  Args:
18
- payload: Claude Code 이벤트 페이로드
19
- (userPrompt, cwd 키 포함)
18
+ payload: Claude Code event payload
19
+ (includes userPrompt, cwd keys)
20
20
 
21
21
  Returns:
22
22
  HookResult(
23
- message=로드된 파일 (또는 None),
24
- contextFiles=추천 문서 경로 리스트
23
+ message=Number of Files loaded (or None),
24
+ contextFiles=Recommended document path list
25
25
  )
26
26
 
27
27
  TDD History:
28
- - RED: JIT 문서 로딩 시나리오 테스트
29
- - GREEN: get_jit_context() 호출하여 문서 추천
30
- - REFACTOR: 메시지 조건부 표시 (파일 있을 때만)
28
+ - RED: JIT document loading scenario testing
29
+ - GREEN: Recommend documents by calling get_jit_context()
30
+ - REFACTOR: Message conditional display (only when there is a file)
31
31
  """
32
32
  user_prompt = payload.get("userPrompt", "")
33
33
  cwd = payload.get("cwd", ".")