moai-adk 0.25.4__py3-none-any.whl → 0.41.0__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 +2 -5
- moai_adk/__main__.py +114 -82
- moai_adk/cli/__init__.py +6 -1
- moai_adk/cli/commands/__init__.py +1 -3
- moai_adk/cli/commands/analyze.py +5 -16
- moai_adk/cli/commands/doctor.py +6 -18
- moai_adk/cli/commands/init.py +60 -126
- moai_adk/cli/commands/language.py +14 -35
- moai_adk/cli/commands/status.py +9 -15
- moai_adk/cli/commands/update.py +1560 -190
- moai_adk/cli/prompts/init_prompts.py +112 -56
- moai_adk/cli/spec_status.py +263 -0
- moai_adk/cli/ui/__init__.py +44 -0
- moai_adk/cli/ui/progress.py +422 -0
- moai_adk/cli/ui/prompts.py +389 -0
- moai_adk/cli/ui/theme.py +129 -0
- moai_adk/cli/worktree/__init__.py +27 -0
- moai_adk/cli/worktree/__main__.py +31 -0
- moai_adk/cli/worktree/cli.py +683 -0
- moai_adk/cli/worktree/exceptions.py +89 -0
- moai_adk/cli/worktree/manager.py +493 -0
- moai_adk/cli/worktree/models.py +65 -0
- moai_adk/cli/worktree/registry.py +422 -0
- moai_adk/core/PHASE2_OPTIMIZATIONS.md +467 -0
- moai_adk/core/analysis/session_analyzer.py +17 -56
- moai_adk/core/claude_integration.py +26 -54
- moai_adk/core/command_helpers.py +10 -10
- moai_adk/core/comprehensive_monitoring_system.py +1183 -0
- moai_adk/core/config/migration.py +19 -9
- moai_adk/core/config/unified.py +610 -0
- moai_adk/core/context_manager.py +6 -12
- moai_adk/core/enterprise_features.py +1404 -0
- moai_adk/core/error_recovery_system.py +747 -116
- moai_adk/core/event_driven_hook_system.py +1371 -0
- moai_adk/core/git/__init__.py +8 -0
- moai_adk/core/git/branch_manager.py +3 -11
- moai_adk/core/git/checkpoint.py +1 -3
- moai_adk/core/git/conflict_detector.py +422 -0
- moai_adk/core/git/event_detector.py +16 -5
- moai_adk/core/git/manager.py +91 -1
- moai_adk/core/input_validation_middleware.py +1006 -0
- moai_adk/core/integration/engine.py +6 -18
- moai_adk/core/integration/integration_tester.py +10 -9
- moai_adk/core/integration/utils.py +1 -1
- moai_adk/core/issue_creator.py +10 -28
- moai_adk/core/jit_context_loader.py +956 -0
- moai_adk/core/jit_enhanced_hook_manager.py +1987 -0
- moai_adk/core/language_config_resolver.py +578 -0
- moai_adk/core/language_validator.py +28 -41
- moai_adk/core/mcp/setup.py +15 -12
- moai_adk/core/merge/__init__.py +9 -0
- moai_adk/core/merge/analyzer.py +666 -0
- moai_adk/core/migration/alfred_to_moai_migrator.py +389 -0
- moai_adk/core/migration/backup_manager.py +131 -12
- moai_adk/core/migration/custom_element_scanner.py +358 -0
- moai_adk/core/migration/file_migrator.py +181 -18
- moai_adk/core/migration/interactive_checkbox_ui.py +499 -0
- moai_adk/core/migration/selective_restorer.py +470 -0
- moai_adk/core/migration/template_utils.py +74 -0
- moai_adk/core/migration/user_selection_ui.py +338 -0
- moai_adk/core/migration/version_detector.py +127 -27
- moai_adk/core/migration/version_migrator.py +47 -12
- moai_adk/core/performance/cache_system.py +8 -10
- moai_adk/core/phase_optimized_hook_scheduler.py +879 -0
- moai_adk/core/project/backup_utils.py +9 -1
- moai_adk/core/project/checker.py +2 -4
- moai_adk/core/project/detector.py +1 -3
- moai_adk/core/project/initializer.py +142 -93
- moai_adk/core/project/phase_executor.py +130 -111
- moai_adk/core/project/validator.py +6 -12
- moai_adk/core/quality/trust_checker.py +39 -37
- moai_adk/core/realtime_monitoring_dashboard.py +1724 -0
- moai_adk/core/robust_json_parser.py +611 -0
- moai_adk/core/rollback_manager.py +116 -164
- moai_adk/core/session_manager.py +10 -26
- moai_adk/core/skill_loading_system.py +579 -0
- moai_adk/core/spec_status_manager.py +64 -74
- moai_adk/core/template/backup.py +48 -22
- moai_adk/core/template/config.py +142 -45
- moai_adk/core/template/merger.py +45 -27
- moai_adk/core/template/processor.py +391 -152
- moai_adk/core/template_engine.py +83 -41
- moai_adk/core/template_variable_synchronizer.py +431 -0
- moai_adk/core/unified_permission_manager.py +745 -0
- moai_adk/core/user_behavior_analytics.py +851 -0
- moai_adk/core/version_sync.py +477 -0
- moai_adk/foundation/__init__.py +56 -0
- moai_adk/foundation/backend.py +1027 -0
- moai_adk/foundation/database.py +1115 -0
- moai_adk/foundation/devops.py +1585 -0
- moai_adk/foundation/ears.py +431 -0
- moai_adk/foundation/frontend.py +870 -0
- moai_adk/foundation/git/commit_templates.py +4 -12
- moai_adk/foundation/git.py +376 -0
- moai_adk/foundation/langs.py +484 -0
- moai_adk/foundation/ml_ops.py +1162 -0
- moai_adk/foundation/testing.py +1524 -0
- moai_adk/foundation/trust/trust_principles.py +23 -72
- moai_adk/foundation/trust/validation_checklist.py +57 -162
- moai_adk/project/__init__.py +0 -0
- moai_adk/project/configuration.py +1084 -0
- moai_adk/project/documentation.py +566 -0
- moai_adk/project/schema.py +447 -0
- moai_adk/statusline/alfred_detector.py +1 -3
- moai_adk/statusline/config.py +18 -6
- moai_adk/statusline/enhanced_output_style_detector.py +23 -15
- moai_adk/statusline/main.py +109 -15
- moai_adk/statusline/renderer.py +85 -69
- moai_adk/statusline/update_checker.py +3 -9
- moai_adk/statusline/version_reader.py +140 -46
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +716 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +480 -0
- moai_adk/templates/.claude/agents/moai/builder-command.md +1194 -0
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +753 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +672 -0
- moai_adk/templates/.claude/agents/moai/expert-backend.md +903 -0
- moai_adk/templates/.claude/agents/moai/expert-database.md +782 -0
- moai_adk/templates/.claude/agents/moai/expert-debug.md +407 -0
- moai_adk/templates/.claude/agents/moai/expert-devops.md +722 -0
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +727 -0
- moai_adk/templates/.claude/agents/moai/expert-performance.md +661 -0
- moai_adk/templates/.claude/agents/moai/expert-refactoring.md +218 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +525 -0
- moai_adk/templates/.claude/agents/moai/expert-testing.md +737 -0
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +1047 -0
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +438 -0
- moai_adk/templates/.claude/agents/moai/manager-docs.md +578 -0
- moai_adk/templates/.claude/agents/moai/manager-git.md +1092 -0
- moai_adk/templates/.claude/agents/moai/manager-project.md +897 -0
- moai_adk/templates/.claude/agents/moai/manager-quality.md +640 -0
- moai_adk/templates/.claude/agents/moai/manager-spec.md +815 -0
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +786 -0
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +797 -0
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +464 -0
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +1588 -0
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +795 -0
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +475 -0
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +1038 -0
- moai_adk/templates/.claude/commands/moai/0-project.md +1339 -0
- moai_adk/templates/.claude/commands/moai/1-plan.md +1367 -0
- moai_adk/templates/.claude/commands/moai/2-run.md +825 -0
- moai_adk/templates/.claude/commands/moai/3-sync.md +1358 -0
- moai_adk/templates/.claude/commands/moai/9-feedback.md +320 -0
- moai_adk/templates/.claude/hooks/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/__init__.py +8 -0
- moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +247 -0
- moai_adk/templates/.claude/hooks/moai/lib/common.py +161 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +444 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +639 -0
- moai_adk/templates/.claude/hooks/moai/lib/example_config.json +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +590 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +407 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +104 -0
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +219 -0
- moai_adk/templates/.claude/hooks/moai/lib/project.py +777 -0
- moai_adk/templates/.claude/hooks/moai/lib/test_hooks_improvements.py +443 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +160 -0
- moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +804 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +542 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +256 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +253 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +307 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +231 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +866 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +1125 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +643 -0
- moai_adk/templates/.claude/output-styles/moai/yoda.md +359 -0
- moai_adk/templates/.claude/settings.json +209 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +302 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +431 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/reference.md +139 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/batch_generate.py +560 -0
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/scripts/generate_image.py +362 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +302 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +252 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +56 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +120 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +152 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +185 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +207 -0
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +234 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +324 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/examples.md +718 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +326 -0
- moai_adk/templates/.claude/skills/moai-domain-database/examples.md +830 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/README.md +53 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/mongodb.md +231 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/postgresql.md +169 -0
- moai_adk/templates/.claude/skills/moai-domain-database/modules/redis.md +262 -0
- moai_adk/templates/.claude/skills/moai-domain-database/reference.md +545 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +194 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/examples.md +968 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/component-architecture.md +723 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/nextjs16-patterns.md +713 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/performance-optimization.md +694 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/react19-patterns.md +591 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/state-management.md +680 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/modules/vue35-patterns.md +802 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/reference.md +664 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/SKILL.md +454 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/examples.md +560 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/accessibility-wcag.md +260 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/component-architecture.md +228 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/icon-libraries.md +401 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/theming-system.md +373 -0
- moai_adk/templates/.claude/skills/moai-domain-uiux/reference.md +243 -0
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +280 -0
- moai_adk/templates/.claude/skills/moai-formats-data/examples.md +804 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +327 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/SKILL-MODULARIZATION-TEMPLATE.md +278 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/caching-performance.md +459 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/data-validation.md +485 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/json-optimization.md +374 -0
- moai_adk/templates/.claude/skills/moai-formats-data/modules/toon-encoding.md +308 -0
- moai_adk/templates/.claude/skills/moai-formats-data/reference.md +585 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +243 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/examples.md +732 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/best-practices-checklist.md +616 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-cli-reference-official.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-custom-slash-commands-official.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-devcontainers-official.md +381 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-discover-plugins-official.md +379 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-headless-official.md +378 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-hooks-official.md +670 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-iam-official.md +635 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-memory-official.md +543 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugin-marketplaces-official.md +308 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-plugins-official.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sandboxing-official.md +282 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-settings-official.md +663 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-skills-official.md +467 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-statusline-official.md +293 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/claude-code-sub-agents-official.md +420 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/complete-configuration-guide.md +175 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-examples.md +1674 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/skill-formatting-guide.md +729 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-examples.md +1513 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-formatting-guide.md +1086 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/sub-agents/sub-agent-integration-patterns.md +1100 -0
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference.md +209 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +449 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/examples.md +1048 -0
- moai_adk/templates/.claude/skills/moai-foundation-context/reference.md +246 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +414 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/examples.md +358 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/README.md +296 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/agents-reference.md +359 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/commands-reference.md +432 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-advanced.md +279 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-implementation.md +267 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/delegation-patterns.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/execution-rules.md +687 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/modular-system.md +665 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/progressive-disclosure.md +649 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-ears-format.md +200 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-first-tdd.md +171 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/token-optimization.md +708 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +239 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-implementation.md +244 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-validation.md +219 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/reference.md +478 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/SKILL.md +311 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/examples.md +228 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/assumption-matrix.md +80 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/cognitive-bias.md +199 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/first-principles.md +140 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/modules/trade-off-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-foundation-philosopher/reference.md +157 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +363 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/examples.md +1232 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/best-practices.md +261 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/integration-patterns.md +194 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/proactive-analysis.md +229 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/modules/trust5-validation.md +169 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/reference.md +1266 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/scripts/quality-gate.sh +668 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/github-actions-quality.yml +481 -0
- moai_adk/templates/.claude/skills/moai-foundation-quality/templates/quality-config.yaml +519 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +430 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/modules/advanced-patterns.md +401 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +193 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/examples.md +585 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/aspnet-core.md +627 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/blazor-components.md +767 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/cqrs-validation.md +626 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/csharp12-features.md +580 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/modules/efcore-patterns.md +622 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/reference.md +403 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +394 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/modules/advanced-patterns.md +531 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +472 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/examples.md +1090 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/reference.md +686 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-lang-go/examples.md +919 -0
- moai_adk/templates/.claude/skills/moai-lang-go/reference.md +737 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +386 -0
- moai_adk/templates/.claude/skills/moai-lang-java/examples.md +864 -0
- moai_adk/templates/.claude/skills/moai-lang-java/reference.md +291 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +418 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/examples.md +973 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/reference.md +1543 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +383 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/examples.md +1006 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/reference.md +562 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +504 -0
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-php/modules/advanced-patterns.md +538 -0
- moai_adk/templates/.claude/skills/moai-lang-php/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-python/examples.md +977 -0
- moai_adk/templates/.claude/skills/moai-lang-python/reference.md +804 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +389 -0
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-r/modules/advanced-patterns.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-r/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +432 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/modules/advanced-patterns.md +309 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/modules/testing-patterns.md +306 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/reference.md +17 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +377 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/examples.md +659 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/reference.md +504 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +211 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/examples.md +633 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/akka-actors.md +479 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/cats-effect.md +489 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/functional-programming.md +460 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/spark-data.md +498 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/modules/zio-patterns.md +541 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/reference.md +423 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +191 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/examples.md +918 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/combine-reactive.md +256 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/concurrency.md +270 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/swift6-features.md +265 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/modules/swiftui-patterns.md +314 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/reference.md +672 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +364 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/examples.md +1089 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/reference.md +731 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +164 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/examples.md +270 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/modules/advanced-patterns.md +465 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/modules/optimization.md +440 -0
- moai_adk/templates/.claude/skills/moai-library-mermaid/reference.md +228 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +335 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/examples.md +592 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-deployment-patterns.md +182 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +336 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +350 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/content-architecture-optimization.md +162 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/deployment.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/framework-core-configuration.md +186 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/i18n-setup.md +55 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/mdx-components.md +52 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/optimization.md +303 -0
- moai_adk/templates/.claude/skills/moai-library-nextra/reference.md +379 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/examples.md +575 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/advanced-patterns.md +394 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/optimization.md +278 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-components.md +457 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/modules/shadcn-theming.md +373 -0
- moai_adk/templates/.claude/skills/moai-library-shadcn/reference.md +74 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +283 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/examples.md +2446 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/adaptive-mfa.md +233 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/akamai-integration.md +214 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/application-credentials.md +280 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-log-events.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/attack-protection-overview.md +140 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/bot-detection.md +144 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/breached-password-detection.md +187 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/brute-force-protection.md +189 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/certifications.md +282 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/compliance-overview.md +263 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/continuous-session-protection.md +307 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/customize-mfa.md +177 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/dpop-implementation.md +283 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/fapi-implementation.md +259 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/gdpr-compliance.md +313 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/guardian-configuration.md +269 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/highly-regulated-identity.md +272 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/jwt-fundamentals.md +248 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mdl-verification.md +210 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-api-management.md +278 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-factors.md +226 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mfa-overview.md +174 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/mtls-sender-constraining.md +316 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/ropg-flow-mfa.md +216 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-center.md +325 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/security-guidance.md +277 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/state-parameters.md +177 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/step-up-authentication.md +251 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/suspicious-ip-throttling.md +240 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/tenant-access-control.md +179 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/modules/webauthn-fido.md +235 -0
- moai_adk/templates/.claude/skills/moai-platform-auth0/reference.md +224 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/SKILL.md +425 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/modules/advanced-patterns.md +417 -0
- moai_adk/templates/.claude/skills/moai-platform-clerk/reference.md +273 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/SKILL.md +228 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/examples.md +506 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/auth-integration.md +421 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/file-storage.md +474 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/reactive-queries.md +302 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/modules/server-functions.md +452 -0
- moai_adk/templates/.claude/skills/moai-platform-convex/reference.md +385 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/SKILL.md +249 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/examples.md +514 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/custom-claims.md +374 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/phone-auth.md +372 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/modules/social-auth.md +339 -0
- moai_adk/templates/.claude/skills/moai-platform-firebase-auth/reference.md +382 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/SKILL.md +230 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/examples.md +445 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/offline-cache.md +392 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/realtime-listeners.md +441 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/security-rules.md +352 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/modules/transactions.md +452 -0
- moai_adk/templates/.claude/skills/moai-platform-firestore/reference.md +322 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/SKILL.md +205 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/examples.md +470 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/auto-scaling.md +349 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/branching-workflows.md +354 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/connection-pooling.md +412 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/modules/pitr-backups.md +458 -0
- moai_adk/templates/.claude/skills/moai-platform-neon/reference.md +272 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/SKILL.md +223 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/examples.md +539 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/docker-deployment.md +261 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/multi-service.md +291 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/networking-domains.md +338 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/modules/volumes-storage.md +353 -0
- moai_adk/templates/.claude/skills/moai-platform-railway/reference.md +374 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/SKILL.md +206 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/examples.md +502 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/auth-integration.md +384 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/edge-functions.md +371 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/postgresql-pgvector.md +231 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/realtime-presence.md +354 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/row-level-security.md +286 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/storage-cdn.md +319 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/modules/typescript-patterns.md +453 -0
- moai_adk/templates/.claude/skills/moai-platform-supabase/reference.md +284 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/SKILL.md +209 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/examples.md +502 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/analytics-speed.md +348 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/deployment-config.md +344 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/edge-functions.md +222 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/isr-caching.md +306 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/modules/kv-storage.md +399 -0
- moai_adk/templates/.claude/skills/moai-platform-vercel/reference.md +360 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/SKILL.md +473 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/examples.md +621 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/modules/migration.md +341 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/modules/validation.md +373 -0
- moai_adk/templates/.claude/skills/moai-plugin-builder/reference.md +464 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/SKILL.md +306 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/examples.md +1099 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/language-specific.md +307 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/pattern-syntax.md +237 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/refactoring-patterns.md +260 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/modules/security-rules.md +239 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/reference.md +288 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/go.yml +90 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/python.yml +101 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/languages/typescript.yml +83 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/complexity-check.yml +94 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/quality/deprecated-apis.yml +84 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/secrets-detection.yml +89 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/sql-injection.yml +45 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/security/xss-prevention.yml +50 -0
- moai_adk/templates/.claude/skills/moai-tool-ast-grep/rules/sgconfig.yml +54 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/SKILL.md +214 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/examples.md +697 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/index.md +96 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/acp.md +115 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/agents.md +241 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/commands.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/custom-tools.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/formatters.md +164 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/keybinds.md +150 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/lsp-servers.md +156 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/mcp-servers.md +214 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/models.md +197 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/permissions.md +162 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/rules.md +129 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/skills.md +192 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/themes.md +200 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/configure/tools.md +169 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/config.md +211 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/enterprise.md +68 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/intro.md +127 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/migration-1.0.md +82 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/network.md +72 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/providers.md +310 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/core/troubleshooting.md +124 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/ecosystem.md +75 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/plugins.md +218 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/sdk.md +266 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/develop/server.md +207 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/cli.md +159 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/github.md +181 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/gitlab.md +122 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/ide.md +74 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/share.md +106 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/tui.md +129 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/modules/usage/zen.md +118 -0
- moai_adk/templates/.claude/skills/moai-tool-opencode/reference.md +790 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/SKILL.md +211 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/examples.md +544 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/modules/advanced-patterns.md +379 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/modules/optimization.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-jit-docs/reference.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/README.md +190 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +260 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/examples.md +547 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/reference.md +275 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/config-schema.json +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +1434 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/config-template.json +71 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/product-template.md +44 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/structure-template.md +48 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/doc-templates/tech-template.md +92 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/config-manager-setup.json +109 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/language-initializer.json +228 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/menu-project-config.json +130 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/project-batch-questions.json +97 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/templates/question-templates/spec-workflow-setup.json +150 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +336 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/examples.md +900 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
- moai_adk/templates/.claude/skills/moai-workflow-spec/reference.md +704 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +386 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/examples.md +552 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/code-templates.md +124 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/feedback-templates.md +100 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/modules/template-optimizer.md +138 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/reference.md +346 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/LICENSE.txt +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +307 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/ai-powered-testing.py +294 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/console_logging.py +35 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/element_discovery.py +40 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples/static_html_automation.py +34 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/examples.md +672 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +269 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/advanced-patterns.md +576 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +302 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/context7-integration.md +286 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/review-workflows.md +500 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/relevance-analysis.md +154 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/safety-analysis.md +148 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/scoring-algorithms.md +196 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/timeliness-analysis.md +168 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/truthfulness-analysis.md +136 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework/usability-analysis.md +153 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review/trust5-framework.md +257 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/automated-code-review.md +263 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/analysis-patterns.md +340 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/core-classes.md +299 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/code-review/tool-integration.md +380 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/debugging-workflows.md +451 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/debugging/error-analysis.md +442 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/optimization.md +505 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md +473 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/profiling-techniques.md +481 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/ai-optimization.md +241 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/bottleneck-detection.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/optimization-plan.md +315 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/profiler-core.md +277 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization/real-time-monitoring.md +187 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance-optimization.md +327 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/quality-metrics.md +415 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/ai-workflows.md +620 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/refactoring/patterns.md +692 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/security-analysis.md +429 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/smart-refactoring.md +313 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/static-analysis.md +438 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd/core-classes.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/advanced-features.md +494 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/red-green-refactor.md +316 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-generation.md +471 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7/test-patterns.md +371 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/tdd-context7.md +265 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference/playwright-best-practices.md +57 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/reference.md +440 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/scripts/with_server.py +218 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/templates/alfred-integration.md +376 -0
- moai_adk/templates/.claude/skills/moai-workflow-testing/workflows/enterprise-testing-workflow.py +571 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +227 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/examples.md +606 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/integration-patterns.md +149 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/moai-adk-integration.md +245 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-advanced.md +310 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-development.md +202 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/parallel-workflows.md +302 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/registry-architecture.md +271 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/resource-optimization.md +300 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/tools-integration.md +280 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/troubleshooting.md +397 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-commands.md +296 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/modules/worktree-management.md +217 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/reference.md +357 -0
- moai_adk/templates/.git-hooks/pre-commit +103 -41
- moai_adk/templates/.git-hooks/pre-push +244 -31
- moai_adk/templates/.github/workflows/ci-universal.yml +513 -0
- moai_adk/templates/.github/workflows/security-secrets-check.yml +179 -0
- moai_adk/templates/.gitignore +181 -44
- moai_adk/templates/.lsp.json +152 -0
- moai_adk/templates/.mcp.json +6 -15
- moai_adk/templates/.moai/config/config.yaml +58 -0
- moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
- moai_adk/templates/.moai/config/questions/_schema.yaml +174 -0
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +259 -0
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +107 -0
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +79 -0
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +632 -0
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +183 -0
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +96 -0
- moai_adk/templates/.moai/config/sections/git-strategy.yaml +116 -0
- moai_adk/templates/.moai/config/sections/language.yaml +11 -0
- moai_adk/templates/.moai/config/sections/project.yaml +13 -0
- moai_adk/templates/.moai/config/sections/quality.yaml +18 -0
- moai_adk/templates/.moai/config/sections/system.yaml +24 -0
- moai_adk/templates/.moai/config/sections/user.yaml +5 -0
- moai_adk/templates/.moai/config/statusline-config.yaml +92 -0
- moai_adk/templates/.moai/scripts/setup-glm.py +136 -0
- moai_adk/templates/CLAUDE.md +804 -499
- moai_adk/utils/__init__.py +24 -1
- moai_adk/utils/banner.py +7 -10
- moai_adk/utils/common.py +49 -30
- moai_adk/utils/link_validator.py +4 -12
- moai_adk/utils/safe_file_reader.py +2 -6
- moai_adk/utils/timeout.py +160 -0
- moai_adk/utils/toon_utils.py +256 -0
- moai_adk/version.py +22 -0
- moai_adk-0.41.0.dist-info/METADATA +3274 -0
- moai_adk-0.41.0.dist-info/RECORD +683 -0
- {moai_adk-0.25.4.dist-info → moai_adk-0.41.0.dist-info}/WHEEL +1 -1
- {moai_adk-0.25.4.dist-info → moai_adk-0.41.0.dist-info}/entry_points.txt +1 -0
- moai_adk/cli/commands/backup.py +0 -82
- moai_adk/cli/commands/improve_user_experience.py +0 -348
- moai_adk/cli/commands/migrate.py +0 -158
- moai_adk/cli/commands/validate_links.py +0 -118
- moai_adk/core/config/auto_spec_config.py +0 -346
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -925
- moai_adk/core/spec/confidence_scoring.py +0 -749
- moai_adk/core/spec/ears_template_engine.py +0 -1182
- moai_adk/core/spec/quality_validator.py +0 -721
- moai_adk/templates/.github/workflows/moai-gitflow.yml +0 -413
- moai_adk/templates/.github/workflows/moai-release-create.yml +0 -100
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +0 -188
- moai_adk/utils/user_experience.py +0 -531
- moai_adk-0.25.4.dist-info/METADATA +0 -2279
- moai_adk-0.25.4.dist-info/RECORD +0 -112
- {moai_adk-0.25.4.dist-info → moai_adk-0.41.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,362 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Nano Banana Pro - Single Image Generation Script
|
|
4
|
+
|
|
5
|
+
Generates images using the gemini-3-pro-image-preview model (Nano Banana Pro).
|
|
6
|
+
This script is the canonical implementation for single image generation tasks.
|
|
7
|
+
|
|
8
|
+
Features:
|
|
9
|
+
- 1K, 2K, 4K resolution support
|
|
10
|
+
- 10 aspect ratios (1:1, 16:9, etc.)
|
|
11
|
+
- Style prefix support for consistent aesthetics
|
|
12
|
+
- Exponential backoff retry for API quota errors
|
|
13
|
+
- Google Search grounding integration
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
python generate_image.py -p "A futuristic cityscape" -o city.png
|
|
17
|
+
python generate_image.py -p "Dashboard UI" -o ui.png -r 4K -a 16:9
|
|
18
|
+
python generate_image.py -p "Logo design" -o logo.png --style "minimalist, vector"
|
|
19
|
+
|
|
20
|
+
Environment Variables Required:
|
|
21
|
+
GOOGLE_API_KEY - Your Google AI Studio API key
|
|
22
|
+
|
|
23
|
+
Model: gemini-3-pro-image-preview (hardcoded)
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
import argparse
|
|
27
|
+
import os
|
|
28
|
+
import random
|
|
29
|
+
import sys
|
|
30
|
+
import time
|
|
31
|
+
from datetime import datetime
|
|
32
|
+
from pathlib import Path
|
|
33
|
+
from typing import Optional
|
|
34
|
+
|
|
35
|
+
try:
|
|
36
|
+
from google import genai
|
|
37
|
+
from google.genai import types
|
|
38
|
+
except ImportError:
|
|
39
|
+
print("Error: google-genai package not installed.")
|
|
40
|
+
print("Install with: pip install google-genai")
|
|
41
|
+
sys.exit(1)
|
|
42
|
+
|
|
43
|
+
try:
|
|
44
|
+
from dotenv import load_dotenv
|
|
45
|
+
|
|
46
|
+
load_dotenv()
|
|
47
|
+
except ImportError:
|
|
48
|
+
pass # dotenv is optional
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# Fixed model - Nano Banana Pro
|
|
52
|
+
MODEL_NAME = "gemini-3-pro-image-preview"
|
|
53
|
+
|
|
54
|
+
# Supported configurations
|
|
55
|
+
SUPPORTED_ASPECT_RATIOS = ["1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9"]
|
|
56
|
+
SUPPORTED_RESOLUTIONS = ["1K", "2K", "4K"] # Must be uppercase
|
|
57
|
+
|
|
58
|
+
# Retry configuration
|
|
59
|
+
MAX_RETRIES = 5
|
|
60
|
+
BASE_DELAY = 2.0
|
|
61
|
+
MAX_DELAY = 60.0
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def get_api_key() -> str:
|
|
65
|
+
"""Get API key from environment variable."""
|
|
66
|
+
api_key = os.getenv("GOOGLE_API_KEY")
|
|
67
|
+
if not api_key:
|
|
68
|
+
print("Error: GOOGLE_API_KEY environment variable not set.")
|
|
69
|
+
print("Set up your API key:")
|
|
70
|
+
print(" 1. Get your key from https://aistudio.google.com/apikey")
|
|
71
|
+
print(" 2. Create .env file with: GOOGLE_API_KEY=your_key_here")
|
|
72
|
+
print(" 3. Or set environment variable: export GOOGLE_API_KEY=your_key_here")
|
|
73
|
+
sys.exit(1)
|
|
74
|
+
return api_key
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def validate_aspect_ratio(ratio: str) -> str:
|
|
78
|
+
"""Validate and normalize aspect ratio."""
|
|
79
|
+
if ratio not in SUPPORTED_ASPECT_RATIOS:
|
|
80
|
+
print(f"Warning: '{ratio}' is not a standard aspect ratio.")
|
|
81
|
+
print(f"Supported ratios: {', '.join(SUPPORTED_ASPECT_RATIOS)}")
|
|
82
|
+
print("Using default: 16:9")
|
|
83
|
+
return "16:9"
|
|
84
|
+
return ratio
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
def validate_resolution(resolution: str) -> str:
|
|
88
|
+
"""Validate and normalize resolution (must be uppercase K)."""
|
|
89
|
+
normalized = resolution.upper()
|
|
90
|
+
if normalized not in SUPPORTED_RESOLUTIONS:
|
|
91
|
+
print(f"Warning: '{resolution}' is not a valid resolution.")
|
|
92
|
+
print(f"Supported resolutions: {', '.join(SUPPORTED_RESOLUTIONS)}")
|
|
93
|
+
print("Using default: 2K")
|
|
94
|
+
return "2K"
|
|
95
|
+
return normalized
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def build_prompt_with_style(prompt: str, style: Optional[str] = None) -> str:
|
|
99
|
+
"""Build final prompt with optional style prefix."""
|
|
100
|
+
if style:
|
|
101
|
+
return f"{style}: {prompt}"
|
|
102
|
+
return prompt
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def calculate_backoff_delay(attempt: int, jitter: bool = True) -> float:
|
|
106
|
+
"""Calculate exponential backoff delay with optional jitter."""
|
|
107
|
+
delay = min(BASE_DELAY * (2**attempt), MAX_DELAY)
|
|
108
|
+
if jitter:
|
|
109
|
+
delay = delay * (0.5 + random.random())
|
|
110
|
+
return delay
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
def generate_image(
|
|
114
|
+
prompt: str,
|
|
115
|
+
output_path: str,
|
|
116
|
+
aspect_ratio: str = "16:9",
|
|
117
|
+
resolution: str = "2K",
|
|
118
|
+
style: Optional[str] = None,
|
|
119
|
+
enable_grounding: bool = False,
|
|
120
|
+
max_retries: int = MAX_RETRIES,
|
|
121
|
+
verbose: bool = False,
|
|
122
|
+
) -> dict:
|
|
123
|
+
"""
|
|
124
|
+
Generate an image using Nano Banana Pro (gemini-3-pro-image-preview).
|
|
125
|
+
|
|
126
|
+
Args:
|
|
127
|
+
prompt: The image generation prompt
|
|
128
|
+
output_path: Path to save the generated image
|
|
129
|
+
aspect_ratio: Image aspect ratio (default: 16:9)
|
|
130
|
+
resolution: Image resolution - 1K, 2K, or 4K (default: 2K)
|
|
131
|
+
style: Optional style prefix (e.g., "photorealistic", "minimalist")
|
|
132
|
+
enable_grounding: Enable Google Search grounding (default: False)
|
|
133
|
+
max_retries: Maximum retry attempts for transient errors (default: 5)
|
|
134
|
+
verbose: Print detailed progress information
|
|
135
|
+
|
|
136
|
+
Returns:
|
|
137
|
+
dict with generation metadata including success status, file path, and timing
|
|
138
|
+
"""
|
|
139
|
+
# Validate inputs
|
|
140
|
+
aspect_ratio = validate_aspect_ratio(aspect_ratio)
|
|
141
|
+
resolution = validate_resolution(resolution)
|
|
142
|
+
final_prompt = build_prompt_with_style(prompt, style)
|
|
143
|
+
|
|
144
|
+
# Get API key
|
|
145
|
+
api_key = get_api_key()
|
|
146
|
+
|
|
147
|
+
if verbose:
|
|
148
|
+
print(f" Model: {MODEL_NAME}")
|
|
149
|
+
print(f" Final Prompt: {final_prompt[:100]}{'...' if len(final_prompt) > 100 else ''}")
|
|
150
|
+
print(f" Style: {style or 'None'}")
|
|
151
|
+
print("-" * 50)
|
|
152
|
+
|
|
153
|
+
# Initialize client
|
|
154
|
+
client = genai.Client(api_key=api_key)
|
|
155
|
+
|
|
156
|
+
# Build configuration
|
|
157
|
+
config_params = {
|
|
158
|
+
"response_modalities": ["TEXT", "IMAGE"],
|
|
159
|
+
"image_config": types.ImageConfig(aspect_ratio=aspect_ratio, image_size=resolution),
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
# Optionally enable Google Search grounding
|
|
163
|
+
if enable_grounding:
|
|
164
|
+
config_params["tools"] = [{"google_search": {}}]
|
|
165
|
+
|
|
166
|
+
config = types.GenerateContentConfig(**config_params)
|
|
167
|
+
|
|
168
|
+
# Retry logic with exponential backoff
|
|
169
|
+
last_error = None
|
|
170
|
+
for attempt in range(max_retries):
|
|
171
|
+
try:
|
|
172
|
+
if verbose:
|
|
173
|
+
print(f" Attempt {attempt + 1}/{max_retries}...")
|
|
174
|
+
|
|
175
|
+
start_time = time.time()
|
|
176
|
+
|
|
177
|
+
# Generate image
|
|
178
|
+
response = client.models.generate_content(model=MODEL_NAME, contents=final_prompt, config=config)
|
|
179
|
+
|
|
180
|
+
generation_time = time.time() - start_time
|
|
181
|
+
|
|
182
|
+
# Ensure output directory exists
|
|
183
|
+
output_dir = Path(output_path).parent
|
|
184
|
+
if output_dir and str(output_dir) != "." and not output_dir.exists():
|
|
185
|
+
output_dir.mkdir(parents=True, exist_ok=True)
|
|
186
|
+
|
|
187
|
+
# Save image
|
|
188
|
+
image_saved = False
|
|
189
|
+
text_response = ""
|
|
190
|
+
|
|
191
|
+
for part in response.candidates[0].content.parts:
|
|
192
|
+
if part.inline_data is not None:
|
|
193
|
+
with open(output_path, "wb") as f:
|
|
194
|
+
f.write(part.inline_data.data)
|
|
195
|
+
image_saved = True
|
|
196
|
+
elif hasattr(part, "text") and part.text:
|
|
197
|
+
text_response = part.text
|
|
198
|
+
|
|
199
|
+
if not image_saved:
|
|
200
|
+
raise RuntimeError("No image data in response. The model may have returned text-only response.")
|
|
201
|
+
|
|
202
|
+
# Return success metadata
|
|
203
|
+
return {
|
|
204
|
+
"success": True,
|
|
205
|
+
"model": MODEL_NAME,
|
|
206
|
+
"prompt": prompt,
|
|
207
|
+
"final_prompt": final_prompt,
|
|
208
|
+
"style": style,
|
|
209
|
+
"output_path": str(Path(output_path).absolute()),
|
|
210
|
+
"aspect_ratio": aspect_ratio,
|
|
211
|
+
"resolution": resolution,
|
|
212
|
+
"generation_time_seconds": round(generation_time, 2),
|
|
213
|
+
"timestamp": datetime.now().isoformat(),
|
|
214
|
+
"text_response": text_response if text_response else None,
|
|
215
|
+
"grounding_enabled": enable_grounding,
|
|
216
|
+
"attempts": attempt + 1,
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
except Exception as e:
|
|
220
|
+
last_error = e
|
|
221
|
+
error_str = str(e).lower()
|
|
222
|
+
|
|
223
|
+
# Check for non-retryable errors
|
|
224
|
+
if "permission" in error_str or "api_key" in error_str or "invalid_api_key" in error_str:
|
|
225
|
+
print(f"Error: API key issue - {e}")
|
|
226
|
+
print("Check your GOOGLE_API_KEY in .env file or environment variable.")
|
|
227
|
+
break
|
|
228
|
+
|
|
229
|
+
if "invalid" in error_str and "argument" in error_str:
|
|
230
|
+
print(f"Error: Invalid argument - {e}")
|
|
231
|
+
print(f"Check aspect_ratio ({aspect_ratio}) and resolution ({resolution}).")
|
|
232
|
+
break
|
|
233
|
+
|
|
234
|
+
# Check for quota/rate limit errors - apply exponential backoff
|
|
235
|
+
is_quota_error = any(kw in error_str for kw in ["quota", "rate", "429", "resource_exhausted", "too_many"])
|
|
236
|
+
|
|
237
|
+
if attempt < max_retries - 1:
|
|
238
|
+
delay = calculate_backoff_delay(attempt, jitter=is_quota_error)
|
|
239
|
+
if is_quota_error:
|
|
240
|
+
print(f" Rate limit hit (attempt {attempt + 1}). Waiting {delay:.1f}s...")
|
|
241
|
+
else:
|
|
242
|
+
print(f" Attempt {attempt + 1} failed: {e}")
|
|
243
|
+
print(f" Retrying in {delay:.1f}s...")
|
|
244
|
+
time.sleep(delay)
|
|
245
|
+
else:
|
|
246
|
+
print(f" All {max_retries} attempts failed.")
|
|
247
|
+
|
|
248
|
+
# Return failure metadata
|
|
249
|
+
return {
|
|
250
|
+
"success": False,
|
|
251
|
+
"model": MODEL_NAME,
|
|
252
|
+
"prompt": prompt,
|
|
253
|
+
"final_prompt": final_prompt,
|
|
254
|
+
"style": style,
|
|
255
|
+
"error": str(last_error),
|
|
256
|
+
"timestamp": datetime.now().isoformat(),
|
|
257
|
+
"attempts": max_retries,
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
|
|
261
|
+
def main():
|
|
262
|
+
"""Main entry point for CLI usage."""
|
|
263
|
+
parser = argparse.ArgumentParser(
|
|
264
|
+
description="Generate images using Nano Banana Pro (gemini-3-pro-image-preview)",
|
|
265
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
266
|
+
epilog="""
|
|
267
|
+
Examples:
|
|
268
|
+
# Basic usage
|
|
269
|
+
python generate_image.py -p "A fluffy cat eating a banana" -o cat.png
|
|
270
|
+
|
|
271
|
+
# High resolution with specific aspect ratio
|
|
272
|
+
python generate_image.py -p "Modern dashboard UI" -o dashboard.png -a 16:9 -r 4K
|
|
273
|
+
|
|
274
|
+
# With style prefix
|
|
275
|
+
python generate_image.py -p "Mountain landscape" -o landscape.png \\
|
|
276
|
+
--style "photorealistic, dramatic lighting"
|
|
277
|
+
|
|
278
|
+
# With Google Search grounding for factual content
|
|
279
|
+
python generate_image.py -p "Mount Fuji at sunset" -o fuji.png -g
|
|
280
|
+
|
|
281
|
+
# Verbose mode with all options
|
|
282
|
+
python generate_image.py -p "Tech company logo" -o logo.png \\
|
|
283
|
+
-r 4K -a 1:1 --style "minimalist, vector art" -v
|
|
284
|
+
|
|
285
|
+
Style Prefix Examples:
|
|
286
|
+
- "photorealistic, 8K, detailed"
|
|
287
|
+
- "minimalist, vector art, clean"
|
|
288
|
+
- "watercolor painting, soft colors"
|
|
289
|
+
- "3D render, cinematic lighting"
|
|
290
|
+
- "anime style, vibrant colors"
|
|
291
|
+
|
|
292
|
+
Environment:
|
|
293
|
+
GOOGLE_API_KEY - Required. Get from https://aistudio.google.com/apikey
|
|
294
|
+
""",
|
|
295
|
+
)
|
|
296
|
+
|
|
297
|
+
parser.add_argument("-p", "--prompt", required=True, help="Image generation prompt (descriptive text)")
|
|
298
|
+
|
|
299
|
+
parser.add_argument("-o", "--output", required=True, help="Output file path for the generated image (PNG format)")
|
|
300
|
+
|
|
301
|
+
parser.add_argument(
|
|
302
|
+
"-a", "--aspect-ratio", default="16:9", choices=SUPPORTED_ASPECT_RATIOS, help="Aspect ratio (default: 16:9)"
|
|
303
|
+
)
|
|
304
|
+
|
|
305
|
+
parser.add_argument(
|
|
306
|
+
"-r",
|
|
307
|
+
"--resolution",
|
|
308
|
+
default="2K",
|
|
309
|
+
choices=SUPPORTED_RESOLUTIONS,
|
|
310
|
+
help="Resolution: 1K, 2K, or 4K (default: 2K)",
|
|
311
|
+
)
|
|
312
|
+
|
|
313
|
+
parser.add_argument("--style", help="Style prefix to prepend to prompt (e.g., 'photorealistic', 'minimalist')")
|
|
314
|
+
|
|
315
|
+
parser.add_argument(
|
|
316
|
+
"-g", "--enable-grounding", action="store_true", help="Enable Google Search grounding for factual content"
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
parser.add_argument(
|
|
320
|
+
"--max-retries",
|
|
321
|
+
type=int,
|
|
322
|
+
default=MAX_RETRIES,
|
|
323
|
+
help=f"Maximum retry attempts for transient errors (default: {MAX_RETRIES})",
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
parser.add_argument("-v", "--verbose", action="store_true", help="Print detailed progress information")
|
|
327
|
+
|
|
328
|
+
args = parser.parse_args()
|
|
329
|
+
|
|
330
|
+
print(f"Generating image with {MODEL_NAME}...")
|
|
331
|
+
print(f" Prompt: {args.prompt[:80]}{'...' if len(args.prompt) > 80 else ''}")
|
|
332
|
+
if args.style:
|
|
333
|
+
print(f" Style: {args.style}")
|
|
334
|
+
print(f" Aspect Ratio: {args.aspect_ratio}")
|
|
335
|
+
print(f" Resolution: {args.resolution}")
|
|
336
|
+
print(f" Output: {args.output}")
|
|
337
|
+
|
|
338
|
+
result = generate_image(
|
|
339
|
+
prompt=args.prompt,
|
|
340
|
+
output_path=args.output,
|
|
341
|
+
aspect_ratio=args.aspect_ratio,
|
|
342
|
+
resolution=args.resolution,
|
|
343
|
+
style=args.style,
|
|
344
|
+
enable_grounding=args.enable_grounding,
|
|
345
|
+
max_retries=args.max_retries,
|
|
346
|
+
verbose=args.verbose,
|
|
347
|
+
)
|
|
348
|
+
|
|
349
|
+
if result["success"]:
|
|
350
|
+
print("\nSuccess!")
|
|
351
|
+
print(f" File: {result['output_path']}")
|
|
352
|
+
print(f" Time: {result['generation_time_seconds']}s")
|
|
353
|
+
print(f" Attempts: {result['attempts']}")
|
|
354
|
+
if result.get("text_response"):
|
|
355
|
+
print(f" Model Note: {result['text_response'][:200]}")
|
|
356
|
+
else:
|
|
357
|
+
print(f"\nFailed: {result['error']}")
|
|
358
|
+
sys.exit(1)
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
if __name__ == "__main__":
|
|
362
|
+
main()
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "moai-docs-generation"
|
|
3
|
+
description: "Documentation generation patterns for technical specs, API docs, user guides, and knowledge bases using real tools like Sphinx, MkDocs, TypeDoc, and Nextra. Use when creating docs from code, building doc sites, or automating documentation workflows."
|
|
4
|
+
version: 2.1.0
|
|
5
|
+
category: "workflow"
|
|
6
|
+
modularized: true
|
|
7
|
+
context: fork
|
|
8
|
+
agent: general-purpose
|
|
9
|
+
tags: ['workflow', 'documentation', 'sphinx', 'mkdocs', 'typedoc', 'api-docs', 'static-sites']
|
|
10
|
+
updated: 2026-01-08
|
|
11
|
+
status: "active"
|
|
12
|
+
allowed-tools:
|
|
13
|
+
- Read
|
|
14
|
+
- Write
|
|
15
|
+
- Edit
|
|
16
|
+
- Grep
|
|
17
|
+
- Glob
|
|
18
|
+
- Bash
|
|
19
|
+
- mcp__context7__resolve-library-id
|
|
20
|
+
- mcp__context7__get-library-docs
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Documentation Generation Patterns
|
|
24
|
+
|
|
25
|
+
## Quick Reference (30 seconds)
|
|
26
|
+
|
|
27
|
+
Purpose: Generate professional documentation using established tools and frameworks.
|
|
28
|
+
|
|
29
|
+
Core Documentation Tools:
|
|
30
|
+
- Python: Sphinx with autodoc, MkDocs with Material theme, pydoc
|
|
31
|
+
- TypeScript/JavaScript: TypeDoc, JSDoc, TSDoc
|
|
32
|
+
- API Documentation: OpenAPI/Swagger from FastAPI/Express, Redoc, Stoplight
|
|
33
|
+
- Static Sites: Nextra (Next.js), Docusaurus (React), VitePress (Vue)
|
|
34
|
+
- Universal: Markdown, MDX, reStructuredText
|
|
35
|
+
|
|
36
|
+
When to Use This Skill:
|
|
37
|
+
- Generating API documentation from code annotations
|
|
38
|
+
- Building documentation sites with search and navigation
|
|
39
|
+
- Creating user guides and technical specifications
|
|
40
|
+
- Automating documentation updates in CI/CD pipelines
|
|
41
|
+
- Converting between documentation formats
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Implementation Guide (5 minutes)
|
|
46
|
+
|
|
47
|
+
### Python Documentation with Sphinx
|
|
48
|
+
|
|
49
|
+
Sphinx Setup and Configuration:
|
|
50
|
+
|
|
51
|
+
Install Sphinx and extensions with pip install sphinx sphinx-autodoc-typehints sphinx-rtd-theme myst-parser
|
|
52
|
+
|
|
53
|
+
Initialize a Sphinx project by running sphinx-quickstart docs which creates the basic structure.
|
|
54
|
+
|
|
55
|
+
Configure conf.py with the following key settings:
|
|
56
|
+
- Set extensions to include autodoc, napoleon, typehints, and myst_parser
|
|
57
|
+
- Configure html_theme to sphinx_rtd_theme for a professional look
|
|
58
|
+
- Add autodoc_typehints set to description for inline type hints
|
|
59
|
+
|
|
60
|
+
Generate API documentation by running sphinx-apidoc with the source directory, outputting to docs/api, then run make html in the docs directory.
|
|
61
|
+
|
|
62
|
+
### Python Documentation with MkDocs
|
|
63
|
+
|
|
64
|
+
MkDocs Material Setup:
|
|
65
|
+
|
|
66
|
+
Install with pip install mkdocs mkdocs-material mkdocstrings mkdocstrings-python
|
|
67
|
+
|
|
68
|
+
Create mkdocs.yml configuration:
|
|
69
|
+
- Set site_name and site_url
|
|
70
|
+
- Configure theme with name material and desired color palette
|
|
71
|
+
- Add plugins including search and mkdocstrings
|
|
72
|
+
- Define nav structure with sections and pages
|
|
73
|
+
|
|
74
|
+
Use mkdocstrings syntax in Markdown files with ::: module.path to auto-generate API docs from docstrings.
|
|
75
|
+
|
|
76
|
+
Serve locally with mkdocs serve, build with mkdocs build, deploy with mkdocs gh-deploy.
|
|
77
|
+
|
|
78
|
+
### TypeScript Documentation with TypeDoc
|
|
79
|
+
|
|
80
|
+
TypeDoc Setup:
|
|
81
|
+
|
|
82
|
+
Install with npm install typedoc --save-dev
|
|
83
|
+
|
|
84
|
+
Add to package.json scripts: typedoc --out docs/api src/index.ts
|
|
85
|
+
|
|
86
|
+
Configure with typedoc.json:
|
|
87
|
+
- Set entryPoints to source files
|
|
88
|
+
- Configure out to docs/api
|
|
89
|
+
- Enable includeVersion and categorizeByGroup
|
|
90
|
+
- Set theme to default or install custom themes
|
|
91
|
+
|
|
92
|
+
Generate documentation by running npm run docs:generate
|
|
93
|
+
|
|
94
|
+
### JavaScript Documentation with JSDoc
|
|
95
|
+
|
|
96
|
+
JSDoc Setup:
|
|
97
|
+
|
|
98
|
+
Install with npm install jsdoc --save-dev
|
|
99
|
+
|
|
100
|
+
Create jsdoc.json configuration:
|
|
101
|
+
- Set source include paths and includePattern
|
|
102
|
+
- Configure templates and output destination
|
|
103
|
+
- Enable markdown plugin for rich formatting
|
|
104
|
+
|
|
105
|
+
Document functions with JSDoc comments using tags:
|
|
106
|
+
- @param for parameters with type and description
|
|
107
|
+
- @returns for return value documentation
|
|
108
|
+
- @example for usage examples
|
|
109
|
+
- @throws for error documentation
|
|
110
|
+
|
|
111
|
+
### OpenAPI/Swagger Documentation
|
|
112
|
+
|
|
113
|
+
FastAPI Auto-Documentation:
|
|
114
|
+
|
|
115
|
+
FastAPI provides automatic OpenAPI docs. Access Swagger UI at /docs and ReDoc at /redoc.
|
|
116
|
+
|
|
117
|
+
Enhance documentation by:
|
|
118
|
+
- Adding docstrings to route handlers
|
|
119
|
+
- Using response_model for typed responses
|
|
120
|
+
- Defining examples in Pydantic model Config class
|
|
121
|
+
- Setting tags for endpoint grouping
|
|
122
|
+
- Adding detailed descriptions in route decorators
|
|
123
|
+
|
|
124
|
+
Export OpenAPI spec programmatically with app.openapi() and save to openapi.json.
|
|
125
|
+
|
|
126
|
+
Express with Swagger:
|
|
127
|
+
|
|
128
|
+
Install swagger-jsdoc and swagger-ui-express.
|
|
129
|
+
|
|
130
|
+
Configure swagger-jsdoc with OpenAPI definition and API file paths.
|
|
131
|
+
|
|
132
|
+
Add @openapi comments to route handlers documenting paths, parameters, and responses.
|
|
133
|
+
|
|
134
|
+
Serve Swagger UI at /api-docs endpoint.
|
|
135
|
+
|
|
136
|
+
### Static Documentation Sites
|
|
137
|
+
|
|
138
|
+
Nextra (Next.js):
|
|
139
|
+
|
|
140
|
+
Reference Skill("moai-library-nextra") for comprehensive Nextra patterns.
|
|
141
|
+
|
|
142
|
+
Key advantages: MDX support, file-system routing, built-in search, theme customization.
|
|
143
|
+
|
|
144
|
+
Create with npx create-nextra-app, configure theme.config.tsx, organize pages in pages directory.
|
|
145
|
+
|
|
146
|
+
Docusaurus (React):
|
|
147
|
+
|
|
148
|
+
Initialize with npx create-docusaurus@latest my-docs classic
|
|
149
|
+
|
|
150
|
+
Configure in docusaurus.config.js:
|
|
151
|
+
- Set siteMetadata with title, tagline, url
|
|
152
|
+
- Configure presets with docs and blog settings
|
|
153
|
+
- Add themeConfig for navbar and footer
|
|
154
|
+
- Enable search with algolia plugin
|
|
155
|
+
|
|
156
|
+
Organize documentation in docs folder with category.json files for sidebar structure.
|
|
157
|
+
|
|
158
|
+
VitePress (Vue):
|
|
159
|
+
|
|
160
|
+
Initialize with npm init vitepress
|
|
161
|
+
|
|
162
|
+
Configure in .vitepress/config.js:
|
|
163
|
+
- Set title, description, base path
|
|
164
|
+
- Define themeConfig with nav and sidebar
|
|
165
|
+
- Configure search and social links
|
|
166
|
+
|
|
167
|
+
Use Markdown with Vue components, code highlighting, and frontmatter.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Advanced Patterns (10+ minutes)
|
|
172
|
+
|
|
173
|
+
### Documentation from SPEC Files
|
|
174
|
+
|
|
175
|
+
Pattern for generating documentation from MoAI SPEC files:
|
|
176
|
+
|
|
177
|
+
Read SPEC file content and extract key sections: id, title, description, requirements, api_endpoints.
|
|
178
|
+
|
|
179
|
+
Generate structured Markdown documentation:
|
|
180
|
+
- Create overview section from description
|
|
181
|
+
- List requirements as feature bullets
|
|
182
|
+
- Document each API endpoint with method, path, and description
|
|
183
|
+
- Add usage examples based on endpoint definitions
|
|
184
|
+
|
|
185
|
+
Save generated docs to appropriate location in docs directory.
|
|
186
|
+
|
|
187
|
+
### CI/CD Documentation Pipeline
|
|
188
|
+
|
|
189
|
+
GitHub Actions Workflow:
|
|
190
|
+
|
|
191
|
+
Create .github/workflows/docs.yml that triggers on push to main branch when src or docs paths change.
|
|
192
|
+
|
|
193
|
+
Workflow steps:
|
|
194
|
+
- Checkout repository
|
|
195
|
+
- Setup language runtime (Python, Node.js)
|
|
196
|
+
- Install documentation dependencies
|
|
197
|
+
- Generate documentation using appropriate tool
|
|
198
|
+
- Deploy to GitHub Pages, Netlify, or Vercel
|
|
199
|
+
|
|
200
|
+
Example for Python/Sphinx:
|
|
201
|
+
- Install with pip install sphinx sphinx-rtd-theme
|
|
202
|
+
- Generate with sphinx-build -b html docs/source docs/build
|
|
203
|
+
- Deploy using actions-gh-pages action
|
|
204
|
+
|
|
205
|
+
Example for TypeScript/TypeDoc:
|
|
206
|
+
- Install with npm ci
|
|
207
|
+
- Generate with npm run docs:generate
|
|
208
|
+
- Deploy to Pages
|
|
209
|
+
|
|
210
|
+
### Documentation Validation
|
|
211
|
+
|
|
212
|
+
Link Checking:
|
|
213
|
+
|
|
214
|
+
Use linkchecker for local link validation in HTML output.
|
|
215
|
+
|
|
216
|
+
For Markdown, use markdown-link-check in pre-commit hooks.
|
|
217
|
+
|
|
218
|
+
Spell Checking:
|
|
219
|
+
|
|
220
|
+
Use pyspelling with Aspell for automated spell checking.
|
|
221
|
+
|
|
222
|
+
Configure .pyspelling.yml with matrix entries for different file types.
|
|
223
|
+
|
|
224
|
+
Documentation Coverage:
|
|
225
|
+
|
|
226
|
+
For Python, use interrogate to check docstring coverage.
|
|
227
|
+
|
|
228
|
+
Configure minimum coverage thresholds in pyproject.toml.
|
|
229
|
+
|
|
230
|
+
Fail CI builds if coverage drops below threshold.
|
|
231
|
+
|
|
232
|
+
### Multi-Language Documentation
|
|
233
|
+
|
|
234
|
+
Internationalization with Nextra:
|
|
235
|
+
|
|
236
|
+
Configure i18n in next.config.js with locales array and defaultLocale.
|
|
237
|
+
|
|
238
|
+
Create locale-specific pages in pages/[locale] directory.
|
|
239
|
+
|
|
240
|
+
Use next-intl or similar for translations.
|
|
241
|
+
|
|
242
|
+
Internationalization with Docusaurus:
|
|
243
|
+
|
|
244
|
+
Configure i18n in docusaurus.config.js with defaultLocale and locales.
|
|
245
|
+
|
|
246
|
+
Use docusaurus write-translations to generate translation files.
|
|
247
|
+
|
|
248
|
+
Organize translations in i18n/[locale] directory structure.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Works Well With
|
|
253
|
+
|
|
254
|
+
Skills:
|
|
255
|
+
- moai-library-nextra - Comprehensive Nextra documentation framework patterns
|
|
256
|
+
- moai-lang-python - Python docstring conventions and typing
|
|
257
|
+
- moai-lang-typescript - TypeScript/JSDoc documentation patterns
|
|
258
|
+
- moai-domain-backend - API documentation for backend services
|
|
259
|
+
- moai-workflow-project - Project documentation integration
|
|
260
|
+
|
|
261
|
+
Agents:
|
|
262
|
+
- manager-docs - Documentation workflow orchestration
|
|
263
|
+
- expert-backend - API endpoint documentation
|
|
264
|
+
- expert-frontend - Component documentation
|
|
265
|
+
|
|
266
|
+
Commands:
|
|
267
|
+
- /moai:3-sync - Documentation synchronization with code changes
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Tool Reference
|
|
272
|
+
|
|
273
|
+
Python Documentation:
|
|
274
|
+
- Sphinx: https://www.sphinx-doc.org/
|
|
275
|
+
- MkDocs: https://www.mkdocs.org/
|
|
276
|
+
- MkDocs Material: https://squidfunk.github.io/mkdocs-material/
|
|
277
|
+
- mkdocstrings: https://mkdocstrings.github.io/
|
|
278
|
+
|
|
279
|
+
JavaScript/TypeScript Documentation:
|
|
280
|
+
- TypeDoc: https://typedoc.org/
|
|
281
|
+
- JSDoc: https://jsdoc.app/
|
|
282
|
+
- TSDoc: https://tsdoc.org/
|
|
283
|
+
|
|
284
|
+
API Documentation:
|
|
285
|
+
- OpenAPI Specification: https://spec.openapis.org/
|
|
286
|
+
- Swagger UI: https://swagger.io/tools/swagger-ui/
|
|
287
|
+
- Redoc: https://redocly.github.io/redoc/
|
|
288
|
+
- Stoplight: https://stoplight.io/
|
|
289
|
+
|
|
290
|
+
Static Site Generators:
|
|
291
|
+
- Nextra: https://nextra.site/
|
|
292
|
+
- Docusaurus: https://docusaurus.io/
|
|
293
|
+
- VitePress: https://vitepress.dev/
|
|
294
|
+
|
|
295
|
+
Style Guides:
|
|
296
|
+
- Google Developer Documentation Style Guide: https://developers.google.com/style
|
|
297
|
+
- Microsoft Writing Style Guide: https://learn.microsoft.com/style-guide/
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
Version: 2.0.0
|
|
302
|
+
Last Updated: 2025-12-30
|