moai-adk 0.15.0__py3-none-any.whl β 0.25.4__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 -2
- moai_adk/__main__.py +85 -2
- moai_adk/cli/__init__.py +0 -1
- moai_adk/cli/commands/__init__.py +0 -1
- moai_adk/cli/commands/analyze.py +127 -0
- moai_adk/cli/commands/backup.py +5 -3
- moai_adk/cli/commands/doctor.py +35 -11
- moai_adk/cli/commands/improve_user_experience.py +348 -0
- moai_adk/cli/commands/init.py +150 -23
- moai_adk/cli/commands/language.py +269 -0
- moai_adk/cli/commands/migrate.py +158 -0
- moai_adk/cli/commands/status.py +13 -12
- moai_adk/cli/commands/update.py +364 -60
- moai_adk/cli/commands/validate_links.py +118 -0
- moai_adk/cli/main.py +3 -2
- moai_adk/cli/prompts/init_prompts.py +79 -82
- moai_adk/core/__init__.py +0 -1
- moai_adk/core/analysis/__init__.py +9 -0
- moai_adk/core/analysis/session_analyzer.py +439 -0
- moai_adk/core/claude_integration.py +421 -0
- moai_adk/core/command_helpers.py +270 -0
- moai_adk/core/config/__init__.py +6 -0
- moai_adk/core/config/auto_spec_config.py +346 -0
- moai_adk/core/config/migration.py +133 -12
- moai_adk/core/context_manager.py +279 -0
- moai_adk/core/diagnostics/slash_commands.py +0 -1
- moai_adk/core/error_recovery_system.py +1289 -0
- moai_adk/core/git/__init__.py +0 -1
- moai_adk/core/git/branch.py +0 -1
- moai_adk/core/git/branch_manager.py +4 -4
- moai_adk/core/git/checkpoint.py +1 -5
- moai_adk/core/git/commit.py +0 -1
- moai_adk/core/git/event_detector.py +3 -5
- moai_adk/core/git/manager.py +0 -1
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +925 -0
- moai_adk/core/integration/__init__.py +22 -0
- moai_adk/core/integration/engine.py +169 -0
- moai_adk/core/integration/integration_tester.py +225 -0
- moai_adk/core/integration/models.py +88 -0
- moai_adk/core/integration/utils.py +211 -0
- moai_adk/core/issue_creator.py +28 -18
- moai_adk/core/language_config.py +202 -0
- moai_adk/core/language_validator.py +556 -0
- moai_adk/core/mcp/setup.py +113 -0
- moai_adk/core/migration/__init__.py +18 -0
- moai_adk/core/migration/backup_manager.py +208 -0
- moai_adk/core/migration/file_migrator.py +218 -0
- moai_adk/core/migration/version_detector.py +143 -0
- moai_adk/core/migration/version_migrator.py +228 -0
- moai_adk/core/performance/__init__.py +6 -0
- moai_adk/core/performance/cache_system.py +318 -0
- moai_adk/core/performance/parallel_processor.py +116 -0
- moai_adk/core/project/__init__.py +0 -1
- moai_adk/core/project/backup_utils.py +2 -7
- moai_adk/core/project/checker.py +3 -3
- moai_adk/core/project/detector.py +20 -40
- moai_adk/core/project/initializer.py +42 -17
- moai_adk/core/project/phase_executor.py +415 -58
- moai_adk/core/project/validator.py +6 -25
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +64 -110
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/rollback_manager.py +993 -0
- moai_adk/core/session_manager.py +667 -0
- moai_adk/core/spec/confidence_scoring.py +749 -0
- moai_adk/core/spec/ears_template_engine.py +1182 -0
- moai_adk/core/spec/quality_validator.py +721 -0
- moai_adk/core/spec_status_manager.py +488 -0
- moai_adk/core/template/__init__.py +0 -1
- moai_adk/core/template/backup.py +41 -1
- moai_adk/core/template/config.py +11 -12
- moai_adk/core/template/languages.py +0 -1
- moai_adk/core/template/merger.py +79 -22
- moai_adk/core/template/processor.py +614 -40
- moai_adk/core/template_engine.py +36 -27
- moai_adk/foundation/git/commit_templates.py +565 -0
- moai_adk/foundation/trust/trust_principles.py +725 -0
- moai_adk/foundation/trust/validation_checklist.py +1678 -0
- moai_adk/statusline/__init__.py +38 -0
- moai_adk/statusline/alfred_detector.py +107 -0
- moai_adk/statusline/config.py +364 -0
- moai_adk/statusline/enhanced_output_style_detector.py +364 -0
- moai_adk/statusline/git_collector.py +190 -0
- moai_adk/statusline/main.py +228 -0
- moai_adk/statusline/metrics_tracker.py +78 -0
- moai_adk/statusline/renderer.py +327 -0
- moai_adk/statusline/update_checker.py +135 -0
- moai_adk/statusline/version_reader.py +647 -0
- moai_adk/templates/.git-hooks/pre-commit +66 -0
- moai_adk/templates/.git-hooks/pre-push +116 -4
- moai_adk/templates/.github/workflows/moai-gitflow.yml +1 -7
- moai_adk/templates/.github/workflows/spec-issue-sync.yml +0 -1
- moai_adk/templates/.gitignore +44 -0
- moai_adk/templates/.mcp.json +22 -0
- moai_adk/templates/CLAUDE.md +450 -1071
- moai_adk/utils/__init__.py +0 -1
- moai_adk/utils/banner.py +0 -1
- moai_adk/utils/common.py +308 -0
- moai_adk/utils/link_validator.py +249 -0
- moai_adk/utils/logger.py +4 -9
- moai_adk/utils/safe_file_reader.py +210 -0
- moai_adk/utils/user_experience.py +531 -0
- moai_adk-0.25.4.dist-info/METADATA +2279 -0
- moai_adk-0.25.4.dist-info/RECORD +112 -0
- moai_adk/core/tags/__init__.py +0 -86
- moai_adk/core/tags/ci_validator.py +0 -463
- moai_adk/core/tags/cli.py +0 -283
- moai_adk/core/tags/generator.py +0 -109
- moai_adk/core/tags/inserter.py +0 -99
- moai_adk/core/tags/mapper.py +0 -126
- moai_adk/core/tags/parser.py +0 -76
- moai_adk/core/tags/pre_commit_validator.py +0 -393
- moai_adk/core/tags/reporter.py +0 -956
- moai_adk/core/tags/tags.py +0 -149
- moai_adk/core/tags/validator.py +0 -897
- moai_adk/templates/.claude/agents/alfred/backend-expert.md +0 -319
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +0 -316
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +0 -208
- moai_adk/templates/.claude/agents/alfred/devops-expert.md +0 -464
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +0 -214
- moai_adk/templates/.claude/agents/alfred/frontend-expert.md +0 -357
- moai_adk/templates/.claude/agents/alfred/git-manager.md +0 -406
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +0 -423
- moai_adk/templates/.claude/agents/alfred/project-manager.md +0 -312
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +0 -343
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +0 -865
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +0 -392
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +0 -361
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +0 -428
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +0 -375
- moai_adk/templates/.claude/agents/alfred/ui-ux-expert.md +0 -571
- moai_adk/templates/.claude/commands/alfred/0-project.md +0 -1525
- moai_adk/templates/.claude/commands/alfred/1-plan.md +0 -802
- moai_adk/templates/.claude/commands/alfred/2-run.md +0 -709
- moai_adk/templates/.claude/commands/alfred/3-sync.md +0 -1009
- moai_adk/templates/.claude/commands/alfred/9-feedback.md +0 -149
- moai_adk/templates/.claude/hooks/alfred/core/project.py +0 -748
- moai_adk/templates/.claude/hooks/alfred/core/timeout.py +0 -136
- moai_adk/templates/.claude/hooks/alfred/core/ttl_cache.py +0 -108
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +0 -29
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +0 -100
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +0 -94
- moai_adk/templates/.claude/hooks/alfred/shared/core/__init__.py +0 -170
- moai_adk/templates/.claude/hooks/alfred/shared/core/checkpoint.py +0 -271
- moai_adk/templates/.claude/hooks/alfred/shared/core/context.py +0 -67
- moai_adk/templates/.claude/hooks/alfred/shared/core/project.py +0 -749
- moai_adk/templates/.claude/hooks/alfred/shared/core/tags.py +0 -230
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +0 -198
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/__init__.py +0 -21
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/notification.py +0 -154
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/session.py +0 -174
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/tool.py +0 -87
- moai_adk/templates/.claude/hooks/alfred/shared/handlers/user.py +0 -61
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +0 -112
- moai_adk/templates/.claude/hooks/alfred/utils/__init__.py +0 -1
- moai_adk/templates/.claude/hooks/alfred/utils/timeout.py +0 -161
- moai_adk/templates/.claude/settings.json +0 -144
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/SKILL.md +0 -70
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/examples.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-agent-guide/reference.md +0 -242
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/SKILL.md +0 -56
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-config-schema/reference.md +0 -444
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/SKILL.md +0 -62
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/examples.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-context-budget/reference.md +0 -405
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/SKILL.md +0 -51
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/examples.md +0 -355
- moai_adk/templates/.claude/skills/moai-alfred-dev-guide/reference.md +0 -239
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/SKILL.md +0 -323
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/examples.md +0 -286
- moai_adk/templates/.claude/skills/moai-alfred-expertise-detection/reference.md +0 -126
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/SKILL.md +0 -74
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-gitflow-policy/reference.md +0 -269
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/SKILL.md +0 -237
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/examples.md +0 -615
- moai_adk/templates/.claude/skills/moai-alfred-interactive-questions/reference.md +0 -653
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-issue-labels/reference.md +0 -150
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/SKILL.md +0 -198
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-alfred-persona-roles/reference.md +0 -141
- moai_adk/templates/.claude/skills/moai-alfred-practices/SKILL.md +0 -89
- moai_adk/templates/.claude/skills/moai-alfred-practices/examples.md +0 -122
- moai_adk/templates/.claude/skills/moai-alfred-practices/reference.md +0 -369
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/SKILL.md +0 -508
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/examples.md +0 -481
- moai_adk/templates/.claude/skills/moai-alfred-proactive-suggestions/reference.md +0 -100
- moai_adk/templates/.claude/skills/moai-alfred-reporting/SKILL.md +0 -273
- moai_adk/templates/.claude/skills/moai-alfred-rules/SKILL.md +0 -77
- moai_adk/templates/.claude/skills/moai-alfred-rules/examples.md +0 -265
- moai_adk/templates/.claude/skills/moai-alfred-rules/reference.md +0 -539
- moai_adk/templates/.claude/skills/moai-alfred-session-state/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-session-state/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-session-state/reference.md +0 -84
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/README.md +0 -137
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/SKILL.md +0 -219
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples/validate-spec.sh +0 -161
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/examples.md +0 -541
- moai_adk/templates/.claude/skills/moai-alfred-spec-authoring/reference.md +0 -622
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/SKILL.md +0 -115
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-extended/reference.md +0 -348
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-alfred-todowrite-pattern/reference.md +0 -211
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-alfred-workflow/SKILL.md +0 -288
- moai_adk/templates/.claude/skills/moai-cc-agents/SKILL.md +0 -269
- moai_adk/templates/.claude/skills/moai-cc-agents/templates/agent-template.md +0 -32
- moai_adk/templates/.claude/skills/moai-cc-claude-md/SKILL.md +0 -298
- moai_adk/templates/.claude/skills/moai-cc-claude-md/templates/CLAUDE-template.md +0 -26
- moai_adk/templates/.claude/skills/moai-cc-commands/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-cc-commands/templates/command-template.md +0 -21
- moai_adk/templates/.claude/skills/moai-cc-hooks/SKILL.md +0 -252
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/pre-bash-check.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/preserve-permissions.sh +0 -19
- moai_adk/templates/.claude/skills/moai-cc-hooks/scripts/validate-bash-command.py +0 -24
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/SKILL.md +0 -199
- moai_adk/templates/.claude/skills/moai-cc-mcp-plugins/templates/settings-mcp-template.json +0 -39
- moai_adk/templates/.claude/skills/moai-cc-memory/SKILL.md +0 -316
- moai_adk/templates/.claude/skills/moai-cc-memory/templates/session-summary-template.md +0 -18
- moai_adk/templates/.claude/skills/moai-cc-settings/SKILL.md +0 -263
- moai_adk/templates/.claude/skills/moai-cc-settings/templates/settings-complete-template.json +0 -30
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/SKILL.md +0 -19
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/examples.md +0 -4
- moai_adk/templates/.claude/skills/moai-cc-skill-descriptions/reference.md +0 -218
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/CHECKLIST.md +0 -482
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/EXAMPLES.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/INTERACTIVE-DISCOVERY.md +0 -524
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/METADATA.md +0 -477
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PARALLEL-ANALYSIS-REPORT.md +0 -429
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/PYTHON-VERSION-MATRIX.md +0 -391
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-FACTORY-WORKFLOW.md +0 -431
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL-UPDATE-ADVISOR.md +0 -577
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/SKILL.md +0 -271
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STEP-BY-STEP-GUIDE.md +0 -466
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/STRUCTURE.md +0 -583
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/WEB-RESEARCH.md +0 -526
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/reference.md +0 -465
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/generate-structure.sh +0 -328
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/scripts/validate-skill.sh +0 -312
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/SKILL_TEMPLATE.md +0 -245
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/examples-template.md +0 -285
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/reference-template.md +0 -278
- moai_adk/templates/.claude/skills/moai-cc-skill-factory/templates/scripts-template.sh +0 -303
- moai_adk/templates/.claude/skills/moai-cc-skills/SKILL.md +0 -291
- moai_adk/templates/.claude/skills/moai-cc-skills/templates/SKILL-template.md +0 -15
- moai_adk/templates/.claude/skills/moai-design-systems/SKILL.md +0 -802
- moai_adk/templates/.claude/skills/moai-design-systems/examples.md +0 -1238
- moai_adk/templates/.claude/skills/moai-design-systems/reference.md +0 -673
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +0 -290
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +0 -1633
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +0 -660
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-data-science/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-data-science/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-domain-devops/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-devops/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +0 -128
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-ml/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-ml/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-security/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-security/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-domain-web-api/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-domain-web-api/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +0 -303
- moai_adk/templates/.claude/skills/moai-essentials-debug/examples.md +0 -1064
- moai_adk/templates/.claude/skills/moai-essentials-debug/reference.md +0 -1047
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-perf/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-perf/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-refactor/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-refactor/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-essentials-review/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-essentials-review/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +0 -116
- moai_adk/templates/.claude/skills/moai-foundation-ears/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-ears/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +0 -122
- moai_adk/templates/.claude/skills/moai-foundation-git/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-git/reference.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-langs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-langs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-specs/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-specs/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +0 -113
- moai_adk/templates/.claude/skills/moai-foundation-tags/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-foundation-tags/reference.md +0 -28
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +0 -307
- moai_adk/templates/.claude/skills/moai-foundation-trust/examples.md +0 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/reference.md +0 -1099
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-c/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-c/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-dart/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-dart/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +0 -32
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +0 -126
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +0 -433
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +0 -624
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +0 -316
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +0 -127
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +0 -125
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-shell/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-shell/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +0 -124
- moai_adk/templates/.claude/skills/moai-lang-sql/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-sql/reference.md +0 -31
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +0 -123
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +0 -30
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +0 -133
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +0 -29
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +0 -34
- moai_adk/templates/.claude/skills/moai-project-documentation.md +0 -622
- moai_adk/templates/.github/workflows/c-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/cpp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/csharp-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/dart-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/go-tag-validation.yml +0 -130
- moai_adk/templates/.github/workflows/java-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/javascript-tag-validation.yml +0 -135
- moai_adk/templates/.github/workflows/kotlin-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/php-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/python-tag-validation.yml +0 -118
- moai_adk/templates/.github/workflows/release.yml +0 -118
- moai_adk/templates/.github/workflows/ruby-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/rust-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/shell-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/swift-tag-validation.yml +0 -11
- moai_adk/templates/.github/workflows/tag-report.yml +0 -269
- moai_adk/templates/.github/workflows/tag-validation.yml +0 -186
- moai_adk/templates/.github/workflows/typescript-tag-validation.yml +0 -154
- moai_adk/templates/.moai/config.json +0 -115
- moai_adk/templates/workflows/go-tag-validation.yml +0 -30
- moai_adk/templates/workflows/javascript-tag-validation.yml +0 -41
- moai_adk/templates/workflows/python-tag-validation.yml +0 -42
- moai_adk/templates/workflows/typescript-tag-validation.yml +0 -31
- moai_adk-0.15.0.dist-info/METADATA +0 -3079
- moai_adk-0.15.0.dist-info/RECORD +0 -365
- {moai_adk-0.15.0.dist-info β moai_adk-0.25.4.dist-info}/WHEEL +0 -0
- {moai_adk-0.15.0.dist-info β moai_adk-0.25.4.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.15.0.dist-info β moai_adk-0.25.4.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,802 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: alfred:1-plan
|
|
3
|
-
description: "Define specifications and create development branch"
|
|
4
|
-
argument-hint: Title 1 Title 2 ... | SPEC-ID modifications
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Edit
|
|
9
|
-
- MultiEdit
|
|
10
|
-
- Grep
|
|
11
|
-
- Glob
|
|
12
|
-
- TodoWrite
|
|
13
|
-
- Bash(git:*)
|
|
14
|
-
- Bash(gh:*)
|
|
15
|
-
- Bash(rg:*)
|
|
16
|
-
- Bash(mkdir:*)
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
# ποΈ MoAI-ADK Step 1: Establish a plan (Plan) - Always make a plan first and then proceed.
|
|
20
|
-
> **Note**: Interactive prompts use `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` for TUI selection menus. The skill is loaded on-demand when user interaction is required.
|
|
21
|
-
>
|
|
22
|
-
> **Batched Design**: All AskUserQuestion calls follow batched design principles (1-4 questions per call) to minimize user interaction turns. See CLAUDE.md section "Alfred Command Completion Pattern" for details.
|
|
23
|
-
|
|
24
|
-
<!-- @CODE:ALF-WORKFLOW-001:CMD-PLAN -->
|
|
25
|
-
|
|
26
|
-
**4-Step Workflow Integration**: This command implements Steps 1-2 of Alfred's workflow (Intent Understanding β Plan Creation). See CLAUDE.md for full workflow details.
|
|
27
|
-
|
|
28
|
-
## π― Command Purpose
|
|
29
|
-
|
|
30
|
-
**"Plan β Run β Sync"** As the first step in the workflow, it supports the entire planning process from ideation to plan creation.
|
|
31
|
-
|
|
32
|
-
**Plan for**: $ARGUMENTS
|
|
33
|
-
|
|
34
|
-
## π€ CodeRabbit AI Integration (Local Only)
|
|
35
|
-
|
|
36
|
-
This local environment includes CodeRabbit AI review integration for SPEC documents:
|
|
37
|
-
|
|
38
|
-
**Automatic workflows:**
|
|
39
|
-
- β
SPEC review: CodeRabbit analyzes SPEC metadata and EARS structure
|
|
40
|
-
- β
GitHub Issue sync: SPEC files automatically create/update GitHub Issues
|
|
41
|
-
- β
Auto-approval: Draft PRs are approved when quality meets standards (80%+)
|
|
42
|
-
- β
SPEC quality validation: Checklist for metadata, structure, and content
|
|
43
|
-
|
|
44
|
-
**Scope:**
|
|
45
|
-
- π **Local environment**: Full CodeRabbit integration with auto-approval
|
|
46
|
-
- π¦ **Published packages**: Users get GitHub Issue sync only (no CodeRabbit)
|
|
47
|
-
|
|
48
|
-
> See `.coderabbit.yaml` for detailed review rules and SPEC validation checklist
|
|
49
|
-
|
|
50
|
-
## π‘ Planning philosophy: "Always make a plan first and then proceed."
|
|
51
|
-
|
|
52
|
-
`/alfred:1-plan` is a general-purpose command that **creates a plan**, rather than simply βcreatingβ a SPEC document.
|
|
53
|
-
|
|
54
|
-
### 3 main scenarios
|
|
55
|
-
|
|
56
|
-
#### Scenario 1: Creating a Plan (Primary Method) β
|
|
57
|
-
```bash
|
|
58
|
-
/alfred:1-plan "User authentication function"
|
|
59
|
-
β Refine idea
|
|
60
|
-
β Requirements specification using EARS syntax
|
|
61
|
-
β Create feature/SPEC-XXX branch
|
|
62
|
-
β Create Draft PR
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
#### Scenario 2: Brainstorming
|
|
66
|
-
```bash
|
|
67
|
-
/alfred:1-plan "Payment system improvement idea"
|
|
68
|
-
β Organizing and structuring ideas
|
|
69
|
-
β Deriving requirements candidates
|
|
70
|
-
β Technical review and risk analysis
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
#### Scenario 3: Improve existing SPEC
|
|
74
|
-
```bash
|
|
75
|
-
/alfred:1-plan "SPEC-AUTH-001 Security Enhancement"
|
|
76
|
-
β Analyze existing plan
|
|
77
|
-
β Establish improvement direction
|
|
78
|
-
β Create new version plan
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
> **Standard two-step workflow** (see `CLAUDE.md` - "Alfred Command Execution Pattern" for details)
|
|
82
|
-
|
|
83
|
-
## π Execution flow
|
|
84
|
-
|
|
85
|
-
1. **Project Analysis**: In-depth analysis of product/structure/tech.md
|
|
86
|
-
2. **SPEC candidate discovery**: Prioritization based on business requirements
|
|
87
|
-
3. **User Verification**: Review and approve writing plan
|
|
88
|
-
4. **Plan creation**: Generate specifications of EARS structure (spec.md, plan.md, acceptance.md)
|
|
89
|
-
5. **Git operations**: Create branches/PRs via git-manager
|
|
90
|
-
|
|
91
|
-
## π§ Associated Skills & Agents
|
|
92
|
-
|
|
93
|
-
| Agent | Core Skill | Purpose |
|
|
94
|
-
| ------------ | -------------------------- | --------------------------- |
|
|
95
|
-
| spec-builder | `moai-foundation-ears` | Write SPEC with EARS syntax |
|
|
96
|
-
| git-manager | `moai-alfred-git-workflow` | Create branch and PR |
|
|
97
|
-
|
|
98
|
-
**Note**: TUI Survey Skill is used for user confirmations during the plan phase and is shared across all interactive prompts.
|
|
99
|
-
|
|
100
|
-
## π Associated Agent
|
|
101
|
-
|
|
102
|
-
- **Primary**: spec-builder (ποΈ System Architect) - Dedicated to writing SPEC documents
|
|
103
|
-
- **Secondary**: git-manager (π Release Engineer) - Dedicated to creating Git branches/PRs
|
|
104
|
-
|
|
105
|
-
## π‘ Example of use
|
|
106
|
-
|
|
107
|
-
Users can run commands like this:
|
|
108
|
-
- `/alfred:1-plan` - Auto-suggestion based on project documents
|
|
109
|
-
- `/alfred:1-plan "JWT authentication system"` - Manually create a single SPEC
|
|
110
|
-
- `/alfred:1-plan SPEC-001 "Security hardening"` - Supplementation of existing SPEC
|
|
111
|
-
|
|
112
|
-
## π STEP 1: Project analysis and planning
|
|
113
|
-
|
|
114
|
-
STEP 1 consists of **two independent phases** to provide flexible workflow based on user request clarity:
|
|
115
|
-
|
|
116
|
-
### π STEP 1 Workflow Overview
|
|
117
|
-
|
|
118
|
-
```
|
|
119
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
120
|
-
β STEP 1: Project Analysis & Planning β
|
|
121
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
|
|
122
|
-
β β
|
|
123
|
-
β Phase A (OPTIONAL) β
|
|
124
|
-
β βββββββββββββββββββββββββββββββββββββββββββ β
|
|
125
|
-
β β π Explore Agent β β
|
|
126
|
-
β β β’ Find relevant files by keywords β β
|
|
127
|
-
β β β’ Locate existing SPEC documents β β
|
|
128
|
-
β β β’ Identify implementation patterns β β
|
|
129
|
-
β βββββββββββββββββββββββββββββββββββββββββββ β
|
|
130
|
-
β β β
|
|
131
|
-
β (exploration results) β
|
|
132
|
-
β β β
|
|
133
|
-
β Phase B (REQUIRED) β
|
|
134
|
-
β βββββββββββββββββββββββββββββββββββββββββββ β
|
|
135
|
-
β β βοΈ spec-builder Agent β β
|
|
136
|
-
β β β’ Analyze project documents β β
|
|
137
|
-
β β β’ Propose SPEC candidates β β
|
|
138
|
-
β β β’ Design EARS structure β β
|
|
139
|
-
β β β’ Request user approval β β
|
|
140
|
-
β βββββββββββββββββββββββββββββββββββββββββββ β
|
|
141
|
-
β β β
|
|
142
|
-
β (user approval via AskUserQuestion) β
|
|
143
|
-
β β β
|
|
144
|
-
β PROCEED TO STEP 2 β
|
|
145
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Key Points**:
|
|
149
|
-
- **Phase A is optional** - Skip if user provides clear SPEC title
|
|
150
|
-
- **Phase B is required** - Always runs to analyze project and create SPEC
|
|
151
|
-
- **Results flow forward** - Exploration results (if any) are passed to spec-builder
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
|
-
### π Phase A: Codebase Exploration (OPTIONAL)
|
|
156
|
-
|
|
157
|
-
**Use the Explore agent when user request is unclear or needs context.**
|
|
158
|
-
|
|
159
|
-
#### When to use Phase A:
|
|
160
|
-
|
|
161
|
-
- β
User uses vague keywords ("where is...", "find me...", "related to...")
|
|
162
|
-
- β
Need to understand existing code structure before planning
|
|
163
|
-
- β
Feature spans multiple files or modules
|
|
164
|
-
- β User provides clear SPEC title (skip to Phase B)
|
|
165
|
-
|
|
166
|
-
#### How to invoke Explore agent:
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
Invoking the Task tool (Explore agent):
|
|
170
|
-
- subagent_type: "Explore"
|
|
171
|
-
- description: "Explore related files in the codebase"
|
|
172
|
-
- prompt: "λ€μ ν€μλμ κ΄λ ¨λ λͺ¨λ νμΌμ μ°Ύμμ£ΌμΈμ: $ARGUMENTS
|
|
173
|
-
- νμΌ μμΉ (src/, tests/, docs/)
|
|
174
|
-
- κ΄λ ¨ SPEC λ¬Έμ (.moai/specs/)
|
|
175
|
-
- κΈ°μ‘΄ ꡬν μ½λ
|
|
176
|
-
μμΈλ μμ€: medium"
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Note**: If user provides clear SPEC title, skip Phase A and proceed directly to Phase B.
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
### βοΈ Phase B: SPEC Planning (REQUIRED)
|
|
184
|
-
|
|
185
|
-
**Call the spec-builder agent to analyze project and create SPEC documents.**
|
|
186
|
-
|
|
187
|
-
This phase is **always required** regardless of whether Phase A was executed.
|
|
188
|
-
|
|
189
|
-
#### How to invoke spec-builder:
|
|
190
|
-
|
|
191
|
-
```
|
|
192
|
-
Call the Task tool:
|
|
193
|
-
- subagent_type: "spec-builder"
|
|
194
|
-
- description: "Analyze the plan and establish a plan"
|
|
195
|
-
- prompt: """λΉμ μ spec-builder μμ΄μ νΈμ
λλ€.
|
|
196
|
-
|
|
197
|
-
μΈμ΄ μ€μ :
|
|
198
|
-
- λν_μΈμ΄: {{CONVERSATION_LANGUAGE}}
|
|
199
|
-
- μΈμ΄λͺ
: {{CONVERSATION_LANGUAGE_NAME}}
|
|
200
|
-
|
|
201
|
-
μ€μ μ§μμ¬ν:
|
|
202
|
-
SPEC λ¬Έμλ μ΄μ€ μΈμ΄ ꡬ쑰λ₯Ό λ°λΌμΌ ν©λλ€ (μ¬μ©μ μΈμ΄ + μμ΄ μμ½):
|
|
203
|
-
|
|
204
|
-
conversation_language == 'ko' (νκ΅μ΄)μΈ κ²½μ°:
|
|
205
|
-
- YAML λ©νλ°μ΄ν°: μμ΄λ§ μ¬μ©
|
|
206
|
-
- μ λͺ© (@SPEC νκ·Έ): νκ΅μ΄ μ£Όμ, μμ΄ λ²μ μ νλ¨μ κΈ°μ¬
|
|
207
|
-
- μ£Όμ λ΄μ© (λΆμ, μꡬμ¬ν, EARS): νκ΅μ΄
|
|
208
|
-
- SUMMARY μΉμ
: μμ΄ (κ΅μ κΈ°μ¬μλ₯Ό μν΄ 100-200λ¨μ΄)
|
|
209
|
-
- HISTORY: νκ΅μ΄ (μλ‘μ΄ νλͺ©), μ£Όμ λ²μ μλ μμ΄ μμ½
|
|
210
|
-
|
|
211
|
-
conversation_language == 'ja' (μΌλ³Έμ΄)μΈ κ²½μ°:
|
|
212
|
-
- νκ΅μ΄μ λμΌν μ΄μ€ μΈμ΄ ν¨ν΄ μ¬μ©
|
|
213
|
-
- μ£Όμ λ΄μ©: μΌλ³Έμ΄
|
|
214
|
-
- SUMMARY: μμ΄
|
|
215
|
-
|
|
216
|
-
λ€λ₯Έ μΈμ΄μΈ κ²½μ°:
|
|
217
|
-
- μ£Όμ λ΄μ©: μ¬μ©μ μ§μ μΈμ΄
|
|
218
|
-
- SUMMARY: μμ΄ (νμ)
|
|
219
|
-
|
|
220
|
-
μ€ν¬ νΈμΆ:
|
|
221
|
-
νμ μ λͺ
μμ Skill() νΈμΆ μ¬μ©:
|
|
222
|
-
- Skill("moai-foundation-specs") - SPEC ꡬ쑰 κ°μ΄λ
|
|
223
|
-
- Skill("moai-foundation-ears") - EARS λ¬Έλ² μꡬμ¬ν
|
|
224
|
-
- Skill("moai-alfred-spec-metadata-validation") - λ©νλ°μ΄ν° κ²μ¦
|
|
225
|
-
|
|
226
|
-
μμ
:
|
|
227
|
-
νλ‘μ νΈ λ¬Έμλ₯Ό λΆμνμ¬ SPEC ν보μλ₯Ό μ μν΄μ£ΌμΈμ.
|
|
228
|
-
λΆμ λͺ¨λλ‘ μ€ννλ©°, λ€μμ ν¬ν¨ν΄μΌ ν©λλ€:
|
|
229
|
-
1. product/structure/tech.mdμ μ¬μΈ΅ λΆμ
|
|
230
|
-
2. SPEC ν보μ μλ³ λ° μ°μ μμ κ²°μ
|
|
231
|
-
3. EARS ꡬ쑰 μ€κ³
|
|
232
|
-
4. μ¬μ©μ μΉμΈ λκΈ°
|
|
233
|
-
|
|
234
|
-
μ¬μ©μ μ
λ ₯: $ARGUMENTS
|
|
235
|
-
(μ νμ¬ν) νμ κ²°κ³Ό: $EXPLORE_RESULTS"""
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**Note**: If Phase A was executed, pass the exploration results via `$EXPLORE_RESULTS` variable.
|
|
239
|
-
|
|
240
|
-
### Plan analysis progress
|
|
241
|
-
|
|
242
|
-
1. **Project document analysis**
|
|
243
|
-
- In-depth analysis of product/structure/tech.md
|
|
244
|
-
- Review existing SPEC list and priorities (.moai/specs/ scan)
|
|
245
|
-
- Evaluate implementation feasibility and complexity
|
|
246
|
-
- (Optional) Identify existing code structure by reflecting the Explore results
|
|
247
|
-
|
|
248
|
-
2. **Discovering SPEC candidates**
|
|
249
|
-
- Extracting core business requirements
|
|
250
|
-
- Reflecting technical constraints
|
|
251
|
-
- Creating a list of SPEC candidates by priority
|
|
252
|
-
|
|
253
|
-
3. **Implementation plan report**
|
|
254
|
-
- Present step-by-step plan creation plan
|
|
255
|
-
- Estimated scope of work and dependency analysis
|
|
256
|
-
- Design EARS structure and Acceptance Criteria
|
|
257
|
-
|
|
258
|
-
### User verification steps
|
|
259
|
-
|
|
260
|
-
After reviewing your implementation plan, Alfred invokes `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)` to present the following options:
|
|
261
|
-
- **"Go"** or **"Start"**: Start writing the plan as planned
|
|
262
|
-
- **"Modify [Content]"**: Request modifications to the plan
|
|
263
|
-
- **"Stop"**: Stop writing the plan
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## π STEP 2: Create plan document (after user approval)
|
|
268
|
-
|
|
269
|
-
After user approval (collected via `AskUserQuestion tool (documented in moai-alfred-interactive-questions skill)`), call the spec-builder and git-manager agents using the **Task tool**.
|
|
270
|
-
|
|
271
|
-
### βοΈ How to call an agent
|
|
272
|
-
|
|
273
|
-
```
|
|
274
|
-
1. Call spec-builder (create plan):
|
|
275
|
-
- subagent_type: "spec-builder"
|
|
276
|
-
- description: "Create SPEC document"
|
|
277
|
-
- prompt: """λΉμ μ spec-builder μμ΄μ νΈμ
λλ€.
|
|
278
|
-
|
|
279
|
-
μΈμ΄ μ€μ :
|
|
280
|
-
- λν_μΈμ΄: {{CONVERSATION_LANGUAGE}}
|
|
281
|
-
- μΈμ΄λͺ
: {{CONVERSATION_LANGUAGE_NAME}}
|
|
282
|
-
|
|
283
|
-
μ€μ μ§μμ¬ν:
|
|
284
|
-
λͺ¨λ SPEC λ¬Έμλ λν_μΈμ΄λ‘ μμ±λμ΄μΌ ν©λλ€:
|
|
285
|
-
- spec.md: μ 체 λ¬Έμλ₯Ό λν_μΈμ΄λ‘ μμ±
|
|
286
|
-
- plan.md: μ 체 λ¬Έμλ₯Ό λν_μΈμ΄λ‘ μμ±
|
|
287
|
-
- acceptance.md: μ 체 λ¬Έμλ₯Ό λν_μΈμ΄λ‘ μμ±
|
|
288
|
-
|
|
289
|
-
YAML νλ‘ νΈλ§€ν°μ @TAG μλ³μλ λ°λμ μμ΄λ‘ μ μ§ν©λλ€.
|
|
290
|
-
μ½λ μμ μ κΈ°μ ν€μλλ νΌν© κ°λ₯ (μ½λλ μμ΄, μ€λͺ
μ μ¬μ©μ μΈμ΄).
|
|
291
|
-
|
|
292
|
-
μ€ν¬ νΈμΆ:
|
|
293
|
-
νμ μ λͺ
μμ Skill() νΈμΆ μ¬μ©:
|
|
294
|
-
- Skill("moai-foundation-specs") - SPEC ꡬ쑰 κ°μ΄λ
|
|
295
|
-
- Skill("moai-foundation-ears") - EARS λ¬Έλ² μꡬμ¬ν
|
|
296
|
-
- Skill("moai-alfred-spec-metadata-validation") - λ©νλ°μ΄ν° κ²μ¦
|
|
297
|
-
- Skill("moai-alfred-tag-scanning") - TAG μ²΄μΈ μ°Έμ‘°
|
|
298
|
-
|
|
299
|
-
μμ
:
|
|
300
|
-
STEP 1μμ μΉμΈλ κ³νμ λ°λΌ SPEC λ¬Έμλ₯Ό μμ±ν΄μ£ΌμΈμ.
|
|
301
|
-
EARS ꡬ쑰μ λν λͺ
μΈλ₯Ό μμ±ν©λλ€."""
|
|
302
|
-
|
|
303
|
-
2. Invoke git-manager (Git task):
|
|
304
|
-
- subagent_type: "git-manager"
|
|
305
|
-
- description: "Create Git branch/PR with duplicate prevention"
|
|
306
|
-
- prompt: """λΉμ μ git-manager μμ΄μ νΈμ
λλ€.
|
|
307
|
-
|
|
308
|
-
μΈμ΄ μ€μ :
|
|
309
|
-
- λν_μΈμ΄: {{CONVERSATION_LANGUAGE}}
|
|
310
|
-
- μΈμ΄λͺ
: {{CONVERSATION_LANGUAGE_NAME}}
|
|
311
|
-
|
|
312
|
-
μ€μ μ§μμ¬ν (ν λͺ¨λ μ€λ³΅ λ°©μ§):
|
|
313
|
-
GitHub Issue λλ PRμ λ§λ€κΈ° μ μ:
|
|
314
|
-
1. νμ μ λͺ©μ SPEC-IDκ° μλ κΈ°μ‘΄ Issueλ₯Ό νμΈνμΈμ
|
|
315
|
-
2. νμ feature/SPEC-{ID} λΈλμΉλͺ
μ κΈ°μ‘΄ PRμ νμΈνμΈμ
|
|
316
|
-
3. Issueκ° μ‘΄μ¬νλ©΄ β μ
λ°μ΄νΈ, μ€λ³΅ μμ± κΈμ§
|
|
317
|
-
4. PRμ΄ μ‘΄μ¬νλ©΄ β μ
λ°μ΄νΈ, μ€λ³΅ μμ± κΈμ§
|
|
318
|
-
5. λ λ€ μ‘΄μ¬νλ©΄ β μ΅μ SPEC λ²μ μΌλ‘ λͺ¨λ μ
λ°μ΄νΈ
|
|
319
|
-
6. λ μ΄λΈ νν° μ€ν¨ μ λ체 κ²μ μ¬μ© (μΌλΆ Issueλ λ μ΄λΈ μμ μ μμ)
|
|
320
|
-
7. νμ λ μ΄λΈ μΆκ°: "spec", "planning", + μ°μ μμ λ μ΄λΈ
|
|
321
|
-
|
|
322
|
-
git-manager.mdμ "SPEC μμ± μ" μΉμ
μμ μμΈν μ€λ³΅ λ°©μ§ νλ‘ν μ½κ³Ό μ½λ μμ λ₯Ό μ°Έκ³ νμΈμ.
|
|
323
|
-
|
|
324
|
-
μμ
:
|
|
325
|
-
μμ±λ SPEC λ¬Έμμ λν΄ κΈ°λ₯ λΈλμΉ(feature/SPEC-{SPEC_ID})μ Draft PR(β develop)μ μμ±ν©λλ€.
|
|
326
|
-
GitHub μν°ν°λ₯Ό μμ±νκΈ° μ μ μ€λ³΅ λ°©μ§ νλ‘ν μ½μ ꡬνν©λλ€.
|
|
327
|
-
|
|
328
|
-
μΆλ ₯ μΈμ΄: {{CONVERSATION_LANGUAGE}}"""
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
## function
|
|
332
|
-
|
|
333
|
-
- **Project document analysis**: Analyzes `.moai/project/{product,structure,tech}.md` to suggest implementation candidates and generates SPEC after user approval.
|
|
334
|
-
- **Personal mode**: Create a `.moai/specs/SPEC-{ID}/` directory and a template document (**Directory name format required**: `SPEC-` prefix + TAG ID).
|
|
335
|
-
- **Team mode**: Create a GitHub Issue (or Discussion) Associate it with a branch template.
|
|
336
|
-
|
|
337
|
-
## How to use
|
|
338
|
-
|
|
339
|
-
The user executes the command in the form:
|
|
340
|
-
- `/alfred:1-plan` - Auto-suggestion based on project documents (recommended)
|
|
341
|
-
- `/alfred:1-plan "JWT Authentication System"` - Manually create a single SPEC
|
|
342
|
-
- `/alfred:1-plan SPEC-001 "Security Reinforcement"` - Supplementation of existing SPEC
|
|
343
|
-
|
|
344
|
-
If not entered, 3 to 5 priorities will be suggested based on the Q&A results, and only the approved items will be confirmed as actual SPECs.
|
|
345
|
-
|
|
346
|
-
## Summary of processing by mode
|
|
347
|
-
|
|
348
|
-
| mode | output | Branch Strategy | Additional Actions |
|
|
349
|
-
| -------- | -------------------------------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- |
|
|
350
|
-
| Personal | Templates `.moai/specs/SPEC-XXX/spec.md`, `plan.md`, `acceptance.md`, etc. | Branch from `main` or `develop` (based on settings) | git-manager agent automatically creates checkpoints |
|
|
351
|
-
| Team | GitHub Issue (`[SPEC-XXX] Title`), Draft PR (optional) | **Always branch from `develop`** (GitFlow standard) | `gh` CLI stay logged in, Draft PR β develop created |
|
|
352
|
-
|
|
353
|
-
## Input options
|
|
354
|
-
|
|
355
|
-
- **Automatic suggestion**: `/alfred:1-plan` β Create a list of candidates based on the core bullet of the project document
|
|
356
|
-
- **Manual creation**: Pass the title as an argument β Create only 1 case, Acceptance template is supplemented after reply
|
|
357
|
-
- **Supplementation mode**: `SPEC-ID Delivered in βmemoβ format β Update existing SPEC document/Issue
|
|
358
|
-
|
|
359
|
-
## π STEP 1 Execution Guide: Project Analysis and Planning
|
|
360
|
-
|
|
361
|
-
### β οΈ Essential rules: Directory naming convention
|
|
362
|
-
|
|
363
|
-
**Format that must be followed**: `.moai/specs/SPEC-{ID}/`
|
|
364
|
-
|
|
365
|
-
**Correct Example**:
|
|
366
|
-
- β
`SPEC-AUTH-001/`
|
|
367
|
-
- β
`SPEC-REFACTOR-001/`
|
|
368
|
-
- β
`SPEC-UPDATE-REFACTOR-001/`
|
|
369
|
-
|
|
370
|
-
**Incorrect example**:
|
|
371
|
-
- β `AUTH-001/` (missing SPEC- prefix)
|
|
372
|
-
- β `SPEC-001-auth/` (additional text after ID)
|
|
373
|
-
- β `SPEC-AUTH-001-jwt/` (additional text after ID)
|
|
374
|
-
|
|
375
|
-
**Duplicate check required**: Before creating a new SPEC ID, be sure to search the existing TAG ID to prevent duplication.
|
|
376
|
-
|
|
377
|
-
**Composite Domain Rules**:
|
|
378
|
-
- β
Allow: `UPDATE-REFACTOR-001` (2 domains)
|
|
379
|
-
- β οΈ Caution: `UPDATE-REFACTOR-FIX-001` (3+ domains, simplification recommended)
|
|
380
|
-
|
|
381
|
-
---
|
|
382
|
-
|
|
383
|
-
### 1. Analysis of project documents
|
|
384
|
-
|
|
385
|
-
Alfred calls the spec-builder agent to perform project document-based planning analysis and planning.
|
|
386
|
-
|
|
387
|
-
#### Analysis Checklist
|
|
388
|
-
|
|
389
|
-
- [ ] **Requirements extraction**: Identify key business requirements in product.md
|
|
390
|
-
- [ ] **Architectural constraints**: Identify system design constraints in structure.md
|
|
391
|
-
- [ ] **Technical constraints**: Technology stack and quality policy in tech.md
|
|
392
|
-
- [ ] **Existing SPEC**: Review current SPEC list and priorities
|
|
393
|
-
|
|
394
|
-
### 2. SPEC candidate discovery strategy
|
|
395
|
-
|
|
396
|
-
#### Prioritization criteria
|
|
397
|
-
|
|
398
|
-
| Priority | standards | SPEC Candidate Type |
|
|
399
|
-
| ---------- | --------------------------- | ------------------------------------------- |
|
|
400
|
-
| **High** | Core Business Values ββ | User core functions, API design |
|
|
401
|
-
| **Medium** | System Stability | Authentication/Security, Data Management |
|
|
402
|
-
| **Low** | Improvements and expansions | UI/UX improvement, performance optimization |
|
|
403
|
-
|
|
404
|
-
#### Approach by SPEC type
|
|
405
|
-
|
|
406
|
-
- **API/Backend**: Endpoint design, data model, authentication
|
|
407
|
-
- **Frontend**: User interface, state management, routing
|
|
408
|
-
- **Infrastructure**: Deployment, monitoring, security policy
|
|
409
|
-
- **Quality**: Test strategy, performance criteria, documentation
|
|
410
|
-
|
|
411
|
-
### 3. Create a plan Create a plan report
|
|
412
|
-
|
|
413
|
-
Present your plan in the following format:
|
|
414
|
-
|
|
415
|
-
```
|
|
416
|
-
## Plan Creation Plan Report: [TARGET]
|
|
417
|
-
|
|
418
|
-
### π Analysis Results
|
|
419
|
-
- **Discovered SPEC Candidates**: [Number and Category]
|
|
420
|
-
- **High Priority**: [List of Core SPECs]
|
|
421
|
-
- **Estimated Work Time**: [Time Estimation]
|
|
422
|
-
|
|
423
|
-
### π― Writing Strategy
|
|
424
|
-
- **Selected SPEC**: [SPEC ID and Title to Write]
|
|
425
|
-
- **EARS Structure**: [Event-Action-Response-State Design]
|
|
426
|
-
- **Acceptance Criteria**: [Given-When-Then Scenario]
|
|
427
|
-
|
|
428
|
-
### π¦ Technology stack and library versions (optional)
|
|
429
|
-
**Included only if technology stack is determined during planning stage**:
|
|
430
|
-
- **Web search**: Use `WebSearch` to find the latest stable versions of key libraries to use
|
|
431
|
-
- **Specify versions**: Specify exact versions for each library, e.g. `fastapi>=0.118.3`)
|
|
432
|
-
- **Stability priority**: Exclude beta/alpha versions, select only production stable versions
|
|
433
|
-
- **Note**: Detailed version is finalized in `/alfred:2-run` stage
|
|
434
|
-
|
|
435
|
-
### β οΈ Precautions
|
|
436
|
-
- **Technical constraints**: [Restraints to consider]
|
|
437
|
-
- **Dependency**: [Relevance with other SPECs]
|
|
438
|
-
- **Branch strategy**: [Processing by Personal/Team mode]
|
|
439
|
-
|
|
440
|
-
### β
Expected deliverables
|
|
441
|
-
- **spec.md**: [Core specifications of the EARS structure]
|
|
442
|
-
- **plan.md**: [Implementation plan]
|
|
443
|
-
- **acceptance.md**: [Acceptance criteria]
|
|
444
|
-
- **Branches/PR**: [Git operations by mode]
|
|
445
|
-
|
|
446
|
-
---
|
|
447
|
-
**Approval Request**: Would you like to proceed with creating a plan with the above plan?
|
|
448
|
-
(Choose between βProceed,β βModify [Content],β or βAbortβ)
|
|
449
|
-
```
|
|
450
|
-
|
|
451
|
-
---
|
|
452
|
-
|
|
453
|
-
## π STEP 2 Implementation Guide: Create a Plan (After Approval)
|
|
454
|
-
|
|
455
|
-
Only if the user selects **"Proceed"** or **"Start"** will Alfred call the spec-builder agent to begin building the SPEC document.
|
|
456
|
-
|
|
457
|
-
### EARS specification writing guide
|
|
458
|
-
|
|
459
|
-
1. **Event**: Define trigger events that occur in the system
|
|
460
|
-
2. **Action**: Specification of the system's action for an event
|
|
461
|
-
3. **Response**: Defining a response as a result of an action
|
|
462
|
-
4. **State**: Specifies system state changes and side effects
|
|
463
|
-
|
|
464
|
-
**Example** (see `development-guide.md` for details):
|
|
465
|
-
```markdown
|
|
466
|
-
### Ubiquitous Requirements
|
|
467
|
-
- The system must provide user authentication functionality
|
|
468
|
-
|
|
469
|
-
### Event-driven Requirements
|
|
470
|
-
- WHEN the user logs in with valid credentials, the system must issue a JWT token
|
|
471
|
-
|
|
472
|
-
### State-driven Requirements
|
|
473
|
-
- When the WHILE token is in an unexpired state, the system must allow access to the protected resource.
|
|
474
|
-
|
|
475
|
-
### Unwanted Behaviors
|
|
476
|
-
- If the IF token has expired, the system must return a 401 Unauthorized response.
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
### π SPEC Document Template
|
|
480
|
-
|
|
481
|
-
#### YAML Front Matter Schema
|
|
482
|
-
|
|
483
|
-
> **π SPEC Metadata Standard (SSOT)**: Skill("moai-alfred-spec-metadata-extended")
|
|
484
|
-
|
|
485
|
-
**Metadata that must be included** at the top of the spec.md file:
|
|
486
|
-
- **7 required fields**: id, version, status, created, updated, author, priority
|
|
487
|
-
- **9 optional fields**: category, labels, depends_on, blocks, related_specs, related_issue, scope
|
|
488
|
-
|
|
489
|
-
**Simple reference example**:
|
|
490
|
-
```yaml
|
|
491
|
-
---
|
|
492
|
-
id: AUTH-001
|
|
493
|
-
version: 0.0.1
|
|
494
|
-
status: draft
|
|
495
|
-
created: 2025-09-15
|
|
496
|
-
updated: 2025-09-15
|
|
497
|
-
author: @Goos
|
|
498
|
-
priority: high
|
|
499
|
-
---
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
**Core rules**:
|
|
503
|
-
- **id**: Same as TAG ID (`<domain>-<3 digits>`) - Never change after creation
|
|
504
|
-
- **Directory name**: `.moai/specs/SPEC-{ID}/` (e.g. `SPEC-AUTH-001/`)
|
|
505
|
-
- **Duplicate Check**: `rg "@SPEC:{ID}" -n .moai/specs/` Required
|
|
506
|
-
- **version**: v0.0.1 (INITIAL) β v0.1.0 (Implementation Completed) β v1.0.0 (Stable)
|
|
507
|
-
- **author**: GitHub @ prefix is required before ID (e.g. `@Goos`)
|
|
508
|
-
- **priority**: critical | high | medium | low
|
|
509
|
-
|
|
510
|
-
**Full field description and validation methods**: see Skill("moai-alfred-spec-metadata-extended")
|
|
511
|
-
|
|
512
|
-
#### HISTORY section (required)
|
|
513
|
-
|
|
514
|
-
You must include a HISTORY section **right after the YAML Front Matter**:
|
|
515
|
-
|
|
516
|
-
```markdown
|
|
517
|
-
# @SPEC:DOMAIN-NNN: JWT-based authentication system
|
|
518
|
-
|
|
519
|
-
## HISTORY
|
|
520
|
-
|
|
521
|
-
### v0.0.1 (2025-09-15)
|
|
522
|
-
- **INITIAL**: Initial creation of JWT-based authentication system specification
|
|
523
|
-
- **AUTHOR**: @Goos
|
|
524
|
-
- **SCOPE**: Token issuance, verification, and renewal logic
|
|
525
|
-
- **CONTEXT**: Reflects requirements for strengthening user authentication
|
|
526
|
-
|
|
527
|
-
### v0.0.2 (2025-09-20)
|
|
528
|
-
- **ADDED**: Added social login requirements (Draft modification)
|
|
529
|
-
- **AUTHOR**: @Goos
|
|
530
|
-
- **REVIEW**: @security-team (approved)
|
|
531
|
-
- **CHANGES**:
|
|
532
|
-
- OAuth2 integration requirements
|
|
533
|
-
- Google/GitHub login support
|
|
534
|
-
|
|
535
|
-
### v0.1.0 (2025-10-01)
|
|
536
|
-
- **IMPLEMENTATION COMPLETED**: TDD implementation completed (status: draft β completed)
|
|
537
|
-
- **TDD CYCLE**: RED β GREEN β REFACTOR
|
|
538
|
-
- **COMMITS**: [Implementation commit hash list]
|
|
539
|
-
- **FILES**: [Created/modified file list]
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
**HISTORY writing rules**:
|
|
543
|
-
- **Version system**: v0.0.1 (INITIAL) β v0.1.0 (implementation complete) β v1.0.0 (stabilization)
|
|
544
|
-
- Detailed version system: See Skill("moai-alfred-spec-metadata-extended") for version-system guide
|
|
545
|
-
- **Version order**: Latest version on top (reverse order)
|
|
546
|
-
- **Change type tag**: INITIAL, ADDED, CHANGED, IMPLEMENTATION COMPLETED, BREAKING, DEPRECATED, REMOVED, FIXED
|
|
547
|
-
- Detailed description: See Skill("moai-alfred-spec-metadata-extended") for history-writing-guide
|
|
548
|
-
- **Required items**: Version, date, AUTHOR, changes
|
|
549
|
-
- **Optional items**: REVIEW, SCOPE, CONTEXT, MIGRATION
|
|
550
|
-
|
|
551
|
-
#### SPEC document overall structure
|
|
552
|
-
|
|
553
|
-
```markdown
|
|
554
|
-
---
|
|
555
|
-
id: AUTH-001
|
|
556
|
-
version: 1.0.0
|
|
557
|
-
status: draft
|
|
558
|
-
created: 2025-09-15
|
|
559
|
-
updated: 2025-09-15
|
|
560
|
-
author: @username
|
|
561
|
-
---
|
|
562
|
-
|
|
563
|
-
# @SPEC:DOMAIN-NNN: [SPEC title]
|
|
564
|
-
|
|
565
|
-
## HISTORY
|
|
566
|
-
[Change history by version β see example above]
|
|
567
|
-
|
|
568
|
-
## Environment
|
|
569
|
-
[System environment and prerequisites]
|
|
570
|
-
|
|
571
|
-
## Assumptions
|
|
572
|
-
[Design assumptions]
|
|
573
|
-
|
|
574
|
-
## Requirements
|
|
575
|
-
### Ubiquitous
|
|
576
|
-
- The system must provide [feature]
|
|
577
|
-
|
|
578
|
-
### Event-driven (event-driven)
|
|
579
|
-
- WHEN [condition], the system must [operate]
|
|
580
|
-
|
|
581
|
-
### State-driven
|
|
582
|
-
- WHILE When in [state], the system must [operate]
|
|
583
|
-
|
|
584
|
-
### Optional (Optional function)
|
|
585
|
-
- If WHERE [condition], the system can [operate]
|
|
586
|
-
|
|
587
|
-
### Unwanted Behaviors
|
|
588
|
-
- IF [condition], the system must [respond appropriately with error handling or quality gates]
|
|
589
|
-
|
|
590
|
-
## Traceability (@TAG)
|
|
591
|
-
- **SPEC**: @SPEC:DOMAIN-NNN
|
|
592
|
-
- **TEST**: tests/auth/test_service.py
|
|
593
|
-
- **CODE**: src/auth/service.py
|
|
594
|
-
- **DOC**: docs/api/authentication.md
|
|
595
|
-
```
|
|
596
|
-
|
|
597
|
-
### Agent collaboration structure
|
|
598
|
-
|
|
599
|
-
- **Step 1**: The `spec-builder` agent is dedicated to analyzing project documents and creating SPEC documents.
|
|
600
|
-
- **Step 2**: The `git-manager` agent is dedicated to branch creation and GitHub Issue/PR creation.
|
|
601
|
-
- **Single Responsibility Principle**: spec-builder only writes plans, git-manager only performs Git/GitHub operations.
|
|
602
|
-
- **Sequential execution**: Executes in the order spec-builder β git-manager to maintain clear dependencies.
|
|
603
|
-
- **No inter-agent calls**: Each agent calls the other agents. It is not called directly, but is executed sequentially only at the command level.
|
|
604
|
-
|
|
605
|
-
## π Optimized workflow execution order
|
|
606
|
-
|
|
607
|
-
### Phase 1: Parallel project analysis (performance optimization)
|
|
608
|
-
|
|
609
|
-
**Perform simultaneously**:
|
|
610
|
-
|
|
611
|
-
```
|
|
612
|
-
Task 1 (haiku): Scan project structure
|
|
613
|
-
βββ Detect languages/frameworks
|
|
614
|
-
βββ Collect list of existing SPECs
|
|
615
|
-
βββ Draft priority backlog
|
|
616
|
-
|
|
617
|
-
Task 2 (sonnet): In-depth document analysis
|
|
618
|
-
βββ product.md requirements extraction
|
|
619
|
-
βββ structure.md architecture analysis
|
|
620
|
-
βββ tech.md technical constraints
|
|
621
|
-
```
|
|
622
|
-
|
|
623
|
-
**Performance improvements**: Parallelize basic scans and deep analysis to minimize latency
|
|
624
|
-
|
|
625
|
-
### Phase 2: Create SPEC document integration
|
|
626
|
-
|
|
627
|
-
The `spec-builder` agent (sonnet) integrates the results of the parallel analysis:
|
|
628
|
-
|
|
629
|
-
- Proposal of function candidates based on project document
|
|
630
|
-
- Creation of SPEC document after user approval (using MultiEdit)
|
|
631
|
-
- Simultaneous creation of 3 files (spec.md, plan.md, acceptance.md)
|
|
632
|
-
|
|
633
|
-
### Phase 3: Git task processing
|
|
634
|
-
|
|
635
|
-
Final processing by the `git-manager` agent (haiku):
|
|
636
|
-
|
|
637
|
-
- **Branch creation**: Apply strategy for each mode
|
|
638
|
-
- **Personal mode**: Branch from `main` or `develop` (based on project settings)
|
|
639
|
-
- **Team mode**: **Always branch from `develop`** (GitFlow standard)
|
|
640
|
-
- Branch name: `feature/SPEC-{ID}` format
|
|
641
|
-
- **Create GitHub Issue**: Create SPEC Issue in Team mode
|
|
642
|
-
- **Create Draft PR**: `feature/SPEC-{ID}` β `develop` in Team mode Create PR
|
|
643
|
-
- **Initial Commit**: Commit SPEC document and create tags
|
|
644
|
-
|
|
645
|
-
**Important**: Each agent runs independently, and direct calls between agents are prohibited.
|
|
646
|
-
|
|
647
|
-
## Agent role separation
|
|
648
|
-
|
|
649
|
-
### spec-builder dedicated area
|
|
650
|
-
|
|
651
|
-
- Analysis of project documents and discovery of SPEC candidates
|
|
652
|
-
- Preparation of EARS structure specifications
|
|
653
|
-
- Preparation of Acceptance Criteria (Given-When-Then)
|
|
654
|
-
- Verification of SPEC document quality
|
|
655
|
-
- Application of @TAG system
|
|
656
|
-
|
|
657
|
-
### git-manager dedicated area
|
|
658
|
-
|
|
659
|
-
- Create and manage all Git branches
|
|
660
|
-
- **Apply branch strategy for each mode**
|
|
661
|
-
- Personal: Branch from `main` or `develop`
|
|
662
|
-
- Team: **Always branch from `develop`** (GitFlow)
|
|
663
|
-
- Create GitHub Issue/PR
|
|
664
|
-
- Team Mode: Create Draft PR (`feature/SPEC-{ID}` β `develop`)
|
|
665
|
-
- Create initial commit and tags
|
|
666
|
-
- Handle remote synchronization
|
|
667
|
-
|
|
668
|
-
## Step 2 workflow execution sequence
|
|
669
|
-
|
|
670
|
-
### Phase 1: Analysis and planning phase
|
|
671
|
-
|
|
672
|
-
**Plan Analyzer** does the following:
|
|
673
|
-
|
|
674
|
-
1. **Loading project document**: In-depth analysis of product/structure/tech.md
|
|
675
|
-
2. **SPEC candidate discovery**: Prioritization based on business requirements
|
|
676
|
-
3. **Establishment of implementation strategy**: EARS structure and acceptance design
|
|
677
|
-
4. **Creating a Writing Plan**: Presents a step-by-step approach to writing a plan
|
|
678
|
-
5. **Awaiting user approval**: Review plan and gather feedback
|
|
679
|
-
|
|
680
|
-
### Phase 2: Plan preparation phase (after approval)
|
|
681
|
-
|
|
682
|
-
The `spec-builder` agent **continuously** performs after user approval:
|
|
683
|
-
|
|
684
|
-
1. **Writing EARS specification**: Event-Action-Response-State structuring
|
|
685
|
-
2. **Acceptance Criteria**: Given-When-Then Scenario Writing
|
|
686
|
-
3. **Document quality verification**: Apply TRUST principles and @TAG
|
|
687
|
-
4. **Template creation**: Simultaneous creation of spec.md, plan.md, acceptance.md
|
|
688
|
-
|
|
689
|
-
### Phase 3: Git operations (git-manager)
|
|
690
|
-
|
|
691
|
-
The `git-manager` agent does **all at once** after the SPEC is complete:
|
|
692
|
-
|
|
693
|
-
1. **Create branch**: Apply branch strategy for each mode
|
|
694
|
-
2. **GitHub Issue**: Create SPEC Issue in Team mode
|
|
695
|
-
3. **Initial commit**: Commit SPEC document and create tags
|
|
696
|
-
4. **Remote Sync**: Apply synchronization strategy for each mode
|
|
697
|
-
|
|
698
|
-
### Phase 3.5: CodeRabbit SPEC Review (Local Only)
|
|
699
|
-
|
|
700
|
-
**After Draft PR is created, CodeRabbit automatically:**
|
|
701
|
-
|
|
702
|
-
```bash
|
|
703
|
-
echo "π€ Waiting for CodeRabbit SPEC review..."
|
|
704
|
-
|
|
705
|
-
# CodeRabbit triggers automatically on Draft PR creation
|
|
706
|
-
# Review includes:
|
|
707
|
-
# - SPEC metadata validation (YAML frontmatter)
|
|
708
|
-
# - EARS structure completeness check
|
|
709
|
-
# - Acceptance criteria quality (Given-When-Then)
|
|
710
|
-
# - @TAG system traceability
|
|
711
|
-
# - Documentation clarity
|
|
712
|
-
|
|
713
|
-
# Expected time: 1-2 minutes
|
|
714
|
-
for i in {1..12}; do
|
|
715
|
-
sleep 10
|
|
716
|
-
|
|
717
|
-
# Check PR review status
|
|
718
|
-
approval=$(gh pr view $pr_num --json reviewDecision --jq '.reviewDecision')
|
|
719
|
-
|
|
720
|
-
if [ "$approval" = "APPROVED" ]; then
|
|
721
|
-
echo "β
CodeRabbit approved SPEC PR!"
|
|
722
|
-
echo "β Ready for development with /alfred:2-run SPEC-$spec_id"
|
|
723
|
-
break
|
|
724
|
-
fi
|
|
725
|
-
|
|
726
|
-
echo "β³ CodeRabbit reviewing... ($i/12)"
|
|
727
|
-
done
|
|
728
|
-
```
|
|
729
|
-
|
|
730
|
-
**CodeRabbit review includes:**
|
|
731
|
-
- β
YAML frontmatter validation (7 required fields)
|
|
732
|
-
- β
HISTORY section structure and completeness
|
|
733
|
-
- β
EARS requirements clarity (Ubiquitous/Event-driven/State-driven/Optional/Unwanted Behaviors)
|
|
734
|
-
- β
Acceptance criteria quality (Given-When-Then scenarios)
|
|
735
|
-
- β
@TAG system compliance (SPEC/TEST/CODE/DOC traceability)
|
|
736
|
-
- β
Documentation and formatting
|
|
737
|
-
|
|
738
|
-
See `.coderabbit.yaml` for detailed SPEC review checklist.
|
|
739
|
-
|
|
740
|
-
## Writing Tips
|
|
741
|
-
|
|
742
|
-
- Information that is not in the product/structure/tech document is supplemented by asking a new question.
|
|
743
|
-
- Acceptance Criteria is encouraged to be written at least 2 times in 3 columns Given/When/Then.
|
|
744
|
-
- The number of modules is reduced due to the relaxation of the Readable standard among the TRUST principles. If the recommended value (default 5) is exceeded, please include justification in the SPEC `context` section.
|
|
745
|
-
|
|
746
|
-
---
|
|
747
|
-
|
|
748
|
-
## π§ Context Management
|
|
749
|
-
|
|
750
|
-
> For more information: Skill("moai-alfred-dev-guide") - see section "Context Engineering"
|
|
751
|
-
|
|
752
|
-
### Core strategy of this command
|
|
753
|
-
|
|
754
|
-
**Load first**: `.moai/project/product.md` (business requirement)
|
|
755
|
-
|
|
756
|
-
**Recommendation**: The plan is complete. You can experience better performance and context management by starting a new chat session with the `/clear` or `/new` command before proceeding to the next step (`/alfred:2-run`).
|
|
757
|
-
|
|
758
|
-
---
|
|
759
|
-
|
|
760
|
-
## Final Step
|
|
761
|
-
|
|
762
|
-
After plan creation completes, Alfred automatically invokes AskUserQuestion to ask the user what to do next:
|
|
763
|
-
|
|
764
|
-
```python
|
|
765
|
-
AskUserQuestion(
|
|
766
|
-
questions=[
|
|
767
|
-
{
|
|
768
|
-
"question": "μ€ν μμ±μ΄ μλ£λμμ΅λλ€. λ€μμΌλ‘ λ νμκ² μ΅λκΉ?",
|
|
769
|
-
"header": "λ€μ λ¨κ³",
|
|
770
|
-
"multiSelect": false,
|
|
771
|
-
"options": [
|
|
772
|
-
{
|
|
773
|
-
"label": "π¨ ꡬν μμ",
|
|
774
|
-
"description": "/alfred:2-run SPEC-XXXλ‘ TDD ꡬν μ§ν"
|
|
775
|
-
},
|
|
776
|
-
{
|
|
777
|
-
"label": "π μ€ν μμ ",
|
|
778
|
-
"description": "SPEC λ¬Έμ κ²ν ν μμ "
|
|
779
|
-
},
|
|
780
|
-
{
|
|
781
|
-
"label": "π μ μΈμ
μμ",
|
|
782
|
-
"description": "μ±λ₯ μ΅μ νλ₯Ό μν΄ /clear μ€ν"
|
|
783
|
-
}
|
|
784
|
-
]
|
|
785
|
-
}
|
|
786
|
-
]
|
|
787
|
-
)
|
|
788
|
-
```
|
|
789
|
-
|
|
790
|
-
**User Responses**:
|
|
791
|
-
- **π¨ ꡬν μμ**: Proceed to `/alfred:2-run SPEC-XXX` for TDD implementation
|
|
792
|
-
- **π μ€ν μμ **: Review and modify SPEC documents before implementation
|
|
793
|
-
- **π μ μΈμ
μμ**: Execute `/clear` to start fresh session (recommended for performance)
|
|
794
|
-
|
|
795
|
-
---
|
|
796
|
-
|
|
797
|
-
## Next steps
|
|
798
|
-
|
|
799
|
-
**Recommendation**: For better performance and context management, start a new chat session with the `/clear` or `/new` command before proceeding to the next step.
|
|
800
|
-
|
|
801
|
-
- Start implementing TDD with `/alfred:2-run SPEC-XXX`
|
|
802
|
-
- Team mode: After creating an issue, the git-manager agent automatically creates a branch.
|