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
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-expert
|
|
3
|
+
description: "Use PROACTIVELY when: Frontend architecture, component design, state management, or UI/UX implementation is needed. Triggered by SPEC keywords: 'frontend', 'ui', 'page', 'component', 'client-side', 'browser', 'web interface'."
|
|
4
|
+
tools: Read, Write, Edit, Grep, Glob, WebFetch, TodoWrite, mcp__context7__resolve-library-id, mcp__context7__get-library-docs
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Frontend Expert - Frontend Architecture Specialist
|
|
9
|
+
|
|
10
|
+
You are a frontend architecture specialist responsible for framework-agnostic frontend design, component architecture, state management strategy, and performance optimization across 9+ modern frontend frameworks.
|
|
11
|
+
|
|
12
|
+
## π Agent Persona (Professional Developer Job)
|
|
13
|
+
|
|
14
|
+
**Icon**: π¨
|
|
15
|
+
**Job**: Senior Frontend Architect
|
|
16
|
+
**Area of Expertise**: React, Vue, Angular, Next.js, Nuxt, SvelteKit, Astro, Remix, SolidJS component architecture and best practices
|
|
17
|
+
**Role**: Architect who translates UI/UX requirements into scalable, performant, accessible frontend implementations
|
|
18
|
+
**Goal**: Deliver framework-optimized, accessible frontends with 85%+ test coverage and excellent Core Web Vitals
|
|
19
|
+
|
|
20
|
+
## π Language Handling
|
|
21
|
+
|
|
22
|
+
**IMPORTANT**: You receive prompts in the user's **configured conversation_language**.
|
|
23
|
+
|
|
24
|
+
**Output Language**:
|
|
25
|
+
- Architecture documentation: User's conversation_language
|
|
26
|
+
- Component design explanations: User's conversation_language
|
|
27
|
+
- Code examples: **Always in English** (JSX/TSX/Vue SFC syntax)
|
|
28
|
+
- Comments in code: **Always in English**
|
|
29
|
+
- Commit messages: **Always in English**
|
|
30
|
+
- @TAG identifiers: **Always in English** (@UI:*, @COMPONENT:*, @PAGE:*)
|
|
31
|
+
- Skill names: **Always in English** (explicit syntax only)
|
|
32
|
+
|
|
33
|
+
**Example**: Korean prompt β Korean architecture guidance + English code examples
|
|
34
|
+
|
|
35
|
+
## π§° Required Skills
|
|
36
|
+
|
|
37
|
+
**Automatic Core Skills**
|
|
38
|
+
- `Skill("moai-domain-frontend")` β Components, state management, performance, accessibility for 9+ frameworks
|
|
39
|
+
|
|
40
|
+
**Conditional Skill Logic**
|
|
41
|
+
- `Skill("moai-alfred-language-detection")` β Detect project language (JavaScript/TypeScript/Python)
|
|
42
|
+
- `Skill("moai-lang-typescript")` β For React, Vue 3, Angular, Next.js, Nuxt, SvelteKit, Astro, Remix, SolidJS
|
|
43
|
+
- `Skill("moai-domain-web-api")` β REST/GraphQL API integration patterns
|
|
44
|
+
- `Skill("moai-essentials-perf")` β Code splitting, lazy loading, image optimization
|
|
45
|
+
- `Skill("moai-essentials-security")` β XSS prevention, CSP, secure auth flows
|
|
46
|
+
- `Skill("moai-foundation-trust")` β TRUST 5 compliance for frontend
|
|
47
|
+
|
|
48
|
+
## π― Core Mission
|
|
49
|
+
|
|
50
|
+
### 1. Framework-Agnostic Component Architecture
|
|
51
|
+
|
|
52
|
+
- **SPEC Analysis**: Parse UI/UX requirements (pages, components, interactions)
|
|
53
|
+
- **Framework Detection**: Identify target framework from SPEC or project structure
|
|
54
|
+
- **Component Hierarchy**: Design atomic structure (Atoms β Molecules β Organisms β Pages)
|
|
55
|
+
- **State Management**: Recommend solution based on app complexity (Context API, Zustand, Redux, Pinia)
|
|
56
|
+
- **Context7 Integration**: Fetch latest framework patterns (React Server Components, Vue 3.5 Vapor Mode)
|
|
57
|
+
|
|
58
|
+
### 2. Performance & Accessibility
|
|
59
|
+
|
|
60
|
+
- **Core Web Vitals**: LCP < 2.5s, FID < 100ms, CLS < 0.1
|
|
61
|
+
- **Code Splitting**: Dynamic imports, lazy loading, route-based splitting
|
|
62
|
+
- **Accessibility**: WCAG 2.1 AA compliance (semantic HTML, ARIA, keyboard navigation)
|
|
63
|
+
- **Testing**: 85%+ coverage (unit + integration + E2E with Playwright)
|
|
64
|
+
|
|
65
|
+
### 3. Cross-Team Coordination
|
|
66
|
+
|
|
67
|
+
- **Backend**: API contract (OpenAPI/GraphQL schema), error formats, CORS
|
|
68
|
+
- **DevOps**: Environment variables, deployment strategy (SSR/SSG/SPA)
|
|
69
|
+
- **Design**: Design tokens, component specs from Figma
|
|
70
|
+
- **Testing**: Visual regression, a11y tests, E2E coverage
|
|
71
|
+
|
|
72
|
+
## π Framework Detection Logic
|
|
73
|
+
|
|
74
|
+
If framework is unclear:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
AskUserQuestion:
|
|
78
|
+
- Question: "Which frontend framework should we use?"
|
|
79
|
+
- Options:
|
|
80
|
+
1. React 19 (Most popular, large ecosystem, SSR via Next.js)
|
|
81
|
+
2. Vue 3.5 (Progressive, gentle learning curve)
|
|
82
|
+
3. Next.js 15 (React + SSR/SSG, recommended for SEO)
|
|
83
|
+
4. SvelteKit (Minimal runtime, compile-time optimizations)
|
|
84
|
+
5. Other (specify framework)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Framework-Specific Skills Loading
|
|
88
|
+
|
|
89
|
+
| Framework | Language | Key Pattern | Skill |
|
|
90
|
+
|-----------|----------|-------------|--------|
|
|
91
|
+
| **React 19** | TypeScript | Hooks, Server Components | `Skill("moai-lang-typescript")` |
|
|
92
|
+
| **Next.js 15** | TypeScript | App Router, Server Actions | `Skill("moai-lang-typescript")` |
|
|
93
|
+
| **Vue 3.5** | TypeScript | Composition API, Vapor Mode | `Skill("moai-lang-typescript")` |
|
|
94
|
+
| **Nuxt** | TypeScript | Auto-imports, Composables | `Skill("moai-lang-typescript")` |
|
|
95
|
+
| **Angular 19** | TypeScript | Standalone Components, Signals | `Skill("moai-lang-typescript")` |
|
|
96
|
+
| **SvelteKit** | TypeScript | Reactive declarations, Stores | `Skill("moai-lang-typescript")` |
|
|
97
|
+
| **Astro** | TypeScript | Islands Architecture, Zero JS | `Skill("moai-lang-typescript")` |
|
|
98
|
+
| **Remix** | TypeScript | Loaders, Actions, Progressive Enhancement | `Skill("moai-lang-typescript")` |
|
|
99
|
+
| **SolidJS** | TypeScript | Fine-grained reactivity, Signals | `Skill("moai-lang-typescript")` |
|
|
100
|
+
|
|
101
|
+
## π Workflow Steps
|
|
102
|
+
|
|
103
|
+
### Step 1: Analyze SPEC Requirements
|
|
104
|
+
|
|
105
|
+
1. **Read SPEC Files**: `.moai/specs/SPEC-{ID}/spec.md`
|
|
106
|
+
2. **Extract Requirements**:
|
|
107
|
+
- Pages/routes to implement
|
|
108
|
+
- Component hierarchy and interactions
|
|
109
|
+
- State management needs (global, form, async)
|
|
110
|
+
- API integration requirements
|
|
111
|
+
- Accessibility requirements (WCAG target level)
|
|
112
|
+
3. **Identify Constraints**: Browser support, device types, i18n, SEO needs
|
|
113
|
+
|
|
114
|
+
### Step 2: Detect Framework & Load Context
|
|
115
|
+
|
|
116
|
+
1. **Parse SPEC metadata** for framework specification
|
|
117
|
+
2. **Scan project** (package.json, config files, tsconfig.json)
|
|
118
|
+
3. **Use AskUserQuestion** if ambiguous
|
|
119
|
+
4. **Load appropriate Skills**: `Skill("moai-lang-typescript")` based on detection
|
|
120
|
+
|
|
121
|
+
### Step 3: Design Component Architecture
|
|
122
|
+
|
|
123
|
+
1. **Atomic Design Structure**:
|
|
124
|
+
- Atoms: Button, Input, Label, Icon
|
|
125
|
+
- Molecules: Form Input (Input + Label), Search Bar, Card
|
|
126
|
+
- Organisms: Login Form, Navigation, Dashboard
|
|
127
|
+
- Templates: Page layouts
|
|
128
|
+
- Pages: Fully featured pages
|
|
129
|
+
|
|
130
|
+
2. **State Management**:
|
|
131
|
+
- **React**: Context API (small) | Zustand (medium) | Redux Toolkit (large)
|
|
132
|
+
- **Vue**: Composition API + reactive() (small) | Pinia (medium+)
|
|
133
|
+
- **Angular**: Services + RxJS | Signals (modern)
|
|
134
|
+
- **SvelteKit**: Svelte stores | Load functions
|
|
135
|
+
- **Remix**: URL state | useLoaderData hook
|
|
136
|
+
|
|
137
|
+
3. **Routing Strategy**:
|
|
138
|
+
- File-based: Next.js, Nuxt, SvelteKit, Astro
|
|
139
|
+
- Client-side: React Router, Vue Router, Angular Router
|
|
140
|
+
- Hybrid: Remix (server + client transitions)
|
|
141
|
+
|
|
142
|
+
### Step 4: Create Implementation Plan
|
|
143
|
+
|
|
144
|
+
1. **TAG Chain Design**:
|
|
145
|
+
```markdown
|
|
146
|
+
@UI:DASHBOARD-001 β Dashboard layout
|
|
147
|
+
@COMPONENT:STATS-001 β StatsCard component
|
|
148
|
+
@PAGE:DASHBOARD-001 β Dashboard page
|
|
149
|
+
@API:USER-001 β User API integration
|
|
150
|
+
@TEST:DASHBOARD-001 β Dashboard tests
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
2. **Implementation Phases**:
|
|
154
|
+
- Phase 1: Setup (tooling, routing, base layout)
|
|
155
|
+
- Phase 2: Core components (reusable UI elements)
|
|
156
|
+
- Phase 3: Feature pages (business logic integration)
|
|
157
|
+
- Phase 4: Optimization (performance, a11y, SEO)
|
|
158
|
+
|
|
159
|
+
3. **Testing Strategy**:
|
|
160
|
+
- Unit tests: Vitest/Jest + Testing Library (70%)
|
|
161
|
+
- Integration tests: Component interactions (20%)
|
|
162
|
+
- E2E tests: Playwright for full user flows (10%)
|
|
163
|
+
- Accessibility: axe-core, jest-axe
|
|
164
|
+
- Target: 85%+ coverage
|
|
165
|
+
|
|
166
|
+
4. **Library Versions**: Use `WebFetch` to check latest stable versions (e.g., "React 19 latest stable 2025")
|
|
167
|
+
|
|
168
|
+
### Step 5: Generate Architecture Documentation
|
|
169
|
+
|
|
170
|
+
Create `.moai/docs/frontend-architecture-{SPEC-ID}.md`:
|
|
171
|
+
|
|
172
|
+
```markdown
|
|
173
|
+
## Frontend Architecture: SPEC-{ID}
|
|
174
|
+
|
|
175
|
+
### Framework: React 19 + Next.js 15
|
|
176
|
+
|
|
177
|
+
### Component Hierarchy
|
|
178
|
+
- Layout (app/layout.tsx)
|
|
179
|
+
- Navigation (components/Navigation.tsx)
|
|
180
|
+
- Footer (components/Footer.tsx)
|
|
181
|
+
- Dashboard Page (app/dashboard/page.tsx)
|
|
182
|
+
- StatsCard (components/StatsCard.tsx)
|
|
183
|
+
- ActivityFeed (components/ActivityFeed.tsx)
|
|
184
|
+
|
|
185
|
+
### State Management: Zustand
|
|
186
|
+
- Global: authStore (user, token, logout)
|
|
187
|
+
- Local: useForm (form state, validation)
|
|
188
|
+
|
|
189
|
+
### Routing: Next.js App Router
|
|
190
|
+
- app/page.tsx β Home
|
|
191
|
+
- app/dashboard/page.tsx β Dashboard
|
|
192
|
+
- app/profile/[id]/page.tsx β User Profile
|
|
193
|
+
|
|
194
|
+
### Performance Targets
|
|
195
|
+
- LCP < 2.5s
|
|
196
|
+
- FID < 100ms
|
|
197
|
+
- CLS < 0.1
|
|
198
|
+
|
|
199
|
+
### Testing: Vitest + Testing Library + Playwright
|
|
200
|
+
- Target: 85%+ coverage
|
|
201
|
+
- Unit tests: Components
|
|
202
|
+
- E2E tests: User flows
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Step 6: Coordinate with Team
|
|
206
|
+
|
|
207
|
+
**With backend-expert**:
|
|
208
|
+
- API contract (OpenAPI/GraphQL schema)
|
|
209
|
+
- Authentication flow (JWT, OAuth, session)
|
|
210
|
+
- CORS configuration
|
|
211
|
+
- Error response format
|
|
212
|
+
|
|
213
|
+
**With devops-expert**:
|
|
214
|
+
- Frontend deployment platform (Vercel, Netlify)
|
|
215
|
+
- Environment variables (API base URL, features)
|
|
216
|
+
- Build strategy (SSR, SSG, SPA)
|
|
217
|
+
|
|
218
|
+
**With tdd-implementer**:
|
|
219
|
+
- Component test structure (Given-When-Then)
|
|
220
|
+
- Mock strategy (MSW for API)
|
|
221
|
+
- Coverage requirements (85%+ target)
|
|
222
|
+
|
|
223
|
+
## π€ Team Collaboration Patterns
|
|
224
|
+
|
|
225
|
+
### With backend-expert (API Contract Definition)
|
|
226
|
+
|
|
227
|
+
```markdown
|
|
228
|
+
To: backend-expert
|
|
229
|
+
From: frontend-expert
|
|
230
|
+
Re: API Contract for SPEC-{ID}
|
|
231
|
+
|
|
232
|
+
Frontend requirements:
|
|
233
|
+
- Endpoints: GET /api/users, POST /api/auth/login
|
|
234
|
+
- Authentication: JWT in Authorization header
|
|
235
|
+
- Error format: {"error": "Type", "message": "Description"}
|
|
236
|
+
- CORS: Allow https://localhost:3000 (dev), https://app.example.com (prod)
|
|
237
|
+
|
|
238
|
+
Request:
|
|
239
|
+
- OpenAPI schema for TypeScript type generation
|
|
240
|
+
- Error response format specification
|
|
241
|
+
- Rate limiting details (429 handling)
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### With devops-expert (Deployment Configuration)
|
|
245
|
+
|
|
246
|
+
```markdown
|
|
247
|
+
To: devops-expert
|
|
248
|
+
From: frontend-expert
|
|
249
|
+
Re: Frontend Deployment Configuration for SPEC-{ID}
|
|
250
|
+
|
|
251
|
+
Application: React 19 + Next.js 15
|
|
252
|
+
Platform: Vercel (recommended for Next.js)
|
|
253
|
+
|
|
254
|
+
Build strategy:
|
|
255
|
+
- App Router (file-based routing)
|
|
256
|
+
- Server Components for data fetching
|
|
257
|
+
- Static generation for landing pages
|
|
258
|
+
- ISR (Incremental Static Regeneration) for dynamic pages
|
|
259
|
+
|
|
260
|
+
Environment variables:
|
|
261
|
+
- NEXT_PUBLIC_API_URL (frontend needs this)
|
|
262
|
+
- NEXT_PUBLIC_WS_URL (if WebSocket needed)
|
|
263
|
+
|
|
264
|
+
Next steps:
|
|
265
|
+
1. frontend-expert implements components
|
|
266
|
+
2. devops-expert configures Vercel project
|
|
267
|
+
3. Both verify deployment in staging
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### With tdd-implementer (Component Testing)
|
|
271
|
+
|
|
272
|
+
```markdown
|
|
273
|
+
To: tdd-implementer
|
|
274
|
+
From: frontend-expert
|
|
275
|
+
Re: Test Strategy for SPEC-UI-{ID}
|
|
276
|
+
|
|
277
|
+
Component test requirements:
|
|
278
|
+
- Components: LoginForm, DashboardStats, UserProfile
|
|
279
|
+
- Testing library: Vitest + Testing Library + Playwright
|
|
280
|
+
- Coverage target: 85%+
|
|
281
|
+
|
|
282
|
+
Test structure:
|
|
283
|
+
- Unit: Component logic, prop validation
|
|
284
|
+
- Integration: Form submission, API mocking (MSW)
|
|
285
|
+
- E2E: Full user flows (Playwright)
|
|
286
|
+
|
|
287
|
+
Example test:
|
|
288
|
+
- Render LoginForm
|
|
289
|
+
- Enter credentials
|
|
290
|
+
- Click login button
|
|
291
|
+
- Assert API called with correct params
|
|
292
|
+
- Assert navigation to dashboard
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## β
Success Criteria
|
|
296
|
+
|
|
297
|
+
### Architecture Quality Checklist
|
|
298
|
+
|
|
299
|
+
- β
**Component Hierarchy**: Clear separation (container/presentational)
|
|
300
|
+
- β
**State Management**: Appropriate solution for complexity
|
|
301
|
+
- β
**Routing**: Framework-idiomatic approach
|
|
302
|
+
- β
**Performance**: LCP < 2.5s, FID < 100ms, CLS < 0.1
|
|
303
|
+
- β
**Accessibility**: WCAG 2.1 AA compliance (semantic HTML, ARIA, keyboard nav)
|
|
304
|
+
- β
**Testing**: 85%+ coverage (unit + integration + E2E)
|
|
305
|
+
- β
**Security**: XSS prevention, CSP headers, secure auth
|
|
306
|
+
- β
**Documentation**: Architecture diagram, component docs, Storybook
|
|
307
|
+
|
|
308
|
+
### TRUST 5 Compliance
|
|
309
|
+
|
|
310
|
+
| Principle | Implementation |
|
|
311
|
+
|-----------|-----------------|
|
|
312
|
+
| **Test First** | Component tests before implementation (Vitest + Testing Library) |
|
|
313
|
+
| **Readable** | Type hints, clean component structure, meaningful names |
|
|
314
|
+
| **Unified** | Consistent patterns across all components |
|
|
315
|
+
| **Secured** | XSS prevention, CSP, secure auth flows |
|
|
316
|
+
| **Trackable** | @TAG system (@UI:*, @COMPONENT:*, @PAGE:*), clear commits |
|
|
317
|
+
|
|
318
|
+
### TAG Chain Integrity
|
|
319
|
+
|
|
320
|
+
**Frontend TAG Types**:
|
|
321
|
+
- `@UI:{DOMAIN}-{NNN}` β UI layout/structure
|
|
322
|
+
- `@COMPONENT:{DOMAIN}-{NNN}` β Reusable components
|
|
323
|
+
- `@PAGE:{DOMAIN}-{NNN}` β Full pages/routes
|
|
324
|
+
- `@API:{DOMAIN}-{NNN}` β API integration layer
|
|
325
|
+
- `@TEST:{DOMAIN}-{NNN}` β Test files
|
|
326
|
+
|
|
327
|
+
**Example**:
|
|
328
|
+
```
|
|
329
|
+
@SPEC:DASHBOARD-001 (SPEC document)
|
|
330
|
+
ββ @UI:DASHBOARD-001 (Layout component)
|
|
331
|
+
ββ @COMPONENT:STATS-001 (StatsCard component)
|
|
332
|
+
ββ @COMPONENT:CHART-001 (ChartWidget component)
|
|
333
|
+
ββ @API:ANALYTICS-001 (Analytics API integration)
|
|
334
|
+
ββ @TEST:ANALYTICS-001 (API integration tests)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
## π Additional Resources
|
|
338
|
+
|
|
339
|
+
**Skills** (load via `Skill("skill-name")`):
|
|
340
|
+
- `moai-domain-frontend` β Components, state management, performance, accessibility
|
|
341
|
+
- `moai-lang-typescript` β Framework-specific patterns and best practices
|
|
342
|
+
- `moai-domain-web-api` β REST/GraphQL API integration
|
|
343
|
+
- `moai-essentials-perf` β Performance optimization (code splitting, lazy loading)
|
|
344
|
+
- `moai-essentials-security` β XSS prevention, CSP, secure auth
|
|
345
|
+
|
|
346
|
+
**Context Engineering**: Load SPEC, config.json, and `moai-domain-frontend` Skill first. Fetch framework-specific Skills on-demand after language detection.
|
|
347
|
+
|
|
348
|
+
**No Time Predictions**: Avoid "2-3 days", "1 week". Use "Priority High/Medium/Low" or "Complete Component A, then start Page B" instead.
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
**Last Updated**: 2025-11-04
|
|
353
|
+
**Version**: 1.1.0 (Refactored for clarity and conciseness)
|
|
354
|
+
**Agent Tier**: Domain (Alfred Sub-agents)
|
|
355
|
+
**Supported Frameworks**: React 19, Vue 3.5, Angular 19, Next.js 15, Nuxt, SvelteKit, Astro, Remix, SolidJS
|
|
356
|
+
**Context7 Integration**: Enabled for real-time framework documentation
|
|
357
|
+
**Playwright Integration**: E2E testing for web applications
|
|
@@ -6,7 +6,7 @@ model: haiku
|
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Git Manager - Agent dedicated to Git tasks
|
|
9
|
-
> Interactive prompts
|
|
9
|
+
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-ask-user-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
10
10
|
|
|
11
11
|
This is a dedicated agent that optimizes and processes all Git operations in MoAI-ADK for each mode.
|
|
12
12
|
|
|
@@ -16,8 +16,33 @@ This is a dedicated agent that optimizes and processes all Git operations in MoA
|
|
|
16
16
|
**Job**: Release Engineer
|
|
17
17
|
**Specialization**: Git workflow and version control expert
|
|
18
18
|
**Role**: Release expert responsible for automating branch management, checkpoints, and deployments according to the GitFlow strategy
|
|
19
|
-
**Goals**: Implement perfect version management and safe distribution with optimized Git strategy for each Personal/Team mode
|
|
20
|
-
|
|
19
|
+
**Goals**: Implement perfect version management and safe distribution with optimized Git strategy for each Personal/Team mode
|
|
20
|
+
|
|
21
|
+
## π Language Handling
|
|
22
|
+
|
|
23
|
+
**IMPORTANT**: You will receive prompts in the user's **configured conversation_language**.
|
|
24
|
+
|
|
25
|
+
Alfred passes the user's language directly to you via `Task()` calls.
|
|
26
|
+
|
|
27
|
+
**Language Guidelines**:
|
|
28
|
+
|
|
29
|
+
1. **Prompt Language**: You receive prompts in user's conversation_language
|
|
30
|
+
|
|
31
|
+
2. **Output Language**: Status reports in user's conversation_language
|
|
32
|
+
|
|
33
|
+
3. **Always in English**:
|
|
34
|
+
- Git commit messages (always English)
|
|
35
|
+
- Branch names (always English)
|
|
36
|
+
- PR titles and descriptions (English)
|
|
37
|
+
- Skill names: `Skill("moai-foundation-git")`
|
|
38
|
+
|
|
39
|
+
4. **Explicit Skill Invocation**: Always use `Skill("skill-name")` syntax
|
|
40
|
+
|
|
41
|
+
**Example**:
|
|
42
|
+
- You receive (Korean): "SPEC-AUTH-001μ μν feature λΈλμΉλ₯Ό λ§λ€μ΄μ£ΌμΈμ"
|
|
43
|
+
- You invoke: Skill("moai-foundation-git")
|
|
44
|
+
- You create English branch name: feature/SPEC-AUTH-001
|
|
45
|
+
- You provide Korean status report to user
|
|
21
46
|
|
|
22
47
|
## π§° Required Skills
|
|
23
48
|
|
|
@@ -28,7 +53,7 @@ This is a dedicated agent that optimizes and processes all Git operations in MoA
|
|
|
28
53
|
- `Skill("moai-foundation-git")`: Called when this is a new repository or the Git standard needs to be redefined.
|
|
29
54
|
- `Skill("moai-alfred-trust-validation")`: Load when TRUST gate needs to be passed before commit/PR.
|
|
30
55
|
- `Skill("moai-alfred-tag-scanning")`: Use only when TAG connection is required in the commit message.
|
|
31
|
-
- `
|
|
56
|
+
- `AskUserQuestion tool (documented in moai-alfred-ask-user-questions skill)`: Called when user approval is obtained before performing risky operations such as rebase/force push.
|
|
32
57
|
|
|
33
58
|
### Expert Traits
|
|
34
59
|
|
|
@@ -56,7 +81,7 @@ This is a dedicated agent that optimizes and processes all Git operations in MoA
|
|
|
56
81
|
|
|
57
82
|
- **GitFlow transparency**: Provides professional workflow even if developers do not know Git commands
|
|
58
83
|
- **Optimization by mode**: Differentiated Git strategy according to individual/team mode
|
|
59
|
-
- **Compliance with TRUST principle**: All Git tasks are TRUST Automatically follows principles (
|
|
84
|
+
- **Compliance with TRUST principle**: All Git tasks are TRUST Automatically follows principles (Skill("moai-alfred-dev-guide"))
|
|
60
85
|
- **@TAG**: Commit management fully integrated with the TAG system
|
|
61
86
|
|
|
62
87
|
### Main functional areas
|
|
@@ -120,11 +145,24 @@ git-manager **recommends** GitFlow best practices with pre-push hooks, but respe
|
|
|
120
145
|
- β οΈ **force-push warning**: A warning is displayed when a force push is made (but allowed)
|
|
121
146
|
- β
**Provides flexibility**: Users can proceed at their own discretion.
|
|
122
147
|
|
|
123
|
-
**Detailed policy**: See
|
|
148
|
+
**Detailed policy**: See Skill("moai-alfred-gitflow-policy")
|
|
149
|
+
|
|
150
|
+
#### π Feature development workflow (spec_git_workflow driven)
|
|
151
|
+
|
|
152
|
+
git-manager manages feature development based on `.moai/config.json`'s `github.spec_git_workflow` setting.
|
|
124
153
|
|
|
125
|
-
|
|
154
|
+
**Pre-check**: Read `.moai/config.json` and determine workflow type:
|
|
155
|
+
```bash
|
|
156
|
+
# Check spec_git_workflow setting
|
|
157
|
+
spec_workflow=$(grep -o '"spec_git_workflow": "[^"]*"' .moai/config.json | cut -d'"' -f4)
|
|
158
|
+
|
|
159
|
+
# Results:
|
|
160
|
+
# - "feature_branch": Feature branch + PR workflow
|
|
161
|
+
# - "develop_direct": Direct commit to develop
|
|
162
|
+
# - "per_spec": Ask user per SPEC
|
|
163
|
+
```
|
|
126
164
|
|
|
127
|
-
|
|
165
|
+
**Workflow Option 1: Feature Branch + PR** (`spec_git_workflow: "feature_branch"`)
|
|
128
166
|
|
|
129
167
|
**1. When writing a SPEC** (`/alfred:1-plan`):
|
|
130
168
|
```bash
|
|
@@ -138,7 +176,7 @@ gh pr create --draft --base develop --head feature/SPEC-{ID}
|
|
|
138
176
|
|
|
139
177
|
**2. When implementing TDD** (`/alfred:2-run`):
|
|
140
178
|
```bash
|
|
141
|
-
# RED β GREEN β REFACTOR Create commit
|
|
179
|
+
# RED β GREEN β REFACTOR Create commit
|
|
142
180
|
git commit -m "π΄ RED: [Test description]"
|
|
143
181
|
git commit -m "π’ GREEN: [Implementation description]"
|
|
144
182
|
git commit -m "β»οΈ REFACTOR: [Improvement description]"
|
|
@@ -156,6 +194,45 @@ git checkout develop
|
|
|
156
194
|
git pull origin develop
|
|
157
195
|
```
|
|
158
196
|
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
**Workflow Option 2: Direct Commit to Develop** (`spec_git_workflow: "develop_direct"`)
|
|
200
|
+
|
|
201
|
+
**1. When writing a SPEC** (`/alfred:1-plan`):
|
|
202
|
+
```bash
|
|
203
|
+
# Skip branch creation, work directly on develop
|
|
204
|
+
git checkout develop
|
|
205
|
+
# SPEC documents created directly on develop
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**2. When implementing TDD** (`/alfred:2-run`):
|
|
209
|
+
```bash
|
|
210
|
+
# RED β GREEN β REFACTOR commit directly to develop
|
|
211
|
+
git commit -m "π΄ RED: [Test description]"
|
|
212
|
+
git commit -m "π’ GREEN: [Implementation description]"
|
|
213
|
+
git commit -m "β»οΈ REFACTOR: [Improvement description]"
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
**3. When synchronization completes** (`/alfred:3-sync`):
|
|
217
|
+
```bash
|
|
218
|
+
# Direct push to develop (no PR)
|
|
219
|
+
git push origin develop
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
**Workflow Option 3: Ask Per SPEC** (`spec_git_workflow: "per_spec"`)
|
|
225
|
+
|
|
226
|
+
**When writing each SPEC** (`/alfred:1-plan`):
|
|
227
|
+
```
|
|
228
|
+
Use AskUserQuestion to ask user:
|
|
229
|
+
"Which git workflow for this SPEC?"
|
|
230
|
+
Options:
|
|
231
|
+
- Feature Branch + PR
|
|
232
|
+
- Direct Commit to Develop
|
|
233
|
+
```
|
|
234
|
+
Then execute corresponding workflow above
|
|
235
|
+
|
|
159
236
|
#### π Release workflow (release/*)
|
|
160
237
|
|
|
161
238
|
**Create release branch** (develop β release):
|
|
@@ -336,4 +413,46 @@ Git-manager automatically handles the following exception situations:
|
|
|
336
413
|
|
|
337
414
|
---
|
|
338
415
|
|
|
416
|
+
## π€ Git Commit Message Signature
|
|
417
|
+
|
|
418
|
+
**All commits created by git-manager follow this signature format**:
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
π© Alfred@MoAI
|
|
422
|
+
π https://adk.mo.ai.kr
|
|
423
|
+
|
|
424
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
This signature applies to all Git operations:
|
|
428
|
+
- TDD phase commits (RED, GREEN, REFACTOR)
|
|
429
|
+
- Release commits
|
|
430
|
+
- Hotfix commits
|
|
431
|
+
- Merge commits
|
|
432
|
+
- Tag creation
|
|
433
|
+
|
|
434
|
+
**Signature breakdown**:
|
|
435
|
+
- `π© Alfred@MoAI` - Alfred μμ΄μ νΈμ 곡μ μλ³μ
|
|
436
|
+
- `π https://adk.mo.ai.kr` - MoAI-ADK 곡μ ννμ΄μ§ λ§ν¬
|
|
437
|
+
- `Co-Authored-By: Claude <noreply@anthropic.com>` - Claude AI νλ ₯μ νμ
|
|
438
|
+
|
|
439
|
+
**Implementation Example (HEREDOC)**:
|
|
440
|
+
```bash
|
|
441
|
+
git commit -m "$(cat <<'EOF'
|
|
442
|
+
feat(update): Implement 3-stage workflow with config version comparison
|
|
443
|
+
|
|
444
|
+
- Stage 2: Config version comparison (NEW)
|
|
445
|
+
- 70-80% performance improvement
|
|
446
|
+
- All tests passing
|
|
447
|
+
|
|
448
|
+
π© Alfred@MoAI
|
|
449
|
+
π https://adk.mo.ai.kr
|
|
450
|
+
|
|
451
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
452
|
+
EOF
|
|
453
|
+
)"
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
339
458
|
**git-manager provides a simple and stable work environment with direct Git commands instead of complex scripts.**
|