moai-adk 0.8.2__py3-none-any.whl → 0.9.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 (39) hide show
  1. moai_adk/core/config/migration.py +1 -1
  2. moai_adk/core/issue_creator.py +7 -3
  3. moai_adk/core/tags/__init__.py +23 -24
  4. moai_adk/core/tags/ci_validator.py +3 -5
  5. moai_adk/core/tags/cli.py +2 -2
  6. moai_adk/core/tags/pre_commit_validator.py +5 -5
  7. moai_adk/core/tags/reporter.py +3 -5
  8. moai_adk/core/tags/validator.py +3 -3
  9. moai_adk/templates/.claude/commands/alfred/1-plan.md +65 -15
  10. moai_adk/templates/.claude/commands/alfred/2-run.md +65 -15
  11. moai_adk/templates/.claude/commands/alfred/3-sync.md +68 -14
  12. moai_adk/templates/.claude/hooks/alfred/core/project.py +750 -0
  13. moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +1 -1
  14. moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +111 -33
  15. moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +3 -3
  16. moai_adk/templates/.moai/memory/gitflow-protection-policy.md +330 -0
  17. moai_adk/templates/README.md +256 -0
  18. {moai_adk-0.8.2.dist-info → moai_adk-0.9.0.dist-info}/METADATA +347 -48
  19. {moai_adk-0.8.2.dist-info → moai_adk-0.9.0.dist-info}/RECORD +22 -36
  20. moai_adk/templates/.claude/hooks/alfred/.moai/cache/version-check.json +0 -9
  21. moai_adk/templates/.claude/hooks/alfred/README.md +0 -343
  22. moai_adk/templates/.claude/hooks/alfred/TROUBLESHOOTING.md +0 -471
  23. moai_adk/templates/.github/workflows/tag-report.yml +0 -261
  24. moai_adk/templates/.github/workflows/tag-validation.yml +0 -176
  25. moai_adk/templates/.moai/docs/quick-issue-creation-guide.md +0 -219
  26. moai_adk/templates/.moai/hooks/install.sh +0 -79
  27. moai_adk/templates/.moai/hooks/pre-commit.sh +0 -66
  28. moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md +0 -444
  29. moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md +0 -220
  30. moai_adk/templates/src/moai_adk/core/__init__.py +0 -5
  31. moai_adk/templates/src/moai_adk/core/tags/__init__.py +0 -87
  32. moai_adk/templates/src/moai_adk/core/tags/ci_validator.py +0 -435
  33. moai_adk/templates/src/moai_adk/core/tags/cli.py +0 -283
  34. moai_adk/templates/src/moai_adk/core/tags/pre_commit_validator.py +0 -355
  35. moai_adk/templates/src/moai_adk/core/tags/reporter.py +0 -959
  36. moai_adk/templates/src/moai_adk/core/tags/validator.py +0 -897
  37. {moai_adk-0.8.2.dist-info → moai_adk-0.9.0.dist-info}/WHEEL +0 -0
  38. {moai_adk-0.8.2.dist-info → moai_adk-0.9.0.dist-info}/entry_points.txt +0 -0
  39. {moai_adk-0.8.2.dist-info → moai_adk-0.9.0.dist-info}/licenses/LICENSE +0 -0
@@ -11,10 +11,10 @@ moai_adk/cli/commands/update.py,sha256=yy6fZA2ySJS6Nsr6wBI63eEYAzGXBoRMhb1ZKEwi5
11
11
  moai_adk/cli/prompts/__init__.py,sha256=a4_ctS4KEvGtmM9j7z8XIlMkpftohjVb9woUwZu38gE,136
12
12
  moai_adk/cli/prompts/init_prompts.py,sha256=OZ_T-b4XfkyXQsKXTwLcDYwmLbaf0k5oZfbi_asTH9M,5226
13
13
  moai_adk/core/__init__.py,sha256=1sJO-PHEKF1NmYjeOPPPzn_HRgYln3CKlCpUH4E2Jrs,129
14
- moai_adk/core/issue_creator.py,sha256=guE8LMi9JaiJkHgIz_gE9pJwjteWLsY4myrYTY6uius,9520
14
+ moai_adk/core/issue_creator.py,sha256=sKhZzXMTc5_8_CIEk7iYBSaCYfq8CawpWMgJjYFrpRE,9547
15
15
  moai_adk/core/template_engine.py,sha256=08--7FE4VWQxIBOTooi9irfe2UOjBQPRWOfOtY0RhJE,9023
16
16
  moai_adk/core/config/__init__.py,sha256=30Qx-GSN1LLI_9ngNqQ6A6d40J92xK10AQxhKw1-MzU,328
17
- moai_adk/core/config/migration.py,sha256=KzFGx3kPNoOaZCmAQvNpvlrQq48N3Gj6o2COVV7jciA,3541
17
+ moai_adk/core/config/migration.py,sha256=-rPC1C9EGcBvlCXnQoBOk5ktw7AXSJPX0TXsujr4r5A,3562
18
18
  moai_adk/core/diagnostics/__init__.py,sha256=aF-qC2CW0wxZDpxnlh-TILYs3kqwOIj2EjXYEXY-2j8,387
19
19
  moai_adk/core/diagnostics/slash_commands.py,sha256=cEH96M5RLxa1JLyoeoRqziBMzAbnN30j04YjNjxM7Ro,4682
20
20
  moai_adk/core/git/__init__.py,sha256=Kpq2yU5X5bBBUV8ySYIB1_vMPvfdFS6hTYx2Ue-CoeQ,697
@@ -35,17 +35,17 @@ moai_adk/core/quality/__init__.py,sha256=_uNsbThBLmVLWZCPmEgfFyQqJx3tdef9jhkP9Qo
35
35
  moai_adk/core/quality/trust_checker.py,sha256=CN067AiublAH46IBAKEV_I-8Wc0bNaR2dMnMf9n5oBg,15198
36
36
  moai_adk/core/quality/validators/__init__.py,sha256=Q53sqQFOK7GnwshPVi0HvUSq_VCvHEL28-V5J_L9LoE,189
37
37
  moai_adk/core/quality/validators/base_validator.py,sha256=8Fk5casPdfRtnlEfslIK6mOYsZeZLWIK_MAebWCrNw4,437
38
- moai_adk/core/tags/__init__.py,sha256=BJ83UcG0lTQMN3wBy4dkmHWLLIkGITmJQYH0CEH3KJM,1986
39
- moai_adk/core/tags/ci_validator.py,sha256=mZm78VgwLNIoGvw4xYkZLZAJib0LGQ8jZCoFOTkFOew,13754
40
- moai_adk/core/tags/cli.py,sha256=IKukBQoyjPdB3asrXiuCJpaT8U1Gz26OBauNXKGAJTs,7344
38
+ moai_adk/core/tags/__init__.py,sha256=nmZKs4eblrOzPg8JOHNkoaRzhPcUDGmMwvnUcyMZwGY,1985
39
+ moai_adk/core/tags/ci_validator.py,sha256=PScVKPROu12mnu02nFzi66i-1pdbbnoitGzheI1COV8,13679
40
+ moai_adk/core/tags/cli.py,sha256=1VWRT1k62FS5Yyzllat-nyLR3jqvGdyDkj1uOwPfavA,7344
41
41
  moai_adk/core/tags/generator.py,sha256=xVopAAez8K5pNSHWZOGZXEWYIre53lTtfHUlR7i-vNE,3407
42
42
  moai_adk/core/tags/inserter.py,sha256=_1lsMTyyrjGidAKqi4y925msHxK6gHLAsu3O8-O2vFM,2823
43
43
  moai_adk/core/tags/mapper.py,sha256=ldcfMFzsk-ESKpXAptYydqx2NZ951utqKOXZVTHMeIE,3955
44
44
  moai_adk/core/tags/parser.py,sha256=3LpNcL47xT3u4b3Fdf9wYnltChDrNAEV4EtnHqLN1MA,2098
45
- moai_adk/core/tags/pre_commit_validator.py,sha256=1eA2RLFaFgRHKYKnHWfst_n3_TL8jJiLK53wb2_-dIA,10290
46
- moai_adk/core/tags/reporter.py,sha256=8KNf5L3PEMcsq0CEJ08c4GQYzt5mYtzDHOsxRBlU1hA,29400
45
+ moai_adk/core/tags/pre_commit_validator.py,sha256=9lFC5bNv1vQbfRusxNdHBl9FBbHDPdyipF5CITBSHMs,10282
46
+ moai_adk/core/tags/reporter.py,sha256=TQEyM2F_4cGreYyI0iJgDTqoR0Y8XL4M0oG4ZX1LBgc,29362
47
47
  moai_adk/core/tags/tags.py,sha256=Fylt030vrDqhSWivwRbxxwu_uQhilei0SFk_xVzy9UI,4248
48
- moai_adk/core/tags/validator.py,sha256=RH4NMX2TMtZ3IfGUHzlk-q0EzWWev5m9dYSehaXfxkE,31138
48
+ moai_adk/core/tags/validator.py,sha256=B3xUDubfyT5RlPM3GLYktfe1EQTEdxOrDhD230_etoA,31138
49
49
  moai_adk/core/template/__init__.py,sha256=BB65Zkar2Oywt1_RFtQKIup6HXq20VNQrYqXD_Qp1_g,354
50
50
  moai_adk/core/template/backup.py,sha256=44y3QGCKsYqrRPbzkB1xNM9qtpG6kNNMcWR8DnAcPiQ,3228
51
51
  moai_adk/core/template/config.py,sha256=ZJU9UKSGF2tkPiwSFReoCkAHGQ0aN2jKmIIQt88x5-o,3532
@@ -54,6 +54,7 @@ moai_adk/core/template/merger.py,sha256=ZV8_U1HZJ3bfAtgyNmSxgj8KdTMt4eUnUG6kVVRT
54
54
  moai_adk/core/template/processor.py,sha256=_nYHiuN9PGzC3iE4X5SpRMFW-OTkI2u1dOAjD98axAk,19190
55
55
  moai_adk/templates/.gitignore,sha256=6VNKResdDpyaii3cmJA4pOLwK2PhYARIWkUODYtKyxg,310
56
56
  moai_adk/templates/CLAUDE.md,sha256=dgVsp_srZJKnn04uegJ-9PxifVDwenSPBY0KxawFvEA,14278
57
+ moai_adk/templates/README.md,sha256=727KhnlpzLukiKRy4ZBZpcn1QL9XtXehv2TUbN9w1ak,8791
57
58
  moai_adk/templates/__init__.py,sha256=6MV1gCB7PLZMiL4gaD_dZSKxtcQyo45MMTuN8fVdchA,104
58
59
  moai_adk/templates/.claude/settings.json,sha256=CJuGzZU84aWPS0UOcDYJxUOEVau60piT_X4kybyimuQ,3270
59
60
  moai_adk/templates/.claude/agents/alfred/cc-manager.md,sha256=gVw9NMzy6UJqQ20GEiYz8Sm03e-4TKNR1-0Lz0MGPTc,9264
@@ -69,12 +70,10 @@ moai_adk/templates/.claude/agents/alfred/tag-agent.md,sha256=oQIPS_Pa-VGiTZn4DH1
69
70
  moai_adk/templates/.claude/agents/alfred/tdd-implementer.md,sha256=W0PwBgmdOhG_tb3dl-G-nFJtdL_0uLxjkGe1PLtUick,10691
70
71
  moai_adk/templates/.claude/agents/alfred/trust-checker.md,sha256=ISdkXhZvwEYCBKVIHYyMGAHInr4ToLf4zVvNSwRVABA,14583
71
72
  moai_adk/templates/.claude/commands/alfred/0-project.md,sha256=YFvND5qGRMqYqj9jWOAuv8OABK2eRcAn7cpciqhl92g,46903
72
- moai_adk/templates/.claude/commands/alfred/1-plan.md,sha256=tD_C30pm24yWfwkSOQMYyAQxLgcg4qbYTxpBzCkV3wg,25918
73
- moai_adk/templates/.claude/commands/alfred/2-run.md,sha256=SVyJQoZJIQWr2rDqz8QTbLFXGney_ev5gT4WoLyU7w8,21270
74
- moai_adk/templates/.claude/commands/alfred/3-sync.md,sha256=jLCRe8UUC2Iof8Kg1rruvw6LS0TILnL7mg5UgdWrBtU,23397
73
+ moai_adk/templates/.claude/commands/alfred/1-plan.md,sha256=NROGRNbxXd-0kXX_eW_7m6mSfUNkv6sfw30jJEQI3Zc,29056
74
+ moai_adk/templates/.claude/commands/alfred/2-run.md,sha256=s8zU2146DXupi3vJHoTDZB3YPm0v1vRnP8p_sPtuIBo,24375
75
+ moai_adk/templates/.claude/commands/alfred/3-sync.md,sha256=Pr9EGFol09l-MLdc2fFSOkpqA7jPHV1KPePqmfkKQgg,26619
75
76
  moai_adk/templates/.claude/commands/alfred/9-feedback.md,sha256=VMaKo-ZODHun87uUfiihtHGf8eT4vrEWwxXdQ9RAz3k,3764
76
- moai_adk/templates/.claude/hooks/alfred/README.md,sha256=LsSMvsxNwdV2CjA2X6Zn_xy73kT7-0Y7G-u_9bLKYlI,10568
77
- moai_adk/templates/.claude/hooks/alfred/TROUBLESHOOTING.md,sha256=xINO1G3ujccL42JQzExEm-oiY9jHGrXm2YAlxtYkZY4,10753
78
77
  moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py,sha256=eOV-evpk8ChZD9_kMNmrRysCpy3ZMzV6cq1Oys0vRn0,9220
79
78
  moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py,sha256=Gn-hSpMs6Oy6yJcluXUcmlXiyS48RmsDWZn1xu3tgLA,2911
80
79
  moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py,sha256=7wxR2gQFX3nmBi9uC6KORjQGrQAv1y6JxJ_fcMxsw78,2939
@@ -84,14 +83,14 @@ moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py,sha2
84
83
  moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py,sha256=0GrMBWOQreGqJM-Q8_B1kXLdPchDiEnpsQSJlBIByxo,2863
85
84
  moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py,sha256=YmDOuvWa6OnSowsMitkRovekoJNq65pUPlmiTgQoBnE,2958
86
85
  moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py,sha256=AOPc8EmNbKMFsOhk5d7nGZ7aZbm-ZH8MNT0_I1Wv-hE,3585
87
- moai_adk/templates/.claude/hooks/alfred/.moai/cache/version-check.json,sha256=D_Q4I_C-g6h4GqflzDOen1yPNrVFF6gXySga68VSQXg,250
88
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py,sha256=qqrID2f7JZsEXXRf4kz_KtwAXBK-g0r-CixuXxM7vig,5972
86
+ moai_adk/templates/.claude/hooks/alfred/core/project.py,sha256=LxcesuFDZDDBWQut-0ez_4kmTcrrNbsAZrb5GubWeA8,26953
87
+ moai_adk/templates/.claude/hooks/alfred/core/version_cache.py,sha256=mOxvLtLiZDSCSlq0svECCJYIX0rPpNJOwL1KZjOB5yo,5967
89
88
  moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py,sha256=nx_02kZDVFlKOgxBfFz3nqVrxMkmrkE0x7crJhdjl5E,6377
90
89
  moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py,sha256=dsvFDSXQNSQlaQLpvhqFbytGOrOivyovi43Y18EmNeI,8483
91
90
  moai_adk/templates/.claude/hooks/alfred/shared/core/context.py,sha256=RQd6yk8OGT-twgYtUiNmJIL-UEt_h4oktxqiRP_wXAI,2103
92
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py,sha256=nnjdVPGShDNirrF2X5KN1lWQ0kfSfYeQBSrrIeig1h8,23496
91
+ moai_adk/templates/.claude/hooks/alfred/shared/core/project.py,sha256=CFgU2JomkOtXUD02DHIYyRF1gNqtLckd7Kuaz83ecMc,26948
93
92
  moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py,sha256=XcYYCS1VmCejp7Ga9xZ3hDfrWWsKM-WyPD_N5gY1q1w,6359
94
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py,sha256=qqrID2f7JZsEXXRf4kz_KtwAXBK-g0r-CixuXxM7vig,5972
93
+ moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py,sha256=zt0a6__qsZVI_rfZuPv3JDpVZeUGLWBvYprTjSg_7gM,5965
95
94
  moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py,sha256=j5L7nayKt7tnFQOZuO5sWiie815vmbmYJOn2VRiidLY,569
96
95
  moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py,sha256=8TcEqGlz4EpLf2lpouaIuhVbpKOVeY31KPmIq2snt9U,662
97
96
  moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py,sha256=WkTiwgwce089eUkY1cT7WdXpSqpbmj-IIWTdRd3Ihqk,7278
@@ -284,36 +283,23 @@ moai_adk/templates/.github/workflows/moai-release-create.yml,sha256=KrHGkAep6iRy
284
283
  moai_adk/templates/.github/workflows/moai-release-pipeline.yml,sha256=kVpRk_OFgz0AVctLRLA2ASN-G_-prAHTGI7tufe6Pd0,6319
285
284
  moai_adk/templates/.github/workflows/release.yml,sha256=5h4-npHKU-t1mnOQePYcpkcdGCN_560-Obu5tUCyNe0,1382
286
285
  moai_adk/templates/.github/workflows/spec-issue-sync.yml,sha256=GIYeQQvwcoi0r-o85nEbSSLwT5EsrSEzJKLhLMX7GPk,6483
287
- moai_adk/templates/.github/workflows/tag-report.yml,sha256=zZ33OmLnRjBfWbnnYx_chpV_iY3rncCAbcVP708JQoE,9273
288
- moai_adk/templates/.github/workflows/tag-validation.yml,sha256=L6NMZhb4q_K4toKvyYG1hvBFT3fBNJaiONtL7OefTCw,6758
289
286
  moai_adk/templates/.moai/config.json,sha256=r7TtDLtS06YDP7EsqsghNfKCNkltVxVbmmSJHwQQV-s,2950
290
- moai_adk/templates/.moai/docs/quick-issue-creation-guide.md,sha256=tFJqsNr9SpXlGao6HXXm6I8FmC7yCkUo9cu6lE1GaVA,5460
291
- moai_adk/templates/.moai/hooks/install.sh,sha256=P1-RtiHp7m2QIUUcHQ_oHB1xnqRQnD5QePb2iUo7qfA,2112
292
- moai_adk/templates/.moai/hooks/pre-commit.sh,sha256=86UIhXMqJ4i24mKrLdzvyWXYSMK__EtXGSpE19wgVw4,1802
293
287
  moai_adk/templates/.moai/memory/CLAUDE-AGENTS-GUIDE.md,sha256=37Qj5DYcyUniLM1g8IU7UWFI_16tutZrcAkJc4E5i20,15876
294
288
  moai_adk/templates/.moai/memory/CLAUDE-PRACTICES.md,sha256=Tf3q68X1DiA3MkIBYu7AMXoeparYrDRpyqVI5Nw92OY,12653
295
289
  moai_adk/templates/.moai/memory/CLAUDE-RULES.md,sha256=S9GODGRzwwleOmROVtBDa471Ok5NyQLWIkaO_4peHhU,19783
296
- moai_adk/templates/.moai/memory/CONFIG-SCHEMA.md,sha256=XmvogEnGedRItVc9OABKr4lDNEZhcKZQ3Qa6KlfxE3E,12477
297
290
  moai_adk/templates/.moai/memory/DEVELOPMENT-GUIDE.md,sha256=SAcue1J5-DEJpygDnTgp_ex-ok2E4lbcykBuBiC7tGs,14534
298
- moai_adk/templates/.moai/memory/GITFLOW-PROTECTION-POLICY.md,sha256=tm2ZOmNMvomAhh4_AGTUNjmSsc-eKzo1SGshojx2QL0,6228
299
291
  moai_adk/templates/.moai/memory/ISSUE-LABEL-MAPPING.md,sha256=bKzC2v1ZZWyng0eHSj9oFQ9w9xCbadPe9T9IYWub7wM,3824
300
292
  moai_adk/templates/.moai/memory/SKILLS-DESCRIPTION-POLICY.md,sha256=uMEFi6uojnpO_MGGtwhakYQzVF2yzVV9ZzfQe5tB0Hk,7823
301
293
  moai_adk/templates/.moai/memory/SPEC-METADATA.md,sha256=Ha4ATMxyH2PgQdVbS1fYwVH0PnIkfqk4hfuB5ksMFFk,9702
294
+ moai_adk/templates/.moai/memory/gitflow-protection-policy.md,sha256=UABdUWcA_085dZaQk7gaW2-ze3DV-BX399kKtbF1kGI,10401
302
295
  moai_adk/templates/.moai/project/product.md,sha256=IrRSqhu0o5KNfn453DUWoUKzdoO3m6013iYCwaHYCxM,5166
303
296
  moai_adk/templates/.moai/project/structure.md,sha256=YWZ4ggmfzveKx8SQGFQWXdDUh5mxOLkEyy5yVdR3Rn0,4791
304
297
  moai_adk/templates/.moai/project/tech.md,sha256=REecMv8wOvutt-pQZ5nlGk5YdReTan7AHcKJ2Yes6RM,5758
305
- moai_adk/templates/src/moai_adk/core/__init__.py,sha256=rbztODLKJooQ4ah3_Pjfk9wNM7qlMfXm5o7qotiNAK8,127
306
- moai_adk/templates/src/moai_adk/core/tags/__init__.py,sha256=BJ83UcG0lTQMN3wBy4dkmHWLLIkGITmJQYH0CEH3KJM,1986
307
- moai_adk/templates/src/moai_adk/core/tags/ci_validator.py,sha256=mZm78VgwLNIoGvw4xYkZLZAJib0LGQ8jZCoFOTkFOew,13754
308
- moai_adk/templates/src/moai_adk/core/tags/cli.py,sha256=IKukBQoyjPdB3asrXiuCJpaT8U1Gz26OBauNXKGAJTs,7344
309
- moai_adk/templates/src/moai_adk/core/tags/pre_commit_validator.py,sha256=1eA2RLFaFgRHKYKnHWfst_n3_TL8jJiLK53wb2_-dIA,10290
310
- moai_adk/templates/src/moai_adk/core/tags/reporter.py,sha256=8KNf5L3PEMcsq0CEJ08c4GQYzt5mYtzDHOsxRBlU1hA,29400
311
- moai_adk/templates/src/moai_adk/core/tags/validator.py,sha256=RH4NMX2TMtZ3IfGUHzlk-q0EzWWev5m9dYSehaXfxkE,31138
312
298
  moai_adk/utils/__init__.py,sha256=VnVfQzzKHvKw4bNdEw5xdscnRQYFrnr-v_TOBr3naPs,225
313
299
  moai_adk/utils/banner.py,sha256=znppKd5yo-tTqgyhgPVJjstrTrfcy_v3X1_RFQxP4Fk,1878
314
300
  moai_adk/utils/logger.py,sha256=g-m07PGKjK2bKRIInfSn6m-024Bedai-pV_WjZKDeu8,5064
315
- moai_adk-0.8.2.dist-info/METADATA,sha256=HHPxuV_a1xMadFqt3DLz-3sbQl40rJUPLMfQYKtExb4,81109
316
- moai_adk-0.8.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
317
- moai_adk-0.8.2.dist-info/entry_points.txt,sha256=P9no1794UipqH72LP-ltdyfVd_MeB1WKJY_6-JQgV3U,52
318
- moai_adk-0.8.2.dist-info/licenses/LICENSE,sha256=M1M2b07fWcSWRM6_P3wbZKndZvyfHyYk_Wu9bS8F7o8,1069
319
- moai_adk-0.8.2.dist-info/RECORD,,
301
+ moai_adk-0.9.0.dist-info/METADATA,sha256=qGcW3rCkcOjeWJA4su-DmRl_znCcO_V2dyarpX1aJuE,93964
302
+ moai_adk-0.9.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
303
+ moai_adk-0.9.0.dist-info/entry_points.txt,sha256=P9no1794UipqH72LP-ltdyfVd_MeB1WKJY_6-JQgV3U,52
304
+ moai_adk-0.9.0.dist-info/licenses/LICENSE,sha256=M1M2b07fWcSWRM6_P3wbZKndZvyfHyYk_Wu9bS8F7o8,1069
305
+ moai_adk-0.9.0.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- {
2
- "current": "0.8.1",
3
- "latest": "0.8.1",
4
- "update_available": false,
5
- "upgrade_command": "",
6
- "release_notes_url": "https://github.com/modu-ai/moai-adk/releases",
7
- "is_major_update": false,
8
- "last_check": "2025-10-29T08:52:11.240503+00:00"
9
- }
@@ -1,343 +0,0 @@
1
- # Alfred Hooks System
2
-
3
- **Event-Driven Context Management for MoAI-ADK**
4
-
5
- Alfred Hooks integrates with Claude Code's event system to automatically manage project context, create checkpoints before risky operations, and provide just-in-time (JIT) document loading.
6
-
7
- ---
8
-
9
- ## 📐 Architecture
10
-
11
- ### Individual Hook Files (Event + Function Naming)
12
-
13
- ```
14
- .claude/hooks/alfred/
15
- ├── session_start__show_project_info.py # SessionStart: Display project status
16
- ├── user_prompt__jit_load_docs.py # UserPromptSubmit: JIT document loading
17
- ├── pre_tool__auto_checkpoint.py # PreToolUse: Automatic safety checkpoints
18
- ├── post_tool__log_changes.py # PostToolUse: Change tracking (stub)
19
- ├── session_end__cleanup.py # SessionEnd: Cleanup resources (stub)
20
- ├── notification__handle_events.py # Notification: Event processing (stub)
21
- ├── stop__handle_interrupt.py # Stop: Interrupt handling (stub)
22
- ├── subagent_stop__handle_subagent_end.py # SubagentStop: Sub-agent cleanup (stub)
23
- └── shared/ # Shared business logic
24
- ├── core/ # Core modules
25
- │ ├── __init__.py # Type definitions (HookPayload, HookResult)
26
- │ ├── project.py # Language detection, Git info, SPEC counting
27
- │ ├── context.py # JIT retrieval, workflow context
28
- │ ├── checkpoint.py # Event-driven checkpoint creation
29
- │ └── version_cache.py # Library version management
30
- └── handlers/ # Event handlers
31
- ├── __init__.py # Handler exports
32
- ├── session.py # SessionStart, SessionEnd handlers
33
- ├── user.py # UserPromptSubmit handler
34
- ├── tool.py # PreToolUse, PostToolUse handlers
35
- └── notification.py # Notification, Stop handlers
36
- ```
37
-
38
- ### Design Principles
39
-
40
- - **Clarity First**: File names describe what each hook does (UX priority)
41
- - **DRY Implementation**: Shared logic in `shared/` modules (maintainability)
42
- - **Self-Documenting**: Event + Function naming convention (e.g., `session_start__show_project_info.py`)
43
- - **Independent Execution**: Each hook file is self-contained and executable
44
- - **Timeout Protection**: All hooks enforce 5-second SIGALRM timeout
45
-
46
- ---
47
-
48
- ## 🎯 Hook Files
49
-
50
- ### `session_start__show_project_info.py`
51
-
52
- **Event**: SessionStart
53
- **Purpose**: Display project information when session begins
54
-
55
- **Output**:
56
- - Programming language
57
- - Git branch and status
58
- - SPEC progress (completed/total %)
59
- - Recent checkpoints
60
-
61
- **Example**:
62
- ```bash
63
- echo '{"cwd": "."}' | uv run session_start__show_project_info.py
64
- # Output: {"continue": true, "systemMessage": "🚀 MoAI-ADK v0.8.0 | 📦 python..."}
65
- ```
66
-
67
- ---
68
-
69
- ### `user_prompt__jit_load_docs.py`
70
-
71
- **Event**: UserPromptSubmit
72
- **Purpose**: Analyze prompt and recommend relevant documents
73
-
74
- **Features**:
75
- - Pattern matching for Alfred commands (`/alfred:1-plan` → spec-metadata.md)
76
- - @TAG mention detection
77
- - SPEC reference extraction
78
- - Document path suggestions
79
-
80
- **Output Schema** (UserPromptSubmit-specific):
81
- ```json
82
- {
83
- "continue": true,
84
- "hookSpecificOutput": {
85
- "hookEventName": "UserPromptSubmit",
86
- "additionalContext": "Suggested documents: .moai/memory/spec-metadata.md"
87
- }
88
- }
89
- ```
90
-
91
- ---
92
-
93
- ### `pre_tool__auto_checkpoint.py`
94
-
95
- **Event**: PreToolUse
96
- **Matcher**: `Edit|Write|MultiEdit`
97
- **Purpose**: Automatically create Git checkpoints before risky operations
98
-
99
- **Risky Operations Detected**:
100
- - **Bash**: `rm -rf`, `git merge`, `git reset --hard`
101
- - **Edit/Write**: `CLAUDE.md`, `config.json`, critical configuration files
102
- - **MultiEdit**: Operations affecting ≥10 files
103
-
104
- **Checkpoint Strategy**:
105
- 1. Detect risky pattern
106
- 2. Create checkpoint branch: `checkpoint/before-{operation}-{timestamp}`
107
- 3. Log to `.moai/checkpoints.log`
108
- 4. Return guidance message to user
109
-
110
- **Example**:
111
- ```bash
112
- echo '{"toolName": "Bash", "arguments": {"command": "rm -rf temp/"}}' | uv run pre_tool__auto_checkpoint.py
113
- # Output: {"continue": true, "systemMessage": "✅ Checkpoint created: checkpoint/before-rm-20251029-174500"}
114
- ```
115
-
116
- ---
117
-
118
- ### Stub Hooks (Future Enhancement)
119
-
120
- **`post_tool__log_changes.py`**
121
- - Change tracking and audit logging
122
- - Metrics collection (files modified, lines changed)
123
-
124
- **`session_end__cleanup.py`**
125
- - Clear temporary caches
126
- - Save session metrics
127
-
128
- **`notification__handle_events.py`**
129
- - Filter and categorize notifications
130
- - Send alerts to external systems
131
-
132
- **`stop__handle_interrupt.py`**
133
- - Save partial work before interruption
134
- - Create recovery checkpoint
135
-
136
- **`subagent_stop__handle_subagent_end.py`**
137
- - Collect sub-agent execution metrics
138
- - Log results and errors
139
-
140
- ---
141
-
142
- ## 🏗️ Shared Modules
143
-
144
- ### `shared/core/` - Business Logic
145
-
146
- **`project.py`** (284 LOC)
147
- ```python
148
- detect_language(cwd: str) -> str
149
- get_git_info(cwd: str) -> dict
150
- count_specs(cwd: str) -> dict
151
- ```
152
-
153
- **`context.py`** (110 LOC)
154
- ```python
155
- get_jit_context(prompt: str, cwd: str) -> list[str]
156
- ```
157
-
158
- **`checkpoint.py`** (244 LOC)
159
- ```python
160
- detect_risky_operation(tool: str, args: dict) -> tuple[bool, str]
161
- create_checkpoint(cwd: str, operation: str) -> str
162
- ```
163
-
164
- ### `shared/handlers/` - Event Processing
165
-
166
- **`session.py`** - SessionStart, SessionEnd
167
- **`user.py`** - UserPromptSubmit
168
- **`tool.py`** - PreToolUse, PostToolUse
169
- **`notification.py`** - Notification, Stop, SubagentStop
170
-
171
- ---
172
-
173
- ## 🔧 Configuration
174
-
175
- ### settings.json
176
-
177
- ```json
178
- {
179
- "hooks": {
180
- "SessionStart": [{
181
- "hooks": [{
182
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/session_start__show_project_info.py",
183
- "type": "command"
184
- }]
185
- }],
186
- "UserPromptSubmit": [{
187
- "hooks": [{
188
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/user_prompt__jit_load_docs.py",
189
- "type": "command"
190
- }]
191
- }],
192
- "PreToolUse": [{
193
- "hooks": [{
194
- "command": "uv run \"$CLAUDE_PROJECT_DIR\"/.claude/hooks/alfred/pre_tool__auto_checkpoint.py",
195
- "type": "command"
196
- }],
197
- "matcher": "Edit|Write|MultiEdit"
198
- }]
199
- }
200
- }
201
- ```
202
-
203
- **Key Changes**:
204
- - ✅ File names are self-descriptive (no arguments needed)
205
- - ✅ `$CLAUDE_PROJECT_DIR` for reliable path resolution
206
- - ✅ Each hook file is independent and testable
207
-
208
- ---
209
-
210
- ## 🧪 Testing
211
-
212
- ### Test Individual Hooks
213
-
214
- ```bash
215
- # Test SessionStart hook
216
- echo '{"cwd": "."}' | uv run session_start__show_project_info.py
217
-
218
- # Test UserPromptSubmit hook
219
- echo '{"cwd": ".", "userPrompt": "/alfred:1-plan"}' | uv run user_prompt__jit_load_docs.py
220
-
221
- # Test PreToolUse hook
222
- echo '{"cwd": ".", "toolName": "Edit", "arguments": {"file_path": "CLAUDE.md"}}' | uv run pre_tool__auto_checkpoint.py
223
- ```
224
-
225
- ### Expected Output
226
-
227
- All hooks should return valid JSON with:
228
- - `"continue": true` (required field)
229
- - `"systemMessage"` or `"hookSpecificOutput"` (depending on hook type)
230
-
231
- ---
232
-
233
- ## 🐛 Troubleshooting
234
-
235
- For detailed troubleshooting guide, see [TROUBLESHOOTING.md](./TROUBLESHOOTING.md).
236
-
237
- ### Quick Diagnosis
238
-
239
- ```bash
240
- # List all hook files
241
- ls -la .claude/hooks/alfred/*.py
242
-
243
- # Expected output:
244
- # session_start__show_project_info.py
245
- # user_prompt__jit_load_docs.py
246
- # pre_tool__auto_checkpoint.py
247
- # post_tool__log_changes.py
248
- # session_end__cleanup.py
249
- # notification__handle_events.py
250
- # stop__handle_interrupt.py
251
- # subagent_stop__handle_subagent_end.py
252
- ```
253
-
254
- ### Common Issues
255
-
256
- 1. **"Hook not found"** → Run `/alfred:0-project update`
257
- 2. **"Import error: No module named 'handlers'"** → Check `shared/handlers/__init__.py` exists
258
- 3. **"Timeout"** → Check Git/file operations, consider increasing timeout in hook file
259
- 4. **"Permission denied"** → Run `chmod +x .claude/hooks/alfred/*.py`
260
-
261
- ---
262
-
263
- ## 🏗️ Architecture Decisions
264
-
265
- ### Why Individual Hook Files? (UX Priority)
266
-
267
- **Before** (Single Router):
268
- ```
269
- alfred_hooks.py SessionStart ❌ Unclear what "SessionStart" does
270
- ```
271
-
272
- **After** (Individual Files):
273
- ```
274
- session_start__show_project_info.py ✅ Immediately clear purpose
275
- ```
276
-
277
- **Benefits**:
278
- 1. ✅ **Self-Documenting**: File name describes functionality
279
- 2. ✅ **Easy Debugging**: Error messages show which hook failed
280
- 3. ✅ **Simple Discovery**: `ls` command shows all available hooks
281
- 4. ✅ **Independent Testing**: Each hook can be tested in isolation
282
- 5. ✅ **Selective Disabling**: Comment out specific hook in settings.json
283
-
284
- **Tradeoffs**:
285
- - ⚠️ **More Files**: 8 hook files instead of 1 router
286
- - ⚠️ **Shared Logic**: Still needs `shared/` directory for DRY principle
287
-
288
- **Decision**: **UX > Technical Elegance** - Users benefit from clarity
289
-
290
- ### Why Keep shared/ Directory? (DRY Principle)
291
-
292
- **Shared Logic** (70% of codebase):
293
- - Type definitions (HookResult, HookPayload)
294
- - Project metadata (language detection, Git info)
295
- - Checkpoint creation
296
- - JIT context analysis
297
-
298
- **Alternative** (Code Duplication):
299
- ```python
300
- # ❌ BAD: Copy HookResult to each hook file
301
- # session_start__show_project_info.py
302
- class HookResult: # 50 LOC duplicated
303
- ...
304
-
305
- # user_prompt__jit_load_docs.py
306
- class HookResult: # 50 LOC duplicated again
307
- ...
308
- ```
309
-
310
- **Current** (Shared Module):
311
- ```python
312
- # ✅ GOOD: Import from shared module
313
- from shared.core import HookResult # DRY principle
314
- ```
315
-
316
- **Decision**: **Hybrid Approach** - Individual files for UX + Shared modules for DRY
317
-
318
- ---
319
-
320
- ## 📈 Version History
321
-
322
- ### v0.9.0 (2025-10-29) - Individual Hook Files (UX Priority)
323
- - ✅ **BREAKING**: Split `alfred_hooks.py` into 8 individual files
324
- - ✅ **NAMING**: Event + Function naming convention (`session_start__show_project_info.py`)
325
- - ✅ **STRUCTURE**: Moved shared logic to `shared/` directory
326
- - ✅ **UX**: File names are self-descriptive (no arguments needed)
327
- - ✅ **DEBUGGING**: Error messages now show which hook failed
328
-
329
- ### v0.8.0 (2025-10-29) - Path Resolution & Timeout Fixes
330
- - ✅ **FIXED**: Use `$CLAUDE_PROJECT_DIR` for reliable path resolution
331
- - ✅ **ADDED**: Global SIGALRM timeout protection (5 seconds)
332
- - ✅ **ADDED**: Comprehensive TROUBLESHOOTING.md guide
333
-
334
- ### v0.7.0 (2025-10-17) - Stateless Refactoring
335
- - ✅ **REMOVED**: Workflow context from hooks (delegated to Commands layer)
336
- - ✅ **PERFORMANCE**: 180ms → 70ms (61% improvement)
337
- - ✅ **COMPLIANCE**: 100% stateless (no global variables)
338
-
339
- ---
340
-
341
- **Last Updated**: 2025-10-29
342
- **Version**: 0.9.0
343
- **Author**: @Alfred (MoAI-ADK SuperAgent)