moai-adk 0.6.3__py3-none-any.whl → 0.8.0__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.
Files changed (31) hide show
  1. moai_adk/core/config/__init__.py +13 -0
  2. moai_adk/core/config/migration.py +113 -0
  3. moai_adk/core/project/phase_executor.py +8 -3
  4. moai_adk/templates/.claude/agents/alfred/cc-manager.md +1 -1
  5. moai_adk/templates/.claude/agents/alfred/debug-helper.md +2 -2
  6. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +2 -2
  7. moai_adk/templates/.claude/agents/alfred/git-manager.md +2 -2
  8. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +2 -2
  9. moai_adk/templates/.claude/agents/alfred/project-manager.md +6 -6
  10. moai_adk/templates/.claude/agents/alfred/quality-gate.md +2 -2
  11. moai_adk/templates/.claude/agents/alfred/skill-factory.md +7 -7
  12. moai_adk/templates/.claude/agents/alfred/spec-builder.md +2 -2
  13. moai_adk/templates/.claude/agents/alfred/tag-agent.md +2 -2
  14. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +2 -2
  15. moai_adk/templates/.claude/agents/alfred/trust-checker.md +2 -2
  16. moai_adk/templates/.claude/commands/alfred/0-project.md +54 -37
  17. moai_adk/templates/.claude/commands/alfred/1-plan.md +104 -16
  18. moai_adk/templates/.claude/commands/alfred/2-run.md +28 -16
  19. moai_adk/templates/.claude/commands/alfred/3-sync.md +38 -21
  20. moai_adk/templates/.claude/hooks/alfred/core/project.py +145 -13
  21. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +90 -20
  22. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +1 -1
  23. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +1 -1
  24. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +1 -1
  25. moai_adk/templates/.moai/config.json +4 -0
  26. moai_adk/templates/CLAUDE.md +67 -1
  27. {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/METADATA +1 -1
  28. {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/RECORD +31 -29
  29. {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/WHEEL +0 -0
  30. {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/entry_points.txt +0 -0
  31. {moai_adk-0.6.3.dist-info → moai_adk-0.8.0.dist-info}/licenses/LICENSE +0 -0
@@ -6,14 +6,16 @@ SessionStart, SessionEnd event handling
6
6
 
7
7
  from core import HookPayload, HookResult
8
8
  from core.checkpoint import list_checkpoints
9
- from core.project import count_specs, detect_language, get_git_info
9
+ from core.project import count_specs, detect_language, get_git_info, get_package_version_info
10
10
 
11
11
 
12
12
  def handle_session_start(payload: HookPayload) -> HookResult:
13
- """SessionStart event handler (with Checkpoint list)
13
+ """SessionStart event handler with GRACEFUL DEGRADATION
14
14
 
15
15
  When Claude Code Session starts, it displays a summary of project status.
16
16
  You can check the language, Git status, SPEC progress, and checkpoint list at a glance.
17
+ All optional operations are wrapped in try-except to ensure hook completes quickly even if
18
+ Git commands, file I/O, or other operations timeout or fail.
17
19
 
18
20
  Args:
19
21
  payload: Claude Code event payload (cwd key required)
@@ -24,15 +26,23 @@ def handle_session_start(payload: HookPayload) -> HookResult:
24
26
  Message Format:
25
27
  🚀 MoAI-ADK Session Started
26
28
  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)
29
+ [Branch: {branch} ({commit hash})] - optional if git fails
30
+ [Changes: {Number of Changed Files}] - optional if git fails
31
+ [SPEC Progress: {Complete}/{Total} ({percent}%)] - optional if specs fail
32
+ [Checkpoints: {number} available] - optional if checkpoint list fails
33
+
34
+ Graceful Degradation Strategy:
35
+ - CRITICAL: Language detection (must succeed - no try-except)
36
+ - OPTIONAL: Git info (skip if timeout/failure)
37
+ - OPTIONAL: SPEC progress (skip if timeout/failure)
38
+ - OPTIONAL: Checkpoint list (skip if timeout/failure)
39
+ - Always display SOMETHING to user, never return empty message
31
40
 
32
41
  Note:
33
42
  - Claude Code processes SessionStart in several stages (clear → compact)
34
43
  - Display message only at "compact" stage to prevent duplicate output
35
44
  - "clear" step returns minimal result (empty hookSpecificOutput)
45
+ - CRITICAL: All optional operations must complete within 2-3 seconds total
36
46
 
37
47
  TDD History:
38
48
  - RED: Session startup message format test
@@ -40,8 +50,10 @@ def handle_session_start(payload: HookPayload) -> HookResult:
40
50
  - REFACTOR: Improved message format, improved readability, added checkpoint list
41
51
  - FIX: Prevent duplicate output of clear step (only compact step is displayed)
42
52
  - UPDATE: Migrated to Claude Code standard Hook schema
53
+ - HOTFIX: Add graceful degradation for timeout scenarios (Issue #66)
43
54
 
44
55
  @TAG:CHECKPOINT-EVENT-001
56
+ @TAG:HOOKS-TIMEOUT-001
45
57
  """
46
58
  # Claude Code SessionStart runs in several stages (clear, compact, etc.)
47
59
  # Ignore the "clear" stage and output messages only at the "compact" stage
@@ -51,32 +63,90 @@ def handle_session_start(payload: HookPayload) -> HookResult:
51
63
  return HookResult(continue_execution=True)
52
64
 
53
65
  cwd = payload.get("cwd", ".")
66
+
67
+ # CRITICAL: Language detection - MUST succeed (no try-except)
54
68
  language = detect_language(cwd)
55
- git_info = get_git_info(cwd)
56
- specs = count_specs(cwd)
57
- checkpoints = list_checkpoints(cwd, max_count=10)
58
69
 
59
- branch = git_info.get("branch", "N/A")
60
- commit = git_info.get("commit", "N/A")[:7]
61
- changes = git_info.get("changes", 0)
62
- spec_progress = f"{specs['completed']}/{specs['total']}"
70
+ # OPTIONAL: Git info - skip if timeout/failure
71
+ git_info = {}
72
+ try:
73
+ git_info = get_git_info(cwd)
74
+ except Exception:
75
+ # Graceful degradation - continue without git info
76
+ pass
77
+
78
+ # OPTIONAL: SPEC progress - skip if timeout/failure
79
+ specs = {"completed": 0, "total": 0, "percentage": 0}
80
+ try:
81
+ specs = count_specs(cwd)
82
+ except Exception:
83
+ # Graceful degradation - continue without spec info
84
+ pass
85
+
86
+ # OPTIONAL: Checkpoint list - skip if timeout/failure
87
+ checkpoints = []
88
+ try:
89
+ checkpoints = list_checkpoints(cwd, max_count=10)
90
+ except Exception:
91
+ # Graceful degradation - continue without checkpoints
92
+ pass
93
+
94
+ # OPTIONAL: Package version info - skip if timeout/failure
95
+ version_info = {}
96
+ try:
97
+ version_info = get_package_version_info()
98
+ except Exception:
99
+ # Graceful degradation - continue without version info
100
+ pass
101
+
102
+ # Build message with available information
103
+ branch = git_info.get("branch", "N/A") if git_info else "N/A"
104
+ commit = git_info.get("commit", "N/A")[:7] if git_info else "N/A"
105
+ changes = git_info.get("changes", 0) if git_info else 0
106
+ spec_progress = f"{specs['completed']}/{specs['total']}" if specs["total"] > 0 else "0/0"
63
107
 
64
108
  # system_message: displayed directly to the user
65
109
  lines = [
66
110
  "🚀 MoAI-ADK Session Started",
67
- f" Language: {language}",
68
- f" Branch: {branch} ({commit})",
69
- f" Changes: {changes}",
70
- f" SPEC Progress: {spec_progress} ({specs['percentage']}%)",
111
+ "", # Blank line after title
71
112
  ]
72
113
 
114
+ # Add version info first (at the top, right after title)
115
+ if version_info and version_info.get("current") != "unknown":
116
+ version_line = f" 🗿 MoAI-ADK Ver: {version_info['current']}"
117
+ if version_info.get("update_available"):
118
+ version_line += f" → {version_info['latest']} available ✨"
119
+ lines.append(version_line)
120
+
121
+ # Add upgrade recommendation if update is available
122
+ if version_info.get("update_available") and version_info.get("upgrade_command"):
123
+ lines.append(f" ⬆️ Upgrade: {version_info['upgrade_command']}")
124
+
125
+ # Add language info
126
+ lines.append(f" 🐍 Language: {language}")
127
+
128
+ # Add Git info only if available (not degraded)
129
+ if git_info:
130
+ lines.append(f" 🌿 Branch: {branch} ({commit})")
131
+ lines.append(f" 📝 Changes: {changes}")
132
+
133
+ # Add last commit message if available
134
+ last_commit = git_info.get("last_commit", "")
135
+ if last_commit:
136
+ lines.append(f" 🔨 Last: {last_commit}")
137
+
73
138
  # Add Checkpoint list (show only the latest 3 items)
74
139
  if checkpoints:
75
- lines.append(f" Checkpoints: {len(checkpoints)} available")
140
+ lines.append(f" 🗂️ Checkpoints: {len(checkpoints)} available")
76
141
  for cp in reversed(checkpoints[-3:]): # Latest 3 items
77
142
  branch_short = cp["branch"].replace("before-", "")
78
- lines.append(f" - {branch_short}")
79
- lines.append(" Restore: /alfred:0-project restore")
143
+ lines.append(f" 📌 {branch_short}")
144
+ lines.append("") # Blank line before restore command
145
+ lines.append(" ↩️ Restore: /alfred:0-project restore")
146
+
147
+ # Add SPEC progress only if available (not degraded) - at the bottom
148
+ if specs["total"] > 0:
149
+ lines.append(f" 📋 SPEC Progress: {spec_progress} ({specs['percentage']}%)")
80
150
 
81
151
  system_message = "\n".join(lines)
82
152
 
@@ -8,7 +8,7 @@ description: "Agent-based coding mode that integrates hands-on development and c
8
8
  ---
9
9
 
10
10
  # Agentic Coding
11
- > Interactive prompts rely on `Skill("moai-alfred-interactive-questions")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
11
+ > Interactive prompts rely on `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
12
12
 
13
13
  **Audience**: Professional developers, team leaders, architects
14
14
 
@@ -8,7 +8,7 @@ description: "Learning mode to easily learn MoAI-ADK concepts and workflow"
8
8
  ---
9
9
 
10
10
  # MoAI ADK Learning
11
- > Interactive prompts rely on `Skill("moai-alfred-interactive-questions")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
11
+ > Interactive prompts rely on `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
12
12
 
13
13
  **Audience**: Developers new to MoAI-ADK
14
14
 
@@ -8,7 +8,7 @@ description: "Learning mode to easily learn new skills with Alfred"
8
8
  ---
9
9
 
10
10
  # Study with Alfred
11
- > Interactive prompts rely on `Skill("moai-alfred-interactive-questions")` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
11
+ > Interactive prompts rely on `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` so AskUserQuestion renders TUI selection menus for user surveys and approvals.
12
12
 
13
13
  **Audience**: Developers looking to learn new technologies/languages/frameworks
14
14
 
@@ -55,6 +55,10 @@
55
55
  ],
56
56
  "current_stage": "initialized"
57
57
  },
58
+ "language": {
59
+ "conversation_language": "{{CONVERSATION_LANGUAGE}}",
60
+ "conversation_language_name": "{{CONVERSATION_LANGUAGE_NAME}}"
61
+ },
58
62
  "project": {
59
63
  "name": "{{PROJECT_NAME}}",
60
64
  "description": "{{PROJECT_DESCRIPTION}}",
@@ -6,7 +6,7 @@
6
6
  > **Project Owner**: {{PROJECT_OWNER}}
7
7
  > **Config**: `.moai/config.json`
8
8
  >
9
- > All interactions with Alfred can use `Skill("moai-alfred-interactive-questions")` for TUI-based responses.
9
+ > **Note**: `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` provides TUI-based responses when user interaction is needed. The skill loads on-demand.
10
10
 
11
11
  ---
12
12
 
@@ -213,6 +213,72 @@ Combine layers when necessary: a command triggers sub-agents, sub-agents activat
213
213
 
214
214
  ---
215
215
 
216
+ ## ⚡ Alfred Command Completion Pattern
217
+
218
+ **CRITICAL RULE**: When any Alfred command (`/alfred:0-project`, `/alfred:1-plan`, `/alfred:2-run`, `/alfred:3-sync`) completes, **ALWAYS use `AskUserQuestion` tool** to ask the user what to do next.
219
+
220
+ ### Pattern for Each Command
221
+
222
+ #### `/alfred:0-project` Completion
223
+ ```
224
+ After project initialization completes:
225
+ ├─ Use AskUserQuestion to ask:
226
+ │ ├─ Option 1: Proceed to /alfred:1-plan (plan specifications)
227
+ │ ├─ Option 2: Start new session with /clear
228
+ │ └─ Option 3: Review project structure
229
+ └─ DO NOT suggest multiple next steps in prose - use AskUserQuestion only
230
+ ```
231
+
232
+ #### `/alfred:1-plan` Completion
233
+ ```
234
+ After planning completes:
235
+ ├─ Use AskUserQuestion to ask:
236
+ │ ├─ Option 1: Proceed to /alfred:2-run (implement SPEC)
237
+ │ ├─ Option 2: Revise SPEC before implementation
238
+ │ └─ Option 3: Start new session with /clear
239
+ └─ DO NOT suggest multiple next steps in prose - use AskUserQuestion only
240
+ ```
241
+
242
+ #### `/alfred:2-run` Completion
243
+ ```
244
+ After implementation completes:
245
+ ├─ Use AskUserQuestion to ask:
246
+ │ ├─ Option 1: Proceed to /alfred:3-sync (synchronize docs)
247
+ │ ├─ Option 2: Run additional tests/validation
248
+ │ └─ Option 3: Start new session with /clear
249
+ └─ DO NOT suggest multiple next steps in prose - use AskUserQuestion only
250
+ ```
251
+
252
+ #### `/alfred:3-sync` Completion
253
+ ```
254
+ After sync completes:
255
+ ├─ Use AskUserQuestion to ask:
256
+ │ ├─ Option 1: Return to /alfred:1-plan (next feature)
257
+ │ ├─ Option 2: Merge PR to main
258
+ │ └─ Option 3: Complete session
259
+ └─ DO NOT suggest multiple next steps in prose - use AskUserQuestion only
260
+ ```
261
+
262
+ ### Implementation Rules
263
+
264
+ 1. **Always use AskUserQuestion** - Never suggest next steps in prose (e.g., "You can now run `/alfred:1-plan`...")
265
+ 2. **Provide 3-4 clear options** - Not open-ended or free-form
266
+ 3. **Language**: Present options in user's `conversation_language` (Korean, Japanese, etc.)
267
+ 4. **Question format**: Use the `moai-alfred-interactive-questions` skill documentation as reference (don't invoke Skill())
268
+
269
+ ### Example (Correct Pattern)
270
+ ```markdown
271
+ # CORRECT ✅
272
+ After project setup, use AskUserQuestion tool to ask:
273
+ - "프로젝트 초기화가 완료되었습니다. 다음으로 뭘 하시겠습니까?"
274
+ - Options: 1) 스펙 작성 진행 2) 프로젝트 구조 검토 3) 새 세션 시작
275
+
276
+ # INCORRECT ❌
277
+ Your project is ready. You can now run `/alfred:1-plan` to start planning specs...
278
+ ```
279
+
280
+ ---
281
+
216
282
  ## Project Information
217
283
 
218
284
  - **Name**: MoAI-ADK
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: moai-adk
3
- Version: 0.6.3
3
+ Version: 0.8.0
4
4
  Summary: MoAI Agentic Development Kit - SPEC-First TDD with Alfred SuperAgent & Complete Skills v2.0
5
5
  Project-URL: Homepage, https://github.com/modu-ai/moai-adk
6
6
  Project-URL: Repository, https://github.com/modu-ai/moai-adk
@@ -11,6 +11,8 @@ moai_adk/cli/commands/update.py,sha256=iwDDD_ozCfkGUk1ci2CPfybzRtNFPMi-680NxmKhD
11
11
  moai_adk/cli/prompts/__init__.py,sha256=a4_ctS4KEvGtmM9j7z8XIlMkpftohjVb9woUwZu38gE,136
12
12
  moai_adk/cli/prompts/init_prompts.py,sha256=OZ_T-b4XfkyXQsKXTwLcDYwmLbaf0k5oZfbi_asTH9M,5226
13
13
  moai_adk/core/__init__.py,sha256=1sJO-PHEKF1NmYjeOPPPzn_HRgYln3CKlCpUH4E2Jrs,129
14
+ moai_adk/core/config/__init__.py,sha256=30Qx-GSN1LLI_9ngNqQ6A6d40J92xK10AQxhKw1-MzU,328
15
+ moai_adk/core/config/migration.py,sha256=KzFGx3kPNoOaZCmAQvNpvlrQq48N3Gj6o2COVV7jciA,3541
14
16
  moai_adk/core/diagnostics/__init__.py,sha256=aF-qC2CW0wxZDpxnlh-TILYs3kqwOIj2EjXYEXY-2j8,387
15
17
  moai_adk/core/diagnostics/slash_commands.py,sha256=cEH96M5RLxa1JLyoeoRqziBMzAbnN30j04YjNjxM7Ro,4682
16
18
  moai_adk/core/git/__init__.py,sha256=Kpq2yU5X5bBBUV8ySYIB1_vMPvfdFS6hTYx2Ue-CoeQ,697
@@ -25,7 +27,7 @@ moai_adk/core/project/backup_utils.py,sha256=-zEXIhGsM-MdX1voUIpKxLlR57Y-lqLEZSi
25
27
  moai_adk/core/project/checker.py,sha256=B94mGLHDZkjQnFDgV8sknJDms5oIiHeyKcgxWI87-f8,9523
26
28
  moai_adk/core/project/detector.py,sha256=ADVg36yvyqJEPQVNc_x9iInF9dzi7YZqqXfDq2XL17Q,4230
27
29
  moai_adk/core/project/initializer.py,sha256=yqxePuCO2ednzCOpDZLczyCP079J6Io4pvtynTp4J6w,6724
28
- moai_adk/core/project/phase_executor.py,sha256=w3z8VRT9p9rcmMt2lWCHmH5rHSWmLMvbe1dHHMEu0KY,10666
30
+ moai_adk/core/project/phase_executor.py,sha256=xd7wREmZPjNDO-sHv5CDLjPS8NsmhvQ-qv2m9AVQ9QY,10998
29
31
  moai_adk/core/project/validator.py,sha256=gH9ywTMQTwqtqBVrMWj5_bPYFrVzjHuFoU4QdeVa1O4,5756
30
32
  moai_adk/core/quality/__init__.py,sha256=_uNsbThBLmVLWZCPmEgfFyQqJx3tdef9jhkP9QoHuJY,222
31
33
  moai_adk/core/quality/trust_checker.py,sha256=CN067AiublAH46IBAKEV_I-8Wc0bNaR2dMnMf9n5oBg,15198
@@ -38,25 +40,25 @@ moai_adk/core/template/languages.py,sha256=V0wLcxCIOve9Q_0_NhrHGQevSIN_MB612GwrO
38
40
  moai_adk/core/template/merger.py,sha256=ZV8_U1HZJ3bfAtgyNmSxgj8KdTMt4eUnUG6kVVRT7bE,6909
39
41
  moai_adk/core/template/processor.py,sha256=_nYHiuN9PGzC3iE4X5SpRMFW-OTkI2u1dOAjD98axAk,19190
40
42
  moai_adk/templates/.gitignore,sha256=6VNKResdDpyaii3cmJA4pOLwK2PhYARIWkUODYtKyxg,310
41
- moai_adk/templates/CLAUDE.md,sha256=uf6n3RKG0YdtWO26ZDfkE39jIYvXuRekgRFz2YflLLQ,11281
43
+ moai_adk/templates/CLAUDE.md,sha256=SIuw1GLq5w6Mh1ejhnKQ8IlnJKjUs5FmSG8EkL4-N6w,13839
42
44
  moai_adk/templates/__init__.py,sha256=6MV1gCB7PLZMiL4gaD_dZSKxtcQyo45MMTuN8fVdchA,104
43
45
  moai_adk/templates/.claude/settings.json,sha256=SwjID_m0XWmHT12lqkhJXL1Sh30zAr9_tk4drQ9x9K8,3149
44
- moai_adk/templates/.claude/agents/alfred/cc-manager.md,sha256=63HRf8C7JNRApeOqGJi9Iwhcn5is9ImucsfRHhZ5zFU,8348
45
- moai_adk/templates/.claude/agents/alfred/debug-helper.md,sha256=X6dOEtT93h8RHwRhx-EFXtKAoXZebI0B14KYhLttDho,7204
46
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md,sha256=fFeUB81my-bTwJmLlBZIsANn1E6C8lEeq7swHI7g7vc,8619
47
- moai_adk/templates/.claude/agents/alfred/git-manager.md,sha256=jZUR-XrZ4McQCjGSt64Wb9pt5uNKwcV_n9xBxbR6iV4,14057
48
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md,sha256=wx71G8_YAqro77ecej7tkSPKHcCBU7yCClxqOhbgzXA,11528
49
- moai_adk/templates/.claude/agents/alfred/project-manager.md,sha256=rXTou0zOjJmBJUnkU9_5VZKNOffjxIhK3bYcAj-HuW4,14891
50
- moai_adk/templates/.claude/agents/alfred/quality-gate.md,sha256=x7OZmqTGgeJqtZ6vAKmVOWKwpdrEYMmcydcU7LGn5Tg,10694
51
- moai_adk/templates/.claude/agents/alfred/skill-factory.md,sha256=PGnrkeT5630ELQ2vBwVGaJr3vzU6I-4LObiZrCCjGjw,26229
52
- moai_adk/templates/.claude/agents/alfred/spec-builder.md,sha256=yWtF_gALjHwirPvtkz9PQOfCbFZevH7WWFqjEaSiAEA,12490
53
- moai_adk/templates/.claude/agents/alfred/tag-agent.md,sha256=ocDVfqk1q7f8SH7As3X_hokiRfostCnLaJf37-7dw8Q,9594
54
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md,sha256=vCyJRZWdRXPk9qdra-QQtEf21ap28w8sx5VYPnWMHMA,10200
55
- moai_adk/templates/.claude/agents/alfred/trust-checker.md,sha256=oTQ6BvGYU_luJDNwqjNPIU9G5dKUWRV4wJpmgyqr4dk,13578
56
- moai_adk/templates/.claude/commands/alfred/0-project.md,sha256=-gyBdhT7dYIGMNYv91DF_1uepGW_B0lJMDV8nlrzuIE,45878
57
- moai_adk/templates/.claude/commands/alfred/1-plan.md,sha256=t_6ubTvlZsp8u1RIy5isJFlITH7tFp2UKiIg0NfJ4bU,22028
58
- moai_adk/templates/.claude/commands/alfred/2-run.md,sha256=m2WLbrR0Njky5SPMLTuvQPJBeSUcmlUXivr4IbvKUYA,20415
59
- moai_adk/templates/.claude/commands/alfred/3-sync.md,sha256=yhxi-V7NOkhRYcrNKQ4zYJGxHrtQTfRm_ejcExf-SsE,22402
46
+ moai_adk/templates/.claude/agents/alfred/cc-manager.md,sha256=ievRB2BMAXjQ6iepWTLTCIHR9Dc4_L-Ab-dqhKQDdxE,8382
47
+ moai_adk/templates/.claude/agents/alfred/debug-helper.md,sha256=C6jF54jsbI1y4xmb6s-MWVpuYISaFDQzY88M_HJhurw,7289
48
+ moai_adk/templates/.claude/agents/alfred/doc-syncer.md,sha256=iFP09SKUEMfb4OdMT3gMBakwHf0UvIaBfQHhb0YzdWo,8704
49
+ moai_adk/templates/.claude/agents/alfred/git-manager.md,sha256=t3iDdVgs0TZUQRHQS_F9GtLcAvnXWihM7t2oy_BPJBQ,14142
50
+ moai_adk/templates/.claude/agents/alfred/implementation-planner.md,sha256=Xysj1KinbZt-PTw0Sx1bGFlTCxBuQGFfTCNLdatjb8E,11613
51
+ moai_adk/templates/.claude/agents/alfred/project-manager.md,sha256=N-CaSiWnCdaJXWM3tZegMg4ispm-ioHKnuzmUdwQ2YE,15111
52
+ moai_adk/templates/.claude/agents/alfred/quality-gate.md,sha256=_OebbNOxpKmUAde1zmjjYL8UrniFnIp710xFd7EtuU0,10779
53
+ moai_adk/templates/.claude/agents/alfred/skill-factory.md,sha256=EUXtroq8qN22vAqyMxHgGLx7TVOe_in3quEB6K1HmS8,26467
54
+ moai_adk/templates/.claude/agents/alfred/spec-builder.md,sha256=xGUYsGXB40lBcvmlONIx3tK4iUOVNRFfPatCXNDJonE,12575
55
+ moai_adk/templates/.claude/agents/alfred/tag-agent.md,sha256=_ydlDocuxal89jGwpGIfQLfEbcCUDNoj8CDyDONRRYg,9679
56
+ moai_adk/templates/.claude/agents/alfred/tdd-implementer.md,sha256=qTDJotSnK1KSxe2j6Kpvx0qLYwmzu0e9lKHmD6PVwgc,10285
57
+ moai_adk/templates/.claude/agents/alfred/trust-checker.md,sha256=Vc5ReZjdl1FAifg_9qKt2MYWAdMHmq2psda-kyVhtVI,13663
58
+ moai_adk/templates/.claude/commands/alfred/0-project.md,sha256=Acx7045n1e6-GC1g6QDePVoI2tOGC_fZFvokgrvz_T8,46704
59
+ moai_adk/templates/.claude/commands/alfred/1-plan.md,sha256=wHROuePWaQwrbRm4SL4369vD7EpzKpVRvQBcWPcpUw0,25272
60
+ moai_adk/templates/.claude/commands/alfred/2-run.md,sha256=KTUuQQPheLr0YY79asbK0oH9ajlp8vDsQC_2c8BvzWY,20956
61
+ moai_adk/templates/.claude/commands/alfred/3-sync.md,sha256=WNlBzf5I_mDbdWhcITYE7oiHziHD1UQOG-HD12sqSwQ,23162
60
62
  moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md,sha256=5dd6KRFQXzp0L8lAWKRN7Momgg_8XNV1QZ6VGs03_pc,9064
61
63
  moai_adk/templates/.claude/hooks/alfred/README.md,sha256=8JirNg3Jn2OUFmHySYBd8QxQgPkG7kcev86Zkf80asY,6852
62
64
  moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py,sha256=PjdyJluyoQgaIpq3n9K9r-a3VeLMH1eWcXaAA6ohvrw,7723
@@ -64,16 +66,16 @@ moai_adk/templates/.claude/hooks/alfred/test_hook_output.py,sha256=3pk-JBUPdSQZB
64
66
  moai_adk/templates/.claude/hooks/alfred/core/__init__.py,sha256=nx_02kZDVFlKOgxBfFz3nqVrxMkmrkE0x7crJhdjl5E,6377
65
67
  moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py,sha256=dsvFDSXQNSQlaQLpvhqFbytGOrOivyovi43Y18EmNeI,8483
66
68
  moai_adk/templates/.claude/hooks/alfred/core/context.py,sha256=RQd6yk8OGT-twgYtUiNmJIL-UEt_h4oktxqiRP_wXAI,2103
67
- moai_adk/templates/.claude/hooks/alfred/core/project.py,sha256=XVm-Y5TVjBBznW8AkFhk_uVg-EF1lZ2wx59Rxt_LOBA,9125
69
+ moai_adk/templates/.claude/hooks/alfred/core/project.py,sha256=Jgm8BEJOtCywiO83k2rcoGtzFYPeTXHd5LcMsP2MVsI,14141
68
70
  moai_adk/templates/.claude/hooks/alfred/core/tags.py,sha256=XcYYCS1VmCejp7Ga9xZ3hDfrWWsKM-WyPD_N5gY1q1w,6359
69
71
  moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py,sha256=j5L7nayKt7tnFQOZuO5sWiie815vmbmYJOn2VRiidLY,569
70
72
  moai_adk/templates/.claude/hooks/alfred/handlers/notification.py,sha256=8TcEqGlz4EpLf2lpouaIuhVbpKOVeY31KPmIq2snt9U,662
71
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py,sha256=jGmiDPY-unTlQlTWQVisr82Rxhbt1Rkhrun4bggTxQ4,3374
73
+ moai_adk/templates/.claude/hooks/alfred/handlers/session.py,sha256=gFrkTcBRQrDR0p5o79KvhN1LuGdmIVQyWg0fk1YD8l8,6397
72
74
  moai_adk/templates/.claude/hooks/alfred/handlers/tool.py,sha256=0bNtAf2M7nupTAkcrEiZMBCmD2f-dLjjZa5p1CWiNyM,3383
73
75
  moai_adk/templates/.claude/hooks/alfred/handlers/user.py,sha256=PyQI201oezWBzLrKo8ntWoRa9GDyVwLYktdu9vLT84s,1389
74
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md,sha256=JyhPcBT3jrdGtYpOE_qQ_B4dgzizMN53ZEqoKHw6GPU,19668
75
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md,sha256=eBuM8tGVdKVXGecXA7WlmxWatTXWPF-dmpm-rZ4IEEw,17549
76
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md,sha256=GItPQ1wndOh5kGf8g-tdhmxGcqj6wCCRDxI7urO0AAU,12598
76
+ moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md,sha256=xxqVTxNwBEQahaerqeFYDEAErPNLw_-W1orWXYLuwtU,19702
77
+ moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md,sha256=Et9BlQkja_jOIVp7NLBVxCGU7H0H-qoEe_9LNaVis3k,17583
78
+ moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md,sha256=XpIj9c4jqOOlZxn57Ujj8o7VIpAx_ftddwwd0fxIsio,12632
77
79
  moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md,sha256=7g_jQgyK-E_ogg4Hk1ueNdn9bRappOSYSNnjd4JMIK8,2406
78
80
  moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md,sha256=r5_lripZ45AeKpOcUSzmUl_DuioI18Xe84U05f1vDMI,403
79
81
  moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md,sha256=Xw_hzLdsfN3zo7BUk2A-rQGohSM5btw6mh12yz1MbPE,339
@@ -255,7 +257,7 @@ moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md,sha256=q753rSPFZfylgwh6HkEP2
255
257
  moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml,sha256=c6WaTy7Vh6IsNsIJzSTGuGpaGhZAZ1prQXGIUM7P8PA,5212
256
258
  moai_adk/templates/.github/workflows/moai-gitflow.yml,sha256=D9ob1O7tzsUvk3WQPPaHFx1Oo6_RxnbCb5WHJ6DWyrI,8589
257
259
  moai_adk/templates/.github/workflows/spec-issue-sync.yml,sha256=VJ0IQcIEnlnZ-3jdvQNruhBxpygYRZAP2bkn35CCO-Q,6307
258
- moai_adk/templates/.moai/config.json,sha256=0DZ9zK3wUD2lRfeqX93tYJz5Pb_h7DV4k2wyB9RZ6HQ,2202
260
+ moai_adk/templates/.moai/config.json,sha256=oAL0Gb4jy-dEvhnPvitkc95dckzAU5w95mekV514YX0,2348
259
261
  moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md,sha256=37Qj5DYcyUniLM1g8IU7UWFI_16tutZrcAkJc4E5i20,15876
260
262
  moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md,sha256=Tf3q68X1DiA3MkIBYu7AMXoeparYrDRpyqVI5Nw92OY,12653
261
263
  moai_adk/templates/.moai/memory/CLAUDE-RULES.md,sha256=S9GODGRzwwleOmROVtBDa471Ok5NyQLWIkaO_4peHhU,19783
@@ -273,8 +275,8 @@ moai_adk/templates/.moai/project/tech.md,sha256=REecMv8wOvutt-pQZ5nlGk5YdReTan7A
273
275
  moai_adk/utils/__init__.py,sha256=VnVfQzzKHvKw4bNdEw5xdscnRQYFrnr-v_TOBr3naPs,225
274
276
  moai_adk/utils/banner.py,sha256=znppKd5yo-tTqgyhgPVJjstrTrfcy_v3X1_RFQxP4Fk,1878
275
277
  moai_adk/utils/logger.py,sha256=g-m07PGKjK2bKRIInfSn6m-024Bedai-pV_WjZKDeu8,5064
276
- moai_adk-0.6.3.dist-info/METADATA,sha256=4yC6rqxJJy_b_-4Kjffv4zhbJtUl_xrrfGBPxizHyIU,71251
277
- moai_adk-0.6.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
278
- moai_adk-0.6.3.dist-info/entry_points.txt,sha256=P9no1794UipqH72LP-ltdyfVd_MeB1WKJY_6-JQgV3U,52
279
- moai_adk-0.6.3.dist-info/licenses/LICENSE,sha256=M1M2b07fWcSWRM6_P3wbZKndZvyfHyYk_Wu9bS8F7o8,1069
280
- moai_adk-0.6.3.dist-info/RECORD,,
278
+ moai_adk-0.8.0.dist-info/METADATA,sha256=rKLmKLvWkLBTzpf5UN8I0WHgWdYJF5Q-yEDmNZ6xkag,71251
279
+ moai_adk-0.8.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
280
+ moai_adk-0.8.0.dist-info/entry_points.txt,sha256=P9no1794UipqH72LP-ltdyfVd_MeB1WKJY_6-JQgV3U,52
281
+ moai_adk-0.8.0.dist-info/licenses/LICENSE,sha256=M1M2b07fWcSWRM6_P3wbZKndZvyfHyYk_Wu9bS8F7o8,1069
282
+ moai_adk-0.8.0.dist-info/RECORD,,