moai-adk 0.4.5__py3-none-any.whl → 0.20.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 (433) hide show
  1. moai_adk/__init__.py +1 -1
  2. moai_adk/__main__.py +74 -1
  3. moai_adk/cli/commands/__init__.py +1 -1
  4. moai_adk/cli/commands/analyze.py +119 -0
  5. moai_adk/cli/commands/backup.py +25 -1
  6. moai_adk/cli/commands/doctor.py +31 -5
  7. moai_adk/cli/commands/improve_user_experience.py +307 -0
  8. moai_adk/cli/commands/init.py +111 -10
  9. moai_adk/cli/commands/status.py +33 -3
  10. moai_adk/cli/commands/update.py +921 -130
  11. moai_adk/cli/commands/validate_links.py +120 -0
  12. moai_adk/cli/prompts/init_prompts.py +22 -87
  13. moai_adk/core/analysis/__init__.py +9 -0
  14. moai_adk/core/analysis/session_analyzer.py +388 -0
  15. moai_adk/core/analysis/tag_chain_analyzer.py +344 -0
  16. moai_adk/core/analysis/tag_chain_repair.py +879 -0
  17. moai_adk/core/config/__init__.py +19 -0
  18. moai_adk/core/config/migration.py +235 -0
  19. moai_adk/core/git/__init__.py +1 -1
  20. moai_adk/core/git/branch.py +1 -1
  21. moai_adk/core/git/commit.py +1 -1
  22. moai_adk/core/git/manager.py +1 -1
  23. moai_adk/core/issue_creator.py +313 -0
  24. moai_adk/core/mcp/setup.py +56 -0
  25. moai_adk/core/mcp/setup_old.py +296 -0
  26. moai_adk/core/project/backup_utils.py +1 -1
  27. moai_adk/core/project/checker.py +2 -2
  28. moai_adk/core/project/detector.py +211 -12
  29. moai_adk/core/project/initializer.py +85 -15
  30. moai_adk/core/project/phase_executor.py +76 -13
  31. moai_adk/core/project/validator.py +13 -13
  32. moai_adk/core/quality/__init__.py +1 -1
  33. moai_adk/core/quality/trust_checker.py +1 -1
  34. moai_adk/core/quality/validators/__init__.py +1 -1
  35. moai_adk/core/quality/validators/base_validator.py +1 -1
  36. moai_adk/core/tags/__init__.py +86 -0
  37. moai_adk/core/tags/auto_corrector.py +693 -0
  38. moai_adk/core/tags/ci_validator.py +463 -0
  39. moai_adk/core/tags/cli.py +283 -0
  40. moai_adk/core/tags/generator.py +109 -0
  41. moai_adk/core/tags/inserter.py +99 -0
  42. moai_adk/core/tags/mapper.py +126 -0
  43. moai_adk/core/tags/parser.py +76 -0
  44. moai_adk/core/tags/policy_validator.py +580 -0
  45. moai_adk/core/tags/pre_commit_validator.py +421 -0
  46. moai_adk/core/tags/reporter.py +956 -0
  47. moai_adk/core/tags/rollback_manager.py +525 -0
  48. moai_adk/core/tags/tags.py +149 -0
  49. moai_adk/core/tags/validator.py +897 -0
  50. moai_adk/core/template/__init__.py +1 -1
  51. moai_adk/core/template/backup.py +1 -1
  52. moai_adk/core/template/merger.py +50 -1
  53. moai_adk/core/template/processor.py +119 -13
  54. moai_adk/core/template_engine.py +268 -0
  55. moai_adk/templates/.claude/agents/alfred/backend-expert.md +348 -0
  56. moai_adk/templates/.claude/agents/alfred/cc-manager.md +209 -944
  57. moai_adk/templates/.claude/agents/alfred/database-expert.md +352 -0
  58. moai_adk/templates/.claude/agents/alfred/debug-helper.md +34 -5
  59. moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
  60. moai_adk/templates/.claude/agents/alfred/doc-syncer.md +38 -8
  61. moai_adk/templates/.claude/agents/alfred/format-expert.md +469 -0
  62. moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
  63. moai_adk/templates/.claude/agents/alfred/git-manager.md +128 -9
  64. moai_adk/templates/.claude/agents/alfred/implementation-planner.md +104 -6
  65. moai_adk/templates/.claude/agents/alfred/project-manager.md +88 -16
  66. moai_adk/templates/.claude/agents/alfred/quality-gate.md +36 -9
  67. moai_adk/templates/.claude/agents/alfred/security-expert.md +270 -0
  68. moai_adk/templates/.claude/agents/alfred/skill-factory.md +865 -0
  69. moai_adk/templates/.claude/agents/alfred/spec-builder.md +214 -43
  70. moai_adk/templates/.claude/agents/alfred/tag-agent.md +111 -9
  71. moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +309 -160
  72. moai_adk/templates/.claude/agents/alfred/trust-checker.md +36 -7
  73. moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +605 -0
  74. moai_adk/templates/.claude/commands/alfred/0-project.md +393 -966
  75. moai_adk/templates/.claude/commands/alfred/1-plan.md +651 -367
  76. moai_adk/templates/.claude/commands/alfred/2-run.md +388 -241
  77. moai_adk/templates/.claude/commands/alfred/3-sync.md +1921 -410
  78. moai_adk/templates/.claude/commands/alfred/9-feedback.md +153 -0
  79. moai_adk/templates/.claude/commands/alfred/release-new.md +3604 -0
  80. moai_adk/templates/.claude/hooks/alfred/core/project.py +484 -20
  81. moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
  82. moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
  83. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
  84. moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
  85. moai_adk/templates/.claude/hooks/alfred/post_tool__enable_streaming_ui.py +50 -0
  86. moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +93 -0
  87. moai_adk/templates/.claude/hooks/alfred/post_tool__tag_auto_corrector.py +407 -0
  88. moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +99 -0
  89. moai_adk/templates/.claude/hooks/alfred/pre_tool__realtime_tag_monitor.py +335 -0
  90. moai_adk/templates/.claude/hooks/alfred/pre_tool__tag_policy_validator.py +325 -0
  91. moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +93 -0
  92. moai_adk/templates/.claude/hooks/alfred/session_start__auto_cleanup.py +580 -0
  93. moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +298 -0
  94. moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +170 -0
  95. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
  96. moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
  97. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
  98. moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +230 -0
  99. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
  100. moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
  101. moai_adk/templates/.claude/hooks/alfred/shared/handlers/daily_analysis.py +351 -0
  102. moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
  103. moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +174 -0
  104. moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +87 -0
  105. moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +61 -0
  106. moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +111 -0
  107. moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
  108. moai_adk/templates/.claude/hooks/alfred/utils/hook_config.py +94 -0
  109. moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
  110. moai_adk/templates/.claude/output-styles/alfred/alfred-moai-adk-beginner.md +267 -0
  111. moai_adk/templates/.claude/output-styles/alfred/keating-personal-tutor.md +440 -0
  112. moai_adk/templates/.claude/output-styles/alfred/r2d2-agentic-coding.md +583 -0
  113. moai_adk/templates/.claude/settings.json +96 -14
  114. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
  115. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
  116. moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +242 -0
  117. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/SKILL.md +237 -0
  118. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/examples.md +871 -0
  119. moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/reference.md +653 -0
  120. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/README.md +162 -0
  121. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/SKILL.md +227 -0
  122. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/examples.md +354 -0
  123. moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/reference.md +158 -0
  124. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +179 -79
  125. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/examples.md +117 -0
  126. moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/scripts/pre-review-check.sh +62 -0
  127. moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +132 -0
  128. moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
  129. moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +444 -0
  130. moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
  131. moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
  132. moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
  133. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
  134. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
  135. moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
  136. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
  137. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
  138. moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
  139. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +229 -0
  140. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
  141. moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
  142. moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +87 -73
  143. moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
  144. moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
  145. moai_adk/templates/.claude/skills/moai-alfred-personas/README.md +42 -0
  146. moai_adk/templates/.claude/skills/moai-alfred-personas/SKILL.md +429 -0
  147. moai_adk/templates/.claude/skills/moai-alfred-personas/examples.md +520 -0
  148. moai_adk/templates/.claude/skills/moai-alfred-personas/reference.md +405 -0
  149. moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
  150. moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
  151. moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +369 -0
  152. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
  153. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
  154. moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
  155. moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
  156. moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
  157. moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +539 -0
  158. moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +320 -0
  159. moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
  160. moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
  161. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
  162. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
  163. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +161 -0
  164. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
  165. moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
  166. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
  167. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
  168. moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
  169. moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
  170. moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +269 -0
  171. moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
  172. moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +298 -0
  173. moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
  174. moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +307 -0
  175. moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
  176. moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +252 -0
  177. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
  178. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
  179. moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
  180. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +199 -0
  181. moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
  182. moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +316 -0
  183. moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
  184. moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +263 -0
  185. moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
  186. moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +482 -0
  187. moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +303 -0
  188. moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
  189. moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +477 -0
  190. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
  191. moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
  192. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
  193. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
  194. moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +273 -0
  195. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
  196. moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +583 -0
  197. moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +526 -0
  198. moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +608 -0
  199. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +328 -0
  200. moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +312 -0
  201. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
  202. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +285 -0
  203. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +278 -0
  204. moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +303 -0
  205. moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +291 -0
  206. moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
  207. moai_adk/templates/.claude/skills/moai-change-logger/SKILL.md +563 -0
  208. moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
  209. moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
  210. moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
  211. moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +234 -43
  212. moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
  213. moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
  214. moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +97 -69
  215. moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
  216. moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
  217. moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +97 -72
  218. moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
  219. moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
  220. moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +97 -74
  221. moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
  222. moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
  223. moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +98 -74
  224. moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
  225. moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
  226. moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +102 -73
  227. moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
  228. moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
  229. moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +97 -73
  230. moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
  231. moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
  232. moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +97 -67
  233. moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
  234. moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
  235. moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +97 -79
  236. moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
  237. moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
  238. moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -71
  239. moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
  240. moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
  241. moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +265 -64
  242. moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1064 -0
  243. moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1047 -0
  244. moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +87 -78
  245. moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
  246. moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
  247. moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +87 -70
  248. moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
  249. moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
  250. moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +87 -86
  251. moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
  252. moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
  253. moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +80 -62
  254. moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
  255. moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
  256. moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +207 -50
  257. moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
  258. moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
  259. moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +90 -71
  260. moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
  261. moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
  262. moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +78 -58
  263. moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
  264. moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
  265. moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +78 -51
  266. moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
  267. moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
  268. moai_adk/templates/.claude/skills/moai-foundation-trust/.!11330!examples.md +0 -0
  269. moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +253 -32
  270. moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
  271. moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
  272. moai_adk/templates/.claude/skills/moai-jit-docs-enhanced/SKILL.md +460 -0
  273. moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +98 -74
  274. moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
  275. moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
  276. moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +98 -76
  277. moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
  278. moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
  279. moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +2358 -70
  280. moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
  281. moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
  282. moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +2962 -68
  283. moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
  284. moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
  285. moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +1898 -70
  286. moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
  287. moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
  288. moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +1465 -68
  289. moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
  290. moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
  291. moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +2364 -66
  292. moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
  293. moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
  294. moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +1630 -69
  295. moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
  296. moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
  297. moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +89 -61
  298. moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
  299. moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
  300. moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +735 -66
  301. moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
  302. moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
  303. moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +97 -73
  304. moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
  305. moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
  306. moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +98 -73
  307. moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
  308. moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
  309. moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +1834 -70
  310. moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
  311. moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
  312. moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +99 -74
  313. moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
  314. moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
  315. moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +97 -74
  316. moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
  317. moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
  318. moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +98 -74
  319. moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
  320. moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
  321. moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +1959 -69
  322. moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
  323. moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
  324. moai_adk/templates/.claude/skills/moai-lang-template/SKILL.md +348 -0
  325. moai_adk/templates/.claude/skills/moai-lang-template/VARIABLES.md +98 -0
  326. moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +1230 -66
  327. moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
  328. moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
  329. moai_adk/templates/.claude/skills/moai-learning-optimizer/SKILL.md +575 -0
  330. moai_adk/templates/.claude/skills/moai-project-batch-questions/README.md +50 -0
  331. moai_adk/templates/.claude/skills/moai-project-batch-questions/SKILL.md +304 -0
  332. moai_adk/templates/.claude/skills/moai-project-batch-questions/examples.md +417 -0
  333. moai_adk/templates/.claude/skills/moai-project-batch-questions/reference.md +704 -0
  334. moai_adk/templates/.claude/skills/moai-project-config-manager/README.md +87 -0
  335. moai_adk/templates/.claude/skills/moai-project-config-manager/SKILL.md +552 -0
  336. moai_adk/templates/.claude/skills/moai-project-config-manager/examples.md +1109 -0
  337. moai_adk/templates/.claude/skills/moai-project-config-manager/reference.md +514 -0
  338. moai_adk/templates/.claude/skills/moai-project-config-manager/validate.py +106 -0
  339. moai_adk/templates/.claude/skills/moai-project-documentation/README.md +11 -0
  340. moai_adk/templates/.claude/skills/moai-project-documentation/SKILL.md +622 -0
  341. moai_adk/templates/.claude/skills/moai-project-documentation/examples.md +20 -0
  342. moai_adk/templates/.claude/skills/moai-project-documentation/reference.md +12 -0
  343. moai_adk/templates/.claude/skills/moai-project-language-initializer/README.md +152 -0
  344. moai_adk/templates/.claude/skills/moai-project-language-initializer/SKILL.md +285 -0
  345. moai_adk/templates/.claude/skills/moai-project-language-initializer/examples.md +333 -0
  346. moai_adk/templates/.claude/skills/moai-project-language-initializer/reference.md +386 -0
  347. moai_adk/templates/.claude/skills/moai-project-template-optimizer/README.md +49 -0
  348. moai_adk/templates/.claude/skills/moai-project-template-optimizer/SKILL.md +319 -0
  349. moai_adk/templates/.claude/skills/moai-project-template-optimizer/examples.md +58 -0
  350. moai_adk/templates/.claude/skills/moai-project-template-optimizer/reference.md +123 -0
  351. moai_adk/templates/.claude/skills/moai-session-info/SKILL.md +314 -0
  352. moai_adk/templates/.claude/skills/moai-streaming-ui/SKILL.md +552 -0
  353. moai_adk/templates/.claude/skills/moai-tag-policy-validator/SKILL.md +570 -0
  354. moai_adk/templates/.git-hooks/pre-commit +66 -0
  355. moai_adk/templates/.git-hooks/pre-push +255 -0
  356. moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
  357. moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
  358. moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
  359. moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
  360. moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
  361. moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
  362. moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
  363. moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
  364. moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
  365. moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
  366. moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
  367. moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
  368. moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
  369. moai_adk/templates/.github/workflows/release.yml +118 -0
  370. moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
  371. moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
  372. moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
  373. moai_adk/templates/.github/workflows/spec-issue-sync.yml +338 -0
  374. moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
  375. moai_adk/templates/.github/workflows/tag-report.yml +269 -0
  376. moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
  377. moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
  378. moai_adk/templates/.mcp.json +31 -0
  379. moai_adk/templates/.moai/config.json +80 -7
  380. moai_adk/templates/CLAUDE.md +562 -546
  381. moai_adk/utils/banner.py +5 -5
  382. moai_adk/utils/common.py +294 -0
  383. moai_adk/utils/link_validator.py +235 -0
  384. moai_adk/utils/logger.py +8 -8
  385. moai_adk/utils/user_experience.py +451 -0
  386. moai_adk-0.20.1.dist-info/METADATA +233 -0
  387. moai_adk-0.20.1.dist-info/RECORD +404 -0
  388. moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
  389. moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -156
  390. moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -85
  391. moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
  392. moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -92
  393. moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -70
  394. moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -41
  395. moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -636
  396. moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -692
  397. moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -470
  398. moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
  399. moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -103
  400. moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -95
  401. moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
  402. moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
  403. moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -97
  404. moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -90
  405. moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -99
  406. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
  407. moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
  408. moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
  409. moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
  410. moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
  411. moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
  412. moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
  413. moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
  414. moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
  415. moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
  416. moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
  417. moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
  418. moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
  419. moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
  420. moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
  421. moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
  422. moai_adk/templates/.moai/memory/development-guide.md +0 -344
  423. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
  424. moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
  425. moai_adk/templates/.moai/project/product.md +0 -161
  426. moai_adk/templates/.moai/project/structure.md +0 -156
  427. moai_adk/templates/.moai/project/tech.md +0 -227
  428. moai_adk/templates/__init__.py +0 -2
  429. moai_adk-0.4.5.dist-info/METADATA +0 -369
  430. moai_adk-0.4.5.dist-info/RECORD +0 -152
  431. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/WHEEL +0 -0
  432. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/entry_points.txt +0 -0
  433. {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,660 @@
1
+ # Backend Architecture Reference
2
+
3
+ ## Architecture Decision Matrix
4
+
5
+ ### When to Choose Each Pattern
6
+
7
+ | Pattern | Team Size | Complexity | Deployment | Scaling | Use Cases |
8
+ |---------|-----------|------------|------------|---------|-----------|
9
+ | **Layered Monolith** | 1-5 | Low-Medium | Simple | Vertical | MVPs, startups, internal tools |
10
+ | **Modular Monolith** | 5-15 | Medium | Simple | Vertical | Growing products, clear domains |
11
+ | **Microservices** | 15+ | High | Complex | Horizontal | Large-scale, multi-team, polyglot |
12
+ | **Serverless** | Any | Low-Medium | Managed | Auto | Event-driven, spiky traffic, rapid prototyping |
13
+ | **Event-Driven** | 10+ | High | Complex | Horizontal | Real-time analytics, decoupled systems, audit logs |
14
+
15
+ ### Decision Criteria
16
+
17
+ **Choose Layered Monolith when**:
18
+ - Small team (1-5 developers)
19
+ - Rapid prototyping phase
20
+ - Simple deployment requirements
21
+ - Limited operational expertise
22
+ - Cost-sensitive project
23
+
24
+ **Choose Modular Monolith when**:
25
+ - Growing team (5-15 developers)
26
+ - Clear domain boundaries emerging
27
+ - Need independent module development
28
+ - Want extraction path to microservices
29
+ - Prefer simple deployment
30
+
31
+ **Choose Microservices when**:
32
+ - Large team (15+ developers)
33
+ - Multiple independent products/teams
34
+ - Polyglot technology requirements
35
+ - Need independent scaling per service
36
+ - High operational maturity (Kubernetes, Istio)
37
+
38
+ **Choose Serverless when**:
39
+ - Event-driven workloads
40
+ - Spiky or unpredictable traffic
41
+ - Want zero infrastructure management
42
+ - Cost optimization for low usage
43
+ - Rapid feature iteration
44
+
45
+ **Choose Event-Driven when**:
46
+ - Real-time data processing
47
+ - Audit logging requirements
48
+ - Decoupled system integration
49
+ - Complex business workflows
50
+ - Need event replay capability
51
+
52
+ ## Cloud-Native Tool Comparison
53
+
54
+ ### Container Orchestration
55
+
56
+ | Tool | Complexity | Ecosystem | Scaling | Multi-cloud | Production Ready |
57
+ |------|------------|-----------|---------|-------------|------------------|
58
+ | **Kubernetes 1.31.x** | High | Massive | Excellent | Yes | Yes |
59
+ | **Docker Swarm** | Low | Limited | Good | Partial | Yes |
60
+ | **AWS ECS** | Medium | AWS only | Good | No | Yes |
61
+ | **Nomad** | Medium | HashiCorp | Good | Yes | Yes |
62
+
63
+ **Recommendation**: Kubernetes 1.31.x for production, Docker Compose for local dev.
64
+
65
+ ### Service Mesh
66
+
67
+ | Tool | Complexity | Features | Performance | Maturity |
68
+ |------|------------|----------|-------------|----------|
69
+ | **Istio 1.21.x** | High | Comprehensive | Good | Mature |
70
+ | **Linkerd 2.14.x** | Low | Core features | Excellent | Mature |
71
+ | **Consul Connect** | Medium | Full stack | Good | Mature |
72
+ | **AWS App Mesh** | Medium | AWS native | Good | Growing |
73
+
74
+ **Recommendation**: Istio 1.21.x for full features, Linkerd for simplicity.
75
+
76
+ ### Message Brokers
77
+
78
+ | Tool | Throughput | Durability | Ordering | Complexity | Use Case |
79
+ |------|------------|------------|----------|------------|----------|
80
+ | **Apache Kafka 3.7.x** | Very High | Excellent | Partition | High | Event streaming, logs |
81
+ | **RabbitMQ 3.13.x** | High | Good | Queue | Medium | Task queues, RPC |
82
+ | **Redis Streams 7.2.x** | Very High | Good | Stream | Low | Real-time, lightweight |
83
+ | **Amazon SQS** | Medium | Excellent | Best-effort | Low | Serverless, AWS |
84
+ | **NATS 2.10.x** | Very High | Good | Stream | Low | Microservices messaging |
85
+ | **Apache Pulsar 3.2.x** | Very High | Excellent | Partition | High | Multi-tenancy, geo-replication |
86
+
87
+ **Recommendation**: Kafka 3.7.x for event streaming, RabbitMQ 3.13.x for task queues, NATS for lightweight microservices messaging.
88
+
89
+ ### Observability Stack Comparison
90
+
91
+ | Stack | Traces | Metrics | Logs | Complexity | Cost |
92
+ |-------|--------|---------|------|------------|------|
93
+ | **OpenTelemetry + Prometheus + Jaeger + ELK** | Yes | Yes | Yes | High | OSS |
94
+ | **Datadog** | Yes | Yes | Yes | Low | High |
95
+ | **New Relic** | Yes | Yes | Yes | Low | High |
96
+ | **AWS X-Ray + CloudWatch** | Yes | Yes | Yes | Medium | Medium |
97
+ | **Grafana Cloud** | Yes | Yes | Yes | Low | Medium |
98
+
99
+ **Recommendation**: OpenTelemetry 1.24.0 + Prometheus 2.48.x + Jaeger 1.51.x for vendor-neutral OSS stack.
100
+
101
+ ### Database Selection Matrix
102
+
103
+ | Database | Type | Scalability | Consistency | Query Flexibility | Use Case |
104
+ |----------|------|-------------|-------------|-------------------|----------|
105
+ | **PostgreSQL 16.x** | SQL | Vertical + Read Replicas | Strong ACID | SQL + JSONB | Relational, complex queries |
106
+ | **MongoDB 8.0.x** | Document | Horizontal (Sharding) | Tunable | Flexible schema | Rapid prototyping, catalogs |
107
+ | **Redis 7.2.x** | Key-Value | Horizontal (Cluster) | Eventual | Limited | Caching, sessions, pub/sub |
108
+ | **Cassandra 4.1.x** | Wide-Column | Horizontal | Tunable | CQL | Time-series, write-heavy |
109
+
110
+ **Recommendation**: PostgreSQL 16.x as default, MongoDB 8.0.x for schema flexibility.
111
+
112
+ ## Deployment Strategies
113
+
114
+ ### Blue-Green Deployment
115
+
116
+ **Pattern**:
117
+ - Two identical production environments (Blue = current, Green = new)
118
+ - Switch traffic after validation
119
+ - Instant rollback capability
120
+
121
+ **Pros**:
122
+ - Zero downtime
123
+ - Easy rollback
124
+ - Full validation before switch
125
+
126
+ **Cons**:
127
+ - Double infrastructure cost
128
+ - Data migration complexity
129
+ - Requires load balancer
130
+
131
+ **Best for**: Critical services with infrequent releases.
132
+
133
+ ### Canary Deployment
134
+
135
+ **Pattern**:
136
+ - Gradually shift traffic to new version (5% → 25% → 50% → 100%)
137
+ - Monitor metrics at each stage
138
+ - Auto-rollback on errors
139
+
140
+ **Pros**:
141
+ - Risk mitigation
142
+ - Real-world testing
143
+ - Minimal infrastructure duplication
144
+
145
+ **Cons**:
146
+ - Requires advanced routing (Istio)
147
+ - Longer deployment time
148
+ - Version compatibility required
149
+
150
+ **Best for**: User-facing services with high traffic.
151
+
152
+ **Istio 1.21.x Implementation**:
153
+ ```yaml
154
+ apiVersion: networking.istio.io/v1beta1
155
+ kind: VirtualService
156
+ metadata:
157
+ name: backend-canary
158
+ spec:
159
+ hosts:
160
+ - backend.example.com
161
+ http:
162
+ - match:
163
+ - headers:
164
+ x-canary:
165
+ exact: "true"
166
+ route:
167
+ - destination:
168
+ host: backend
169
+ subset: v2
170
+ - route:
171
+ - destination:
172
+ host: backend
173
+ subset: v1
174
+ weight: 90
175
+ - destination:
176
+ host: backend
177
+ subset: v2
178
+ weight: 10
179
+ ```
180
+
181
+ ### Rolling Update
182
+
183
+ **Pattern**:
184
+ - Incrementally replace instances (pod-by-pod)
185
+ - Kubernetes default strategy
186
+ - Health checks control rollout
187
+
188
+ **Pros**:
189
+ - Built-in Kubernetes support
190
+ - No extra infrastructure
191
+ - Automatic rollback on failure
192
+
193
+ **Cons**:
194
+ - Version compatibility required
195
+ - Slower than blue-green
196
+ - Mixed versions during rollout
197
+
198
+ **Best for**: Standard microservices deployments.
199
+
200
+ **Kubernetes Configuration**:
201
+ ```yaml
202
+ spec:
203
+ replicas: 10
204
+ strategy:
205
+ type: RollingUpdate
206
+ rollingUpdate:
207
+ maxSurge: 2
208
+ maxUnavailable: 1
209
+ ```
210
+
211
+ ### A/B Testing (Feature Flags)
212
+
213
+ **Pattern**:
214
+ - Route users to different features based on criteria
215
+ - Measure business metrics
216
+ - Gradual feature rollout
217
+
218
+ **Pros**:
219
+ - Business metric validation
220
+ - User segmentation
221
+ - Independent of deployment
222
+
223
+ **Cons**:
224
+ - Code complexity (feature flags)
225
+ - Requires analytics
226
+ - Technical debt if not cleaned
227
+
228
+ **Best for**: Product experiments, new features.
229
+
230
+ **Tools**: LaunchDarkly, Split.io, Unleash, AWS AppConfig.
231
+
232
+ ## Monitoring and Observability Setup
233
+
234
+ ### OpenTelemetry 1.24.0 Integration
235
+
236
+ **Step 1: Instrument Application**:
237
+ ```python
238
+ from opentelemetry import trace
239
+ from opentelemetry.sdk.trace import TracerProvider
240
+ from opentelemetry.sdk.trace.export import BatchSpanProcessor
241
+ from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
242
+
243
+ trace.set_tracer_provider(TracerProvider())
244
+ tracer = trace.get_tracer(__name__)
245
+
246
+ otlp_exporter = OTLPSpanExporter(endpoint="otel-collector:4317")
247
+ span_processor = BatchSpanProcessor(otlp_exporter)
248
+ trace.get_tracer_provider().add_span_processor(span_processor)
249
+ ```
250
+
251
+ **Step 2: Deploy Collector**:
252
+ ```yaml
253
+ apiVersion: apps/v1
254
+ kind: Deployment
255
+ metadata:
256
+ name: otel-collector
257
+ spec:
258
+ template:
259
+ spec:
260
+ containers:
261
+ - name: otel-collector
262
+ image: otel/opentelemetry-collector:0.92.0
263
+ ports:
264
+ - containerPort: 4317 # OTLP gRPC
265
+ - containerPort: 4318 # OTLP HTTP
266
+ ```
267
+
268
+ **Step 3: Configure Backends**:
269
+ ```yaml
270
+ # otel-collector-config.yaml
271
+ receivers:
272
+ otlp:
273
+ protocols:
274
+ grpc:
275
+ http:
276
+
277
+ processors:
278
+ batch:
279
+
280
+ exporters:
281
+ prometheus:
282
+ endpoint: "0.0.0.0:8889"
283
+ jaeger:
284
+ endpoint: "jaeger:14250"
285
+ elasticsearch:
286
+ endpoints: ["http://elasticsearch:9200"]
287
+
288
+ service:
289
+ pipelines:
290
+ traces:
291
+ receivers: [otlp]
292
+ processors: [batch]
293
+ exporters: [jaeger]
294
+ metrics:
295
+ receivers: [otlp]
296
+ processors: [batch]
297
+ exporters: [prometheus]
298
+ logs:
299
+ receivers: [otlp]
300
+ processors: [batch]
301
+ exporters: [elasticsearch]
302
+ ```
303
+
304
+ ### Prometheus 2.48.x Setup
305
+
306
+ **Step 1: Install Prometheus Operator**:
307
+ ```bash
308
+ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
309
+ helm install prometheus prometheus-community/kube-prometheus-stack \
310
+ --set prometheus.prometheusSpec.retention=30d \
311
+ --set prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.resources.requests.storage=50Gi
312
+ ```
313
+
314
+ **Step 2: ServiceMonitor for Application**:
315
+ ```yaml
316
+ apiVersion: monitoring.coreos.com/v1
317
+ kind: ServiceMonitor
318
+ metadata:
319
+ name: backend-metrics
320
+ spec:
321
+ selector:
322
+ matchLabels:
323
+ app: backend
324
+ endpoints:
325
+ - port: metrics
326
+ interval: 15s
327
+ ```
328
+
329
+ **Step 3: Alerting Rules**:
330
+ ```yaml
331
+ apiVersion: monitoring.coreos.com/v1
332
+ kind: PrometheusRule
333
+ metadata:
334
+ name: backend-alerts
335
+ spec:
336
+ groups:
337
+ - name: backend
338
+ interval: 30s
339
+ rules:
340
+ - alert: HighErrorRate
341
+ expr: rate(http_requests_total{status=~"5.."}[5m]) > 0.05
342
+ for: 5m
343
+ labels:
344
+ severity: critical
345
+ annotations:
346
+ summary: "High error rate detected"
347
+ ```
348
+
349
+ ### Jaeger 1.51.x Deployment
350
+
351
+ **All-in-One (Development)**:
352
+ ```bash
353
+ kubectl create deployment jaeger --image=jaegertracing/all-in-one:1.51
354
+ kubectl expose deployment jaeger --port=16686 --target-port=16686 --type=LoadBalancer
355
+ ```
356
+
357
+ **Production (with Elasticsearch)**:
358
+ ```bash
359
+ helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
360
+ helm install jaeger jaegertracing/jaeger \
361
+ --set provisionDataStore.cassandra=false \
362
+ --set provisionDataStore.elasticsearch=true \
363
+ --set storage.type=elasticsearch \
364
+ --set storage.elasticsearch.host=elasticsearch-master \
365
+ --set storage.elasticsearch.port=9200
366
+ ```
367
+
368
+ ### Grafana 10.x Dashboards
369
+
370
+ **Key Dashboards**:
371
+ - **RED Metrics**: Rate, Errors, Duration per service
372
+ - **Kubernetes Cluster**: Node/pod resource usage
373
+ - **Database Performance**: Query latency, connection pool
374
+ - **Application Logs**: Error rate trends, log volume
375
+
376
+ **Import Community Dashboards**:
377
+ - Kubernetes Cluster Monitoring (ID: 7249)
378
+ - Node Exporter Full (ID: 1860)
379
+ - PostgreSQL Database (ID: 9628)
380
+
381
+ ## Performance Benchmarking
382
+
383
+ ### Load Testing Tools
384
+
385
+ | Tool | Protocol | Complexity | Reporting | Use Case |
386
+ |------|----------|------------|-----------|----------|
387
+ | **k6** | HTTP, gRPC, WebSocket | Low | Good | API load testing |
388
+ | **Gatling** | HTTP, WebSocket | Medium | Excellent | Complex scenarios |
389
+ | **JMeter** | HTTP, JDBC, JMS, etc. | High | Good | Enterprise testing |
390
+ | **Locust** | HTTP, custom | Low | Good | Python-based scripting |
391
+
392
+ **Recommendation**: k6 for API load testing, Gatling for complex user journeys.
393
+
394
+ ### k6 Example (HTTP API)
395
+
396
+ ```javascript
397
+ import http from 'k6/http';
398
+ import { check, sleep } from 'k6';
399
+
400
+ export let options = {
401
+ stages: [
402
+ { duration: '2m', target: 100 }, // Ramp-up
403
+ { duration: '5m', target: 100 }, // Steady
404
+ { duration: '2m', target: 0 }, // Ramp-down
405
+ ],
406
+ thresholds: {
407
+ http_req_duration: ['p(95)<500'], // 95% under 500ms
408
+ http_req_failed: ['rate<0.01'], // Error rate < 1%
409
+ },
410
+ };
411
+
412
+ export default function () {
413
+ let res = http.get('https://api.example.com/users');
414
+ check(res, {
415
+ 'status is 200': (r) => r.status === 200,
416
+ 'response time < 500ms': (r) => r.timings.duration < 500,
417
+ });
418
+ sleep(1);
419
+ }
420
+ ```
421
+
422
+ **Run**:
423
+ ```bash
424
+ k6 run --vus 100 --duration 10m load-test.js
425
+ ```
426
+
427
+ ### Performance Targets
428
+
429
+ | Metric | Target | Good | Excellent |
430
+ |--------|--------|------|-----------|
431
+ | **API Response Time (p95)** | <500ms | <200ms | <100ms |
432
+ | **Error Rate** | <1% | <0.1% | <0.01% |
433
+ | **Throughput** | 1000 req/s | 5000 req/s | 10000 req/s |
434
+ | **Database Query (p95)** | <100ms | <50ms | <10ms |
435
+ | **CPU Usage** | <70% | <50% | <30% |
436
+ | **Memory Usage** | <80% | <60% | <40% |
437
+
438
+ ## Security Best Practices
439
+
440
+ ### OWASP API Security Top 10 2023 Checklist
441
+
442
+ - [ ] **API1: Broken Object Level Authorization**
443
+ - Implement per-object access control checks
444
+ - Validate user owns the resource before access
445
+ - Use UUIDs instead of sequential IDs
446
+
447
+ - [ ] **API2: Broken Authentication**
448
+ - Use industry-standard auth (OAuth 2.0, OpenID Connect)
449
+ - Implement rate limiting on auth endpoints
450
+ - Rotate secrets regularly
451
+
452
+ - [ ] **API3: Broken Object Property Level Authorization**
453
+ - Use response DTOs to filter sensitive fields
454
+ - Validate input against allowed fields (no mass assignment)
455
+ - Implement role-based field visibility
456
+
457
+ - [ ] **API4: Unrestricted Resource Consumption**
458
+ - Enforce pagination (max 100 items per page)
459
+ - Implement rate limiting (Redis-based)
460
+ - Set request timeouts and size limits
461
+
462
+ - [ ] **API5: Broken Function Level Authorization**
463
+ - Validate roles/permissions on every endpoint
464
+ - Deny by default, allow explicitly
465
+ - Use middleware for consistent checks
466
+
467
+ - [ ] **API6: Unrestricted Access to Sensitive Business Flows**
468
+ - Implement CAPTCHA for critical flows
469
+ - Detect and block automated abuse
470
+ - Monitor for unusual patterns
471
+
472
+ - [ ] **API7: Server Side Request Forgery (SSRF)**
473
+ - Validate and whitelist URLs
474
+ - Block private IP ranges
475
+ - Use network segmentation
476
+
477
+ - [ ] **API8: Security Misconfiguration**
478
+ - Disable debug mode in production
479
+ - Remove unnecessary endpoints
480
+ - Use security headers (HSTS, CSP, etc.)
481
+
482
+ - [ ] **API9: Improper Inventory Management**
483
+ - Document all API versions
484
+ - Deprecate old versions gracefully
485
+ - Monitor for unauthorized endpoints
486
+
487
+ - [ ] **API10: Unsafe Consumption of APIs**
488
+ - Validate external API responses
489
+ - Set timeouts for external calls
490
+ - Handle partial failures gracefully
491
+
492
+ ### Rate Limiting Implementation (Redis 7.2.x)
493
+
494
+ **Token Bucket Algorithm**:
495
+ ```python
496
+ import redis
497
+ import time
498
+
499
+ def is_rate_limited(user_id: str, max_requests: int = 100, window: int = 60) -> bool:
500
+ """Token bucket rate limiting with Redis."""
501
+ r = redis.Redis(host='localhost', port=6379, db=0)
502
+ key = f"rate_limit:{user_id}"
503
+
504
+ current = r.get(key)
505
+ if current is None:
506
+ r.setex(key, window, 1)
507
+ return False
508
+
509
+ current = int(current)
510
+ if current >= max_requests:
511
+ return True
512
+
513
+ r.incr(key)
514
+ return False
515
+ ```
516
+
517
+ **Sliding Window (Accurate)**:
518
+ ```python
519
+ def sliding_window_rate_limit(user_id: str, max_requests: int = 100, window: int = 60) -> bool:
520
+ """Sliding window rate limiting with Redis sorted sets."""
521
+ r = redis.Redis(host='localhost', port=6379, db=0)
522
+ key = f"rate_limit:{user_id}"
523
+ now = time.time()
524
+
525
+ # Remove old entries
526
+ r.zremrangebyscore(key, 0, now - window)
527
+
528
+ # Count requests in window
529
+ count = r.zcard(key)
530
+ if count >= max_requests:
531
+ return True
532
+
533
+ # Add current request
534
+ r.zadd(key, {str(now): now})
535
+ r.expire(key, window)
536
+ return False
537
+ ```
538
+
539
+ ## Cost Optimization
540
+
541
+ ### Resource Right-Sizing
542
+
543
+ **Kubernetes Resource Requests/Limits**:
544
+ ```yaml
545
+ resources:
546
+ requests:
547
+ cpu: "100m" # Minimum guaranteed
548
+ memory: "128Mi"
549
+ limits:
550
+ cpu: "500m" # Maximum allowed
551
+ memory: "512Mi"
552
+ ```
553
+
554
+ **Guidelines**:
555
+ - Set requests based on p50 usage
556
+ - Set limits based on p99 usage
557
+ - Enable Vertical Pod Autoscaler for recommendations
558
+
559
+ ### Auto-Scaling Strategies
560
+
561
+ **Horizontal Pod Autoscaler (HPA)**:
562
+ ```yaml
563
+ apiVersion: autoscaling/v2
564
+ kind: HorizontalPodAutoscaler
565
+ metadata:
566
+ name: backend-hpa
567
+ spec:
568
+ scaleTargetRef:
569
+ apiVersion: apps/v1
570
+ kind: Deployment
571
+ name: backend
572
+ minReplicas: 2
573
+ maxReplicas: 10
574
+ metrics:
575
+ - type: Resource
576
+ resource:
577
+ name: cpu
578
+ target:
579
+ type: Utilization
580
+ averageUtilization: 70
581
+ - type: Resource
582
+ resource:
583
+ name: memory
584
+ target:
585
+ type: Utilization
586
+ averageUtilization: 80
587
+ ```
588
+
589
+ **Cluster Autoscaler**:
590
+ - Automatically adds/removes nodes based on pending pods
591
+ - Works with cloud provider APIs (AWS, GCP, Azure)
592
+ - Set min/max node count per node group
593
+
594
+ ### Caching Strategies for Cost Reduction
595
+
596
+ **CDN for Static Assets**:
597
+ - CloudFront, CloudFlare: ~$0.085/GB
598
+ - Reduces origin server load by 80-90%
599
+ - Set long TTLs (1 year) with versioned URLs
600
+
601
+ **Redis Caching**:
602
+ - Cache database queries (TTL: 5-60 minutes)
603
+ - Session storage (reduce database connections)
604
+ - Precomputed results (expensive calculations)
605
+
606
+ **Database Connection Pooling**:
607
+ - PgBouncer: Reduce database connections by 10x
608
+ - Typical pool size: 10-20 connections per app instance
609
+ - Significant cost savings on managed databases
610
+
611
+ ### Container Registry Comparison
612
+
613
+ | Registry | Security Scanning | Geo-Replication | Cost | Integration | Use Case |
614
+ |----------|------------------|------------------|------|-------------|----------|
615
+ | **Docker Hub** | Free tier limited | No | Free/Paid | Universal | Public images |
616
+ | **Amazon ECR** | Yes (Inspector) | Yes | Pay-per-GB | AWS native | AWS workloads |
617
+ | **Google Artifact Registry** | Yes (Container Analysis) | Yes | Pay-per-GB | GCP native | GCP workloads |
618
+ | **Azure ACR** | Yes (Defender) | Yes | Pay-per-GB | Azure native | Azure workloads |
619
+ | **Harbor 2.10.x** | Yes (Trivy) | Yes | Self-hosted | Kubernetes | On-premises, multi-cloud |
620
+ | **GitHub Container Registry** | Yes (Dependabot) | Global CDN | Free for public | GitHub Actions | CI/CD integration |
621
+
622
+ **Recommendation**: Harbor 2.10.x for self-hosted multi-cloud, cloud-native registries for vendor lock-in scenarios.
623
+
624
+ ### API Gateway Comparison
625
+
626
+ | Gateway | Protocol | Performance | Features | Complexity | Use Case |
627
+ |---------|----------|-------------|----------|------------|----------|
628
+ | **Kong 3.6.x** | HTTP, gRPC, WebSocket | Excellent | Plugins, mTLS, rate limiting | Medium | Enterprise APIs |
629
+ | **Ambassador (Emissary-Ingress) 3.9.x** | HTTP, gRPC | Good | Kubernetes-native, Istio integration | Medium | Kubernetes microservices |
630
+ | **Traefik 3.0.x** | HTTP, TCP, gRPC | Good | Auto-discovery, Let's Encrypt | Low | Docker/Kubernetes |
631
+ | **NGINX Ingress Controller** | HTTP, TCP, UDP | Excellent | Battle-tested, low overhead | Low | General-purpose |
632
+ | **AWS API Gateway** | HTTP, WebSocket | Good | Serverless, AWS Lambda | Low | AWS serverless |
633
+ | **Envoy Proxy 1.29.x** | HTTP/1.1, HTTP/2, gRPC | Excellent | L7 proxy, xDS API | High | Service mesh (Istio) |
634
+
635
+ **Recommendation**: Kong 3.6.x for feature-rich APIs, NGINX Ingress for simplicity, Envoy 1.29.x for service mesh integration.
636
+
637
+ ### CI/CD Platform Comparison
638
+
639
+ | Platform | Cloud/Self-hosted | Kubernetes Support | Pipeline as Code | Cost | Use Case |
640
+ |----------|-------------------|-------------------|------------------|------|----------|
641
+ | **GitHub Actions** | Cloud | Yes (Kubernetes runners) | YAML | Free tier + paid | GitHub integration |
642
+ | **GitLab CI/CD** | Both | Yes | YAML | Free tier + paid | GitLab ecosystem |
643
+ | **Jenkins 2.440.x** | Self-hosted | Yes (Kubernetes plugin) | Groovy/Declarative | Free (self-hosted) | Enterprise, customization |
644
+ | **ArgoCD 2.10.x** | Self-hosted | Yes (GitOps) | YAML (Git) | Free | Kubernetes GitOps |
645
+ | **Tekton Pipelines 0.56.x** | Self-hosted | Yes (cloud-native) | YAML | Free | Kubernetes-native CI/CD |
646
+ | **CircleCI** | Cloud | Yes | YAML | Free tier + paid | Fast feedback loops |
647
+
648
+ **Recommendation**: ArgoCD 2.10.x for Kubernetes GitOps, GitHub Actions for GitHub-native workflows, Jenkins for complex enterprise pipelines.
649
+
650
+ ## References
651
+
652
+ - Kubernetes. "Kubernetes Best Practices." https://kubernetes.io/docs/concepts/configuration/overview/ (2025-10-22)
653
+ - Istio. "Performance and Scalability." https://istio.io/latest/docs/ops/deployment/performance-and-scalability/ (2025-10-22)
654
+ - OpenTelemetry. "Getting Started." https://opentelemetry.io/docs/instrumentation/ (2025-10-22)
655
+ - Prometheus. "Best Practices." https://prometheus.io/docs/practices/ (2025-10-22)
656
+ - OWASP. "API Security Project." https://owasp.org/www-project-api-security/ (2025-10-22)
657
+ - CNCF. "Cloud Native Landscape." https://landscape.cncf.io/ (2025-10-22)
658
+ - Kafka. "Apache Kafka Documentation." https://kafka.apache.org/documentation/ (2025-10-22)
659
+ - Harbor. "Harbor Documentation." https://goharbor.io/docs/ (2025-10-22)
660
+ - ArgoCD. "ArgoCD Documentation." https://argo-cd.readthedocs.io/ (2025-10-22)