moai-adk 0.10.1__py3-none-any.whl → 0.11.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.

Potentially problematic release.


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

Files changed (245) hide show
  1. moai_adk/core/project/phase_executor.py +4 -0
  2. moai_adk/core/tags/ci_validator.py +33 -3
  3. moai_adk/core/template_engine.py +6 -2
  4. moai_adk/templates/.github/workflows/moai-gitflow.yml +6 -1
  5. moai_adk/templates/.github/workflows/release.yml +6 -2
  6. moai_adk/templates/.github/workflows/tag-validation.yml +53 -8
  7. moai_adk/templates/CLAUDE.md +458 -67
  8. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/METADATA +28 -13
  9. moai_adk-0.11.0.dist-info/RECORD +77 -0
  10. moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
  11. moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
  12. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
  13. moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
  14. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -350
  15. moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -273
  16. moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
  17. moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
  18. moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -287
  19. moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -287
  20. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -326
  21. moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
  22. moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1189
  23. moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -728
  24. moai_adk/templates/.claude/commands/alfred/2-run.md +0 -545
  25. moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -683
  26. moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
  27. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -209
  28. moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -750
  29. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
  30. moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +0 -102
  31. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -102
  32. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -108
  33. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -102
  34. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -102
  35. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
  36. moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
  37. moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
  38. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -756
  39. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -198
  40. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
  41. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
  42. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -25
  43. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -175
  44. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -90
  45. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
  46. moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +0 -102
  47. moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +0 -102
  48. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -120
  49. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -640
  50. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -696
  51. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -474
  52. moai_adk/templates/.claude/settings.json +0 -144
  53. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
  54. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
  55. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
  56. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
  57. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
  58. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
  59. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
  60. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
  61. moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
  62. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
  63. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
  64. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
  65. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
  66. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
  67. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
  68. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
  69. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
  70. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
  71. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
  72. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
  73. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
  74. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
  75. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
  76. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
  77. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
  78. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
  79. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
  80. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
  81. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
  82. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
  83. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
  84. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
  85. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
  86. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
  87. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
  88. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
  89. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
  90. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
  91. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
  92. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
  93. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
  94. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
  95. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
  96. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
  97. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
  98. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
  99. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
  100. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
  101. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
  102. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
  103. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
  104. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
  105. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
  106. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
  107. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -124
  108. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
  109. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
  110. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
  111. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
  112. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
  113. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
  114. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
  115. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
  116. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
  117. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
  118. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
  119. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
  120. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
  121. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
  122. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
  123. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
  124. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
  125. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
  126. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
  127. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
  128. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
  129. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
  130. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
  131. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
  132. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
  133. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
  134. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
  135. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
  136. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
  137. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
  138. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
  139. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
  140. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
  141. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
  142. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
  143. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
  144. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
  145. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
  146. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
  147. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
  148. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
  149. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
  150. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  151. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
  152. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
  153. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
  154. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
  155. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
  156. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
  157. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
  158. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
  159. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
  160. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
  161. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
  162. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
  163. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
  164. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -124
  165. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
  166. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
  167. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -124
  168. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
  169. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
  170. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
  171. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
  172. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
  173. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
  174. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
  175. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
  176. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -123
  177. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
  178. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
  179. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -431
  180. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
  181. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
  182. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
  183. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
  184. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
  185. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
  186. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
  187. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
  188. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -124
  189. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
  190. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
  191. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -123
  192. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
  193. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
  194. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
  195. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
  196. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
  197. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
  198. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
  199. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
  200. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
  201. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
  202. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
  203. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -127
  204. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
  205. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
  206. moai_adk/templates/.claude/skills/moai-skill-factory/CHECKLIST.md +0 -482
  207. moai_adk/templates/.claude/skills/moai-skill-factory/EXAMPLES.md +0 -278
  208. moai_adk/templates/.claude/skills/moai-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
  209. moai_adk/templates/.claude/skills/moai-skill-factory/METADATA.md +0 -477
  210. moai_adk/templates/.claude/skills/moai-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
  211. moai_adk/templates/.claude/skills/moai-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
  212. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
  213. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
  214. moai_adk/templates/.claude/skills/moai-skill-factory/SKILL.md +0 -271
  215. moai_adk/templates/.claude/skills/moai-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
  216. moai_adk/templates/.claude/skills/moai-skill-factory/STRUCTURE.md +0 -583
  217. moai_adk/templates/.claude/skills/moai-skill-factory/WEB-RESEARCH.md +0 -526
  218. moai_adk/templates/.claude/skills/moai-skill-factory/reference.md +0 -465
  219. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/generate-structure.sh +0 -328
  220. moai_adk/templates/.claude/skills/moai-skill-factory/scripts/validate-skill.sh +0 -312
  221. moai_adk/templates/.claude/skills/moai-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
  222. moai_adk/templates/.claude/skills/moai-skill-factory/templates/examples-template.md +0 -285
  223. moai_adk/templates/.claude/skills/moai-skill-factory/templates/reference-template.md +0 -278
  224. moai_adk/templates/.claude/skills/moai-skill-factory/templates/scripts-template.sh +0 -303
  225. moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +0 -137
  226. moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +0 -219
  227. moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +0 -161
  228. moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +0 -541
  229. moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +0 -622
  230. moai_adk/templates/.moai/config.json +0 -113
  231. moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md +0 -208
  232. moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md +0 -369
  233. moai_adk/templates/.moai/memory/CLAUDE-RULES.md +0 -539
  234. moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md +0 -344
  235. moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md +0 -150
  236. moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md +0 -218
  237. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -330
  238. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  239. moai_adk/templates/.moai/project/product.md +0 -161
  240. moai_adk/templates/.moai/project/structure.md +0 -156
  241. moai_adk/templates/.moai/project/tech.md +0 -227
  242. moai_adk-0.10.1.dist-info/RECORD +0 -309
  243. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/WHEEL +0 -0
  244. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/entry_points.txt +0 -0
  245. {moai_adk-0.10.1.dist-info → moai_adk-0.11.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,615 +0,0 @@
1
- # Alfred Interactive Questions - Real-World Examples
2
-
3
- > **Main Skill**: [SKILL.md](SKILL.md)
4
- > **API Reference**: [reference.md](reference.md)
5
-
6
- ---
7
-
8
- ## Example 1: Vague Feature Request
9
-
10
- ### Scenario
11
-
12
- **User**: "Add a completion page for the competition."
13
-
14
- **Alfred detects ambiguity**:
15
- - Where should it live? (new route vs modify existing)
16
- - Who can access it? (public vs authenticated)
17
- - What should it display? (results vs simple message)
18
-
19
- ### AskUserQuestion Invocation
20
-
21
- ```typescript
22
- const answer = await AskUserQuestion({
23
- questions: [
24
- {
25
- question: "How should the completion page be implemented?",
26
- header: "Approach",
27
- multiSelect: false,
28
- options: [
29
- {
30
- label: "New public route",
31
- description: "New page at /competition-complete, visible to all visitors."
32
- },
33
- {
34
- label: "Modify existing page",
35
- description: "Add conditional logic to existing /end page based on competition status."
36
- },
37
- {
38
- label: "Environment flag",
39
- description: "Set NEXT_PUBLIC_COMPETITION_CLOSED=true to show message on homepage."
40
- }
41
- ]
42
- },
43
- {
44
- question: "For logged-in participants, what should they see?",
45
- header: "Behavior",
46
- multiSelect: false,
47
- options: [
48
- {
49
- label: "Show full results",
50
- description: "Redirect to /end page with their submission history and rankings."
51
- },
52
- {
53
- label: "Show simple message",
54
- description: "Display 'Competition concluded. Thank you for participating!' only."
55
- }
56
- ]
57
- }
58
- ]
59
- });
60
-
61
- // Result:
62
- // {
63
- // "Approach": "New public route",
64
- // "Behavior": "Show full results"
65
- // }
66
- ```
67
-
68
- ### Outcome
69
-
70
- Alfred now knows **exactly** what to build:
71
- - Create `/app/competition-complete/page.tsx`
72
- - New public route
73
- - Logged-in users redirected to `/end` page with full results
74
- - Non-logged-in users see simple completion message
75
-
76
- ---
77
-
78
- ## Example 2: Implementation Approach (Pattern 1)
79
-
80
- ### Scenario
81
-
82
- **User**: "Add i18n support to the app."
83
-
84
- **Alfred detects**:
85
- - Multiple valid i18n libraries exist
86
- - Each has different trade-offs (DX, complexity, performance)
87
- - User hasn't specified preference
88
-
89
- ### AskUserQuestion Invocation
90
-
91
- ```typescript
92
- const answer = await AskUserQuestion({
93
- questions: [{
94
- question: "Which i18n library should we use for Next.js 15?",
95
- header: "Library",
96
- multiSelect: false,
97
- options: [
98
- {
99
- label: "next-intl",
100
- description: "Native Next.js 15 support, best DX, automatic type safety."
101
- },
102
- {
103
- label: "react-i18next",
104
- description: "Most popular, flexible, more setup required, larger bundle."
105
- },
106
- {
107
- label: "Format.js",
108
- description: "ICU message format, powerful pluralization, steeper learning curve."
109
- }
110
- ]
111
- }]
112
- });
113
-
114
- // Result: { "Library": "next-intl" }
115
- ```
116
-
117
- ### Outcome
118
-
119
- Alfred proceeds with `next-intl`, avoiding:
120
- - ❌ Guessing wrong library
121
- - ❌ Implementing then refactoring later
122
- - ❌ 3-5 rounds of "actually, can we use X instead?"
123
-
124
- ---
125
-
126
- ## Example 3: Risky Operation Confirmation (Pattern 2)
127
-
128
- ### Scenario
129
-
130
- **User**: "Delete all test users from production database."
131
-
132
- **Alfred detects**:
133
- - Destructive operation (data loss)
134
- - Production environment (high risk)
135
- - Explicit confirmation required
136
-
137
- ### AskUserQuestion Invocation
138
-
139
- ```typescript
140
- const answer = await AskUserQuestion({
141
- questions: [{
142
- question: "⚠️ This will PERMANENTLY delete 50 test users from PRODUCTION database. Are you sure?",
143
- header: "Confirm",
144
- multiSelect: false,
145
- options: [
146
- {
147
- label: "No, cancel",
148
- description: "Abort operation. No changes will be made."
149
- },
150
- {
151
- label: "Yes, proceed",
152
- description: "🚨 IRREVERSIBLE. Delete 50 users now."
153
- }
154
- ]
155
- }]
156
- });
157
-
158
- // Result: { "Confirm": "No, cancel" } (user cancelled)
159
- ```
160
-
161
- ### Outcome
162
-
163
- Alfred **aborts** operation without executing destructive command. User explicitly chose to cancel after seeing full risk disclosure.
164
-
165
- ---
166
-
167
- ## Example 4: Multi-Select Feature Selection (Pattern 4)
168
-
169
- ### Scenario
170
-
171
- **User**: "Set up testing for the new project."
172
-
173
- **Alfred detects**:
174
- - Multiple testing frameworks can coexist
175
- - User might want unit + E2E + visual testing
176
- - No explicit preference stated
177
-
178
- ### AskUserQuestion Invocation
179
-
180
- ```typescript
181
- const answer = await AskUserQuestion({
182
- questions: [{
183
- question: "Which testing frameworks should we set up? (Select all that apply)",
184
- header: "Test Tools",
185
- multiSelect: true, // Multiple selections allowed
186
- options: [
187
- {
188
- label: "Unit tests (Vitest)",
189
- description: "Fast, modern, Vite-native. ~2min setup."
190
- },
191
- {
192
- label: "E2E tests (Playwright)",
193
- description: "Browser automation, cross-browser. ~10min setup."
194
- },
195
- {
196
- label: "Visual regression",
197
- description: "Screenshot comparison with Playwright. ~5min setup."
198
- }
199
- ]
200
- }]
201
- });
202
-
203
- // Result: { "Test Tools": ["Unit tests (Vitest)", "E2E tests (Playwright)"] }
204
- ```
205
-
206
- ### Outcome
207
-
208
- Alfred installs and configures:
209
- - ✅ Vitest for unit tests
210
- - ✅ Playwright for E2E tests
211
- - ❌ Skips visual regression (not selected)
212
-
213
- ---
214
-
215
- ## Example 5: Sequential Questions (Conditional Flow, Pattern 5)
216
-
217
- ### Scenario
218
-
219
- **User**: "Add authentication to the app."
220
-
221
- **Alfred detects**:
222
- - First decision: Enable auth? (Yes/No)
223
- - Second decision: If yes, which provider? (depends on Q1)
224
-
225
- ### AskUserQuestion Invocation (Part 1)
226
-
227
- ```typescript
228
- // Question 1: Enable authentication?
229
- const q1 = await AskUserQuestion({
230
- questions: [{
231
- question: "Should we enable user authentication?",
232
- header: "Auth",
233
- multiSelect: false,
234
- options: [
235
- {
236
- label: "Yes",
237
- description: "User login required for protected routes."
238
- },
239
- {
240
- label: "No",
241
- description: "Public access only, no authentication."
242
- }
243
- ]
244
- }]
245
- });
246
-
247
- // Result: { "Auth": "Yes" }
248
- ```
249
-
250
- ### AskUserQuestion Invocation (Part 2, Conditional)
251
-
252
- ```typescript
253
- // Question 2: Only ask if Q1 = "Yes"
254
- if (q1["Auth"] === "Yes") {
255
- const q2 = await AskUserQuestion({
256
- questions: [{
257
- question: "Which authentication provider?",
258
- header: "Provider",
259
- multiSelect: false,
260
- options: [
261
- {
262
- label: "JWT + email",
263
- description: "Traditional email/password with JWT tokens. ~30min setup."
264
- },
265
- {
266
- label: "OAuth (Google)",
267
- description: "Third-party login via Google. Faster for users. ~20min setup."
268
- },
269
- {
270
- label: "SAML",
271
- description: "Enterprise SSO (for corporate environments). ~2hr setup."
272
- }
273
- ]
274
- }]
275
- });
276
-
277
- // Result: { "Provider": "OAuth (Google)" }
278
- }
279
- ```
280
-
281
- ### Outcome
282
-
283
- Alfred implements:
284
- - ✅ Authentication enabled
285
- - ✅ OAuth with Google provider
286
- - ✅ Skips JWT setup (not selected)
287
- - ❌ If Q1 was "No", Q2 never asked (saves time)
288
-
289
- ---
290
-
291
- ## Example 6: Option Grouping (Hierarchical Selection)
292
-
293
- ### Scenario
294
-
295
- **User**: "Set up a database for the project."
296
-
297
- **Alfred detects**:
298
- - 8+ database options exist
299
- - Too many for one question → choice paralysis
300
- - Need hierarchical selection: Category → Specific
301
-
302
- ### AskUserQuestion Invocation (Step 1: Category)
303
-
304
- ```typescript
305
- // Step 1: Narrow by database type
306
- const category = await AskUserQuestion({
307
- questions: [{
308
- question: "What type of database does your project need?",
309
- header: "DB Type",
310
- multiSelect: false,
311
- options: [
312
- {
313
- label: "Relational (SQL)",
314
- description: "PostgreSQL, MySQL, SQLite. ACID guarantees, structured data."
315
- },
316
- {
317
- label: "Document (NoSQL)",
318
- description: "MongoDB, CouchDB. Flexible schema, JSON documents."
319
- },
320
- {
321
- label: "Key-Value",
322
- description: "Redis, Memcached. In-memory cache, fast reads."
323
- }
324
- ]
325
- }]
326
- });
327
-
328
- // Result: { "DB Type": "Relational (SQL)" }
329
- ```
330
-
331
- ### AskUserQuestion Invocation (Step 2: Specific Choice)
332
-
333
- ```typescript
334
- // Step 2: Specific database within category
335
- if (category["DB Type"] === "Relational (SQL)") {
336
- const specific = await AskUserQuestion({
337
- questions: [{
338
- question: "Which SQL database?",
339
- header: "SQL DB",
340
- multiSelect: false,
341
- options: [
342
- {
343
- label: "PostgreSQL",
344
- description: "Advanced features (JSON, full-text search, extensions). Industry standard."
345
- },
346
- {
347
- label: "MySQL",
348
- description: "Most popular, wide hosting support, good performance."
349
- },
350
- {
351
- label: "SQLite",
352
- description: "Embedded, serverless, single-file. Good for prototypes and small apps."
353
- }
354
- ]
355
- }]
356
- });
357
-
358
- // Result: { "SQL DB": "PostgreSQL" }
359
- }
360
- ```
361
-
362
- ### Outcome
363
-
364
- Alfred avoids:
365
- - ❌ Presenting 8 options at once (choice paralysis)
366
- - ❌ User confusion ("What's the difference between MariaDB and MySQL?")
367
-
368
- Instead:
369
- - ✅ First narrows to category (3 options)
370
- - ✅ Then presents specific choices within category (3 options)
371
- - ✅ Clear, manageable decision flow
372
-
373
- ---
374
-
375
- ## Example 7: Batch Related Questions
376
-
377
- ### Scenario
378
-
379
- **User**: "Initialize a new Next.js project with best practices."
380
-
381
- **Alfred detects**:
382
- - Multiple independent decisions needed
383
- - All decisions are related to project setup
384
- - Can ask 3 questions at once (no dependencies)
385
-
386
- ### AskUserQuestion Invocation
387
-
388
- ```typescript
389
- const answers = await AskUserQuestion({
390
- questions: [
391
- {
392
- question: "Which database?",
393
- header: "Database",
394
- multiSelect: false,
395
- options: [
396
- { label: "PostgreSQL", description: "Relational, ACID-compliant, advanced features." },
397
- { label: "MongoDB", description: "Document store, flexible schema, rapid prototyping." }
398
- ]
399
- },
400
- {
401
- question: "Which testing frameworks? (Select all that apply)",
402
- header: "Testing",
403
- multiSelect: true, // Multiple selections allowed
404
- options: [
405
- { label: "Unit tests", description: "Vitest for fast unit testing." },
406
- { label: "E2E tests", description: "Playwright for browser automation." },
407
- { label: "Visual tests", description: "Screenshot comparison testing." }
408
- ]
409
- },
410
- {
411
- question: "Enable TypeScript strict mode?",
412
- header: "TypeScript",
413
- multiSelect: false,
414
- options: [
415
- { label: "Yes (recommended)", description: "Strict type checking, catch errors early." },
416
- { label: "No", description: "Loose type checking, faster initial development." }
417
- ]
418
- }
419
- ]
420
- });
421
-
422
- // Result:
423
- // {
424
- // "Database": "PostgreSQL",
425
- // "Testing": ["Unit tests", "E2E tests"],
426
- // "TypeScript": "Yes (recommended)"
427
- // }
428
- ```
429
-
430
- ### Outcome
431
-
432
- Alfred configures project with:
433
- - ✅ PostgreSQL database
434
- - ✅ Vitest unit tests
435
- - ✅ Playwright E2E tests
436
- - ❌ No visual regression tests
437
- - ✅ TypeScript strict mode enabled
438
-
439
- All decided in **one interaction** instead of 3 separate back-and-forth exchanges.
440
-
441
- ---
442
-
443
- ## Example 8: Error Recovery After Test Failure
444
-
445
- ### Scenario
446
-
447
- **Context**: Alfred is in `/alfred:2-run` phase, tests are failing.
448
-
449
- **Alfred detects**:
450
- - Tests fail after implementation
451
- - Multiple possible fixes exist
452
- - User input needed to decide repair strategy
453
-
454
- ### AskUserQuestion Invocation
455
-
456
- ```typescript
457
- const answer = await AskUserQuestion({
458
- questions: [{
459
- question: "Tests are failing. How should we proceed?",
460
- header: "Fix Strategy",
461
- multiSelect: false,
462
- options: [
463
- {
464
- label: "Fix implementation",
465
- description: "Adjust code to pass existing tests (tests are correct)."
466
- },
467
- {
468
- label: "Update tests",
469
- description: "Modify tests to match new implementation (implementation is correct)."
470
- },
471
- {
472
- label: "Debug together",
473
- description: "Review both implementation and tests to identify root cause."
474
- }
475
- ]
476
- }]
477
- });
478
-
479
- // Result: { "Fix Strategy": "Fix implementation" }
480
- ```
481
-
482
- ### Outcome
483
-
484
- Alfred:
485
- - ✅ Keeps tests unchanged
486
- - ✅ Fixes implementation to satisfy test expectations
487
- - ✅ Avoids "test modification to make them pass" anti-pattern
488
- - ✅ Follows RED → GREEN → REFACTOR TDD cycle correctly
489
-
490
- ---
491
-
492
- ## Example 9: SPEC Scope Clarification (spec-builder)
493
-
494
- ### Scenario
495
-
496
- **User**: "Create SPEC for performance improvements."
497
-
498
- **Alfred detects** (spec-builder sub-agent):
499
- - SPEC title is vague ("performance improvements")
500
- - Scope undefined (backend? frontend? database?)
501
- - Multiple domains affected
502
-
503
- ### AskUserQuestion Invocation
504
-
505
- ```typescript
506
- const answer = await AskUserQuestion({
507
- questions: [
508
- {
509
- question: "Which area needs performance improvements?",
510
- header: "Domain",
511
- multiSelect: false,
512
- options: [
513
- { label: "Backend API", description: "Optimize API response times, database queries." },
514
- { label: "Frontend", description: "Improve page load times, bundle size, rendering." },
515
- { label: "Database", description: "Add indexes, optimize queries, caching." },
516
- { label: "All of the above", description: "Comprehensive performance audit." }
517
- ]
518
- },
519
- {
520
- question: "What's the performance target?",
521
- header: "Target",
522
- multiSelect: false,
523
- options: [
524
- { label: "< 200ms API", description: "API responses under 200ms (P95)." },
525
- { label: "< 2s page load", description: "Pages load under 2 seconds (P95)." },
526
- { label: "< 100ms queries", description: "Database queries under 100ms (P95)." }
527
- ]
528
- }
529
- ]
530
- });
531
-
532
- // Result:
533
- // {
534
- // "Domain": "Backend API",
535
- // "Target": "< 200ms API"
536
- // }
537
- ```
538
-
539
- ### Outcome
540
-
541
- spec-builder generates precise SPEC:
542
- - ✅ Title: `[PERF-001] Optimize Backend API Response Times to <200ms`
543
- - ✅ Scope: Backend API performance only
544
- - ✅ Clear success criteria: P95 latency < 200ms
545
- - ❌ Avoids vague SPEC like "Improve performance"
546
-
547
- ---
548
-
549
- ## Example 10: Doc Sync Mode Selection (doc-syncer)
550
-
551
- ### Scenario
552
-
553
- **User**: "Sync documentation."
554
-
555
- **Alfred detects** (doc-syncer sub-agent):
556
- - Sync mode unclear (auto-detect vs force-regenerate vs partial)
557
- - User hasn't specified preference
558
- - Different modes have different time/accuracy trade-offs
559
-
560
- ### AskUserQuestion Invocation
561
-
562
- ```typescript
563
- const answer = await AskUserQuestion({
564
- questions: [{
565
- question: "Which documentation sync mode?",
566
- header: "Sync Mode",
567
- multiSelect: false,
568
- options: [
569
- {
570
- label: "auto",
571
- description: "Smart detection of changes. Fast, minimal updates. (Recommended)"
572
- },
573
- {
574
- label: "force",
575
- description: "Regenerate ALL documentation. Slow but guaranteed accurate."
576
- },
577
- {
578
- label: "partial",
579
- description: "Update only specified sections. Fast, targeted."
580
- }
581
- ]
582
- }]
583
- });
584
-
585
- // Result: { "Sync Mode": "auto" }
586
- ```
587
-
588
- ### Outcome
589
-
590
- doc-syncer:
591
- - ✅ Uses auto-detection mode
592
- - ✅ Only updates changed sections
593
- - ✅ Faster execution (1-2 min vs 10 min for force mode)
594
- - ✅ User sees clear time/accuracy trade-off before deciding
595
-
596
- ---
597
-
598
- ## Summary: Pattern Catalog
599
-
600
- | Pattern | Use Case | Example Scenario |
601
- |---------|----------|------------------|
602
- | **Pattern 1: Implementation Approach** | Multiple valid implementation paths | "Add i18n support" (which library?) |
603
- | **Pattern 2: Confirmation** | Risky/destructive operations | "Delete production data" (are you sure?) |
604
- | **Pattern 3: Multi-Option Selection** | Choose ONE from multiple frameworks/tools | "Which testing framework?" |
605
- | **Pattern 4: Multi-Select** | Enable/disable independent features | "Which features to enable?" (check multiple) |
606
- | **Pattern 5: Sequential Questions** | Q2 depends on Q1 answer | "Enable auth?" → If yes, "Which provider?" |
607
- | **Pattern 6: Option Grouping** | Too many options → hierarchical selection | Database type → Specific database |
608
- | **Pattern 7: Batch Questions** | Multiple independent decisions | Project setup (DB + Testing + TypeScript) |
609
- | **Pattern 8: Error Recovery** | Handle failures with user guidance | Test failure → Fix implementation vs update tests |
610
- | **Pattern 9: SPEC Clarification** | Vague SPEC scope/title | "Performance improvements" → Which domain? |
611
- | **Pattern 10: Mode Selection** | Choose workflow mode/strategy | Doc sync mode (auto vs force vs partial) |
612
-
613
- ---
614
-
615
- **End of Examples** | 2025-10-27