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,29 +0,0 @@
|
|
|
1
|
-
# moai-lang-kotlin - Working Examples
|
|
2
|
-
|
|
3
|
-
_Last updated: 2025-10-22_
|
|
4
|
-
|
|
5
|
-
## Example 1: Basic Setup
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Setup commands
|
|
9
|
-
# ...
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Example 2: TDD Workflow
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# RED: Write failing test
|
|
16
|
-
# GREEN: Implement feature
|
|
17
|
-
# REFACTOR: Improve code
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Example 3: Quality Gate
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Run quality checks
|
|
24
|
-
# Verify coverage ≥85%
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
_For more examples, see SKILL.md reference section_
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# moai-lang-kotlin - CLI Reference
|
|
2
|
-
|
|
3
|
-
_Last updated: 2025-10-22_
|
|
4
|
-
|
|
5
|
-
## Quick Reference
|
|
6
|
-
|
|
7
|
-
### Installation
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Installation commands
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Common Commands
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# Test
|
|
17
|
-
# Lint
|
|
18
|
-
# Format
|
|
19
|
-
# Build
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Tool Versions (2025-10-22)
|
|
23
|
-
|
|
24
|
-
- **Kotlin**: 2.1.0
|
|
25
|
-
- **JUnit**: 5.11.0
|
|
26
|
-
- **Gradle**: 8.12.0
|
|
27
|
-
- **ktlint**: 1.5.0
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
_For detailed usage, see SKILL.md_
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: moai-lang-php
|
|
3
|
-
version: 2.1.0
|
|
4
|
-
created: 2025-10-22
|
|
5
|
-
updated: 2025-11-02
|
|
6
|
-
status: active
|
|
7
|
-
description: PHP 8.4+ best practices with PHPUnit 11, Composer, PSR-12 standards, and web frameworks (Laravel, Symfony).
|
|
8
|
-
keywords: ['php', 'phpunit', 'composer', 'psr', 'laravel', 'symfony']
|
|
9
|
-
allowed-tools:
|
|
10
|
-
- Read
|
|
11
|
-
- Bash
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
# Lang Php Skill
|
|
15
|
-
|
|
16
|
-
## Skill Metadata
|
|
17
|
-
|
|
18
|
-
| Field | Value |
|
|
19
|
-
| ----- | ----- |
|
|
20
|
-
| **Skill Name** | moai-lang-php |
|
|
21
|
-
| **Version** | 2.1.0 (2025-11-02) |
|
|
22
|
-
| **Allowed tools** | Read (read_file), Bash (terminal) |
|
|
23
|
-
| **Auto-load** | On demand when keywords detected |
|
|
24
|
-
| **Tier** | Language |
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
## What It Does
|
|
29
|
-
|
|
30
|
-
PHP 8.4+ best practices with PHPUnit 11, Composer, PSR-12 standards, and web frameworks (Laravel, Symfony).
|
|
31
|
-
|
|
32
|
-
**Key capabilities**:
|
|
33
|
-
- ✅ Best practices enforcement for language domain
|
|
34
|
-
- ✅ TRUST 5 principles integration
|
|
35
|
-
- ✅ Latest tool versions (2025-11-02)
|
|
36
|
-
- ✅ TDD workflow support
|
|
37
|
-
- ✅ Web framework patterns (Laravel, Symfony)
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## When to Use
|
|
42
|
-
|
|
43
|
-
**Automatic triggers**:
|
|
44
|
-
- Related code discussions and file patterns
|
|
45
|
-
- SPEC implementation (`/alfred:2-run`)
|
|
46
|
-
- Code review requests
|
|
47
|
-
|
|
48
|
-
**Manual invocation**:
|
|
49
|
-
- Review code for TRUST 5 compliance
|
|
50
|
-
- Design new features
|
|
51
|
-
- Troubleshoot issues
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Tool Version Matrix (2025-11-02)
|
|
56
|
-
|
|
57
|
-
| Tool | Version | Purpose | Status |
|
|
58
|
-
|------|---------|---------|--------|
|
|
59
|
-
| **PHP** | 8.4.0 | Runtime | ✅ Current |
|
|
60
|
-
| **PHPUnit** | 11.5.0 | Testing | ✅ Current |
|
|
61
|
-
| **Composer** | 2.8.0 | Package manager | ✅ Current |
|
|
62
|
-
| **Laravel** | 12.0.0 | Web framework | ✅ Current |
|
|
63
|
-
| **Symfony** | 7.3.5 | Web framework | ✅ Current |
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## Inputs
|
|
68
|
-
|
|
69
|
-
- Language-specific source directories
|
|
70
|
-
- Configuration files
|
|
71
|
-
- Test suites and sample data
|
|
72
|
-
|
|
73
|
-
## Outputs
|
|
74
|
-
|
|
75
|
-
- Test/lint execution plan
|
|
76
|
-
- TRUST 5 review checkpoints
|
|
77
|
-
- Migration guidance
|
|
78
|
-
|
|
79
|
-
## Failure Modes
|
|
80
|
-
|
|
81
|
-
- When required tools are not installed
|
|
82
|
-
- When dependencies are missing
|
|
83
|
-
- When test coverage falls below 85%
|
|
84
|
-
|
|
85
|
-
## Dependencies
|
|
86
|
-
|
|
87
|
-
- Access to project files via Read/Bash tools
|
|
88
|
-
- Integration with `moai-foundation-langs` for language detection
|
|
89
|
-
- Integration with `moai-foundation-trust` for quality gates
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## References (Latest Documentation)
|
|
94
|
-
|
|
95
|
-
_Documentation links updated 2025-10-22_
|
|
96
|
-
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
## Changelog
|
|
100
|
-
|
|
101
|
-
- **v2.0.0** (2025-10-22): Major update with latest tool versions, comprehensive best practices, TRUST 5 integration
|
|
102
|
-
- **v1.0.0** (2025-03-29): Initial Skill release
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Works Well With
|
|
107
|
-
|
|
108
|
-
- `moai-foundation-trust` (quality gates)
|
|
109
|
-
- `moai-alfred-code-reviewer` (code review)
|
|
110
|
-
- `moai-essentials-debug` (debugging support)
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Best Practices
|
|
115
|
-
|
|
116
|
-
✅ **DO**:
|
|
117
|
-
- Follow language best practices
|
|
118
|
-
- Use latest stable tool versions
|
|
119
|
-
- Maintain test coverage ≥85%
|
|
120
|
-
- Document all public APIs
|
|
121
|
-
|
|
122
|
-
❌ **DON'T**:
|
|
123
|
-
- Skip quality gates
|
|
124
|
-
- Use deprecated tools
|
|
125
|
-
- Ignore security warnings
|
|
126
|
-
- Mix testing frameworks
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# moai-lang-php - Working Examples
|
|
2
|
-
|
|
3
|
-
_Last updated: 2025-10-22_
|
|
4
|
-
|
|
5
|
-
## Example 1: Basic Setup
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
# Setup commands
|
|
9
|
-
# ...
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
## Example 2: TDD Workflow
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
# RED: Write failing test
|
|
16
|
-
# GREEN: Implement feature
|
|
17
|
-
# REFACTOR: Improve code
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Example 3: Quality Gate
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Run quality checks
|
|
24
|
-
# Verify coverage ≥85%
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
_For more examples, see SKILL.md reference section_
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# moai-lang-php - CLI Reference
|
|
2
|
-
|
|
3
|
-
_Last updated: 2025-10-22_
|
|
4
|
-
|
|
5
|
-
## Quick Reference
|
|
6
|
-
|
|
7
|
-
### Installation
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Installation commands
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
### Common Commands
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
# Test
|
|
17
|
-
# Lint
|
|
18
|
-
# Format
|
|
19
|
-
# Build
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Tool Versions (2025-10-22)
|
|
23
|
-
|
|
24
|
-
- **PHP**: 8.4.0
|
|
25
|
-
- **PHPUnit**: 11.5.0
|
|
26
|
-
- **Composer**: 2.8.0
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
_For detailed usage, see SKILL.md_
|
|
@@ -1,433 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
name: moai-lang-python
|
|
4
|
-
version: 2.1.0
|
|
5
|
-
created: 2025-10-22
|
|
6
|
-
updated: 2025-11-02
|
|
7
|
-
status: active
|
|
8
|
-
description: Python 3.13+ best practices with pytest 8.4.2, mypy 1.8.0, ruff 0.13.1, uv 0.9.3, and backend frameworks (FastAPI, Flask, Django).
|
|
9
|
-
keywords: [python, testing, pytest, mypy, ruff, uv, async, fastapi, flask, django, pydantic]
|
|
10
|
-
allowed-tools:
|
|
11
|
-
- Read
|
|
12
|
-
- Bash
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Python 3.13 Expert Skill
|
|
16
|
-
|
|
17
|
-
## Skill Metadata
|
|
18
|
-
|
|
19
|
-
| Field | Value |
|
|
20
|
-
| ----- | ----- |
|
|
21
|
-
| **Skill Name** | moai-lang-python |
|
|
22
|
-
| **Version** | 2.1.0 (2025-11-02) |
|
|
23
|
-
| **Python Support** | 3.13.1 (latest), 3.12.7 (LTS), 3.11.10 (maintenance) |
|
|
24
|
-
| **Allowed tools** | Read (read_file), Bash (terminal) |
|
|
25
|
-
| **Auto-load** | On demand when language keywords detected |
|
|
26
|
-
| **Trigger cues** | `.py` files, Python frameworks, TDD discussions, async patterns |
|
|
27
|
-
| **Tier** | Language / Fullstack backends (FastAPI, Flask, Django) |
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## What It Does
|
|
32
|
-
|
|
33
|
-
Provides **Python 3.13+ expertise** for modern TDD development, including:
|
|
34
|
-
|
|
35
|
-
- ✅ **Testing Framework**: pytest 8.4.2 (fixtures, asyncio, parametrization)
|
|
36
|
-
- ✅ **Code Quality**: ruff 0.13.1 (unified linter + formatter, replaces black/pylint)
|
|
37
|
-
- ✅ **Type Safety**: mypy 1.8.0 + Pydantic 2.7.0 (static + runtime validation)
|
|
38
|
-
- ✅ **Package Management**: uv 0.9.3 (10x faster than pip)
|
|
39
|
-
- ✅ **Python 3.13 Features**: PEP 695 (type params), PEP 701 (f-strings), PEP 698 (@override)
|
|
40
|
-
- ✅ **Async/Await**: asyncio.TaskGroup, context variables, concurrent patterns
|
|
41
|
-
- ✅ **Security**: Secrets module, secure hashing, SQLAlchemy 2.0.28
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## When to Use
|
|
46
|
-
|
|
47
|
-
**Automatic triggers**:
|
|
48
|
-
- Python code discussions, `.py` files, framework guidance
|
|
49
|
-
- "Writing Python tests", "How to use pytest", "Python type hints"
|
|
50
|
-
- Python SPEC implementation (`/alfred:2-run`)
|
|
51
|
-
- Async pattern requests
|
|
52
|
-
|
|
53
|
-
**Manual invocation**:
|
|
54
|
-
- Review Python code for TRUST 5 compliance
|
|
55
|
-
- Design Python microservices (FastAPI 0.115.0 recommended)
|
|
56
|
-
- Upgrade from Python 3.12 to 3.13
|
|
57
|
-
- Refactor async code to use TaskGroup
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## How It Works (Best Practices)
|
|
62
|
-
|
|
63
|
-
### 1. TDD Framework (pytest 8.4.2)
|
|
64
|
-
|
|
65
|
-
```python
|
|
66
|
-
# Test discovery & fixtures
|
|
67
|
-
import pytest
|
|
68
|
-
from src.calculator import add
|
|
69
|
-
|
|
70
|
-
def test_add_positive_numbers():
|
|
71
|
-
"""Verify addition of positive integers."""
|
|
72
|
-
assert add(2, 3) == 5
|
|
73
|
-
|
|
74
|
-
@pytest.mark.asyncio
|
|
75
|
-
async def test_async_operation():
|
|
76
|
-
"""Test async functions with pytest-asyncio."""
|
|
77
|
-
result = await async_fetch_data()
|
|
78
|
-
assert result is not None
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
**Key Points**:
|
|
82
|
-
- ✅ Use pytest 8.4.2+ (not unittest)
|
|
83
|
-
- ✅ One assertion per test (clarity)
|
|
84
|
-
- ✅ Fixtures for setup/teardown
|
|
85
|
-
- ✅ `pytest.mark.asyncio` for async tests
|
|
86
|
-
- ✅ `pytest-mock` for mocking (not mock.patch)
|
|
87
|
-
- ✅ Coverage ≥85% enforced by quality gate
|
|
88
|
-
|
|
89
|
-
**CLI Commands**:
|
|
90
|
-
```bash
|
|
91
|
-
pytest # Run all tests
|
|
92
|
-
pytest -v # Verbose output
|
|
93
|
-
pytest --cov=src --cov-report=term # Coverage report (≥85% required)
|
|
94
|
-
pytest -k "pattern" # Run matching tests
|
|
95
|
-
pytest -m asyncio # Run async tests only
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### 2. Code Quality (ruff 0.13.1 — NEW STANDARD)
|
|
99
|
-
|
|
100
|
-
**⚠️ BREAKING CHANGE**: Ruff 0.13.1 replaces black + pylint + isort. Update workflows:
|
|
101
|
-
|
|
102
|
-
```yaml
|
|
103
|
-
# OLD (deprecated)
|
|
104
|
-
- black . # Format
|
|
105
|
-
- pylint src/ # Lint
|
|
106
|
-
- isort . # Import sort
|
|
107
|
-
|
|
108
|
-
# NEW (ruff 0.13.1)
|
|
109
|
-
- ruff check . --fix # Lint + fix
|
|
110
|
-
- ruff format . # Format (replaces black)
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
**Configuration** (`pyproject.toml`):
|
|
114
|
-
```toml
|
|
115
|
-
[tool.ruff]
|
|
116
|
-
line-length = 100
|
|
117
|
-
target-version = "py313"
|
|
118
|
-
|
|
119
|
-
[tool.ruff.lint]
|
|
120
|
-
select = ["E", "F", "W"] # Errors, formatting, warnings
|
|
121
|
-
extend-select = ["I"] # Import sorting (replaces isort)
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
**CLI Commands**:
|
|
125
|
-
```bash
|
|
126
|
-
ruff check . # Lint all files
|
|
127
|
-
ruff format . # Format with auto-fix
|
|
128
|
-
ruff check --show-fixes . # Show what would be fixed
|
|
129
|
-
ruff check --select E501 . # Check specific rule (line length)
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### 3. Type Safety (mypy 1.8.0 + Pydantic 2.7.0)
|
|
133
|
-
|
|
134
|
-
**Static Type Checking** (mypy):
|
|
135
|
-
|
|
136
|
-
```python
|
|
137
|
-
from typing import override
|
|
138
|
-
|
|
139
|
-
class Parent:
|
|
140
|
-
def method(self, x: int) -> str: ...
|
|
141
|
-
|
|
142
|
-
class Child(Parent):
|
|
143
|
-
@override # NEW in Python 3.13 — mypy validates this
|
|
144
|
-
def method(self, x: int) -> str:
|
|
145
|
-
return str(x)
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
**Runtime Validation** (Pydantic 2.7.0):
|
|
149
|
-
|
|
150
|
-
```python
|
|
151
|
-
from pydantic import BaseModel, Field
|
|
152
|
-
|
|
153
|
-
class User(BaseModel):
|
|
154
|
-
id: int = Field(gt=0) # Must be > 0
|
|
155
|
-
name: str = Field(min_length=1)
|
|
156
|
-
email: str # Auto-validated as email
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**CLI Commands**:
|
|
160
|
-
```bash
|
|
161
|
-
mypy . # Run type checker
|
|
162
|
-
mypy --strict . # Strict mode (recommended)
|
|
163
|
-
mypy --show-column-numbers . # Precise error locations
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### 4. Package Management (uv 0.9.3)
|
|
167
|
-
|
|
168
|
-
**Why uv?**: 10x faster than pip, integrated with ruff + pytest
|
|
169
|
-
|
|
170
|
-
```bash
|
|
171
|
-
# Create virtual environment
|
|
172
|
-
uv venv # Create .venv/
|
|
173
|
-
source .venv/bin/activate # Activate
|
|
174
|
-
|
|
175
|
-
# Install dependencies
|
|
176
|
-
uv add pytest ruff mypy # Add to pyproject.toml
|
|
177
|
-
uv add --dev pytest-asyncio # Add as dev dependency
|
|
178
|
-
uv sync # Install all (from lock file)
|
|
179
|
-
|
|
180
|
-
# Publish
|
|
181
|
-
uv publish # Push to PyPI
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
**pyproject.toml** (uv config):
|
|
185
|
-
```toml
|
|
186
|
-
[project]
|
|
187
|
-
name = "my-project"
|
|
188
|
-
version = "2.0.0"
|
|
189
|
-
requires-python = ">=3.13"
|
|
190
|
-
|
|
191
|
-
[project.optional-dependencies]
|
|
192
|
-
dev = ["pytest>=8.4.2", "ruff>=0.13.1", "mypy>=1.8.0"]
|
|
193
|
-
|
|
194
|
-
[build-system]
|
|
195
|
-
requires = ["hatchling"]
|
|
196
|
-
build-backend = "hatchling.build"
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### 5. Async Patterns (Python 3.13)
|
|
200
|
-
|
|
201
|
-
**TaskGroup** (cleaner than `asyncio.gather`):
|
|
202
|
-
|
|
203
|
-
```python
|
|
204
|
-
import asyncio
|
|
205
|
-
|
|
206
|
-
async def main():
|
|
207
|
-
async with asyncio.TaskGroup() as tg:
|
|
208
|
-
task1 = tg.create_task(fetch_user(1))
|
|
209
|
-
task2 = tg.create_task(fetch_posts(1))
|
|
210
|
-
# Tasks run concurrently
|
|
211
|
-
# Exceptions propagate automatically (no need for gather)
|
|
212
|
-
|
|
213
|
-
asyncio.run(main())
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**Context Variables** (thread-safe in async):
|
|
217
|
-
|
|
218
|
-
```python
|
|
219
|
-
from contextvars import ContextVar
|
|
220
|
-
|
|
221
|
-
request_id = ContextVar('request_id', default=None)
|
|
222
|
-
|
|
223
|
-
async def handle_request(req_id):
|
|
224
|
-
token = request_id.set(req_id)
|
|
225
|
-
# All spawned tasks inherit this context var
|
|
226
|
-
await process_async()
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### 6. Security Best Practices
|
|
230
|
-
|
|
231
|
-
**Secrets Module** (token generation):
|
|
232
|
-
```python
|
|
233
|
-
import secrets
|
|
234
|
-
|
|
235
|
-
api_key = secrets.token_urlsafe(32) # Safe random tokens
|
|
236
|
-
nonce = secrets.token_bytes(16) # Cryptographic nonce
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
**Secure Hashing** (sha256, not md5):
|
|
240
|
-
```python
|
|
241
|
-
import hashlib
|
|
242
|
-
|
|
243
|
-
# ✅ SECURE
|
|
244
|
-
hash_obj = hashlib.sha256(b"password")
|
|
245
|
-
|
|
246
|
-
# ❌ INSECURE (removed in Python 3.13)
|
|
247
|
-
hash_obj = hashlib.md5(b"password") # ValueError!
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
---
|
|
251
|
-
|
|
252
|
-
## Python 3.13 New Features
|
|
253
|
-
|
|
254
|
-
### PEP 695 — Type Parameter Syntax
|
|
255
|
-
|
|
256
|
-
```python
|
|
257
|
-
# OLD (3.12)
|
|
258
|
-
from typing import TypeVar, Generic
|
|
259
|
-
T = TypeVar('T')
|
|
260
|
-
class Stack(Generic[T]):
|
|
261
|
-
def push(self, item: T) -> None: ...
|
|
262
|
-
|
|
263
|
-
# NEW (3.13)
|
|
264
|
-
class Stack[T]:
|
|
265
|
-
def push(self, item: T) -> None: ...
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### PEP 701 — Improved F-Strings
|
|
269
|
-
|
|
270
|
-
```python
|
|
271
|
-
# NEW: Nested f-strings, arbitrary expressions
|
|
272
|
-
user = {"name": "Alice", "age": 30}
|
|
273
|
-
print(f"User: {user['name']}, Age: {user['age']}") # Works!
|
|
274
|
-
|
|
275
|
-
# Nested f-strings
|
|
276
|
-
x = 10
|
|
277
|
-
print(f"Result: {f'{x:>10}'}") # Works in 3.13!
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
### PEP 698 — Override Decorator
|
|
281
|
-
|
|
282
|
-
```python
|
|
283
|
-
from typing import override
|
|
284
|
-
|
|
285
|
-
class Parent:
|
|
286
|
-
def method(self) -> None: ...
|
|
287
|
-
|
|
288
|
-
class Child(Parent):
|
|
289
|
-
@override # mypy checks this is actually overriding
|
|
290
|
-
def method(self) -> None: ...
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
## Example Workflow
|
|
296
|
-
|
|
297
|
-
**Setup** (uv + Python 3.13):
|
|
298
|
-
```bash
|
|
299
|
-
uv venv --python 3.13 # Create venv with Python 3.13
|
|
300
|
-
source .venv/bin/activate
|
|
301
|
-
uv add pytest ruff mypy fastapi pydantic
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**TDD Loop** (pytest):
|
|
305
|
-
```bash
|
|
306
|
-
pytest # RED: Watch tests fail
|
|
307
|
-
# [implement code]
|
|
308
|
-
pytest # GREEN: Watch tests pass
|
|
309
|
-
ruff check --fix . # REFACTOR: Fix code quality
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**Quality Gate** (before commit):
|
|
313
|
-
```bash
|
|
314
|
-
pytest --cov=src --cov-report=term # Coverage ≥85%?
|
|
315
|
-
ruff check . # Lint pass?
|
|
316
|
-
mypy --strict . # Type check pass?
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
---
|
|
320
|
-
|
|
321
|
-
## Tool Version Matrix (2025-11-02)
|
|
322
|
-
|
|
323
|
-
| Tool | Version | Purpose | Status |
|
|
324
|
-
|------|---------|---------|--------|
|
|
325
|
-
| **Python** | 3.13.1 | Runtime | ✅ Latest |
|
|
326
|
-
| **pytest** | 8.4.2 | Testing | ✅ Current |
|
|
327
|
-
| **ruff** | 0.13.1 | Lint/Format | ✅ New standard |
|
|
328
|
-
| **mypy** | 1.8.0 | Type checking | ✅ Current |
|
|
329
|
-
| **uv** | 0.9.3 | Package manager | ✅ Recommended |
|
|
330
|
-
| **FastAPI** | 0.115.0 | API framework | ✅ Latest |
|
|
331
|
-
| **Flask** | 3.1.2 | Micro-framework | ✅ Current |
|
|
332
|
-
| **Django** | 5.2.7 LTS | Fullstack framework | ✅ LTS |
|
|
333
|
-
| **Pydantic** | 2.7.0 | Validation | ✅ Latest |
|
|
334
|
-
| **SQLAlchemy** | 2.0.28 | ORM | ✅ Latest |
|
|
335
|
-
|
|
336
|
-
---
|
|
337
|
-
|
|
338
|
-
## Inputs
|
|
339
|
-
|
|
340
|
-
- Python source directories (e.g., `src/`, `app/`)
|
|
341
|
-
- Configuration files (`pyproject.toml`, `pytest.ini`)
|
|
342
|
-
- Test suites and sample data
|
|
343
|
-
- Existing CI/CD workflows
|
|
344
|
-
|
|
345
|
-
## Outputs
|
|
346
|
-
|
|
347
|
-
- Test/lint execution plan for Python 3.13
|
|
348
|
-
- Code review checklist (TRUST 5 principles)
|
|
349
|
-
- Migration guide (3.12 → 3.13)
|
|
350
|
-
- Performance optimization recommendations
|
|
351
|
-
|
|
352
|
-
## Failure Modes
|
|
353
|
-
|
|
354
|
-
- ❌ Python 3.13 not installed → Recommend `uv venv --python 3.13`
|
|
355
|
-
- ❌ Dependencies missing → Run `uv sync`
|
|
356
|
-
- ❌ Tests fail → Use `debug-helper` agent for triage
|
|
357
|
-
|
|
358
|
-
---
|
|
359
|
-
|
|
360
|
-
## Inputs
|
|
361
|
-
|
|
362
|
-
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
363
|
-
- Language-specific build/test configuration files (e.g. `pyproject.toml`).
|
|
364
|
-
- Relevant test suites and sample data.
|
|
365
|
-
|
|
366
|
-
## Outputs
|
|
367
|
-
|
|
368
|
-
- Test/lint execution plan tailored to Python 3.13+.
|
|
369
|
-
- TRUST 5 review checkpoints (coverage, linting, types, security, tags).
|
|
370
|
-
- Migration path from older Python versions.
|
|
371
|
-
|
|
372
|
-
## Failure Modes
|
|
373
|
-
|
|
374
|
-
- When Python 3.13 runtime is not installed.
|
|
375
|
-
- When project dependencies are not in pyproject.toml.
|
|
376
|
-
- When test coverage falls below 85%.
|
|
377
|
-
|
|
378
|
-
## Dependencies
|
|
379
|
-
|
|
380
|
-
- Access to the project file is required using the Read/Bash tools.
|
|
381
|
-
- Integration with `moai-foundation-langs` for language detection.
|
|
382
|
-
- Integration with `moai-foundation-trust` for quality gate enforcement.
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
## References (Latest Documentation)
|
|
387
|
-
|
|
388
|
-
- **Python 3.13**: https://docs.python.org/3.13/ (accessed 2025-10-22)
|
|
389
|
-
- **pytest 8.4.2**: https://docs.pytest.org/en/stable/ (accessed 2025-10-22)
|
|
390
|
-
- **ruff 0.13.1**: https://docs.astral.sh/ruff/ (accessed 2025-10-22)
|
|
391
|
-
- **mypy 1.8.0**: https://mypy.readthedocs.io/ (accessed 2025-10-22)
|
|
392
|
-
- **uv 0.9.3**: https://docs.astral.sh/uv/ (accessed 2025-10-22)
|
|
393
|
-
- **FastAPI 0.115.0**: https://fastapi.tiangolo.com/ (accessed 2025-10-22)
|
|
394
|
-
- **Pydantic 2.7.0**: https://docs.pydantic.dev/ (accessed 2025-10-22)
|
|
395
|
-
|
|
396
|
-
---
|
|
397
|
-
|
|
398
|
-
## Changelog
|
|
399
|
-
|
|
400
|
-
- **v2.0.0** (2025-10-22): Major update with Python 3.13 support, ruff 0.13.1 standard, uv 0.9.3 package manager, async/await TaskGroup patterns, security best practices, PEP 695/701/698 features
|
|
401
|
-
- **v1.0.0** (2025-03-29): Initial Skill with pytest, mypy, ruff, black, uv coverage
|
|
402
|
-
|
|
403
|
-
---
|
|
404
|
-
|
|
405
|
-
## Works Well With
|
|
406
|
-
|
|
407
|
-
- `moai-foundation-trust` (coverage verification, quality gates)
|
|
408
|
-
- `moai-alfred-code-reviewer` (Python-specific code review)
|
|
409
|
-
- `moai-alfred-debugger-pro` (Python debugging with pdb, pudb)
|
|
410
|
-
- `moai-lang-sql` (SQLAlchemy integration)
|
|
411
|
-
- `moai-domain-backend` (FastAPI microservices)
|
|
412
|
-
|
|
413
|
-
---
|
|
414
|
-
|
|
415
|
-
## Best Practices
|
|
416
|
-
|
|
417
|
-
✅ **DO**:
|
|
418
|
-
- Use ruff 0.13.1 as linter + formatter (not black + pylint)
|
|
419
|
-
- Specify exact Python version: `requires-python = "^3.13"`
|
|
420
|
-
- Use pytest 8.4.2 for all tests
|
|
421
|
-
- Enable type checking: mypy --strict
|
|
422
|
-
- Run quality gate before each commit
|
|
423
|
-
- Use uv for package management (10x faster)
|
|
424
|
-
- Add docstrings to public APIs
|
|
425
|
-
- Use f-strings (PEP 701 supports nested expressions)
|
|
426
|
-
|
|
427
|
-
❌ **DON'T**:
|
|
428
|
-
- Use black + pylint (deprecated, use ruff instead)
|
|
429
|
-
- Use md5 hashing (removed in Python 3.13)
|
|
430
|
-
- Mix pytest with unittest
|
|
431
|
-
- Ignore coverage requirements (<85% fails)
|
|
432
|
-
- Use old type hint syntax (use PEP 695 `class Foo[T]:`)
|
|
433
|
-
- Use `asyncio.gather` without error handling (use TaskGroup instead)
|