moai-adk 0.34.0__py3-none-any.whl → 1.1.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.
- moai_adk/__main__.py +136 -5
- moai_adk/astgrep/__init__.py +37 -0
- moai_adk/astgrep/analyzer.py +522 -0
- moai_adk/astgrep/models.py +124 -0
- moai_adk/astgrep/rules.py +179 -0
- moai_adk/cli/commands/analyze.py +11 -2
- moai_adk/cli/commands/doctor.py +7 -1
- moai_adk/cli/commands/init.py +321 -11
- moai_adk/cli/commands/language.py +7 -1
- moai_adk/cli/commands/rank.py +449 -0
- moai_adk/cli/commands/status.py +7 -1
- moai_adk/cli/commands/switch.py +325 -0
- moai_adk/cli/commands/update.py +296 -23
- moai_adk/cli/prompts/init_prompts.py +362 -66
- moai_adk/cli/prompts/translations/__init__.py +573 -0
- moai_adk/cli/ui/prompts.py +61 -2
- moai_adk/cli/worktree/cli.py +106 -1
- moai_adk/cli/worktree/manager.py +155 -0
- moai_adk/core/config/unified.py +244 -63
- moai_adk/core/credentials.py +264 -0
- moai_adk/core/error_recovery_system.py +22 -4
- moai_adk/core/git/conflict_detector.py +10 -1
- moai_adk/core/git/event_detector.py +16 -5
- moai_adk/core/integration/engine.py +2 -2
- moai_adk/core/integration/integration_tester.py +5 -5
- moai_adk/core/language_config_resolver.py +9 -3
- moai_adk/core/merge/analyzer.py +509 -324
- moai_adk/core/migration/alfred_to_moai_migrator.py +7 -1
- moai_adk/core/migration/backup_manager.py +54 -4
- moai_adk/core/migration/file_migrator.py +174 -2
- moai_adk/core/migration/interactive_checkbox_ui.py +42 -31
- moai_adk/core/migration/version_detector.py +123 -19
- moai_adk/core/migration/version_migrator.py +44 -9
- moai_adk/core/model_allocator.py +241 -0
- moai_adk/core/project/backup_utils.py +12 -2
- moai_adk/core/project/initializer.py +44 -87
- moai_adk/core/project/phase_executor.py +95 -33
- moai_adk/core/project/validator.py +16 -1
- moai_adk/core/quality/trust_checker.py +30 -10
- moai_adk/core/rollback_manager.py +60 -25
- moai_adk/core/template/backup.py +88 -6
- moai_adk/core/template/config.py +33 -9
- moai_adk/core/template/merger.py +34 -8
- moai_adk/core/template/processor.py +334 -11
- moai_adk/core/template_engine.py +10 -1
- moai_adk/core/template_variable_synchronizer.py +16 -2
- moai_adk/core/version_sync.py +54 -6
- moai_adk/foundation/__init__.py +1 -20
- moai_adk/foundation/testing.py +1 -1
- moai_adk/loop/__init__.py +54 -0
- moai_adk/loop/controller.py +305 -0
- moai_adk/loop/feedback.py +230 -0
- moai_adk/loop/state.py +209 -0
- moai_adk/loop/storage.py +220 -0
- moai_adk/lsp/__init__.py +70 -0
- moai_adk/lsp/client.py +320 -0
- moai_adk/lsp/models.py +261 -0
- moai_adk/lsp/protocol.py +404 -0
- moai_adk/lsp/server_manager.py +248 -0
- moai_adk/project/configuration.py +8 -1
- moai_adk/py.typed +0 -0
- moai_adk/ralph/__init__.py +37 -0
- moai_adk/ralph/engine.py +307 -0
- moai_adk/rank/__init__.py +21 -0
- moai_adk/rank/auth.py +425 -0
- moai_adk/rank/client.py +557 -0
- moai_adk/rank/config.py +147 -0
- moai_adk/rank/hook.py +1503 -0
- moai_adk/rank/py.typed +0 -0
- moai_adk/statusline/__init__.py +3 -0
- moai_adk/statusline/enhanced_output_style_detector.py +5 -5
- moai_adk/statusline/main.py +20 -1
- moai_adk/statusline/memory_collector.py +268 -0
- moai_adk/statusline/renderer.py +54 -38
- moai_adk/tag_system/__init__.py +48 -0
- moai_adk/tag_system/atomic_ops.py +117 -0
- moai_adk/tag_system/linkage.py +335 -0
- moai_adk/tag_system/parser.py +176 -0
- moai_adk/tag_system/validator.py +200 -0
- moai_adk/templates/.claude/agents/moai/builder-agent.md +19 -3
- moai_adk/templates/.claude/agents/moai/builder-command.md +62 -16
- moai_adk/templates/.claude/agents/moai/builder-plugin.md +763 -0
- moai_adk/templates/.claude/agents/moai/builder-skill.md +21 -5
- moai_adk/templates/.claude/agents/moai/expert-backend.md +103 -39
- moai_adk/templates/.claude/agents/moai/expert-debug.md +9 -3
- moai_adk/templates/.claude/agents/moai/expert-devops.md +16 -14
- moai_adk/templates/.claude/agents/moai/expert-frontend.md +45 -31
- moai_adk/templates/.claude/agents/moai/expert-performance.md +13 -9
- moai_adk/templates/.claude/agents/moai/expert-refactoring.md +228 -0
- moai_adk/templates/.claude/agents/moai/expert-security.md +19 -3
- moai_adk/templates/.claude/agents/moai/expert-testing.md +13 -9
- moai_adk/templates/.claude/agents/moai/manager-claude-code.md +8 -2
- moai_adk/templates/.claude/agents/moai/manager-docs.md +10 -5
- moai_adk/templates/.claude/agents/moai/manager-git.md +99 -27
- moai_adk/templates/.claude/agents/moai/manager-project.md +87 -7
- moai_adk/templates/.claude/agents/moai/manager-quality.md +22 -5
- moai_adk/templates/.claude/agents/moai/manager-spec.md +8 -2
- moai_adk/templates/.claude/agents/moai/manager-strategy.md +45 -14
- moai_adk/templates/.claude/agents/moai/manager-tdd.md +16 -3
- moai_adk/templates/.claude/commands/moai/0-project.md +239 -1185
- moai_adk/templates/.claude/commands/moai/1-plan.md +383 -363
- moai_adk/templates/.claude/commands/moai/2-run.md +254 -347
- moai_adk/templates/.claude/commands/moai/3-sync.md +174 -100
- moai_adk/templates/.claude/commands/moai/9-feedback.md +49 -33
- moai_adk/templates/.claude/commands/moai/alfred.md +339 -0
- moai_adk/templates/.claude/commands/moai/cancel-loop.md +163 -0
- moai_adk/templates/.claude/commands/moai/fix.md +264 -0
- moai_adk/templates/.claude/commands/moai/loop.md +363 -0
- moai_adk/templates/.claude/hooks/moai/lib/README.md +143 -0
- moai_adk/templates/.claude/hooks/moai/lib/__init__.py +37 -81
- moai_adk/templates/.claude/hooks/moai/lib/alfred_detector.py +105 -0
- moai_adk/templates/.claude/hooks/moai/lib/atomic_write.py +122 -0
- moai_adk/templates/.claude/hooks/moai/lib/checkpoint.py +4 -1
- moai_adk/templates/.claude/hooks/moai/lib/common.py +35 -5
- moai_adk/templates/.claude/hooks/moai/lib/config.py +376 -0
- moai_adk/templates/.claude/hooks/moai/lib/config_manager.py +24 -28
- moai_adk/templates/.claude/hooks/moai/lib/config_validator.py +14 -14
- moai_adk/templates/.claude/hooks/moai/lib/enhanced_output_style_detector.py +372 -0
- moai_adk/templates/.claude/hooks/moai/lib/exceptions.py +171 -0
- moai_adk/templates/.claude/hooks/moai/lib/file_utils.py +95 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_collector.py +190 -0
- moai_adk/templates/.claude/hooks/moai/lib/git_operations_manager.py +15 -13
- moai_adk/templates/.claude/hooks/moai/lib/language_detector.py +298 -0
- moai_adk/templates/.claude/hooks/moai/lib/language_validator.py +125 -25
- moai_adk/templates/.claude/hooks/moai/lib/main.py +341 -0
- moai_adk/templates/.claude/hooks/moai/lib/memory_collector.py +268 -0
- moai_adk/templates/.claude/hooks/moai/lib/metrics_tracker.py +78 -0
- moai_adk/templates/.claude/hooks/moai/lib/models.py +9 -7
- moai_adk/templates/.claude/hooks/moai/lib/path_utils.py +204 -13
- moai_adk/templates/.claude/hooks/moai/lib/project.py +23 -14
- moai_adk/templates/.claude/hooks/moai/lib/renderer.py +359 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_linkage.py +333 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_parser.py +176 -0
- moai_adk/templates/.claude/hooks/moai/lib/tag_validator.py +200 -0
- moai_adk/templates/.claude/hooks/moai/lib/timeout.py +5 -5
- moai_adk/templates/.claude/hooks/moai/lib/tool_registry.py +896 -0
- moai_adk/templates/.claude/hooks/moai/lib/unified_timeout_manager.py +30 -18
- moai_adk/templates/.claude/hooks/moai/lib/update_checker.py +129 -0
- moai_adk/templates/.claude/hooks/moai/lib/version_reader.py +741 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__ast_grep_scan.py +276 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__code_formatter.py +255 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__coverage_guard.py +325 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__linter.py +315 -0
- moai_adk/templates/.claude/hooks/moai/post_tool__lsp_diagnostic.py +508 -0
- moai_adk/templates/.claude/hooks/moai/pre_commit__tag_validator.py +287 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__security_guard.py +268 -0
- moai_adk/templates/.claude/hooks/moai/pre_tool__tdd_enforcer.py +208 -0
- moai_adk/templates/.claude/hooks/moai/session_end__auto_cleanup.py +93 -61
- moai_adk/templates/.claude/hooks/moai/session_end__rank_submit.py +69 -0
- moai_adk/templates/.claude/hooks/moai/session_start__show_project_info.py +165 -70
- moai_adk/templates/.claude/hooks/moai/shared/utils/announcement_translator.py +206 -0
- moai_adk/templates/.claude/hooks/moai/stop__loop_controller.py +621 -0
- moai_adk/templates/.claude/output-styles/moai/alfred.md +758 -0
- moai_adk/templates/.claude/output-styles/moai/r2d2.md +86 -3
- moai_adk/templates/.claude/output-styles/moai/yoda.md +2 -2
- moai_adk/templates/.claude/settings.json +154 -77
- moai_adk/templates/.claude/skills/moai-docs-generation/SKILL.md +252 -198
- moai_adk/templates/.claude/skills/moai-docs-generation/examples.md +169 -323
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/README.md +39 -27
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/api-documentation.md +115 -125
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/code-documentation.md +150 -150
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/multi-format-output.md +182 -175
- moai_adk/templates/.claude/skills/moai-docs-generation/modules/user-guides.md +198 -138
- moai_adk/templates/.claude/skills/moai-docs-generation/reference.md +226 -320
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +43 -222
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +75 -219
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +103 -463
- 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-uiux/SKILL.md +118 -339
- moai_adk/templates/.claude/skills/moai-formats-data/SKILL.md +74 -377
- moai_adk/templates/.claude/skills/moai-formats-data/modules/README.md +299 -70
- moai_adk/templates/.claude/skills/moai-foundation-claude/SKILL.md +205 -182
- moai_adk/templates/.claude/skills/moai-foundation-claude/reference/advanced-agent-patterns.md +370 -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 +32 -22
- 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 +110 -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 +640 -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-skills-official.md +425 -71
- 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 +325 -143
- moai_adk/templates/.claude/skills/moai-foundation-context/SKILL.md +96 -316
- moai_adk/templates/.claude/skills/moai-foundation-core/SKILL.md +116 -294
- 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 +121 -650
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/patterns.md +22 -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 +37 -730
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/spec-tdd-implementation.md +275 -0
- moai_adk/templates/.claude/skills/moai-foundation-core/modules/trust-5-framework.md +77 -819
- 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-philosopher/SKILL.md +14 -18
- moai_adk/templates/.claude/skills/moai-foundation-quality/SKILL.md +86 -270
- moai_adk/templates/.claude/skills/moai-framework-electron/SKILL.md +288 -0
- moai_adk/templates/.claude/skills/moai-framework-electron/examples.md +2082 -0
- moai_adk/templates/.claude/skills/moai-framework-electron/reference.md +1649 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +76 -582
- moai_adk/templates/.claude/skills/moai-lang-cpp/examples.md +1239 -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 +1136 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +82 -436
- 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 +65 -542
- moai_adk/templates/.claude/skills/moai-lang-elixir/examples.md +1171 -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 +889 -0
- moai_adk/templates/.claude/skills/moai-lang-flutter/SKILL.md +32 -405
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +114 -293
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +83 -307
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +179 -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 +42 -279
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +94 -556
- moai_adk/templates/.claude/skills/moai-lang-php/examples.md +1608 -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 +1323 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +108 -358
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +84 -482
- moai_adk/templates/.claude/skills/moai-lang-r/examples.md +1154 -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 +1087 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +106 -610
- moai_adk/templates/.claude/skills/moai-lang-ruby/examples.md +1106 -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 +1024 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +51 -265
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +106 -442
- 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-swift/SKILL.md +88 -457
- 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-typescript/SKILL.md +75 -283
- moai_adk/templates/.claude/skills/moai-library-mermaid/SKILL.md +97 -252
- moai_adk/templates/.claude/skills/moai-library-nextra/SKILL.md +64 -240
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/advanced-patterns.md +331 -12
- moai_adk/templates/.claude/skills/moai-library-nextra/modules/configuration.md +330 -37
- moai_adk/templates/.claude/skills/moai-library-shadcn/SKILL.md +90 -287
- moai_adk/templates/.claude/skills/moai-platform-auth0/SKILL.md +200 -206
- 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 +75 -330
- moai_adk/templates/.claude/skills/moai-platform-clerk/examples.md +1426 -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 +100 -340
- 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 +113 -326
- 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 +71 -302
- 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 +101 -412
- 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 +96 -327
- 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 +103 -428
- 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 +96 -446
- 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-tool-ast-grep/SKILL.md +193 -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-workflow-jit-docs/SKILL.md +225 -423
- moai_adk/templates/.claude/skills/moai-workflow-loop/SKILL.md +197 -0
- moai_adk/templates/.claude/skills/moai-workflow-loop/examples.md +1063 -0
- moai_adk/templates/.claude/skills/moai-workflow-loop/reference.md +1414 -0
- moai_adk/templates/.claude/skills/moai-workflow-project/SKILL.md +211 -314
- moai_adk/templates/.claude/skills/moai-workflow-project/schemas/tab_schema.json +15 -43
- moai_adk/templates/.claude/skills/moai-workflow-spec/SKILL.md +119 -316
- moai_adk/templates/.claude/skills/moai-workflow-spec/modules/advanced-patterns.md +237 -0
- moai_adk/templates/.claude/skills/moai-workflow-templates/SKILL.md +96 -203
- moai_adk/templates/.claude/skills/moai-workflow-testing/SKILL.md +201 -388
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/README.md +52 -3
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/ai-debugging.md +263 -806
- 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 +191 -1344
- 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/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 +287 -1194
- 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 +262 -1192
- 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 +227 -1222
- moai_adk/templates/.claude/skills/moai-workflow-testing/modules/trust5-validation.md +428 -0
- moai_adk/templates/.claude/skills/moai-workflow-worktree/SKILL.md +228 -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/.git-hooks/pre-push +162 -59
- moai_adk/templates/.github/workflows/ci-universal.yml +934 -133
- moai_adk/templates/.gitignore +65 -107
- moai_adk/templates/.lsp.json +152 -0
- moai_adk/templates/.mcp.json +2 -20
- moai_adk/templates/.moai/announcements/en.json +18 -0
- moai_adk/templates/.moai/announcements/ja.json +18 -0
- moai_adk/templates/.moai/announcements/ko.json +18 -0
- moai_adk/templates/.moai/announcements/zh.json +18 -0
- moai_adk/templates/.moai/config/config.yaml +8 -2
- moai_adk/templates/.moai/config/multilingual-triggers.yaml +213 -0
- moai_adk/templates/.moai/config/sections/language.yaml +2 -2
- moai_adk/templates/.moai/config/sections/llm.yaml +41 -0
- moai_adk/templates/.moai/config/sections/pricing.yaml +30 -0
- moai_adk/templates/.moai/config/sections/project.yaml +2 -2
- moai_adk/templates/.moai/config/sections/quality.yaml +43 -5
- moai_adk/templates/.moai/config/sections/ralph.yaml +55 -0
- moai_adk/templates/.moai/config/sections/system.yaml +46 -1
- moai_adk/templates/.moai/config/sections/user.yaml +1 -1
- moai_adk/templates/.moai/config/statusline-config.yaml +2 -2
- moai_adk/templates/.moai/llm-configs/glm.json +22 -0
- moai_adk/templates/CLAUDE.ja.md +343 -0
- moai_adk/templates/CLAUDE.ko.md +343 -0
- moai_adk/templates/CLAUDE.md +200 -499
- moai_adk/templates/CLAUDE.zh.md +343 -0
- moai_adk/utils/common.py +37 -0
- moai_adk/version.py +1 -1
- moai_adk-1.1.0.dist-info/METADATA +2443 -0
- moai_adk-1.1.0.dist-info/RECORD +701 -0
- {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/entry_points.txt +2 -0
- moai_adk-1.1.0.dist-info/licenses/LICENSE +99 -0
- moai_adk/core/config/auto_spec_config.py +0 -340
- moai_adk/core/hooks/post_tool_auto_spec_completion.py +0 -901
- moai_adk/core/spec/confidence_scoring.py +0 -680
- moai_adk/core/spec/ears_template_engine.py +0 -1247
- moai_adk/core/spec/quality_validator.py +0 -687
- moai_adk/templates/.claude/agents/moai/ai-nano-banana.md +0 -670
- moai_adk/templates/.claude/agents/moai/expert-database.md +0 -777
- moai_adk/templates/.claude/agents/moai/expert-uiux.md +0 -1041
- moai_adk/templates/.claude/agents/moai/mcp-context7.md +0 -458
- moai_adk/templates/.claude/agents/moai/mcp-figma.md +0 -1607
- moai_adk/templates/.claude/agents/moai/mcp-notion.md +0 -789
- moai_adk/templates/.claude/agents/moai/mcp-playwright.md +0 -469
- moai_adk/templates/.claude/agents/moai/mcp-sequential-thinking.md +0 -1032
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/SKILL.md +0 -438
- moai_adk/templates/.claude/skills/moai-ai-nano-banana/examples.md +0 -431
- moai_adk/templates/.claude/skills/moai-domain-uiux/modules/design-system-tokens.md +0 -405
- moai_adk/templates/.claude/skills/moai-library-nextra/advanced-patterns.md +0 -336
- moai_adk/templates/.claude/skills/moai-mcp-figma/SKILL.md +0 -402
- moai_adk/templates/.claude/skills/moai-mcp-figma/advanced-patterns.md +0 -607
- moai_adk/templates/.claude/skills/moai-mcp-notion/SKILL.md +0 -300
- moai_adk/templates/.claude/skills/moai-mcp-notion/advanced-patterns.md +0 -537
- moai_adk/templates/.claude/skills/moai-workflow-project/__init__.py +0 -520
- moai_adk/templates/.claude/skills/moai-workflow-project/complete_workflow_demo_fixed.py +0 -574
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_project_setup.py +0 -317
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/complete_workflow_demo.py +0 -663
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/config-migration-example.json +0 -190
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/question-examples.json +0 -175
- moai_adk/templates/.claude/skills/moai-workflow-project/examples/quick_start.py +0 -196
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/__init__.py +0 -17
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/advanced-patterns.md +0 -158
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/ask_user_integration.py +0 -340
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/batch_questions.py +0 -713
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/config_manager.py +0 -538
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/documentation_manager.py +0 -1336
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/language_initializer.py +0 -730
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/migration_manager.py +0 -608
- moai_adk/templates/.claude/skills/moai-workflow-project/modules/template_optimizer.py +0 -1005
- moai_adk/templates/.claude/skills/moai-workflow-project/test_integration_simple.py +0 -436
- moai_adk/templates/.claude/skills/moai-worktree/SKILL.md +0 -411
- moai_adk/templates/.claude/skills/moai-worktree/modules/integration-patterns.md +0 -982
- moai_adk/templates/.claude/skills/moai-worktree/modules/parallel-development.md +0 -778
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-commands.md +0 -646
- moai_adk/templates/.claude/skills/moai-worktree/modules/worktree-management.md +0 -782
- moai_adk/templates/.moai/config/questions/_schema.yaml +0 -151
- moai_adk/templates/.moai/config/questions/tab0-init.yaml +0 -251
- moai_adk/templates/.moai/config/questions/tab1-user.yaml +0 -108
- moai_adk/templates/.moai/config/questions/tab2-project.yaml +0 -81
- moai_adk/templates/.moai/config/questions/tab3-git.yaml +0 -634
- moai_adk/templates/.moai/config/questions/tab4-quality.yaml +0 -170
- moai_adk/templates/.moai/config/questions/tab5-system.yaml +0 -87
- moai_adk/templates/.moai/scripts/setup-glm.py +0 -136
- moai_adk-0.34.0.dist-info/METADATA +0 -2999
- moai_adk-0.34.0.dist-info/RECORD +0 -463
- moai_adk-0.34.0.dist-info/licenses/LICENSE +0 -21
- /moai_adk/foundation/{git.py → git/__init__.py} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-mermaid/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-mermaid/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-library-nextra/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-jit-docs/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-testing/{advanced-patterns.md → modules/advanced-patterns.md} +0 -0
- /moai_adk/templates/.claude/skills/moai-workflow-testing/{optimization.md → modules/optimization.md} +0 -0
- /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/examples.md +0 -0
- /moai_adk/templates/.claude/skills/{moai-worktree → moai-workflow-worktree}/reference.md +0 -0
- {moai_adk-0.34.0.dist-info → moai_adk-1.1.0.dist-info}/WHEEL +0 -0
moai_adk/templates/.claude/skills/moai-workflow-testing/modules/performance/optimization-patterns.md
ADDED
|
@@ -0,0 +1,473 @@
|
|
|
1
|
+
# Optimization Patterns
|
|
2
|
+
|
|
3
|
+
> Sub-module: Specific optimization strategies and implementation patterns
|
|
4
|
+
> Parent: [Performance Optimization](../performance-optimization.md)
|
|
5
|
+
> Complexity: Advanced
|
|
6
|
+
> Time: 25+ minutes
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Comprehensive guide to performance optimization patterns, strategies, and best practices for Python applications.
|
|
11
|
+
|
|
12
|
+
## Optimization Types
|
|
13
|
+
|
|
14
|
+
### Algorithm Improvement
|
|
15
|
+
|
|
16
|
+
Pattern: Optimize algorithmic complexity by reducing time complexity from O(n^2) to O(n log n) or better.
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
# Before: O(n^2) nested loops
|
|
20
|
+
def find_duplicates_slow(items):
|
|
21
|
+
duplicates = []
|
|
22
|
+
for i, item1 in enumerate(items):
|
|
23
|
+
for j, item2 in enumerate(items[i+1:], start=i+1):
|
|
24
|
+
if item1 == item2 and item1 not in duplicates:
|
|
25
|
+
duplicates.append(item1)
|
|
26
|
+
return duplicates
|
|
27
|
+
|
|
28
|
+
# After: O(n) using set
|
|
29
|
+
def find_duplicates_fast(items):
|
|
30
|
+
seen = set()
|
|
31
|
+
duplicates = set()
|
|
32
|
+
for item in items:
|
|
33
|
+
if item in seen:
|
|
34
|
+
duplicates.add(item)
|
|
35
|
+
else:
|
|
36
|
+
seen.add(item)
|
|
37
|
+
return list(duplicates)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Impact: 10-1000x speedup depending on dataset size
|
|
41
|
+
|
|
42
|
+
### Caching Strategies
|
|
43
|
+
|
|
44
|
+
#### Memoization
|
|
45
|
+
|
|
46
|
+
```python
|
|
47
|
+
from functools import lru_cache
|
|
48
|
+
|
|
49
|
+
@lru_cache(maxsize=128)
|
|
50
|
+
def fibonacci_memoized(n):
|
|
51
|
+
if n <= 1:
|
|
52
|
+
return n
|
|
53
|
+
return fibonacci_memoized(n-1) + fibonacci_memoized(n-2)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Impact: 50-90% speedup for repeated calls
|
|
57
|
+
|
|
58
|
+
#### Custom Caching
|
|
59
|
+
|
|
60
|
+
```python
|
|
61
|
+
class CacheOptimizer:
|
|
62
|
+
def __init__(self, max_size=1000):
|
|
63
|
+
self.cache = {}
|
|
64
|
+
self.max_size = max_size
|
|
65
|
+
self.access_count = {}
|
|
66
|
+
|
|
67
|
+
def get(self, key):
|
|
68
|
+
if key in self.cache:
|
|
69
|
+
self.access_count[key] = self.access_count.get(key, 0) + 1
|
|
70
|
+
return self.cache[key]
|
|
71
|
+
return None
|
|
72
|
+
|
|
73
|
+
def set(self, key, value):
|
|
74
|
+
if len(self.cache) >= self.max_size:
|
|
75
|
+
lru_key = min(self.access_count, key=self.access_count.get)
|
|
76
|
+
del self.cache[lru_key]
|
|
77
|
+
del self.access_count[lru_key]
|
|
78
|
+
|
|
79
|
+
self.cache[key] = value
|
|
80
|
+
self.access_count[key] = 0
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Concurrency Patterns
|
|
84
|
+
|
|
85
|
+
#### Multiprocessing for CPU-Bound Tasks
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
from multiprocessing import Pool
|
|
89
|
+
|
|
90
|
+
def process_parallel(items):
|
|
91
|
+
with Pool(processes=multiprocessing.cpu_count()) as pool:
|
|
92
|
+
return pool.map(process_item, items)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Impact: 2-8x speedup on multi-core systems
|
|
96
|
+
|
|
97
|
+
#### Asyncio for I/O-Bound Tasks
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
import asyncio
|
|
101
|
+
|
|
102
|
+
async def fetch_all_urls(urls):
|
|
103
|
+
async with aiohttp.ClientSession() as session:
|
|
104
|
+
tasks = [fetch_url(session, url) for url in urls]
|
|
105
|
+
return await asyncio.gather(*tasks)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Impact: 10-100x speedup for I/O-bound operations
|
|
109
|
+
|
|
110
|
+
### Memory Optimization
|
|
111
|
+
|
|
112
|
+
#### Generator Patterns
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
# Stream data instead of loading into memory
|
|
116
|
+
def process_large_file_generator(filename):
|
|
117
|
+
with open(filename) as f:
|
|
118
|
+
for line in f:
|
|
119
|
+
yield process_line(line)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Impact: 60-90% memory reduction
|
|
123
|
+
|
|
124
|
+
#### Memory Pooling
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
class ObjectPool:
|
|
128
|
+
def __init__(self, factory, max_size=100):
|
|
129
|
+
self.factory = factory
|
|
130
|
+
self.pool = []
|
|
131
|
+
self.max_size = max_size
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### I/O Optimization
|
|
135
|
+
|
|
136
|
+
#### Buffered I/O
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
# Batch writes for efficiency
|
|
140
|
+
def write_lines_buffered(lines, filename):
|
|
141
|
+
with open(filename, 'w', buffering=8192) as f:
|
|
142
|
+
f.writelines(lines)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Impact: 5-20x speedup for I/O operations
|
|
146
|
+
|
|
147
|
+
### Data Structure Optimization
|
|
148
|
+
|
|
149
|
+
#### Appropriate Data Structure Selection
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
from collections import deque
|
|
153
|
+
|
|
154
|
+
queue_deque = deque() # O(1) for popleft
|
|
155
|
+
search_set = set() # O(1) for membership test
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
#### NumPy for Numerical Data
|
|
159
|
+
|
|
160
|
+
```python
|
|
161
|
+
import numpy as np
|
|
162
|
+
|
|
163
|
+
def sum_arrays(arrays):
|
|
164
|
+
return np.sum(arrays, axis=0)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Impact: 10-100x speedup for numerical operations
|
|
168
|
+
|
|
169
|
+
## Optimization Planning
|
|
170
|
+
|
|
171
|
+
### Optimization Plan Structure
|
|
172
|
+
|
|
173
|
+
```python
|
|
174
|
+
@dataclass
|
|
175
|
+
class OptimizationPlan:
|
|
176
|
+
bottlenecks: List[PerformanceBottleneck]
|
|
177
|
+
execution_order: List[int]
|
|
178
|
+
estimated_total_improvement: str
|
|
179
|
+
implementation_complexity: str
|
|
180
|
+
risk_level: str
|
|
181
|
+
prerequisites: List[str]
|
|
182
|
+
validation_strategy: str
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Prioritization Strategy
|
|
186
|
+
|
|
187
|
+
```python
|
|
188
|
+
def _prioritize_bottlenecks(
|
|
189
|
+
self, bottlenecks: List[PerformanceBottleneck]
|
|
190
|
+
) -> List[PerformanceBottleneck]:
|
|
191
|
+
severity_order = {'critical': 4, 'high': 3, 'medium': 2, 'low': 1}
|
|
192
|
+
|
|
193
|
+
return sorted(
|
|
194
|
+
bottlenecks,
|
|
195
|
+
key=lambda x: (
|
|
196
|
+
severity_order.get(x.severity, 0),
|
|
197
|
+
x.impact_score,
|
|
198
|
+
self._get_optimization_priority(x.optimization_type)
|
|
199
|
+
),
|
|
200
|
+
reverse=True
|
|
201
|
+
)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Execution Order
|
|
205
|
+
|
|
206
|
+
```python
|
|
207
|
+
def _create_optimization_execution_order(
|
|
208
|
+
self, bottlenecks: List[PerformanceBottleneck]
|
|
209
|
+
) -> List[int]:
|
|
210
|
+
type_groups = defaultdict(list)
|
|
211
|
+
for i, bottleneck in enumerate(bottlenecks):
|
|
212
|
+
type_groups[bottleneck.optimization_type].append(i)
|
|
213
|
+
|
|
214
|
+
execution_order = []
|
|
215
|
+
type_order = [
|
|
216
|
+
OptimizationType.ALGORITHM_IMPROVEMENT,
|
|
217
|
+
OptimizationType.DATA_STRUCTURE_CHANGE,
|
|
218
|
+
OptimizationType.CACHING,
|
|
219
|
+
OptimizationType.MEMORY_OPTIMIZATION,
|
|
220
|
+
OptimizationType.CONCURRENCY,
|
|
221
|
+
OptimizationType.I_O_OPTIMIZATION,
|
|
222
|
+
OptimizationType.DATABASE_OPTIMIZATION
|
|
223
|
+
]
|
|
224
|
+
|
|
225
|
+
for opt_type in type_order:
|
|
226
|
+
if opt_type in type_groups:
|
|
227
|
+
execution_order.extend(type_groups[opt_type])
|
|
228
|
+
|
|
229
|
+
return execution_order
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Implementation Strategies
|
|
233
|
+
|
|
234
|
+
### Risk Assessment
|
|
235
|
+
|
|
236
|
+
```python
|
|
237
|
+
def _assess_optimization_risk(
|
|
238
|
+
self, bottlenecks: List[PerformanceBottleneck]
|
|
239
|
+
) -> str:
|
|
240
|
+
high_risk_types = {
|
|
241
|
+
OptimizationType.ALGORITHM_IMPROVEMENT,
|
|
242
|
+
OptimizationType.DATA_STRUCTURE_CHANGE,
|
|
243
|
+
OptimizationType.CONCURRENCY
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
high_risk_count = sum(
|
|
247
|
+
1 for b in bottlenecks
|
|
248
|
+
if b.optimization_type in high_risk_types and b.impact_score > 0.3
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
if high_risk_count > 3:
|
|
252
|
+
return "high"
|
|
253
|
+
elif high_risk_count > 1:
|
|
254
|
+
return "medium"
|
|
255
|
+
else:
|
|
256
|
+
return "low"
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
### Prerequisites Identification
|
|
260
|
+
|
|
261
|
+
```python
|
|
262
|
+
def _identify_optimization_prerequisites(
|
|
263
|
+
self, bottlenecks: List[PerformanceBottleneck]
|
|
264
|
+
) -> List[str]:
|
|
265
|
+
prerequisites = [
|
|
266
|
+
"Create comprehensive performance benchmarks",
|
|
267
|
+
"Ensure version control with current implementation",
|
|
268
|
+
"Set up performance testing environment"
|
|
269
|
+
]
|
|
270
|
+
|
|
271
|
+
optimization_types = set(b.optimization_type for b in bottlenecks)
|
|
272
|
+
|
|
273
|
+
if OptimizationType.CONCURRENCY in optimization_types:
|
|
274
|
+
prerequisites.extend([
|
|
275
|
+
"Review thread safety and shared resource access",
|
|
276
|
+
"Implement proper synchronization mechanisms"
|
|
277
|
+
])
|
|
278
|
+
|
|
279
|
+
if OptimizationType.DATABASE_OPTIMIZATION in optimization_types:
|
|
280
|
+
prerequisites.extend([
|
|
281
|
+
"Create database backup before optimization",
|
|
282
|
+
"Set up database performance monitoring"
|
|
283
|
+
])
|
|
284
|
+
|
|
285
|
+
return prerequisites
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Validation Strategy
|
|
289
|
+
|
|
290
|
+
```python
|
|
291
|
+
def _create_validation_strategy(
|
|
292
|
+
self, bottlenecks: List[PerformanceBottleneck]
|
|
293
|
+
) -> str:
|
|
294
|
+
return """
|
|
295
|
+
Validation Strategy:
|
|
296
|
+
1. Baseline Performance Measurement
|
|
297
|
+
2. Incremental Testing
|
|
298
|
+
3. Automated Performance Testing
|
|
299
|
+
4. Functional Validation
|
|
300
|
+
5. Production Monitoring
|
|
301
|
+
"""
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Intelligent Optimization
|
|
305
|
+
|
|
306
|
+
### AI-Powered Suggestions
|
|
307
|
+
|
|
308
|
+
```python
|
|
309
|
+
class IntelligentOptimizer(PerformanceProfiler):
|
|
310
|
+
async def get_ai_optimization_suggestions(
|
|
311
|
+
self, bottlenecks: List[PerformanceBottleneck],
|
|
312
|
+
codebase_context: Dict[str, Any]
|
|
313
|
+
) -> Dict[str, Any]:
|
|
314
|
+
if not self.context7:
|
|
315
|
+
return self._get_rule_based_suggestions(bottlenecks)
|
|
316
|
+
|
|
317
|
+
optimization_patterns = await self.context7.get_library_docs(
|
|
318
|
+
context7_library_id="/performance/python-profiling",
|
|
319
|
+
topic="advanced performance optimization patterns 2025",
|
|
320
|
+
tokens=5000
|
|
321
|
+
)
|
|
322
|
+
|
|
323
|
+
algorithm_patterns = await self.context7.get_library_docs(
|
|
324
|
+
context7_library_id="/algorithms/python",
|
|
325
|
+
topic="algorithm optimization big-O complexity reduction",
|
|
326
|
+
tokens=3000
|
|
327
|
+
)
|
|
328
|
+
|
|
329
|
+
return await self._generate_ai_suggestions(
|
|
330
|
+
bottlenecks, optimization_patterns, algorithm_patterns, codebase_context
|
|
331
|
+
)
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Algorithm Improvement Suggestions
|
|
335
|
+
|
|
336
|
+
```python
|
|
337
|
+
def _suggest_algorithm_improvement(
|
|
338
|
+
self, bottleneck: PerformanceBottleneck, algo_patterns: Dict
|
|
339
|
+
) -> Dict[str, Any]:
|
|
340
|
+
function_name = bottleneck.function_name.lower()
|
|
341
|
+
suggestions = []
|
|
342
|
+
|
|
343
|
+
if any(keyword in function_name for keyword in ["search", "find"]):
|
|
344
|
+
suggestions.extend([
|
|
345
|
+
"Consider using binary search for sorted data",
|
|
346
|
+
"Implement hash-based lookup for O(1) average case",
|
|
347
|
+
"Use trie structures for prefix searches"
|
|
348
|
+
])
|
|
349
|
+
|
|
350
|
+
elif any(keyword in function_name for keyword in ["sort", "order"]):
|
|
351
|
+
suggestions.extend([
|
|
352
|
+
"Consider using Timsort (Python's built-in sort)",
|
|
353
|
+
"Use radix sort for uniform integer data",
|
|
354
|
+
"Implement bucket sort for uniformly distributed data"
|
|
355
|
+
])
|
|
356
|
+
|
|
357
|
+
return {
|
|
358
|
+
'bottleneck': bottleneck.function_name,
|
|
359
|
+
'suggestions': suggestions,
|
|
360
|
+
'estimated_improvement': "30-90% depending on algorithm",
|
|
361
|
+
'implementation_complexity': "medium to high"
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Data Structure Optimization
|
|
366
|
+
|
|
367
|
+
```python
|
|
368
|
+
def _suggest_data_structure_improvement(
|
|
369
|
+
self, bottleneck: PerformanceBottleneck, opt_patterns: Dict
|
|
370
|
+
) -> Dict[str, Any]:
|
|
371
|
+
return {
|
|
372
|
+
'bottleneck': bottleneck.function_name,
|
|
373
|
+
'suggestions': [
|
|
374
|
+
"Use generators instead of lists for large datasets",
|
|
375
|
+
"Implement lazy loading for expensive data structures",
|
|
376
|
+
"Use memoryviews or numpy arrays for numerical data",
|
|
377
|
+
"Consider using collections.deque for queue operations",
|
|
378
|
+
"Use set/dict for O(1) lookups instead of list searches"
|
|
379
|
+
],
|
|
380
|
+
'estimated_improvement': "30-80% memory reduction",
|
|
381
|
+
'implementation_complexity': "low to medium"
|
|
382
|
+
}
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
## Best Practices
|
|
386
|
+
|
|
387
|
+
### Incremental Optimization
|
|
388
|
+
|
|
389
|
+
1. Profile before optimization
|
|
390
|
+
2. Optimize one bottleneck at a time
|
|
391
|
+
3. Measure improvement after each change
|
|
392
|
+
4. Verify functionality with tests
|
|
393
|
+
5. Commit changes with performance notes
|
|
394
|
+
|
|
395
|
+
### Measurement-Driven Optimization
|
|
396
|
+
|
|
397
|
+
Always measure:
|
|
398
|
+
- Before optimization: Establish baseline
|
|
399
|
+
- During optimization: Track incremental improvements
|
|
400
|
+
- After optimization: Validate total improvement
|
|
401
|
+
- In production: Monitor for regressions
|
|
402
|
+
|
|
403
|
+
### Testing Strategy
|
|
404
|
+
|
|
405
|
+
Comprehensive testing:
|
|
406
|
+
- Unit tests: Verify functional correctness
|
|
407
|
+
- Performance tests: Validate improvement claims
|
|
408
|
+
- Integration tests: Ensure system-wide compatibility
|
|
409
|
+
- Regression tests: Prevent performance degradation
|
|
410
|
+
|
|
411
|
+
### Documentation
|
|
412
|
+
|
|
413
|
+
Document optimizations:
|
|
414
|
+
- Problem description and metrics
|
|
415
|
+
- Solution approach and implementation
|
|
416
|
+
- Performance improvement measurements
|
|
417
|
+
- Side effects and trade-offs
|
|
418
|
+
- Maintenance considerations
|
|
419
|
+
|
|
420
|
+
## Common Pitfalls
|
|
421
|
+
|
|
422
|
+
### Premature Optimization
|
|
423
|
+
|
|
424
|
+
Avoid optimizing:
|
|
425
|
+
- Code paths rarely executed
|
|
426
|
+
- Features with uncertain requirements
|
|
427
|
+
- Clear and correct code without performance issues
|
|
428
|
+
|
|
429
|
+
Focus on:
|
|
430
|
+
- Measured bottlenecks
|
|
431
|
+
- Hot paths in critical workflows
|
|
432
|
+
- User-facing performance issues
|
|
433
|
+
|
|
434
|
+
### Over-Optimization
|
|
435
|
+
|
|
436
|
+
Signs of over-optimization:
|
|
437
|
+
- Code becomes unreadable
|
|
438
|
+
- Maintenance costs exceed performance gains
|
|
439
|
+
- Optimization targets theoretical scenarios
|
|
440
|
+
- Diminishing returns on investment
|
|
441
|
+
|
|
442
|
+
### Ignoring Trade-offs
|
|
443
|
+
|
|
444
|
+
Consider trade-offs:
|
|
445
|
+
- Memory vs. CPU
|
|
446
|
+
- Development time vs. performance gain
|
|
447
|
+
- Code clarity vs. optimization
|
|
448
|
+
- Portability vs. platform-specific optimizations
|
|
449
|
+
|
|
450
|
+
## Performance Monitoring
|
|
451
|
+
|
|
452
|
+
### Continuous Monitoring
|
|
453
|
+
|
|
454
|
+
Implement monitoring for:
|
|
455
|
+
- Response times and throughput
|
|
456
|
+
- Resource utilization (CPU, memory, I/O)
|
|
457
|
+
- Error rates and exceptions
|
|
458
|
+
- Business metrics correlated with performance
|
|
459
|
+
|
|
460
|
+
### Alerting
|
|
461
|
+
|
|
462
|
+
Set up alerts for:
|
|
463
|
+
- Performance regression beyond thresholds
|
|
464
|
+
- Resource exhaustion conditions
|
|
465
|
+
- Anomalous behavior patterns
|
|
466
|
+
- SLA violations
|
|
467
|
+
|
|
468
|
+
---
|
|
469
|
+
|
|
470
|
+
Sub-module: `modules/performance/optimization-patterns.md`
|
|
471
|
+
Parent: [Performance Optimization](../performance-optimization.md)
|
|
472
|
+
Version: 2.0.0
|
|
473
|
+
Last Updated: 2025-12-07
|