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,405 @@
|
|
|
1
|
+
# Alfred Personas Reference
|
|
2
|
+
|
|
3
|
+
## API Specification
|
|
4
|
+
|
|
5
|
+
### Core Functions
|
|
6
|
+
|
|
7
|
+
#### `detect_expertise_level(session_signals) -> str`
|
|
8
|
+
**Description**: Stateless expertise level detection based on session patterns
|
|
9
|
+
|
|
10
|
+
**Parameters**:
|
|
11
|
+
- `session_signals` (List[Signal]): List of session interaction signals
|
|
12
|
+
|
|
13
|
+
**Returns**: `str` - "beginner", "intermediate", or "expert"
|
|
14
|
+
|
|
15
|
+
**Signal Types**:
|
|
16
|
+
```python
|
|
17
|
+
class SignalType:
|
|
18
|
+
REPEATED_QUESTIONS = "repeated_questions" # Beginner: +2
|
|
19
|
+
DIRECT_COMMANDS = "direct_commands" # Expert: +2
|
|
20
|
+
MIXED_APPROACH = "mixed_approach" # Intermediate: +1
|
|
21
|
+
HELP_REQUESTS = "help_requests" # Beginner: +1
|
|
22
|
+
TECHNICAL_PRECISION = "technical_precision" # Expert: +1
|
|
23
|
+
SELF_CORRECTION = "self_correction" # Intermediate: +1
|
|
24
|
+
TRADEOFF_INTEREST = "tradeoff_interest" # Intermediate: +1
|
|
25
|
+
EXPLANATION_KEYWORDS = "explanation_keywords" # Beginner detection
|
|
26
|
+
EFFICIENCY_KEYWORDS = "efficiency_keywords" # Expert detection
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
#### `select_persona(user_request, session_context, project_config) -> Persona`
|
|
30
|
+
**Description**: Select appropriate persona based on multiple factors
|
|
31
|
+
|
|
32
|
+
**Parameters**:
|
|
33
|
+
- `user_request` (UserRequest): Current user request object
|
|
34
|
+
- `session_context` (SessionContext): Session state and signals
|
|
35
|
+
- `project_config` (ProjectConfig): Project configuration settings
|
|
36
|
+
|
|
37
|
+
**Returns**: `Persona` - Selected persona instance
|
|
38
|
+
|
|
39
|
+
**Selection Algorithm**:
|
|
40
|
+
```python
|
|
41
|
+
def select_persona(user_request, session_context, project_config):
|
|
42
|
+
# 1. Command type check (highest priority)
|
|
43
|
+
if user_request.type == "alfred_command":
|
|
44
|
+
return ProjectManager()
|
|
45
|
+
elif user_request.type == "team_operation" and project_config.team_mode:
|
|
46
|
+
return CollaborationCoordinator()
|
|
47
|
+
|
|
48
|
+
# 2. Expertise level detection
|
|
49
|
+
expertise = detect_expertise_level(session_context.signals)
|
|
50
|
+
|
|
51
|
+
# 3. Content analysis
|
|
52
|
+
if has_explanation_keywords(user_request.content):
|
|
53
|
+
return TechnicalMentor() if expertise == "beginner" else EfficiencyCoach()
|
|
54
|
+
|
|
55
|
+
# 4. Efficiency preference
|
|
56
|
+
if has_efficiency_keywords(user_request.content):
|
|
57
|
+
return EfficiencyCoach()
|
|
58
|
+
|
|
59
|
+
# 5. Default based on expertise
|
|
60
|
+
return TechnicalMentor() if expertise == "beginner" else EfficiencyCoach()
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Persona Classes
|
|
64
|
+
|
|
65
|
+
#### TechnicalMentor
|
|
66
|
+
**Purpose**: Educational guidance for beginners and learning-focused users
|
|
67
|
+
|
|
68
|
+
**Key Methods**:
|
|
69
|
+
```python
|
|
70
|
+
class TechnicalMentor(Persona):
|
|
71
|
+
def format_response(self, content: str) -> str:
|
|
72
|
+
"""Format response with educational elements"""
|
|
73
|
+
return self.add_explanations(content)
|
|
74
|
+
|
|
75
|
+
def ask_clarifying_questions(self) -> List[Question]:
|
|
76
|
+
"""Generate detailed clarifying questions"""
|
|
77
|
+
return create_detailed_questions()
|
|
78
|
+
|
|
79
|
+
def provide_examples(self, concept: str) -> List[Example]:
|
|
80
|
+
"""Generate multiple examples for concept"""
|
|
81
|
+
return create_varied_examples(concept)
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**Behavior Patterns**:
|
|
85
|
+
- Always explains "why" before "what"
|
|
86
|
+
- Uses analogies and real-world comparisons
|
|
87
|
+
- Checks for understanding periodically
|
|
88
|
+
- Offers additional resources and references
|
|
89
|
+
- Provides step-by-step guidance
|
|
90
|
+
|
|
91
|
+
#### EfficiencyCoach
|
|
92
|
+
**Purpose**: Direct, results-oriented communication for experienced users
|
|
93
|
+
|
|
94
|
+
**Key Methods**:
|
|
95
|
+
```python
|
|
96
|
+
class EfficiencyCoach(Persona):
|
|
97
|
+
def format_response(self, content: str) -> str:
|
|
98
|
+
"""Format response for maximum efficiency"""
|
|
99
|
+
return self.concise_format(content)
|
|
100
|
+
|
|
101
|
+
def auto_approve_changes(self, risk_level: str) -> bool:
|
|
102
|
+
"""Determine if changes can be auto-approved"""
|
|
103
|
+
return risk_level in ["low", "medium"]
|
|
104
|
+
|
|
105
|
+
def skip_explanation(self, topic: str) -> bool:
|
|
106
|
+
"""Determine if explanation can be skipped"""
|
|
107
|
+
return self.is_common_knowledge(topic)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Behavior Patterns**:
|
|
111
|
+
- Leads with results and outcomes
|
|
112
|
+
- Minimizes explanatory overhead
|
|
113
|
+
- Auto-approves low-risk changes
|
|
114
|
+
- Focuses on next actions and deliverables
|
|
115
|
+
- Respects user's time and expertise
|
|
116
|
+
|
|
117
|
+
#### ProjectManager
|
|
118
|
+
**Purpose**: Structured coordination of complex multi-step tasks
|
|
119
|
+
|
|
120
|
+
**Key Methods**:
|
|
121
|
+
```python
|
|
122
|
+
class ProjectManager(Persona):
|
|
123
|
+
def decompose_task(self, task: Task) -> List[SubTask]:
|
|
124
|
+
"""Break down complex task into manageable steps"""
|
|
125
|
+
return create_task_breakdown(task)
|
|
126
|
+
|
|
127
|
+
def track_progress(self, subtasks: List[SubTask]) -> ProgressReport:
|
|
128
|
+
"""Track and report progress on subtasks"""
|
|
129
|
+
return generate_progress_report(subtasks)
|
|
130
|
+
|
|
131
|
+
def manage_dependencies(self, tasks: List[Task]) -> DependencyGraph:
|
|
132
|
+
"""Identify and manage task dependencies"""
|
|
133
|
+
return create_dependency_graph(tasks)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Behavior Patterns**:
|
|
137
|
+
- Uses structured communication (headings, lists, tables)
|
|
138
|
+
- Tracks progress with clear milestones
|
|
139
|
+
- Identifies and manages dependencies
|
|
140
|
+
- Provides timelines and estimates
|
|
141
|
+
- Coordinates multiple stakeholders
|
|
142
|
+
|
|
143
|
+
#### CollaborationCoordinator
|
|
144
|
+
**Purpose**: Team-focused communication and coordination
|
|
145
|
+
|
|
146
|
+
**Key Methods**:
|
|
147
|
+
```python
|
|
148
|
+
class CollaborationCoordinator(Persona):
|
|
149
|
+
def analyze_team_impact(self, changes: List[Change]) -> TeamImpact:
|
|
150
|
+
"""Analyze impact of changes on different teams"""
|
|
151
|
+
return assess_cross_team_impact(changes)
|
|
152
|
+
|
|
153
|
+
def facilitate_consensus(self, proposal: Proposal) -> ConsensusResult:
|
|
154
|
+
"""Help team reach consensus on decisions"""
|
|
155
|
+
return coordinate_decision_making(proposal)
|
|
156
|
+
|
|
157
|
+
def document_rationale(self, decision: Decision) -> Documentation:
|
|
158
|
+
"""Create comprehensive documentation for decisions"""
|
|
159
|
+
return create_decision_documentation(decision)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Behavior Patterns**:
|
|
163
|
+
- Considers all team perspectives and stakeholders
|
|
164
|
+
- Documents rationale thoroughly
|
|
165
|
+
- Facilitates consensus building
|
|
166
|
+
- Highlights cross-team impacts
|
|
167
|
+
- Creates comprehensive documentation
|
|
168
|
+
|
|
169
|
+
## Configuration Parameters
|
|
170
|
+
|
|
171
|
+
### Persona Thresholds
|
|
172
|
+
```python
|
|
173
|
+
PERSONA_THRESHOLDS = {
|
|
174
|
+
"expertise_detection": {
|
|
175
|
+
"beginner_threshold": 3, # Score needed for beginner classification
|
|
176
|
+
"expert_threshold": 3, # Score needed for expert classification
|
|
177
|
+
"signal_decay_rate": 0.9, # How quickly signals lose relevance
|
|
178
|
+
"session_memory_limit": 50 # Max signals to consider
|
|
179
|
+
},
|
|
180
|
+
"persona_switching": {
|
|
181
|
+
"min_confidence_score": 0.7, # Minimum confidence to switch personas
|
|
182
|
+
"switch_cooldown": 300, # Seconds between persona switches
|
|
183
|
+
"consistency_weight": 0.8 # Weight for maintaining current persona
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Risk Assessment Matrix
|
|
189
|
+
```python
|
|
190
|
+
RISK_MATRIX = {
|
|
191
|
+
"beginner": {
|
|
192
|
+
"low": {"action": "explain_confirm", "approval": "automatic"},
|
|
193
|
+
"medium": {"action": "explain_wait", "approval": "explicit"},
|
|
194
|
+
"high": {"action": "detailed_review", "approval": "explicit"}
|
|
195
|
+
},
|
|
196
|
+
"intermediate": {
|
|
197
|
+
"low": {"action": "confirm_quick", "approval": "automatic"},
|
|
198
|
+
"medium": {"action": "confirm_options", "approval": "explicit"},
|
|
199
|
+
"high": {"action": "detailed_review", "approval": "explicit"}
|
|
200
|
+
},
|
|
201
|
+
"expert": {
|
|
202
|
+
"low": {"action": "auto_approve", "approval": "automatic"},
|
|
203
|
+
"medium": {"action": "quick_review", "approval": "conditional"},
|
|
204
|
+
"high": {"action": "detailed_review", "approval": "explicit"}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Integration Points
|
|
210
|
+
|
|
211
|
+
### AskUserQuestion Integration
|
|
212
|
+
|
|
213
|
+
Persona-specific question patterns:
|
|
214
|
+
|
|
215
|
+
```python
|
|
216
|
+
PERSONA_QUESTION_PATTERNS = {
|
|
217
|
+
"technical_mentor": {
|
|
218
|
+
"style": "educational",
|
|
219
|
+
"options_count": 4,
|
|
220
|
+
"include_descriptions": True,
|
|
221
|
+
"allow_other": True,
|
|
222
|
+
"tone": "supportive",
|
|
223
|
+
"example": "I need to understand what you're trying to accomplish. Would you like to:"
|
|
224
|
+
},
|
|
225
|
+
"efficiency_coach": {
|
|
226
|
+
"style": "direct",
|
|
227
|
+
"options_count": 3,
|
|
228
|
+
"include_descriptions": False,
|
|
229
|
+
"allow_other": False,
|
|
230
|
+
"tone": "business-like",
|
|
231
|
+
"example": "Next action?"
|
|
232
|
+
},
|
|
233
|
+
"project_manager": {
|
|
234
|
+
"style": "structured",
|
|
235
|
+
"options_count": 4,
|
|
236
|
+
"include_descriptions": True,
|
|
237
|
+
"allow_other": False,
|
|
238
|
+
"tone": "organizational",
|
|
239
|
+
"example": "Project phase complete. Next step:"
|
|
240
|
+
},
|
|
241
|
+
"collaboration_coordinator": {
|
|
242
|
+
"style": "inclusive",
|
|
243
|
+
"options_count": 4,
|
|
244
|
+
"include_descriptions": True,
|
|
245
|
+
"allow_other": True,
|
|
246
|
+
"tone": "collaborative",
|
|
247
|
+
"example": "Team decision needed. Options for moving forward:"
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
### 4-Step Workflow Integration
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
WORKFLOW_PERSONA_MAPPING = {
|
|
256
|
+
"step1_intent": {
|
|
257
|
+
"default": "technical_mentor",
|
|
258
|
+
"expert_user": "efficiency_coach",
|
|
259
|
+
"team_context": "collaboration_coordinator"
|
|
260
|
+
},
|
|
261
|
+
"step2_plan": {
|
|
262
|
+
"default": "project_manager",
|
|
263
|
+
"simple_task": "efficiency_coach",
|
|
264
|
+
"learning_context": "technical_mentor"
|
|
265
|
+
},
|
|
266
|
+
"step3_execute": {
|
|
267
|
+
"default": "efficiency_coach",
|
|
268
|
+
"complex_implementation": "project_manager",
|
|
269
|
+
"educational_context": "technical_mentor"
|
|
270
|
+
},
|
|
271
|
+
"step4_report": {
|
|
272
|
+
"default": "efficiency_coach",
|
|
273
|
+
"team_workflow": "collaboration_coordinator",
|
|
274
|
+
"learning_review": "technical_mentor"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Error Handling
|
|
280
|
+
|
|
281
|
+
### Persona Detection Failures
|
|
282
|
+
|
|
283
|
+
```python
|
|
284
|
+
def handle_detection_failure(error: DetectionError) -> Persona:
|
|
285
|
+
"""Fallback persona selection when detection fails"""
|
|
286
|
+
|
|
287
|
+
if error.type == "insufficient_signals":
|
|
288
|
+
return TechnicalMentor() # Default to helpful
|
|
289
|
+
elif error.type == "conflicting_signals":
|
|
290
|
+
return EfficiencyCoach() # Default to efficient
|
|
291
|
+
elif error.type == "context_missing":
|
|
292
|
+
return TechnicalMentor() # Default to educational
|
|
293
|
+
else:
|
|
294
|
+
return TechnicalMentor() # Safe default
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### Persona Switching Conflicts
|
|
298
|
+
|
|
299
|
+
```python
|
|
300
|
+
def resolve_persona_conflict(current: Persona, suggested: Persona, confidence: float) -> Persona:
|
|
301
|
+
"""Resolve conflicts between current and suggested personas"""
|
|
302
|
+
|
|
303
|
+
if confidence < PERSONA_THRESHOLDS["persona_switching"]["min_confidence_score"]:
|
|
304
|
+
return current # Maintain current persona
|
|
305
|
+
|
|
306
|
+
if time_since_last_switch() < PERSONA_THRESHOLDS["persona_switching"]["switch_cooldown"]:
|
|
307
|
+
return current # Too soon to switch again
|
|
308
|
+
|
|
309
|
+
# Apply consistency weight
|
|
310
|
+
if random.random() > PERSONA_THRESHOLDS["persona_switching"]["consistency_weight"]:
|
|
311
|
+
return suggested # Allow switch
|
|
312
|
+
|
|
313
|
+
return current # Maintain consistency
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Performance Considerations
|
|
317
|
+
|
|
318
|
+
### Memory Management
|
|
319
|
+
|
|
320
|
+
```python
|
|
321
|
+
class SessionSignalBuffer:
|
|
322
|
+
"""Efficient buffer for session signals with automatic cleanup"""
|
|
323
|
+
|
|
324
|
+
def __init__(self, max_size: int = 50):
|
|
325
|
+
self.max_size = max_size
|
|
326
|
+
self.signals = deque(maxlen=max_size)
|
|
327
|
+
self.decay_rate = 0.9
|
|
328
|
+
|
|
329
|
+
def add_signal(self, signal: Signal):
|
|
330
|
+
"""Add new signal with timestamp and decay factor"""
|
|
331
|
+
signal.timestamp = now()
|
|
332
|
+
signal.decay_factor = 1.0
|
|
333
|
+
self.signals.append(signal)
|
|
334
|
+
self._apply_decay()
|
|
335
|
+
|
|
336
|
+
def _apply_decay(self):
|
|
337
|
+
"""Apply time-based decay to existing signals"""
|
|
338
|
+
current_time = now()
|
|
339
|
+
for signal in self.signals:
|
|
340
|
+
age_seconds = (current_time - signal.timestamp).total_seconds()
|
|
341
|
+
signal.decay_factor *= self.decay_rate ** (age_seconds / 300) # 5-minute half-life
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### Computational Efficiency
|
|
345
|
+
|
|
346
|
+
- **Signal processing**: O(n) where n is number of recent signals (max 50)
|
|
347
|
+
- **Persona selection**: O(1) constant time after signal processing
|
|
348
|
+
- **Memory usage**: Fixed maximum regardless of session length
|
|
349
|
+
- **Response time**: <10ms for persona detection and selection
|
|
350
|
+
|
|
351
|
+
## Troubleshooting
|
|
352
|
+
|
|
353
|
+
### Common Issues
|
|
354
|
+
|
|
355
|
+
**Issue**: Persona switching too frequently
|
|
356
|
+
**Solution**: Increase `consistency_weight` and `switch_cooldown` parameters
|
|
357
|
+
|
|
358
|
+
**Issue**: Wrong expertise level detected
|
|
359
|
+
**Solution**: Adjust signal weights in detection algorithm, review signal classification
|
|
360
|
+
|
|
361
|
+
**Issue**: Responses too verbose for expert users
|
|
362
|
+
**Solution**: Check efficiency keyword detection, adjust persona selection thresholds
|
|
363
|
+
|
|
364
|
+
**Issue**: Team coordination not triggering Collaboration Coordinator
|
|
365
|
+
**Solution**: Verify `team_mode: true` in project config, check request type classification
|
|
366
|
+
|
|
367
|
+
### Debug Commands
|
|
368
|
+
|
|
369
|
+
```python
|
|
370
|
+
# Debug persona detection
|
|
371
|
+
debug_persona_detection(session_context)
|
|
372
|
+
|
|
373
|
+
# View current persona state
|
|
374
|
+
get_current_persona_state()
|
|
375
|
+
|
|
376
|
+
# Test persona selection manually
|
|
377
|
+
test_persona_selection(user_request, session_context, project_config)
|
|
378
|
+
|
|
379
|
+
# Analyze signal patterns
|
|
380
|
+
analyze_session_signals(session_context.signals)
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### Configuration Validation
|
|
384
|
+
|
|
385
|
+
```python
|
|
386
|
+
def validate_persona_config(config: dict) -> ValidationResult:
|
|
387
|
+
"""Validate persona configuration parameters"""
|
|
388
|
+
|
|
389
|
+
errors = []
|
|
390
|
+
|
|
391
|
+
# Check threshold ranges
|
|
392
|
+
if not (0 <= config["min_confidence_score"] <= 1):
|
|
393
|
+
errors.append("min_confidence_score must be between 0 and 1")
|
|
394
|
+
|
|
395
|
+
if config["switch_cooldown"] < 0:
|
|
396
|
+
errors.append("switch_cooldown must be positive")
|
|
397
|
+
|
|
398
|
+
# Check persona availability
|
|
399
|
+
required_personas = ["technical_mentor", "efficiency_coach", "project_manager", "collaboration_coordinator"]
|
|
400
|
+
for persona in required_personas:
|
|
401
|
+
if persona not in config["available_personas"]:
|
|
402
|
+
errors.append(f"Required persona {persona} not available")
|
|
403
|
+
|
|
404
|
+
return ValidationResult(valid=len(errors) == 0, errors=errors)
|
|
405
|
+
```
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-alfred-practices
|
|
3
|
+
description: "Practical workflows, context engineering strategies, and real-world execution examples for MoAI-ADK. Use when learning workflow patterns, optimizing context management, debugging issues, or implementing features end-to-end."
|
|
4
|
+
allowed-tools: "Read, Glob, Grep, Bash"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Skill Metadata
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
| ----- | ----- |
|
|
11
|
+
| Version | 1.0.0 |
|
|
12
|
+
| Tier | Alfred |
|
|
13
|
+
| Auto-load | When practical guidance is needed |
|
|
14
|
+
| Keywords | workflow-examples, context-engineering, jit-retrieval, agent-usage, debugging-patterns, feature-implementation |
|
|
15
|
+
|
|
16
|
+
## What It Does
|
|
17
|
+
|
|
18
|
+
JIT (Just-in-Time) context 관리 전략, Explore agent 효율적 사용법, SPEC → TDD → Sync 실행 순서, 자주 발생하는 문제 해결책을 제공합니다.
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
- ✅ 실제 task 실행 시 구체적 단계 필요
|
|
23
|
+
- ✅ Context 관리 최적화 필요 (큰 프로젝트)
|
|
24
|
+
- ✅ Explore agent 효율적 활용 방법 학습
|
|
25
|
+
- ✅ SPEC → TDD → Sync 실행 패턴 학습
|
|
26
|
+
- ✅ 자주 발생하는 문제 해결 방법 찾기
|
|
27
|
+
|
|
28
|
+
## Core Practices at a Glance
|
|
29
|
+
|
|
30
|
+
### 1. Context Engineering Strategy
|
|
31
|
+
|
|
32
|
+
#### JIT (Just-in-Time) Retrieval
|
|
33
|
+
- 필요한 context만 즉시 pull
|
|
34
|
+
- Explore로 manual file hunting 대체
|
|
35
|
+
- Task thread에서 결과 cache하여 재사용
|
|
36
|
+
|
|
37
|
+
#### Efficient Use of Explore
|
|
38
|
+
- Call graphs/dependency maps for core module changes
|
|
39
|
+
- Similar features 검색으로 구현 참고
|
|
40
|
+
- SPEC references나 TAG metadata로 변경사항 anchor
|
|
41
|
+
|
|
42
|
+
### 2. Context Layering
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
High-level brief → Purpose, stakeholders, success criteria
|
|
46
|
+
↓
|
|
47
|
+
Technical core → Entry points, domain models, utilities
|
|
48
|
+
↓
|
|
49
|
+
Edge cases → Known bugs, constraints, SLAs
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### 3. Practical Workflow Commands
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
/alfred:1-plan "Feature name"
|
|
56
|
+
→ Skill("moai-alfred-spec-metadata-extended") validation
|
|
57
|
+
→ SPEC 생성
|
|
58
|
+
|
|
59
|
+
/alfred:2-run SPEC-ID
|
|
60
|
+
→ TDD RED → GREEN → REFACTOR
|
|
61
|
+
→ Tests + Implementation
|
|
62
|
+
|
|
63
|
+
/alfred:3-sync
|
|
64
|
+
→ Documentation auto-update
|
|
65
|
+
→ TAG chain validation
|
|
66
|
+
→ PR ready
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 5 Practical Scenarios
|
|
70
|
+
|
|
71
|
+
1. **Feature Implementation**: New feature from SPEC to production
|
|
72
|
+
2. **Debugging & Triage**: Error analysis with fix-forward recommendations
|
|
73
|
+
3. **TAG System Management**: ID assignment, HISTORY updates
|
|
74
|
+
4. **Backup Management**: Automatic safety snapshots before risky actions
|
|
75
|
+
5. **Multi-Agent Collaboration**: Coordinate between debug-helper, spec-builder, tdd-implementer
|
|
76
|
+
|
|
77
|
+
## Key Principles
|
|
78
|
+
|
|
79
|
+
- ✅ **Context minimization**: Load only what's needed now
|
|
80
|
+
- ✅ **Explore-first**: Use Explore agent for large searches
|
|
81
|
+
- ✅ **Living documentation**: Sync after significant changes
|
|
82
|
+
- ✅ **Problem diagnosis**: Use debug-helper for error triage
|
|
83
|
+
- ✅ **Reproducibility**: Record rationale for SPEC deviations
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
**Learn More**: See `reference.md` for step-by-step examples, full workflow sequences, and advanced patterns.
|
|
88
|
+
|
|
89
|
+
**Related Skills**: moai-alfred-rules, moai-alfred-agent-guide, moai-essentials-debug
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Practical Examples: Workflow Execution
|
|
2
|
+
|
|
3
|
+
## Example 1: JIT Context Retrieval
|
|
4
|
+
|
|
5
|
+
### Task: "Add email verification feature"
|
|
6
|
+
|
|
7
|
+
**Phase 1: High-level Brief**
|
|
8
|
+
```markdown
|
|
9
|
+
## Email Verification Feature
|
|
10
|
+
- Goal: User can verify email after signup
|
|
11
|
+
- Success: User receives email, clicks link, marked verified
|
|
12
|
+
- Stakeholders: User (receiver), Admin (monitoring)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**Phase 2: Technical Core**
|
|
16
|
+
```markdown
|
|
17
|
+
## Architecture
|
|
18
|
+
- Entry point: src/api/auth.py - POST /auth/signup
|
|
19
|
+
- Domain model: models/user.py - User.email_verified
|
|
20
|
+
- Email service: infra/email_service.py - send_verification_email()
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Phase 3: Edge Cases**
|
|
24
|
+
```markdown
|
|
25
|
+
## Known Gotchas
|
|
26
|
+
- Token expires in 24h
|
|
27
|
+
- Duplicate email prevents signup
|
|
28
|
+
- Test mode uses mock email service (doesn't send)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Example 2: Feature Implementation Workflow
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Step 1: Create SPEC
|
|
37
|
+
/alfred:1-plan "Email Verification"
|
|
38
|
+
|
|
39
|
+
# Step 2: TDD RED phase
|
|
40
|
+
/alfred:2-run SPEC-AUTH-015
|
|
41
|
+
# Write tests: test_verify_email_valid_token, test_token_expired, test_duplicate_email
|
|
42
|
+
# RED: All 3 tests fail
|
|
43
|
+
|
|
44
|
+
# Step 3: TDD GREEN phase
|
|
45
|
+
# Implement: User.verify_email(token)
|
|
46
|
+
# GREEN: All 3 tests pass
|
|
47
|
+
|
|
48
|
+
# Step 4: TDD REFACTOR phase
|
|
49
|
+
# Improve: Extract token validation logic
|
|
50
|
+
# REFACTOR: Tests still pass, code cleaner
|
|
51
|
+
|
|
52
|
+
# Step 5: Sync
|
|
53
|
+
/alfred:3-sync
|
|
54
|
+
# Update README with email verification docs
|
|
55
|
+
# Update CHANGELOG with SPEC-AUTH-015 reference
|
|
56
|
+
# Git commit with @TAG links
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Example 3: Explore Agent for Large Codebase
|
|
62
|
+
|
|
63
|
+
### ❌ WRONG: Manual file hunting
|
|
64
|
+
```
|
|
65
|
+
User: "How is authentication currently implemented?"
|
|
66
|
+
Alfred:
|
|
67
|
+
grep -r "authenticate" src/
|
|
68
|
+
grep -r "login" src/
|
|
69
|
+
grep -r "jwt" src/
|
|
70
|
+
# … 20 files to read, context bloated
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### ✅ CORRECT: Use Explore Agent
|
|
74
|
+
```
|
|
75
|
+
User: "How is authentication currently implemented?"
|
|
76
|
+
Alfred: Task(subagent_type="Explore", prompt="Find authentication flow including entry points, models, middleware")
|
|
77
|
+
Explore:
|
|
78
|
+
- Found: src/api/auth.py (login endpoint)
|
|
79
|
+
- Found: models/user.py (User model, password_hash)
|
|
80
|
+
- Found: middleware/auth.py (JWT validation)
|
|
81
|
+
- Found: test/test_auth.py (test patterns)
|
|
82
|
+
Result: Clear architecture summary without bloated context
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Example 4: Problem Diagnosis
|
|
88
|
+
|
|
89
|
+
### Scenario: Tests failing unexpectedly
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Error: "test_email_verification failed - connection timeout"
|
|
93
|
+
|
|
94
|
+
Debugging Steps:
|
|
95
|
+
1. Check stack trace → Email service timeout
|
|
96
|
+
2. Skill("moai-essentials-debug") → "Is test mode configured?"
|
|
97
|
+
3. Diagnosis → Production email service called in tests
|
|
98
|
+
4. Fix → Add mock for test environment
|
|
99
|
+
5. Verify → Tests pass again
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Example 5: Multi-step Workflow with Agents
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
User: "Implement search feature with 95%+ test coverage"
|
|
108
|
+
|
|
109
|
+
Alfred:
|
|
110
|
+
1. AskUserQuestion → Clarify search scope (users? products? all?)
|
|
111
|
+
2. Skill("moai-alfred-spec-metadata-extended") → Create SPEC-SEARCH-001
|
|
112
|
+
3. Skill("moai-foundation-trust") → Enforce 95% coverage target
|
|
113
|
+
4. Skill("moai-essentials-debug") → Handle search performance
|
|
114
|
+
5. Skill("moai-foundation-tags") → Validate TAG chain
|
|
115
|
+
6. Skill("moai-foundation-git") → Proper commit messages
|
|
116
|
+
|
|
117
|
+
Result: Complete feature with TRUST 5 + full traceability
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
Learn more in `reference.md` for complete workflow patterns and advanced scenarios.
|