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,137 +0,0 @@
|
|
|
1
|
-
# moai-spec-authoring Skill
|
|
2
|
-
|
|
3
|
-
**Version**: 1.2.0
|
|
4
|
-
**Created**: 2025-10-23
|
|
5
|
-
**Updated**: 2025-10-29
|
|
6
|
-
**Status**: Active
|
|
7
|
-
**Tier**: Foundation
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
Comprehensive guide for authoring SPEC documents in MoAI-ADK projects. Provides complete YAML metadata structure, EARS syntax patterns, version management strategies, and validation tools.
|
|
12
|
-
|
|
13
|
-
## Key Features
|
|
14
|
-
|
|
15
|
-
- **7 Required + 9 Optional Metadata Fields**: Complete reference with lifecycle examples
|
|
16
|
-
- **5 Official EARS Patterns**: Ubiquitous, Event-driven, State-driven, Optional, Unwanted Behaviors
|
|
17
|
-
- **Version Lifecycle**: Semantic versioning from draft to production
|
|
18
|
-
- **TAG Integration**: @SPEC, @TEST, @CODE, @DOC chain management
|
|
19
|
-
- **Validation Tools**: Pre-submission checklist and automation scripts
|
|
20
|
-
- **Common Pitfalls**: Prevention strategies for 7 major issues
|
|
21
|
-
|
|
22
|
-
## File Structure (Progressive Disclosure)
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
.claude/skills/moai-spec-authoring/
|
|
26
|
-
├── SKILL.md # Core overview + Quick Start (~500 words)
|
|
27
|
-
├── reference.md # Complete metadata reference + EARS syntax
|
|
28
|
-
├── examples.md # Real-world examples + patterns + troubleshooting
|
|
29
|
-
├── examples/
|
|
30
|
-
│ └── validate-spec.sh # Automated SPEC validation script
|
|
31
|
-
└── README.md # This file
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Quick Links
|
|
35
|
-
|
|
36
|
-
- **Quick Start**: [SKILL.md](./SKILL.md#quick-start-5-step-spec-creation)
|
|
37
|
-
- **Metadata Reference**: [reference.md](./reference.md#complete-metadata-field-reference)
|
|
38
|
-
- **EARS Syntax**: [reference.md](./reference.md#ears-requirement-syntax)
|
|
39
|
-
- **Examples**: [examples.md](./examples.md#real-world-ears-examples)
|
|
40
|
-
- **Troubleshooting**: [examples.md](./examples.md#troubleshooting)
|
|
41
|
-
|
|
42
|
-
## Usage
|
|
43
|
-
|
|
44
|
-
### Automatic Activation
|
|
45
|
-
|
|
46
|
-
This Skill automatically loads when:
|
|
47
|
-
- `/alfred:1-plan` command is executed
|
|
48
|
-
- SPEC document creation is requested
|
|
49
|
-
- Requirements clarification is discussed
|
|
50
|
-
|
|
51
|
-
### Manual Reference
|
|
52
|
-
|
|
53
|
-
Consult detailed sections for:
|
|
54
|
-
- SPEC authoring best practices
|
|
55
|
-
- Existing SPEC document validation
|
|
56
|
-
- Metadata issue troubleshooting
|
|
57
|
-
- EARS syntax pattern reference
|
|
58
|
-
|
|
59
|
-
## Validation Command
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# Validate SPEC metadata
|
|
63
|
-
rg "^(id|version|status|created|updated|author|priority):" .moai/specs/SPEC-AUTH-001/spec.md
|
|
64
|
-
|
|
65
|
-
# Check for duplicate IDs
|
|
66
|
-
rg "@SPEC:AUTH-001" -n .moai/specs/
|
|
67
|
-
|
|
68
|
-
# Scan entire TAG chain
|
|
69
|
-
rg '@(SPEC|TEST|CODE|DOC):AUTH-001' -n
|
|
70
|
-
|
|
71
|
-
# Use automated script
|
|
72
|
-
./examples/validate-spec.sh .moai/specs/SPEC-AUTH-001
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
## Example SPEC Structure
|
|
76
|
-
|
|
77
|
-
```markdown
|
|
78
|
-
---
|
|
79
|
-
id: AUTH-001
|
|
80
|
-
version: 0.0.1
|
|
81
|
-
status: draft
|
|
82
|
-
created: 2025-10-29
|
|
83
|
-
updated: 2025-10-29
|
|
84
|
-
author: @YourHandle
|
|
85
|
-
priority: high
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
# @SPEC:AUTH-001: JWT Authentication System
|
|
89
|
-
|
|
90
|
-
## HISTORY
|
|
91
|
-
### v0.0.1 (2025-10-29)
|
|
92
|
-
- **INITIAL**: JWT authentication SPEC draft
|
|
93
|
-
|
|
94
|
-
## Environment
|
|
95
|
-
**Runtime**: Node.js 20.x
|
|
96
|
-
|
|
97
|
-
## Assumptions
|
|
98
|
-
1. User storage: PostgreSQL
|
|
99
|
-
2. Secret management: Environment variables
|
|
100
|
-
|
|
101
|
-
## Requirements
|
|
102
|
-
|
|
103
|
-
### Ubiquitous Requirements
|
|
104
|
-
**UR-001**: The system shall provide JWT-based authentication.
|
|
105
|
-
|
|
106
|
-
### Event-driven Requirements
|
|
107
|
-
**ER-001**: WHEN the user submits valid credentials, the system shall issue a JWT token.
|
|
108
|
-
|
|
109
|
-
### State-driven Requirements
|
|
110
|
-
**SR-001**: WHILE the user is in an authenticated state, the system shall permit access to protected resources.
|
|
111
|
-
|
|
112
|
-
### Optional Features
|
|
113
|
-
**OF-001**: WHERE multi-factor authentication is enabled, the system can require OTP verification.
|
|
114
|
-
|
|
115
|
-
### Unwanted Behaviors
|
|
116
|
-
**UB-001**: IF a token has expired, THEN the system shall deny access and return HTTP 401.
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Integration
|
|
120
|
-
|
|
121
|
-
Works seamlessly with:
|
|
122
|
-
- `spec-builder` agent - SPEC creation
|
|
123
|
-
- `moai-foundation-ears` - EARS syntax patterns
|
|
124
|
-
- `moai-foundation-specs` - Metadata validation
|
|
125
|
-
- `moai-foundation-tags` - TAG system integration
|
|
126
|
-
|
|
127
|
-
## Support
|
|
128
|
-
|
|
129
|
-
For questions or issues:
|
|
130
|
-
1. Refer to comprehensive documentation: `SKILL.md`, `reference.md`, `examples.md`
|
|
131
|
-
2. Use `/alfred:1-plan` for guided SPEC creation
|
|
132
|
-
3. Review existing SPECs in `.moai/specs/` for examples
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
**Maintained By**: MoAI-ADK Team
|
|
137
|
-
**Last Updated**: 2025-10-29
|
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: moai-alfred-spec-authoring
|
|
3
|
-
version: 1.2.0
|
|
4
|
-
created: 2025-10-23
|
|
5
|
-
updated: 2025-11-02
|
|
6
|
-
status: active
|
|
7
|
-
description: SPEC document authoring guide - YAML metadata, EARS syntax (5 patterns with Unwanted Behaviors), validation checklist
|
|
8
|
-
keywords: ['spec', 'authoring', 'ears', 'metadata', 'requirements', 'tdd', 'planning']
|
|
9
|
-
allowed-tools:
|
|
10
|
-
- Read
|
|
11
|
-
- Bash
|
|
12
|
-
- Glob
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# SPEC Authoring Skill
|
|
16
|
-
|
|
17
|
-
## Skill Metadata
|
|
18
|
-
|
|
19
|
-
| Field | Value |
|
|
20
|
-
| ----- | ----- |
|
|
21
|
-
| **Skill Name** | moai-alfred-spec-authoring |
|
|
22
|
-
| **Version** | 1.2.0 (2025-11-02) |
|
|
23
|
-
| **Allowed tools** | Read, Bash, Glob |
|
|
24
|
-
| **Auto-load** | `/alfred:1-plan`, SPEC authoring tasks |
|
|
25
|
-
| **Tier** | Alfred |
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## What It Does
|
|
30
|
-
|
|
31
|
-
Comprehensive guide for authoring SPEC documents in MoAI-ADK. Provides YAML metadata structure (7 required + 9 optional fields), official EARS requirement syntax (5 patterns including Unwanted Behaviors), version management lifecycle, TAG integration, and validation strategies.
|
|
32
|
-
|
|
33
|
-
**Key capabilities**:
|
|
34
|
-
- Step-by-step SPEC creation workflow
|
|
35
|
-
- Complete metadata field reference with lifecycle rules
|
|
36
|
-
- EARS syntax templates and real-world patterns
|
|
37
|
-
- Pre-submission validation checklist
|
|
38
|
-
- Common pitfalls prevention guide
|
|
39
|
-
- `/alfred:1-plan` workflow integration
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## When to Use
|
|
44
|
-
|
|
45
|
-
**Automatic triggers**:
|
|
46
|
-
- `/alfred:1-plan` command execution
|
|
47
|
-
- SPEC document creation requests
|
|
48
|
-
- Requirements clarification discussions
|
|
49
|
-
- Feature planning sessions
|
|
50
|
-
|
|
51
|
-
**Manual invocation**:
|
|
52
|
-
- Learn SPEC authoring best practices
|
|
53
|
-
- Validate existing SPEC documents
|
|
54
|
-
- Troubleshoot metadata issues
|
|
55
|
-
- Understand EARS syntax patterns
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## Quick Start: 5-Step SPEC Creation
|
|
60
|
-
|
|
61
|
-
### Step 1: Initialize SPEC Directory
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
mkdir -p .moai/specs/SPEC-{DOMAIN}-{NUMBER}
|
|
65
|
-
# Example: Authentication feature
|
|
66
|
-
mkdir -p .moai/specs/SPEC-AUTH-001
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Step 2: Write YAML Front Matter
|
|
70
|
-
|
|
71
|
-
```yaml
|
|
72
|
-
---
|
|
73
|
-
id: AUTH-001
|
|
74
|
-
version: 0.0.1
|
|
75
|
-
status: draft
|
|
76
|
-
created: 2025-10-29
|
|
77
|
-
updated: 2025-10-29
|
|
78
|
-
author: @YourGitHubHandle
|
|
79
|
-
priority: high
|
|
80
|
-
---
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Step 3: Add SPEC Title & HISTORY
|
|
84
|
-
|
|
85
|
-
```markdown
|
|
86
|
-
# @SPEC:AUTH-001: JWT Authentication System
|
|
87
|
-
|
|
88
|
-
## HISTORY
|
|
89
|
-
|
|
90
|
-
### v0.0.1 (2025-10-29)
|
|
91
|
-
- **INITIAL**: JWT authentication SPEC draft created
|
|
92
|
-
- **AUTHOR**: @YourHandle
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Step 4: Define Environment & Assumptions
|
|
96
|
-
|
|
97
|
-
```markdown
|
|
98
|
-
## Environment
|
|
99
|
-
|
|
100
|
-
**Runtime**: Node.js 20.x or later
|
|
101
|
-
**Framework**: Express.js
|
|
102
|
-
**Database**: PostgreSQL 15+
|
|
103
|
-
|
|
104
|
-
## Assumptions
|
|
105
|
-
|
|
106
|
-
1. User credentials stored in PostgreSQL
|
|
107
|
-
2. JWT secrets managed via environment variables
|
|
108
|
-
3. Server clock synchronized with NTP
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Step 5: Write EARS Requirements
|
|
112
|
-
|
|
113
|
-
```markdown
|
|
114
|
-
## Requirements
|
|
115
|
-
|
|
116
|
-
### Ubiquitous Requirements
|
|
117
|
-
**UR-001**: The system shall provide JWT-based authentication.
|
|
118
|
-
|
|
119
|
-
### Event-driven Requirements
|
|
120
|
-
**ER-001**: WHEN the user submits valid credentials, the system shall issue a JWT token with 15-minute expiration.
|
|
121
|
-
|
|
122
|
-
### State-driven Requirements
|
|
123
|
-
**SR-001**: WHILE the user is in an authenticated state, the system shall permit access to protected resources.
|
|
124
|
-
|
|
125
|
-
### Optional Features
|
|
126
|
-
**OF-001**: WHERE multi-factor authentication is enabled, the system can require OTP verification after password confirmation.
|
|
127
|
-
|
|
128
|
-
### Unwanted Behaviors
|
|
129
|
-
**UB-001**: IF a token has expired, THEN the system shall deny access and return HTTP 401.
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## Five EARS Pattern Overview
|
|
135
|
-
|
|
136
|
-
| Pattern | Keyword | Purpose | Example |
|
|
137
|
-
|---------|---------|---------|---------|
|
|
138
|
-
| **Ubiquitous** | shall | Core functionality always active | "The system shall provide login capability" |
|
|
139
|
-
| **Event-driven** | WHEN | Response to specific events | "WHEN login fails, display error" |
|
|
140
|
-
| **State-driven** | WHILE | Persistent behavior during state | "WHILE in authenticated state, permit access" |
|
|
141
|
-
| **Optional** | WHERE | Conditional features based on flags | "WHERE premium enabled, unlock feature" |
|
|
142
|
-
| **Unwanted Behaviors** | IF-THEN | Error handling, quality gates, business rules | "IF token expires, deny access + return 401" |
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## Seven Required Metadata Fields
|
|
147
|
-
|
|
148
|
-
1. **id**: `<DOMAIN>-<NUMBER>` (e.g., `AUTH-001`) - Immutable identifier
|
|
149
|
-
2. **version**: `MAJOR.MINOR.PATCH` (e.g., `0.0.1`) - Semantic versioning
|
|
150
|
-
3. **status**: `draft` | `active` | `completed` | `deprecated`
|
|
151
|
-
4. **created**: `YYYY-MM-DD` - Initial creation date
|
|
152
|
-
5. **updated**: `YYYY-MM-DD` - Final modification date
|
|
153
|
-
6. **author**: `@GitHubHandle` - Primary author (@ prefix required)
|
|
154
|
-
7. **priority**: `critical` | `high` | `medium` | `low`
|
|
155
|
-
|
|
156
|
-
**Version Lifecycle**:
|
|
157
|
-
- `0.0.x` → draft (authoring phase)
|
|
158
|
-
- `0.1.0` → completed (implementation done)
|
|
159
|
-
- `1.0.0` → stable (production-ready)
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## Validation Checklist
|
|
164
|
-
|
|
165
|
-
### Metadata Validation
|
|
166
|
-
- [ ] All 7 required fields present
|
|
167
|
-
- [ ] `author` field includes @ prefix
|
|
168
|
-
- [ ] `version` format is `0.x.y`
|
|
169
|
-
- [ ] `id` is not duplicated (`rg "@SPEC:AUTH-001" -n .moai/specs/`)
|
|
170
|
-
|
|
171
|
-
### Content Validation
|
|
172
|
-
- [ ] YAML Front Matter complete
|
|
173
|
-
- [ ] Title includes `@SPEC:{ID}` TAG block
|
|
174
|
-
- [ ] HISTORY section has v0.0.1 INITIAL entry
|
|
175
|
-
- [ ] Environment section defined
|
|
176
|
-
- [ ] Assumptions section defined (minimum 3 items)
|
|
177
|
-
- [ ] Requirements section uses EARS patterns
|
|
178
|
-
- [ ] Traceability section shows TAG chain structure
|
|
179
|
-
|
|
180
|
-
### EARS Syntax Validation
|
|
181
|
-
- [ ] Ubiquitous: "shall" + capability
|
|
182
|
-
- [ ] Event-driven: Starts with "WHEN [trigger]"
|
|
183
|
-
- [ ] State-driven: Starts with "WHILE [state]"
|
|
184
|
-
- [ ] Optional: Starts with "WHERE [feature]", uses "can"
|
|
185
|
-
- [ ] Unwanted Behaviors: "IF-THEN" or direct constraint expression
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## Common Pitfalls
|
|
190
|
-
|
|
191
|
-
1. ❌ **Changing SPEC ID after assignment** → Breaks TAG chain
|
|
192
|
-
2. ❌ **Skipping HISTORY updates** → Content changes without audit trail
|
|
193
|
-
3. ❌ **Jumping version numbers** → v0.0.1 → v1.0.0 without intermediate steps
|
|
194
|
-
4. ❌ **Ambiguous requirements** → "Fast and user-friendly" (unmeasurable)
|
|
195
|
-
5. ❌ **Missing @ prefix in author** → `author: Goos` instead of `author: @Goos`
|
|
196
|
-
6. ❌ **Mixing EARS patterns** → Multiple keywords in single requirement
|
|
197
|
-
|
|
198
|
-
---
|
|
199
|
-
|
|
200
|
-
## Related Skills
|
|
201
|
-
|
|
202
|
-
- `moai-foundation-ears` - Official EARS syntax patterns
|
|
203
|
-
- `moai-foundation-specs` - Metadata validation automation
|
|
204
|
-
- `moai-foundation-tags` - TAG system integration
|
|
205
|
-
- `moai-alfred-spec-metadata-validation` - Automated validation
|
|
206
|
-
|
|
207
|
-
---
|
|
208
|
-
|
|
209
|
-
## Detailed Reference
|
|
210
|
-
|
|
211
|
-
- **Full Metadata Reference**: [reference.md](./reference.md)
|
|
212
|
-
- **Practical Examples**: [examples.md](./examples.md)
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
**Last Updated**: 2025-10-29
|
|
217
|
-
**Version**: 1.2.0
|
|
218
|
-
**Maintained By**: MoAI-ADK Team
|
|
219
|
-
**Support**: Use `/alfred:1-plan` command for guided SPEC creation
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# validate-spec.sh - SPEC validation helper for MoAI-ADK
|
|
3
|
-
# Usage: ./validate-spec.sh .moai/specs/SPEC-AUTH-001
|
|
4
|
-
|
|
5
|
-
set -e
|
|
6
|
-
|
|
7
|
-
SPEC_DIR="$1"
|
|
8
|
-
|
|
9
|
-
if [ -z "$SPEC_DIR" ]; then
|
|
10
|
-
echo "Usage: $0 <SPEC_DIR>"
|
|
11
|
-
echo "Example: $0 .moai/specs/SPEC-AUTH-001"
|
|
12
|
-
exit 1
|
|
13
|
-
fi
|
|
14
|
-
|
|
15
|
-
if [ ! -d "$SPEC_DIR" ]; then
|
|
16
|
-
echo "Error: Directory $SPEC_DIR does not exist"
|
|
17
|
-
exit 1
|
|
18
|
-
fi
|
|
19
|
-
|
|
20
|
-
if [ ! -f "$SPEC_DIR/spec.md" ]; then
|
|
21
|
-
echo "Error: spec.md not found in $SPEC_DIR"
|
|
22
|
-
exit 1
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
echo "=========================================="
|
|
26
|
-
echo "Validating SPEC: $SPEC_DIR"
|
|
27
|
-
echo "=========================================="
|
|
28
|
-
echo ""
|
|
29
|
-
|
|
30
|
-
# Check required fields
|
|
31
|
-
echo -n "Required fields (7)... "
|
|
32
|
-
REQUIRED_COUNT=$(rg "^(id|version|status|created|updated|author|priority):" "$SPEC_DIR/spec.md" | wc -l | tr -d ' ')
|
|
33
|
-
if [ "$REQUIRED_COUNT" -eq 7 ]; then
|
|
34
|
-
echo "✅ ($REQUIRED_COUNT/7)"
|
|
35
|
-
else
|
|
36
|
-
echo "❌ ($REQUIRED_COUNT/7)"
|
|
37
|
-
echo " Missing fields. Expected: id, version, status, created, updated, author, priority"
|
|
38
|
-
fi
|
|
39
|
-
|
|
40
|
-
# Check author format
|
|
41
|
-
echo -n "Author format (@Handle)... "
|
|
42
|
-
if rg "^author: @[A-Z]" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
43
|
-
echo "✅"
|
|
44
|
-
else
|
|
45
|
-
echo "❌"
|
|
46
|
-
echo " Expected format: author: @YourHandle"
|
|
47
|
-
fi
|
|
48
|
-
|
|
49
|
-
# Check version format
|
|
50
|
-
echo -n "Version format (0.x.y)... "
|
|
51
|
-
if rg "^version: 0\.\d+\.\d+" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
52
|
-
echo "✅"
|
|
53
|
-
else
|
|
54
|
-
echo "❌"
|
|
55
|
-
echo " Expected format: version: 0.x.y (e.g., 0.0.1, 0.1.0)"
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
# Check HISTORY section
|
|
59
|
-
echo -n "HISTORY section... "
|
|
60
|
-
if rg "^## HISTORY" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
61
|
-
echo "✅"
|
|
62
|
-
else
|
|
63
|
-
echo "❌"
|
|
64
|
-
echo " Missing HISTORY section"
|
|
65
|
-
fi
|
|
66
|
-
|
|
67
|
-
# Check TAG block
|
|
68
|
-
echo -n "TAG block (@SPEC:ID)... "
|
|
69
|
-
if rg "^# @SPEC:" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
70
|
-
echo "✅"
|
|
71
|
-
else
|
|
72
|
-
echo "❌"
|
|
73
|
-
echo " Expected format: # @SPEC:YOUR-ID: Title"
|
|
74
|
-
fi
|
|
75
|
-
|
|
76
|
-
# Check Environment section
|
|
77
|
-
echo -n "Environment section... "
|
|
78
|
-
if rg "^## Environment" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
79
|
-
echo "✅"
|
|
80
|
-
else
|
|
81
|
-
echo "⚠️ (optional but recommended)"
|
|
82
|
-
fi
|
|
83
|
-
|
|
84
|
-
# Check Assumptions section
|
|
85
|
-
echo -n "Assumptions section... "
|
|
86
|
-
if rg "^## Assumptions" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
87
|
-
echo "✅"
|
|
88
|
-
else
|
|
89
|
-
echo "⚠️ (optional but recommended)"
|
|
90
|
-
fi
|
|
91
|
-
|
|
92
|
-
# Check Requirements section
|
|
93
|
-
echo -n "Requirements section... "
|
|
94
|
-
if rg "^## Requirements" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
95
|
-
echo "✅"
|
|
96
|
-
else
|
|
97
|
-
echo "❌"
|
|
98
|
-
echo " Missing Requirements section"
|
|
99
|
-
fi
|
|
100
|
-
|
|
101
|
-
# Check duplicate IDs
|
|
102
|
-
SPEC_ID=$(basename "$SPEC_DIR" | sed 's/SPEC-//')
|
|
103
|
-
echo -n "Duplicate ID check ($SPEC_ID)... "
|
|
104
|
-
DUPLICATE_COUNT=$(rg "@SPEC:$SPEC_ID" -n .moai/specs/ 2>/dev/null | wc -l | tr -d ' ')
|
|
105
|
-
if [ "$DUPLICATE_COUNT" -eq 1 ]; then
|
|
106
|
-
echo "✅ (1 occurrence)"
|
|
107
|
-
else
|
|
108
|
-
echo "❌ (found $DUPLICATE_COUNT occurrences)"
|
|
109
|
-
if [ "$DUPLICATE_COUNT" -gt 1 ]; then
|
|
110
|
-
echo " Duplicate SPEC IDs detected:"
|
|
111
|
-
rg "@SPEC:$SPEC_ID" -n .moai/specs/
|
|
112
|
-
fi
|
|
113
|
-
fi
|
|
114
|
-
|
|
115
|
-
# Check EARS patterns
|
|
116
|
-
echo ""
|
|
117
|
-
echo "EARS Pattern Usage:"
|
|
118
|
-
echo -n " Ubiquitous (UR-XXX)... "
|
|
119
|
-
if rg "^\*\*UR-\d+" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
120
|
-
COUNT=$(rg "^\*\*UR-\d+" "$SPEC_DIR/spec.md" | wc -l | tr -d ' ')
|
|
121
|
-
echo "✅ ($COUNT found)"
|
|
122
|
-
else
|
|
123
|
-
echo "⚠️ (none found)"
|
|
124
|
-
fi
|
|
125
|
-
|
|
126
|
-
echo -n " Event-driven (ER-XXX)... "
|
|
127
|
-
if rg "^\*\*ER-\d+" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
128
|
-
COUNT=$(rg "^\*\*ER-\d+" "$SPEC_DIR/spec.md" | wc -l | tr -d ' ')
|
|
129
|
-
echo "✅ ($COUNT found)"
|
|
130
|
-
else
|
|
131
|
-
echo "⚠️ (none found)"
|
|
132
|
-
fi
|
|
133
|
-
|
|
134
|
-
echo -n " State-driven (SR-XXX)... "
|
|
135
|
-
if rg "^\*\*SR-\d+" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
136
|
-
COUNT=$(rg "^\*\*SR-\d+" "$SPEC_DIR/spec.md" | wc -l | tr -d ' ')
|
|
137
|
-
echo "✅ ($COUNT found)"
|
|
138
|
-
else
|
|
139
|
-
echo "⚠️ (none found)"
|
|
140
|
-
fi
|
|
141
|
-
|
|
142
|
-
echo -n " Optional Features (OF-XXX)... "
|
|
143
|
-
if rg "^\*\*OF-\d+" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
144
|
-
COUNT=$(rg "^\*\*OF-\d+" "$SPEC_DIR/spec.md" | wc -l | tr -d ' ')
|
|
145
|
-
echo "✅ ($COUNT found)"
|
|
146
|
-
else
|
|
147
|
-
echo "⚠️ (none found)"
|
|
148
|
-
fi
|
|
149
|
-
|
|
150
|
-
echo -n " Unwanted Behaviors (UB-XXX)... "
|
|
151
|
-
if rg "^\*\*UB-\d+" "$SPEC_DIR/spec.md" > /dev/null 2>&1; then
|
|
152
|
-
COUNT=$(rg "^\*\*UB-\d+" "$SPEC_DIR/spec.md" | wc -l | tr -d ' ')
|
|
153
|
-
echo "✅ ($COUNT found)"
|
|
154
|
-
else
|
|
155
|
-
echo "⚠️ (none found)"
|
|
156
|
-
fi
|
|
157
|
-
|
|
158
|
-
echo ""
|
|
159
|
-
echo "=========================================="
|
|
160
|
-
echo "Validation complete!"
|
|
161
|
-
echo "=========================================="
|