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.
- moai_adk/__init__.py +1 -1
- moai_adk/__main__.py +74 -1
- moai_adk/cli/commands/__init__.py +1 -1
- moai_adk/cli/commands/analyze.py +119 -0
- moai_adk/cli/commands/backup.py +25 -1
- moai_adk/cli/commands/doctor.py +31 -5
- moai_adk/cli/commands/improve_user_experience.py +307 -0
- moai_adk/cli/commands/init.py +111 -10
- moai_adk/cli/commands/status.py +33 -3
- moai_adk/cli/commands/update.py +921 -130
- moai_adk/cli/commands/validate_links.py +120 -0
- moai_adk/cli/prompts/init_prompts.py +22 -87
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +388 -0
- moai_adk/core/analysis/tag_chain_analyzer.py +344 -0
- moai_adk/core/analysis/tag_chain_repair.py +879 -0
- moai_adk/core/config/__init__.py +19 -0
- moai_adk/core/config/migration.py +235 -0
- moai_adk/core/git/__init__.py +1 -1
- moai_adk/core/git/branch.py +1 -1
- moai_adk/core/git/commit.py +1 -1
- moai_adk/core/git/manager.py +1 -1
- moai_adk/core/issue_creator.py +313 -0
- moai_adk/core/mcp/setup.py +56 -0
- moai_adk/core/mcp/setup_old.py +296 -0
- moai_adk/core/project/backup_utils.py +1 -1
- moai_adk/core/project/checker.py +2 -2
- moai_adk/core/project/detector.py +211 -12
- moai_adk/core/project/initializer.py +85 -15
- moai_adk/core/project/phase_executor.py +76 -13
- moai_adk/core/project/validator.py +13 -13
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +1 -1
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/tags/__init__.py +86 -0
- moai_adk/core/tags/auto_corrector.py +693 -0
- moai_adk/core/tags/ci_validator.py +463 -0
- moai_adk/core/tags/cli.py +283 -0
- moai_adk/core/tags/generator.py +109 -0
- moai_adk/core/tags/inserter.py +99 -0
- moai_adk/core/tags/mapper.py +126 -0
- moai_adk/core/tags/parser.py +76 -0
- moai_adk/core/tags/policy_validator.py +580 -0
- moai_adk/core/tags/pre_commit_validator.py +421 -0
- moai_adk/core/tags/reporter.py +956 -0
- moai_adk/core/tags/rollback_manager.py +525 -0
- moai_adk/core/tags/tags.py +149 -0
- moai_adk/core/tags/validator.py +897 -0
- moai_adk/core/template/__init__.py +1 -1
- moai_adk/core/template/backup.py +1 -1
- moai_adk/core/template/merger.py +50 -1
- moai_adk/core/template/processor.py +119 -13
- moai_adk/core/template_engine.py +268 -0
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +348 -0
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +209 -944
- moai_adk/templates/.claude/agents/alfred/database-expert.md +352 -0
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +34 -5
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +464 -0
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +38 -8
- moai_adk/templates/.claude/agents/alfred/format-expert.md +469 -0
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +357 -0
- moai_adk/templates/.claude/agents/alfred/git-manager.md +128 -9
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +104 -6
- moai_adk/templates/.claude/agents/alfred/project-manager.md +88 -16
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +36 -9
- moai_adk/templates/.claude/agents/alfred/security-expert.md +270 -0
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +865 -0
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +214 -43
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +111 -9
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +309 -160
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +36 -7
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +605 -0
- moai_adk/templates/.claude/commands/alfred/0-project.md +393 -966
- moai_adk/templates/.claude/commands/alfred/1-plan.md +651 -367
- moai_adk/templates/.claude/commands/alfred/2-run.md +388 -241
- moai_adk/templates/.claude/commands/alfred/3-sync.md +1921 -410
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +153 -0
- moai_adk/templates/.claude/commands/alfred/release-new.md +3604 -0
- moai_adk/templates/.claude/hooks/alfred/core/project.py +484 -20
- moai_adk/templates/.claude/hooks/alfred/core/timeout.py +136 -0
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +108 -0
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +14 -6
- moai_adk/templates/.claude/hooks/alfred/post_tool__enable_streaming_ui.py +50 -0
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +93 -0
- moai_adk/templates/.claude/hooks/alfred/post_tool__tag_auto_corrector.py +407 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +99 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__realtime_tag_monitor.py +335 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__tag_policy_validator.py +325 -0
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +93 -0
- moai_adk/templates/.claude/hooks/alfred/session_start__auto_cleanup.py +580 -0
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +298 -0
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +170 -0
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +3 -3
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +5 -5
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +749 -0
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +230 -0
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +21 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/daily_analysis.py +351 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +154 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +174 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +87 -0
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +61 -0
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +111 -0
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +1 -0
- moai_adk/templates/.claude/hooks/alfred/utils/hook_config.py +94 -0
- moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +161 -0
- moai_adk/templates/.claude/output-styles/alfred/alfred-moai-adk-beginner.md +267 -0
- moai_adk/templates/.claude/output-styles/alfred/keating-personal-tutor.md +440 -0
- moai_adk/templates/.claude/output-styles/alfred/r2d2-agentic-coding.md +583 -0
- moai_adk/templates/.claude/settings.json +96 -14
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +70 -0
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +242 -0
- moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/SKILL.md +237 -0
- moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/examples.md +871 -0
- moai_adk/templates/.claude/skills/moai-alfred-ask-user-questions/reference.md +653 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/README.md +162 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/SKILL.md +227 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/examples.md +354 -0
- moai_adk/templates/.claude/skills/moai-alfred-clone-pattern/reference.md +158 -0
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +179 -79
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/examples.md +117 -0
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/scripts/pre-review-check.sh +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +132 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +444 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +62 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +405 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +51 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +355 -0
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +239 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +323 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +286 -0
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +126 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +229 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +150 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +87 -73
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/README.md +42 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/SKILL.md +429 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/examples.md +520 -0
- moai_adk/templates/.claude/skills/moai-alfred-personas/reference.md +405 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +89 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +122 -0
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +369 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +508 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +481 -0
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +100 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +77 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +265 -0
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +539 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +320 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +84 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +137 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +219 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +161 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +541 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +622 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +19 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +4 -0
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +211 -0
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +288 -0
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +269 -0
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +32 -0
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +298 -0
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +26 -0
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +21 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +252 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +19 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +19 -0
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +24 -0
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +199 -0
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +39 -0
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +316 -0
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +18 -0
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +263 -0
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +30 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +482 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +303 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +524 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +477 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +429 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +391 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +431 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +577 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +273 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +466 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +583 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +526 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +608 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +328 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +312 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +245 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +285 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +278 -0
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +303 -0
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +291 -0
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +15 -0
- moai_adk/templates/.claude/skills/moai-change-logger/SKILL.md +563 -0
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +802 -0
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +1238 -0
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +673 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +234 -43
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +1633 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +660 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +97 -69
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +97 -72
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +102 -73
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +97 -67
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +97 -79
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -71
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +265 -64
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +1064 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +1047 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +87 -78
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +87 -70
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +87 -86
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +80 -62
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +207 -50
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +90 -71
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +78 -58
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +78 -51
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +28 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/.!11330!examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +253 -32
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +1099 -0
- moai_adk/templates/.claude/skills/moai-jit-docs-enhanced/SKILL.md +460 -0
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +98 -76
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +2358 -70
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +2962 -68
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +1898 -70
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +1465 -68
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +2364 -66
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +32 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +1630 -69
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +89 -61
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +735 -66
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +624 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +316 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +97 -73
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +98 -73
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +1834 -70
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +99 -74
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +97 -74
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +98 -74
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +31 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +1959 -69
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +30 -0
- moai_adk/templates/.claude/skills/moai-lang-template/SKILL.md +348 -0
- moai_adk/templates/.claude/skills/moai-lang-template/VARIABLES.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +1230 -66
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +29 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +34 -0
- moai_adk/templates/.claude/skills/moai-learning-optimizer/SKILL.md +575 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/README.md +50 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/SKILL.md +304 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/examples.md +417 -0
- moai_adk/templates/.claude/skills/moai-project-batch-questions/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/README.md +87 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/SKILL.md +552 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/examples.md +1109 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/reference.md +514 -0
- moai_adk/templates/.claude/skills/moai-project-config-manager/validate.py +106 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/README.md +11 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/SKILL.md +622 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/examples.md +20 -0
- moai_adk/templates/.claude/skills/moai-project-documentation/reference.md +12 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/README.md +152 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/SKILL.md +285 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/examples.md +333 -0
- moai_adk/templates/.claude/skills/moai-project-language-initializer/reference.md +386 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/README.md +49 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/SKILL.md +319 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/examples.md +58 -0
- moai_adk/templates/.claude/skills/moai-project-template-optimizer/reference.md +123 -0
- moai_adk/templates/.claude/skills/moai-session-info/SKILL.md +314 -0
- moai_adk/templates/.claude/skills/moai-streaming-ui/SKILL.md +552 -0
- moai_adk/templates/.claude/skills/moai-tag-policy-validator/SKILL.md +570 -0
- moai_adk/templates/.git-hooks/pre-commit +66 -0
- moai_adk/templates/.git-hooks/pre-push +255 -0
- moai_adk/templates/.github/workflows/c-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/go-tag-validation.yml +130 -0
- moai_adk/templates/.github/workflows/java-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +135 -0
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/moai-gitflow.yml +166 -3
- moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +188 -0
- moai_adk/templates/.github/workflows/php-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/python-tag-validation.yml +118 -0
- moai_adk/templates/.github/workflows/release.yml +118 -0
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +338 -0
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +11 -0
- moai_adk/templates/.github/workflows/tag-report.yml +269 -0
- moai_adk/templates/.github/workflows/tag-validation.yml +186 -0
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +154 -0
- moai_adk/templates/.mcp.json +31 -0
- moai_adk/templates/.moai/config.json +80 -7
- moai_adk/templates/CLAUDE.md +562 -546
- moai_adk/utils/banner.py +5 -5
- moai_adk/utils/common.py +294 -0
- moai_adk/utils/link_validator.py +235 -0
- moai_adk/utils/logger.py +8 -8
- moai_adk/utils/user_experience.py +451 -0
- moai_adk-0.20.1.dist-info/METADATA +233 -0
- moai_adk-0.20.1.dist-info/RECORD +404 -0
- moai_adk/templates/.claude/hooks/alfred/README.md +0 -230
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +0 -156
- moai_adk/templates/.claude/hooks/alfred/core/__init__.py +0 -85
- moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +0 -25
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +0 -92
- moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +0 -70
- moai_adk/templates/.claude/hooks/alfred/handlers/user.py +0 -41
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +0 -636
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +0 -692
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +0 -470
- moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +0 -103
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -103
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -95
- moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +0 -105
- moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +0 -97
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -97
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -90
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -99
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +0 -87
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +0 -94
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +0 -513
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +0 -433
- moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +0 -332
- moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +0 -384
- moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +0 -363
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +0 -595
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +0 -496
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +0 -100
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +0 -99
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +0 -100
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +0 -98
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +0 -98
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +0 -69
- moai_adk/templates/.moai/memory/development-guide.md +0 -344
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +0 -220
- moai_adk/templates/.moai/memory/spec-metadata.md +0 -356
- moai_adk/templates/.moai/project/product.md +0 -161
- moai_adk/templates/.moai/project/structure.md +0 -156
- moai_adk/templates/.moai/project/tech.md +0 -227
- moai_adk/templates/__init__.py +0 -2
- moai_adk-0.4.5.dist-info/METADATA +0 -369
- moai_adk-0.4.5.dist-info/RECORD +0 -152
- {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/WHEEL +0 -0
- {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.4.5.dist-info → moai_adk-0.20.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,595 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_comment": "MoAI-ADK Full Settings Template - Complete Production Configuration",
|
|
3
|
-
"_usage": "Complete Claude Code settings for MoAI-ADK workflows with hooks and Python-specific permissions",
|
|
4
|
-
"_docs": "https://docs.claude.com/en/docs/claude-code/settings",
|
|
5
|
-
"_moai_workflow": "/alfred:0-project → /alfred:1-plan → /alfred:2-run → /alfred:3-sync",
|
|
6
|
-
"permissions": {
|
|
7
|
-
"allow": [
|
|
8
|
-
"Read(**)",
|
|
9
|
-
"Grep(**)",
|
|
10
|
-
"Glob(**)",
|
|
11
|
-
"Bash(ls:**)",
|
|
12
|
-
"Bash(cat:**)",
|
|
13
|
-
"Bash(echo:**)",
|
|
14
|
-
"Bash(which:**)",
|
|
15
|
-
"Bash(find:**)",
|
|
16
|
-
"Bash(tree:**)",
|
|
17
|
-
"Bash(git:status)",
|
|
18
|
-
"Bash(git:log:**)",
|
|
19
|
-
"Bash(git:diff:**)",
|
|
20
|
-
"Bash(git:branch:**)",
|
|
21
|
-
"Bash(git:show:**)",
|
|
22
|
-
"Bash(python:**)",
|
|
23
|
-
"Bash(python3:**)",
|
|
24
|
-
"Bash(uv:**)",
|
|
25
|
-
"Bash(pytest:**)",
|
|
26
|
-
"Bash(mypy:**)",
|
|
27
|
-
"Bash(ruff:**)",
|
|
28
|
-
"Bash(black:**)",
|
|
29
|
-
"Bash(coverage:**)",
|
|
30
|
-
"Bash(moai-adk:**)",
|
|
31
|
-
"Bash(alfred:**)",
|
|
32
|
-
"Bash(gh:pr:view:**)",
|
|
33
|
-
"Bash(gh:pr:list:**)",
|
|
34
|
-
"Bash(gh:issue:**)",
|
|
35
|
-
"Bash(gh:repo:view:**)"
|
|
36
|
-
],
|
|
37
|
-
"ask": [
|
|
38
|
-
"Write(**)",
|
|
39
|
-
"Edit(**)",
|
|
40
|
-
"MultiEdit(**)",
|
|
41
|
-
"Bash(rm:**)",
|
|
42
|
-
"Bash(mv:**)",
|
|
43
|
-
"Bash(cp:**)",
|
|
44
|
-
"Bash(mkdir:**)",
|
|
45
|
-
"Bash(touch:**)",
|
|
46
|
-
"Bash(git:add:**)",
|
|
47
|
-
"Bash(git:commit:**)",
|
|
48
|
-
"Bash(git:push:**)",
|
|
49
|
-
"Bash(git:merge:**)",
|
|
50
|
-
"Bash(git:checkout:**)",
|
|
51
|
-
"Bash(git:rebase:**)",
|
|
52
|
-
"Bash(gh:pr:create:**)",
|
|
53
|
-
"Bash(gh:pr:merge:**)",
|
|
54
|
-
"Bash(uv:add:**)",
|
|
55
|
-
"Bash(uv:remove:**)"
|
|
56
|
-
],
|
|
57
|
-
"deny": [
|
|
58
|
-
"Bash(rm:-rf:**)",
|
|
59
|
-
"Bash(git:push:--force)**",
|
|
60
|
-
"Bash(git:reset:--hard)**",
|
|
61
|
-
"Bash(git:clean:-fd)**",
|
|
62
|
-
"Bash(sudo:**)",
|
|
63
|
-
"Bash(chmod:**)",
|
|
64
|
-
"Bash(chown:**)",
|
|
65
|
-
"Bash(dd:**)",
|
|
66
|
-
"Bash(mkfs:**)",
|
|
67
|
-
"Write(.env)",
|
|
68
|
-
"Write(**/*.secret)",
|
|
69
|
-
"Write(**/id_rsa)**",
|
|
70
|
-
"Edit(.env)",
|
|
71
|
-
"Edit(**/*.secret)"
|
|
72
|
-
]
|
|
73
|
-
},
|
|
74
|
-
"hooks": {
|
|
75
|
-
"SessionStart": {
|
|
76
|
-
"command": "bash",
|
|
77
|
-
"args": [
|
|
78
|
-
"-c",
|
|
79
|
-
"echo '▶◀ MoAI-ADK Session Started' && echo '' && echo '📊 Git Status:' && git status --short && echo '' && echo '🌿 Branch: '$(git branch --show-current) && echo '' && echo '📋 Recent SPECs:' && ls -1 .moai/specs/ 2>/dev/null | head -3 || echo 'No SPECs yet' && echo '' && echo '💡 Quick Commands:' && echo ' /alfred:1-plan \"feature name\" - SPEC authoring' && echo ' /alfred:2-run SPEC-ID - TDD implementation' && echo ' /alfred:3-sync - documentation sync'"
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
"PreToolUse": {
|
|
83
|
-
"command": "python3",
|
|
84
|
-
"args": [
|
|
85
|
-
"-c",
|
|
86
|
-
"import json, sys, os; data = json.load(sys.stdin); tool = data.get('tool', ''); params = data.get('parameters', {}); blocked = False; message = ''; \nif tool == 'Bash':\n cmd = params.get('command', '')\n if 'rm -rf' in cmd or 'rm-rf' in cmd:\n blocked = True; message = '❌ CRITICAL: rm -rf blocked (data loss risk)'\n elif 'git push --force' in cmd or 'git push -f' in cmd:\n blocked = True; message = '❌ CRITICAL: Force push blocked (history corruption risk)'\n elif 'sudo' in cmd:\n blocked = True; message = '❌ CRITICAL: sudo blocked (security risk)'\n elif '.env' in cmd and ('rm' in cmd or 'cat' in cmd):\n blocked = True; message = '⚠️ WARNING: .env file access blocked (secrets protection)'\nelif tool == 'Write' or tool == 'Edit':\n path = params.get('file_path', '')\n if '.env' in path or '.secret' in path or 'id_rsa' in path:\n blocked = True; message = '❌ CRITICAL: Writing secrets file blocked'\nprint(json.dumps({'blocked': blocked, 'message': message}))"
|
|
87
|
-
]
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
"_moai_adk_integration": {
|
|
91
|
-
"workflow_permissions": {
|
|
92
|
-
"alfred_0_project": {
|
|
93
|
-
"needs": [
|
|
94
|
-
"Write(.moai/project/**)",
|
|
95
|
-
"Bash(mkdir:.moai/**)",
|
|
96
|
-
"Read(**)",
|
|
97
|
-
"Grep(**)",
|
|
98
|
-
"Glob(**)"
|
|
99
|
-
],
|
|
100
|
-
"rationale": "Project initialization requires writing metadata files"
|
|
101
|
-
},
|
|
102
|
-
"alfred_1_spec": {
|
|
103
|
-
"needs": [
|
|
104
|
-
"Write(.moai/specs/**)",
|
|
105
|
-
"Bash(git:branch:**)",
|
|
106
|
-
"Bash(gh:pr:create:**)",
|
|
107
|
-
"Read(.moai/project/**)"
|
|
108
|
-
],
|
|
109
|
-
"rationale": "SPEC creation, feature branch, Draft PR"
|
|
110
|
-
},
|
|
111
|
-
"alfred_2_build": {
|
|
112
|
-
"needs": [
|
|
113
|
-
"Write(tests/**)",
|
|
114
|
-
"Write(src/**)",
|
|
115
|
-
"Edit(**)",
|
|
116
|
-
"Bash(pytest:**)",
|
|
117
|
-
"Bash(mypy:**)",
|
|
118
|
-
"Bash(git:commit:**)"
|
|
119
|
-
],
|
|
120
|
-
"rationale": "TDD implementation with RED → GREEN → REFACTOR commits"
|
|
121
|
-
},
|
|
122
|
-
"alfred_3_sync": {
|
|
123
|
-
"needs": [
|
|
124
|
-
"Write(docs/**)",
|
|
125
|
-
"Edit(**)",
|
|
126
|
-
"Bash(rg:**)",
|
|
127
|
-
"Bash(gh:pr:**)",
|
|
128
|
-
"Grep(**)",
|
|
129
|
-
"Glob(**)"
|
|
130
|
-
],
|
|
131
|
-
"rationale": "Living Document sync, TAG validation, PR Ready transition"
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
"tag_system_permissions": {
|
|
135
|
-
"tag_scanning": [
|
|
136
|
-
"Grep(**)",
|
|
137
|
-
"Bash(rg:@(SPEC|TEST|CODE|DOC):**)"
|
|
138
|
-
],
|
|
139
|
-
"tag_validation": [
|
|
140
|
-
"Read(.moai/specs/**)",
|
|
141
|
-
"Read(tests/**)",
|
|
142
|
-
"Read(src/**)",
|
|
143
|
-
"Read(docs/**)"
|
|
144
|
-
],
|
|
145
|
-
"tag_reporting": [
|
|
146
|
-
"Write(.moai/reports/**)",
|
|
147
|
-
"Write(docs/**)"
|
|
148
|
-
]
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
"_python_moai_adk_patterns": {
|
|
152
|
-
"testing": {
|
|
153
|
-
"allow": [
|
|
154
|
-
"Bash(pytest:**)",
|
|
155
|
-
"Bash(pytest:--cov:**)",
|
|
156
|
-
"Bash(pytest:-v:**)",
|
|
157
|
-
"Bash(coverage:report)**",
|
|
158
|
-
"Bash(coverage:html)**"
|
|
159
|
-
],
|
|
160
|
-
"rationale": "TRUST Principle - Test First (85% coverage goal)"
|
|
161
|
-
},
|
|
162
|
-
"type_checking": {
|
|
163
|
-
"allow": [
|
|
164
|
-
"Bash(mypy:**)",
|
|
165
|
-
"Bash(mypy:--strict:**)"
|
|
166
|
-
],
|
|
167
|
-
"rationale": "TRUST Principle - Unified (Type Safety)"
|
|
168
|
-
},
|
|
169
|
-
"linting": {
|
|
170
|
-
"allow": [
|
|
171
|
-
"Bash(ruff:check:**)",
|
|
172
|
-
"Bash(ruff:format:**)",
|
|
173
|
-
"Bash(black:**)"
|
|
174
|
-
],
|
|
175
|
-
"rationale": "TRUST Principle - Readable (Code Quality)"
|
|
176
|
-
},
|
|
177
|
-
"package_management": {
|
|
178
|
-
"allow": [
|
|
179
|
-
"Bash(uv:sync)",
|
|
180
|
-
"Bash(uv:lock)",
|
|
181
|
-
"Bash(uv:tree)"
|
|
182
|
-
],
|
|
183
|
-
"ask": [
|
|
184
|
-
"Bash(uv:add:**)",
|
|
185
|
-
"Bash(uv:remove:**)",
|
|
186
|
-
"Bash(uv:build)**",
|
|
187
|
-
"Bash(uv:publish)**"
|
|
188
|
-
],
|
|
189
|
-
"rationale": "Read operations are allowed, dependency changes require confirmation"
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
"_git_workflow_moai": {
|
|
193
|
-
"safe_read_operations": {
|
|
194
|
-
"allow": [
|
|
195
|
-
"Bash(git:status)",
|
|
196
|
-
"Bash(git:log:**)",
|
|
197
|
-
"Bash(git:diff:**)",
|
|
198
|
-
"Bash(git:show:**)",
|
|
199
|
-
"Bash(git:branch:**)"
|
|
200
|
-
],
|
|
201
|
-
"description": "Repository read-only - always allowed"
|
|
202
|
-
},
|
|
203
|
-
"tdd_commit_pattern": {
|
|
204
|
-
"ask": [
|
|
205
|
-
"Bash(git:add:**)",
|
|
206
|
-
"Bash(git:commit:**)"
|
|
207
|
-
],
|
|
208
|
-
"example_messages": [
|
|
209
|
-
"🔴 RED: Writing a SPEC-AUTH-001 JWT authentication test",
|
|
210
|
-
"🟢 GREEN: SPEC-AUTH-001 JWT authentication implementation",
|
|
211
|
-
"♻️ REFACTOR: Improve SPEC-AUTH-001 code quality",
|
|
212
|
-
"📝 DOCS: SPEC-AUTH-001 document synchronization"
|
|
213
|
-
],
|
|
214
|
-
"description": "TDD phased commit - requires user confirmation"
|
|
215
|
-
},
|
|
216
|
-
"branch_and_pr": {
|
|
217
|
-
"ask": [
|
|
218
|
-
"Bash(git:checkout:-b:**)",
|
|
219
|
-
"Bash(git:push:**)",
|
|
220
|
-
"Bash(gh:pr:create:**)",
|
|
221
|
-
"Bash(gh:pr:merge:**)"
|
|
222
|
-
],
|
|
223
|
-
"workflow": [
|
|
224
|
-
"1. Create feature/SPEC-{ID} branch (git checkout -b)",
|
|
225
|
-
"2. Create Draft PR (gh pr create --draft)",
|
|
226
|
-
"3. Implement and commit TDD",
|
|
227
|
-
"4. Mark PR Ready (gh pr ready)",
|
|
228
|
-
"5. PR merge (gh pr merge --squash)"
|
|
229
|
-
],
|
|
230
|
-
"description": "Working with Git branches/PRs - always check"
|
|
231
|
-
},
|
|
232
|
-
"dangerous_operations": {
|
|
233
|
-
"deny": [
|
|
234
|
-
"Bash(git:push:--force)**",
|
|
235
|
-
"Bash(git:reset:--hard)**",
|
|
236
|
-
"Bash(git:clean:-fd)**"
|
|
237
|
-
],
|
|
238
|
-
"description": "Risk of Data Loss - Absolutely Blocked"
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
|
-
"_security_hardening": {
|
|
242
|
-
"secrets_protection": {
|
|
243
|
-
"deny": [
|
|
244
|
-
"Write(.env)",
|
|
245
|
-
"Write(**/*.secret)",
|
|
246
|
-
"Write(**/id_rsa)**",
|
|
247
|
-
"Write(**/credentials.json)",
|
|
248
|
-
"Edit(.env)",
|
|
249
|
-
"Edit(**/*.secret)",
|
|
250
|
-
"Bash(cat:.env)",
|
|
251
|
-
"Bash(cat:**/*.secret)"
|
|
252
|
-
],
|
|
253
|
-
"description": "Block access to confidential information files"
|
|
254
|
-
},
|
|
255
|
-
"system_protection": {
|
|
256
|
-
"deny": [
|
|
257
|
-
"Bash(sudo:**)",
|
|
258
|
-
"Bash(chmod:**)",
|
|
259
|
-
"Bash(chown:**)",
|
|
260
|
-
"Bash(dd:**)",
|
|
261
|
-
"Bash(mkfs:**)"
|
|
262
|
-
],
|
|
263
|
-
"description": "System level command blocking"
|
|
264
|
-
},
|
|
265
|
-
"data_loss_prevention": {
|
|
266
|
-
"deny": [
|
|
267
|
-
"Bash(rm:-rf:**)",
|
|
268
|
-
"Bash(git:reset:--hard)**",
|
|
269
|
-
"Bash(git:clean:-fd)**"
|
|
270
|
-
],
|
|
271
|
-
"description": "Block commands at risk of data loss"
|
|
272
|
-
}
|
|
273
|
-
},
|
|
274
|
-
"_hook_implementation_details": {
|
|
275
|
-
"SessionStart": {
|
|
276
|
-
"purpose": "Provide project context when starting a MoAI-ADK session",
|
|
277
|
-
"output_sections": [
|
|
278
|
-
"▶◀ MoAI-ADK Session Started - Shows session start",
|
|
279
|
-
"📊 Git Status - list of changed files (git status --short)",
|
|
280
|
-
"🌿 Branch - Current working branch",
|
|
281
|
-
"📋 Recent SPECs - 3 recently created SPECs",
|
|
282
|
-
"💡 Quick Commands - Frequently used Alfred commands"
|
|
283
|
-
],
|
|
284
|
-
"execution_time": "~200ms (fast execution)",
|
|
285
|
-
"error_handling": "If there is no SPEC directory, 'No SPECs yet' is displayed.",
|
|
286
|
-
"customization": "Project-specific information can be added (product.md summary, etc.)"
|
|
287
|
-
},
|
|
288
|
-
"PreToolUse": {
|
|
289
|
-
"purpose": "Preemptively block risky operations (data loss, security risks)",
|
|
290
|
-
"stdin_format": "JSON: {tool: string, parameters: object}",
|
|
291
|
-
"stdout_format": "JSON: {blocked: boolean, message: string}",
|
|
292
|
-
"blocked_patterns": [
|
|
293
|
-
"rm -rf - risk of data loss",
|
|
294
|
-
"git push --force - risk of history corruption",
|
|
295
|
-
"sudo - security risk",
|
|
296
|
-
"Accessing .env files - exposing confidential information"
|
|
297
|
-
],
|
|
298
|
-
"implementation": "Python3 inline script (no external dependencies)",
|
|
299
|
-
"performance": "~50ms (JSON parsing + pattern matching)",
|
|
300
|
-
"extensibility": "Easy to add new blocking patterns"
|
|
301
|
-
}
|
|
302
|
-
},
|
|
303
|
-
"_testing_and_validation": {
|
|
304
|
-
"permission_tests": {
|
|
305
|
-
"test_allow": [
|
|
306
|
-
"Read(.moai/project/product.md) - Should execute without prompt",
|
|
307
|
-
"Bash(git:status) - Should execute without prompt",
|
|
308
|
-
"Bash(pytest:tests/) - Should execute without prompt"
|
|
309
|
-
],
|
|
310
|
-
"test_ask": [
|
|
311
|
-
"Write(.moai/specs/SPEC-NEW-001/spec.md) - Should prompt for confirmation",
|
|
312
|
-
"Bash(git:commit:-m:\"test\") - Should prompt for confirmation",
|
|
313
|
-
"Bash(uv:add:requests) - Should prompt for confirmation"
|
|
314
|
-
],
|
|
315
|
-
"test_deny": [
|
|
316
|
-
"Bash(rm:-rf:/tmp/test) - Should be blocked immediately",
|
|
317
|
-
"Write(.env) - Should be blocked immediately",
|
|
318
|
-
"Bash(sudo:ls) - Should be blocked immediately"
|
|
319
|
-
]
|
|
320
|
-
},
|
|
321
|
-
"hook_tests": {
|
|
322
|
-
"test_session_start": {
|
|
323
|
-
"trigger": "Start new Claude Code session",
|
|
324
|
-
"expected_output": "Git status, branch name, recent SPECs, quick commands",
|
|
325
|
-
"verify": "Output contains '▶◀ MoAI-ADK Session Started'"
|
|
326
|
-
},
|
|
327
|
-
"test_pre_tool_use": {
|
|
328
|
-
"trigger": "Try dangerous command (rm -rf)",
|
|
329
|
-
"expected_output": "{\"blocked\": true, \"message\": \"❌ CRITICAL: rm -rf blocked\"}",
|
|
330
|
-
"verify": "Command is blocked before execution"
|
|
331
|
-
}
|
|
332
|
-
},
|
|
333
|
-
"validation_commands": {
|
|
334
|
-
"json_syntax": "python -m json.tool .claude/settings.json",
|
|
335
|
-
"hook_test": "echo '{\"tool\": \"Bash\", \"parameters\": {\"command\": \"rm -rf /tmp/test\"}}' | python3 -c '<PreToolUse script>'",
|
|
336
|
-
"permission_check": "grep -E '^\\s*(allow|ask|deny):' .claude/settings.json"
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
"_troubleshooting": {
|
|
340
|
-
"hooks_not_running": {
|
|
341
|
-
"symptom": "SessionStart output not visible, PreToolUse not blocking",
|
|
342
|
-
"checks": [
|
|
343
|
-
"Is Python3 installed? (python3 --version)",
|
|
344
|
-
"Is Bash available? (which bash)",
|
|
345
|
-
"Is settings.json valid? (python -m json.tool)",
|
|
346
|
-
"Are hooks properly formatted? (check args array)",
|
|
347
|
-
"Did you restart Claude Code?"
|
|
348
|
-
],
|
|
349
|
-
"debug": [
|
|
350
|
-
"Run SessionStart command manually: bash -c '<command>'",
|
|
351
|
-
"Test PreToolUse: echo '{...}' | python3 -c '<script>'",
|
|
352
|
-
"Check Claude Code logs: ~/.claude/logs/"
|
|
353
|
-
]
|
|
354
|
-
},
|
|
355
|
-
"permission_denied_unexpectedly": {
|
|
356
|
-
"symptom": "Operation blocked when it should be allowed",
|
|
357
|
-
"checks": [
|
|
358
|
-
"Is pattern in 'deny' list? (grep <pattern> .claude/settings.json)",
|
|
359
|
-
"Is pattern syntax correct? (wildcards ** vs *)",
|
|
360
|
-
"Does 'deny' override 'allow'? (deny has higher priority)",
|
|
361
|
-
"Is there a typo in permission pattern?"
|
|
362
|
-
],
|
|
363
|
-
"solution": [
|
|
364
|
-
"Remove from 'deny' list if safe",
|
|
365
|
-
"Adjust pattern to be more specific",
|
|
366
|
-
"Restart Claude Code after changes"
|
|
367
|
-
]
|
|
368
|
-
},
|
|
369
|
-
"too_many_prompts": {
|
|
370
|
-
"symptom": "Getting prompted for every operation",
|
|
371
|
-
"checks": [
|
|
372
|
-
"Are read operations in 'allow'? (Read, Grep, Glob)",
|
|
373
|
-
"Are test commands in 'allow'? (pytest, mypy)",
|
|
374
|
-
"Are git read commands in 'allow'? (git status, git log)"
|
|
375
|
-
],
|
|
376
|
-
"solution": [
|
|
377
|
-
"Move common read operations to 'allow'",
|
|
378
|
-
"Keep only write operations in 'ask'",
|
|
379
|
-
"Balance security vs usability"
|
|
380
|
-
]
|
|
381
|
-
},
|
|
382
|
-
"hook_json_parse_error": {
|
|
383
|
-
"symptom": "PreToolUse hook fails with JSON error",
|
|
384
|
-
"checks": [
|
|
385
|
-
"Is Python script valid? (test manually)",
|
|
386
|
-
"Does script always output valid JSON? (test edge cases)",
|
|
387
|
-
"Are single/double quotes escaped properly?"
|
|
388
|
-
],
|
|
389
|
-
"solution": [
|
|
390
|
-
"Test script with various inputs",
|
|
391
|
-
"Ensure json.dumps() always returns valid JSON",
|
|
392
|
-
"Add error handling in Python script"
|
|
393
|
-
]
|
|
394
|
-
}
|
|
395
|
-
},
|
|
396
|
-
"_best_practices": {
|
|
397
|
-
"permission_design": {
|
|
398
|
-
"principles": [
|
|
399
|
-
"Start restrictive, relax based on workflow (fail-safe approach)",
|
|
400
|
-
"Group related commands (all git:read, all python:test)",
|
|
401
|
-
"Use wildcards thoughtfully (** for recursive, * for single level)",
|
|
402
|
-
"Document rationale in _comment fields"
|
|
403
|
-
],
|
|
404
|
-
"patterns": [
|
|
405
|
-
"Read operations → allow (safe, no side effects)",
|
|
406
|
-
"Write operations → ask (user review needed)",
|
|
407
|
-
"Dangerous operations → deny (prevent data loss)",
|
|
408
|
-
"Language tools (pytest, mypy) → allow (development workflow)",
|
|
409
|
-
"Package management (uv add) → ask (dependency changes)"
|
|
410
|
-
]
|
|
411
|
-
},
|
|
412
|
-
"hook_design": {
|
|
413
|
-
"principles": [
|
|
414
|
-
"Keep SessionStart fast (<500ms)",
|
|
415
|
-
"PreToolUse must return valid JSON always",
|
|
416
|
-
"Test hooks independently before integration",
|
|
417
|
-
"Use absolute paths or environment variables"
|
|
418
|
-
],
|
|
419
|
-
"session_start_tips": [
|
|
420
|
-
"Show only essential context (git status, branch)",
|
|
421
|
-
"Limit output to ~10 lines (avoid clutter)",
|
|
422
|
-
"Include quick command reminders for new users",
|
|
423
|
-
"Handle missing directories gracefully (|| echo 'N/A')"
|
|
424
|
-
],
|
|
425
|
-
"pre_tool_use_tips": [
|
|
426
|
-
"Use Python for complex logic (better than bash if/else)",
|
|
427
|
-
"Always output JSON even on errors",
|
|
428
|
-
"Provide clear block messages (why operation is dangerous)",
|
|
429
|
-
"Test with edge cases (empty input, malformed JSON)"
|
|
430
|
-
]
|
|
431
|
-
},
|
|
432
|
-
"maintenance": {
|
|
433
|
-
"quarterly_review": [
|
|
434
|
-
"Review 'allow' list - remove unused permissions",
|
|
435
|
-
"Review 'deny' list - add new dangerous patterns",
|
|
436
|
-
"Update hooks - improve context or add new checks",
|
|
437
|
-
"Test with latest Claude Code version"
|
|
438
|
-
],
|
|
439
|
-
"version_control": [
|
|
440
|
-
"Commit settings.json to repository (team shared config)",
|
|
441
|
-
"Use settings.local.json for personal overrides (.gitignore)",
|
|
442
|
-
"Document changes in commit messages",
|
|
443
|
-
"Review PRs that modify permissions carefully"
|
|
444
|
-
],
|
|
445
|
-
"security_audits": [
|
|
446
|
-
"Monthly: Review denied operations log",
|
|
447
|
-
"Quarterly: Test all dangerous operation blocks",
|
|
448
|
-
"Annually: Full permission audit with security team",
|
|
449
|
-
"After incidents: Add new deny patterns"
|
|
450
|
-
]
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
|
-
"_moai_adk_specific": {
|
|
454
|
-
"spec_protection": {
|
|
455
|
-
"description": "SPEC files are important requirements documents - prevent accidental deletion",
|
|
456
|
-
"permissions": {
|
|
457
|
-
"allow": [
|
|
458
|
-
"Read(.moai/specs/**)"
|
|
459
|
-
],
|
|
460
|
-
"ask": [
|
|
461
|
-
"Write(.moai/specs/**)",
|
|
462
|
-
"Edit(.moai/specs/**)"
|
|
463
|
-
],
|
|
464
|
-
"deny": [
|
|
465
|
-
"Bash(rm:.moai/specs/**)"
|
|
466
|
-
]
|
|
467
|
-
}
|
|
468
|
-
},
|
|
469
|
-
"tag_system": {
|
|
470
|
-
"description": "@TAG Maintain traceability – allow code scanning",
|
|
471
|
-
"permissions": {
|
|
472
|
-
"allow": [
|
|
473
|
-
"Bash(rg:@(SPEC|TEST|CODE|DOC):**)",
|
|
474
|
-
"Grep(@SPEC:**)",
|
|
475
|
-
"Grep(@TEST:**)",
|
|
476
|
-
"Grep(@CODE:**)",
|
|
477
|
-
"Grep(@DOC:**)"
|
|
478
|
-
]
|
|
479
|
-
}
|
|
480
|
-
},
|
|
481
|
-
"trust_principles": {
|
|
482
|
-
"Test_First": {
|
|
483
|
-
"allow": [
|
|
484
|
-
"Bash(pytest:**)",
|
|
485
|
-
"Bash(coverage:**)"
|
|
486
|
-
],
|
|
487
|
-
"goal": "85% test coverage"
|
|
488
|
-
},
|
|
489
|
-
"Readable": {
|
|
490
|
-
"allow": [
|
|
491
|
-
"Bash(ruff:**)",
|
|
492
|
-
"Bash(black:**)",
|
|
493
|
-
"Bash(mypy:**)"
|
|
494
|
-
],
|
|
495
|
-
"goal": "Clean, typed code"
|
|
496
|
-
},
|
|
497
|
-
"Unified": {
|
|
498
|
-
"allow": [
|
|
499
|
-
"Bash(mypy:--strict:**)"
|
|
500
|
-
],
|
|
501
|
-
"goal": "Type safety"
|
|
502
|
-
},
|
|
503
|
-
"Secured": {
|
|
504
|
-
"deny": [
|
|
505
|
-
"Write(.env)",
|
|
506
|
-
"Bash(cat:.env)"
|
|
507
|
-
],
|
|
508
|
-
"goal": "Secrets protection"
|
|
509
|
-
},
|
|
510
|
-
"Trackable": {
|
|
511
|
-
"allow": [
|
|
512
|
-
"Bash(rg:@TAG:**)",
|
|
513
|
-
"Grep(@TAG:**)"
|
|
514
|
-
],
|
|
515
|
-
"goal": "Complete traceability"
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
},
|
|
519
|
-
"_performance_considerations": {
|
|
520
|
-
"startup_time": {
|
|
521
|
-
"baseline": "Hooks add ~200-500ms to startup",
|
|
522
|
-
"optimization": [
|
|
523
|
-
"Keep SessionStart command simple",
|
|
524
|
-
"Avoid expensive operations (large file scans)",
|
|
525
|
-
"Cache results if possible (not implemented yet)"
|
|
526
|
-
]
|
|
527
|
-
},
|
|
528
|
-
"runtime_overhead": {
|
|
529
|
-
"PreToolUse": "~50ms per tool invocation",
|
|
530
|
-
"impact": "Negligible for interactive use",
|
|
531
|
-
"optimization": "Use Python (faster than Bash for complex logic)"
|
|
532
|
-
}
|
|
533
|
-
},
|
|
534
|
-
"_validation_checklist": [
|
|
535
|
-
"✅ Valid JSON syntax (python -m json.tool)",
|
|
536
|
-
"✅ All dangerous operations in 'deny'",
|
|
537
|
-
"✅ Read operations in 'allow'",
|
|
538
|
-
"✅ Write operations in 'ask'",
|
|
539
|
-
"✅ SessionStart executes in <500ms",
|
|
540
|
-
"✅ PreToolUse returns valid JSON",
|
|
541
|
-
"✅ PreToolUse blocks rm -rf",
|
|
542
|
-
"✅ PreToolUse blocks force push",
|
|
543
|
-
"✅ PreToolUse blocks .env access",
|
|
544
|
-
"✅ Python/uv commands properly configured",
|
|
545
|
-
"✅ Git workflow matches MoAI-ADK",
|
|
546
|
-
"✅ SPEC files protected from deletion",
|
|
547
|
-
"✅ TAG system commands allowed",
|
|
548
|
-
"✅ TRUST principles enforced",
|
|
549
|
-
"✅ Team collaboration considered"
|
|
550
|
-
],
|
|
551
|
-
"_real_world_usage": {
|
|
552
|
-
"team_setup": [
|
|
553
|
-
"1. Commit this settings.json to repository",
|
|
554
|
-
"2. Each developer copies to .claude/settings.json",
|
|
555
|
-
"3. Create .claude/settings.local.json for personal overrides",
|
|
556
|
-
"4. Add .claude/settings.local.json to .gitignore",
|
|
557
|
-
"5. Team lead reviews permission changes in PRs"
|
|
558
|
-
],
|
|
559
|
-
"personal_project": [
|
|
560
|
-
"1. Copy to .claude/settings.json",
|
|
561
|
-
"2. Adjust 'ask' list based on workflow",
|
|
562
|
-
"3. Test with real operations",
|
|
563
|
-
"4. Iterate based on experience"
|
|
564
|
-
],
|
|
565
|
-
"ci_cd_integration": [
|
|
566
|
-
"1. CI環境では hooks を無効化 (hooks: null)",
|
|
567
|
-
"2. Permissions are more restrictive (deny more operations)",
|
|
568
|
-
"3. Manage secrets with environment variables",
|
|
569
|
-
"4. Test before deploy"
|
|
570
|
-
]
|
|
571
|
-
},
|
|
572
|
-
"_template_metadata": {
|
|
573
|
-
"template_level": "full",
|
|
574
|
-
"best_for": "MoAI-ADK production workflows, Python projects, team collaboration",
|
|
575
|
-
"features": [
|
|
576
|
-
"Complete MoAI-ADK workflow integration (/alfred:0-1-2-3)",
|
|
577
|
-
"Python/uv package management",
|
|
578
|
-
"TRUST 5-principles enforcement",
|
|
579
|
-
"TDD workflow permissions (RED-GREEN-REFACTOR)",
|
|
580
|
-
"Git workflow automation (feature branch, Draft PR, auto-merge)",
|
|
581
|
-
"@TAG system support",
|
|
582
|
-
"SPEC protection",
|
|
583
|
-
"Security hardening (secrets, sudo, force push)",
|
|
584
|
-
"SessionStart hook (project context)",
|
|
585
|
-
"PreToolUse hook (danger prevention)",
|
|
586
|
-
"Comprehensive troubleshooting",
|
|
587
|
-
"Performance optimized",
|
|
588
|
-
"Team collaboration ready"
|
|
589
|
-
],
|
|
590
|
-
"estimated_setup_time": "45-60 minutes (full configuration + testing)",
|
|
591
|
-
"maintenance_effort": "Quarterly review (15 minutes), continuous monitoring",
|
|
592
|
-
"support_level": "Full MoAI-ADK integration support",
|
|
593
|
-
"documentation": "Complete with examples, tests, troubleshooting"
|
|
594
|
-
}
|
|
595
|
-
}
|