tapps-agents 3.6.0__py3-none-any.whl → 3.6.1__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.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/__init__.py +22 -22
- tapps_agents/agents/analyst/__init__.py +5 -5
- tapps_agents/agents/architect/__init__.py +5 -5
- tapps_agents/agents/architect/agent.py +1033 -1033
- tapps_agents/agents/architect/pattern_detector.py +75 -75
- tapps_agents/agents/cleanup/__init__.py +7 -7
- tapps_agents/agents/cleanup/agent.py +445 -445
- tapps_agents/agents/debugger/__init__.py +7 -7
- tapps_agents/agents/debugger/agent.py +310 -310
- tapps_agents/agents/debugger/error_analyzer.py +437 -437
- tapps_agents/agents/designer/__init__.py +5 -5
- tapps_agents/agents/designer/agent.py +786 -786
- tapps_agents/agents/designer/visual_designer.py +638 -638
- tapps_agents/agents/documenter/__init__.py +7 -7
- tapps_agents/agents/documenter/agent.py +531 -531
- tapps_agents/agents/documenter/doc_generator.py +472 -472
- tapps_agents/agents/documenter/doc_validator.py +393 -393
- tapps_agents/agents/documenter/framework_doc_updater.py +493 -493
- tapps_agents/agents/enhancer/__init__.py +7 -7
- tapps_agents/agents/evaluator/__init__.py +7 -7
- tapps_agents/agents/evaluator/agent.py +443 -443
- tapps_agents/agents/evaluator/priority_evaluator.py +641 -641
- tapps_agents/agents/evaluator/quality_analyzer.py +147 -147
- tapps_agents/agents/evaluator/report_generator.py +344 -344
- tapps_agents/agents/evaluator/usage_analyzer.py +192 -192
- tapps_agents/agents/evaluator/workflow_analyzer.py +189 -189
- tapps_agents/agents/implementer/__init__.py +7 -7
- tapps_agents/agents/implementer/agent.py +798 -798
- tapps_agents/agents/implementer/auto_fix.py +1119 -1119
- tapps_agents/agents/implementer/code_generator.py +73 -73
- tapps_agents/agents/improver/__init__.py +1 -1
- tapps_agents/agents/improver/agent.py +753 -753
- tapps_agents/agents/ops/__init__.py +1 -1
- tapps_agents/agents/ops/agent.py +619 -619
- tapps_agents/agents/ops/dependency_analyzer.py +600 -600
- tapps_agents/agents/orchestrator/__init__.py +5 -5
- tapps_agents/agents/orchestrator/agent.py +522 -522
- tapps_agents/agents/planner/__init__.py +7 -7
- tapps_agents/agents/planner/agent.py +1127 -1127
- tapps_agents/agents/reviewer/__init__.py +24 -24
- tapps_agents/agents/reviewer/agent.py +3513 -3513
- tapps_agents/agents/reviewer/aggregator.py +213 -213
- tapps_agents/agents/reviewer/batch_review.py +448 -448
- tapps_agents/agents/reviewer/cache.py +443 -443
- tapps_agents/agents/reviewer/context7_enhancer.py +630 -630
- tapps_agents/agents/reviewer/context_detector.py +203 -203
- tapps_agents/agents/reviewer/docker_compose_validator.py +158 -158
- tapps_agents/agents/reviewer/dockerfile_validator.py +176 -176
- tapps_agents/agents/reviewer/error_handling.py +126 -126
- tapps_agents/agents/reviewer/feedback_generator.py +490 -490
- tapps_agents/agents/reviewer/influxdb_validator.py +316 -316
- tapps_agents/agents/reviewer/issue_tracking.py +169 -169
- tapps_agents/agents/reviewer/library_detector.py +295 -295
- tapps_agents/agents/reviewer/library_patterns.py +268 -268
- tapps_agents/agents/reviewer/maintainability_scorer.py +593 -593
- tapps_agents/agents/reviewer/metric_strategies.py +276 -276
- tapps_agents/agents/reviewer/mqtt_validator.py +160 -160
- tapps_agents/agents/reviewer/output_enhancer.py +105 -105
- tapps_agents/agents/reviewer/pattern_detector.py +241 -241
- tapps_agents/agents/reviewer/performance_scorer.py +357 -357
- tapps_agents/agents/reviewer/phased_review.py +516 -516
- tapps_agents/agents/reviewer/progressive_review.py +435 -435
- tapps_agents/agents/reviewer/react_scorer.py +331 -331
- tapps_agents/agents/reviewer/score_constants.py +228 -228
- tapps_agents/agents/reviewer/score_validator.py +507 -507
- tapps_agents/agents/reviewer/scorer_registry.py +373 -373
- tapps_agents/agents/reviewer/service_discovery.py +534 -534
- tapps_agents/agents/reviewer/tools/parallel_executor.py +581 -581
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -250
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -284
- tapps_agents/agents/reviewer/typescript_scorer.py +1142 -1142
- tapps_agents/agents/reviewer/validation.py +208 -208
- tapps_agents/agents/reviewer/websocket_validator.py +132 -132
- tapps_agents/agents/tester/__init__.py +7 -7
- tapps_agents/agents/tester/accessibility_auditor.py +309 -309
- tapps_agents/agents/tester/agent.py +1080 -1080
- tapps_agents/agents/tester/batch_generator.py +54 -54
- tapps_agents/agents/tester/context_learner.py +51 -51
- tapps_agents/agents/tester/coverage_analyzer.py +386 -386
- tapps_agents/agents/tester/coverage_test_generator.py +290 -290
- tapps_agents/agents/tester/debug_enhancer.py +238 -238
- tapps_agents/agents/tester/device_emulator.py +241 -241
- tapps_agents/agents/tester/integration_generator.py +62 -62
- tapps_agents/agents/tester/network_recorder.py +300 -300
- tapps_agents/agents/tester/performance_monitor.py +320 -320
- tapps_agents/agents/tester/test_fixer.py +316 -316
- tapps_agents/agents/tester/test_generator.py +632 -632
- tapps_agents/agents/tester/trace_manager.py +234 -234
- tapps_agents/agents/tester/visual_regression.py +291 -291
- tapps_agents/analysis/pattern_detector.py +36 -36
- tapps_agents/beads/hydration.py +213 -213
- tapps_agents/beads/parse.py +32 -32
- tapps_agents/beads/specs.py +206 -206
- tapps_agents/cli/__init__.py +9 -9
- tapps_agents/cli/__main__.py +8 -8
- tapps_agents/cli/base.py +478 -478
- tapps_agents/cli/command_classifier.py +72 -72
- tapps_agents/cli/commands/__init__.py +2 -2
- tapps_agents/cli/commands/analyst.py +173 -173
- tapps_agents/cli/commands/architect.py +109 -109
- tapps_agents/cli/commands/cleanup_agent.py +92 -92
- tapps_agents/cli/commands/common.py +126 -126
- tapps_agents/cli/commands/debugger.py +90 -90
- tapps_agents/cli/commands/designer.py +112 -112
- tapps_agents/cli/commands/documenter.py +136 -136
- tapps_agents/cli/commands/enhancer.py +110 -110
- tapps_agents/cli/commands/evaluator.py +255 -255
- tapps_agents/cli/commands/implementer.py +301 -301
- tapps_agents/cli/commands/improver.py +91 -91
- tapps_agents/cli/commands/knowledge.py +111 -111
- tapps_agents/cli/commands/learning.py +172 -172
- tapps_agents/cli/commands/observability.py +283 -283
- tapps_agents/cli/commands/ops.py +135 -135
- tapps_agents/cli/commands/orchestrator.py +116 -116
- tapps_agents/cli/commands/planner.py +237 -237
- tapps_agents/cli/commands/reviewer.py +1872 -1872
- tapps_agents/cli/commands/status.py +285 -285
- tapps_agents/cli/commands/task.py +227 -227
- tapps_agents/cli/commands/tester.py +191 -191
- tapps_agents/cli/feedback.py +936 -936
- tapps_agents/cli/formatters.py +608 -608
- tapps_agents/cli/help/__init__.py +7 -7
- tapps_agents/cli/help/static_help.py +425 -425
- tapps_agents/cli/network_detection.py +110 -110
- tapps_agents/cli/output_compactor.py +274 -274
- tapps_agents/cli/parsers/__init__.py +2 -2
- tapps_agents/cli/parsers/analyst.py +186 -186
- tapps_agents/cli/parsers/architect.py +167 -167
- tapps_agents/cli/parsers/cleanup_agent.py +228 -228
- tapps_agents/cli/parsers/debugger.py +116 -116
- tapps_agents/cli/parsers/designer.py +182 -182
- tapps_agents/cli/parsers/documenter.py +134 -134
- tapps_agents/cli/parsers/enhancer.py +113 -113
- tapps_agents/cli/parsers/evaluator.py +213 -213
- tapps_agents/cli/parsers/implementer.py +168 -168
- tapps_agents/cli/parsers/improver.py +132 -132
- tapps_agents/cli/parsers/ops.py +159 -159
- tapps_agents/cli/parsers/orchestrator.py +98 -98
- tapps_agents/cli/parsers/planner.py +145 -145
- tapps_agents/cli/parsers/reviewer.py +462 -462
- tapps_agents/cli/parsers/tester.py +124 -124
- tapps_agents/cli/progress_heartbeat.py +254 -254
- tapps_agents/cli/streaming_progress.py +336 -336
- tapps_agents/cli/utils/__init__.py +6 -6
- tapps_agents/cli/utils/agent_lifecycle.py +48 -48
- tapps_agents/cli/utils/error_formatter.py +82 -82
- tapps_agents/cli/utils/error_recovery.py +188 -188
- tapps_agents/cli/utils/output_handler.py +59 -59
- tapps_agents/cli/utils/prompt_enhancer.py +319 -319
- tapps_agents/cli/validators/__init__.py +9 -9
- tapps_agents/cli/validators/command_validator.py +81 -81
- tapps_agents/context7/__init__.py +112 -112
- tapps_agents/context7/agent_integration.py +869 -869
- tapps_agents/context7/analytics.py +382 -382
- tapps_agents/context7/analytics_dashboard.py +299 -299
- tapps_agents/context7/async_cache.py +681 -681
- tapps_agents/context7/backup_client.py +958 -958
- tapps_agents/context7/cache_locking.py +194 -194
- tapps_agents/context7/cache_metadata.py +214 -214
- tapps_agents/context7/cache_prewarm.py +488 -488
- tapps_agents/context7/cache_structure.py +168 -168
- tapps_agents/context7/cache_warming.py +604 -604
- tapps_agents/context7/circuit_breaker.py +376 -376
- tapps_agents/context7/cleanup.py +461 -461
- tapps_agents/context7/commands.py +858 -858
- tapps_agents/context7/credential_validation.py +276 -276
- tapps_agents/context7/cross_reference_resolver.py +168 -168
- tapps_agents/context7/cross_references.py +424 -424
- tapps_agents/context7/doc_manager.py +225 -225
- tapps_agents/context7/fuzzy_matcher.py +369 -369
- tapps_agents/context7/kb_cache.py +404 -404
- tapps_agents/context7/language_detector.py +219 -219
- tapps_agents/context7/library_detector.py +725 -725
- tapps_agents/context7/lookup.py +738 -738
- tapps_agents/context7/metadata.py +258 -258
- tapps_agents/context7/refresh_queue.py +300 -300
- tapps_agents/context7/security.py +373 -373
- tapps_agents/context7/staleness_policies.py +278 -278
- tapps_agents/context7/tiles_integration.py +47 -47
- tapps_agents/continuous_bug_fix/__init__.py +20 -20
- tapps_agents/continuous_bug_fix/bug_finder.py +306 -306
- tapps_agents/continuous_bug_fix/bug_fix_coordinator.py +177 -177
- tapps_agents/continuous_bug_fix/commit_manager.py +178 -178
- tapps_agents/continuous_bug_fix/continuous_bug_fixer.py +322 -322
- tapps_agents/continuous_bug_fix/proactive_bug_finder.py +285 -285
- tapps_agents/core/__init__.py +298 -298
- tapps_agents/core/adaptive_cache_config.py +432 -432
- tapps_agents/core/agent_base.py +647 -647
- tapps_agents/core/agent_cache.py +466 -466
- tapps_agents/core/agent_learning.py +1865 -1865
- tapps_agents/core/analytics_dashboard.py +563 -563
- tapps_agents/core/analytics_enhancements.py +597 -597
- tapps_agents/core/anonymization.py +274 -274
- tapps_agents/core/ast_parser.py +228 -228
- tapps_agents/core/async_file_ops.py +402 -402
- tapps_agents/core/best_practice_consultant.py +299 -299
- tapps_agents/core/brownfield_analyzer.py +299 -299
- tapps_agents/core/brownfield_review.py +541 -541
- tapps_agents/core/browser_controller.py +513 -513
- tapps_agents/core/capability_registry.py +418 -418
- tapps_agents/core/change_impact_analyzer.py +190 -190
- tapps_agents/core/checkpoint_manager.py +377 -377
- tapps_agents/core/code_generator.py +329 -329
- tapps_agents/core/code_validator.py +276 -276
- tapps_agents/core/command_registry.py +327 -327
- tapps_agents/core/context_gathering/__init__.py +2 -2
- tapps_agents/core/context_gathering/repository_explorer.py +28 -28
- tapps_agents/core/context_intelligence/__init__.py +2 -2
- tapps_agents/core/context_intelligence/relevance_scorer.py +24 -24
- tapps_agents/core/context_intelligence/token_budget_manager.py +27 -27
- tapps_agents/core/context_manager.py +240 -240
- tapps_agents/core/cursor_feedback_monitor.py +146 -146
- tapps_agents/core/cursor_verification.py +290 -290
- tapps_agents/core/customization_loader.py +280 -280
- tapps_agents/core/customization_schema.py +260 -260
- tapps_agents/core/customization_template.py +238 -238
- tapps_agents/core/debug_logger.py +124 -124
- tapps_agents/core/design_validator.py +298 -298
- tapps_agents/core/diagram_generator.py +226 -226
- tapps_agents/core/docker_utils.py +232 -232
- tapps_agents/core/document_generator.py +617 -617
- tapps_agents/core/domain_detector.py +30 -30
- tapps_agents/core/error_envelope.py +454 -454
- tapps_agents/core/error_handler.py +270 -270
- tapps_agents/core/estimation_tracker.py +189 -189
- tapps_agents/core/eval_prompt_engine.py +116 -116
- tapps_agents/core/evaluation_base.py +119 -119
- tapps_agents/core/evaluation_models.py +320 -320
- tapps_agents/core/evaluation_orchestrator.py +225 -225
- tapps_agents/core/evaluators/__init__.py +7 -7
- tapps_agents/core/evaluators/architectural_evaluator.py +205 -205
- tapps_agents/core/evaluators/behavioral_evaluator.py +160 -160
- tapps_agents/core/evaluators/performance_profile_evaluator.py +160 -160
- tapps_agents/core/evaluators/security_posture_evaluator.py +148 -148
- tapps_agents/core/evaluators/spec_compliance_evaluator.py +181 -181
- tapps_agents/core/exceptions.py +107 -107
- tapps_agents/core/expert_config_generator.py +293 -293
- tapps_agents/core/export_schema.py +202 -202
- tapps_agents/core/external_feedback_models.py +102 -102
- tapps_agents/core/external_feedback_storage.py +213 -213
- tapps_agents/core/fallback_strategy.py +314 -314
- tapps_agents/core/feedback_analyzer.py +162 -162
- tapps_agents/core/feedback_collector.py +178 -178
- tapps_agents/core/git_operations.py +445 -445
- tapps_agents/core/hardware_profiler.py +151 -151
- tapps_agents/core/instructions.py +324 -324
- tapps_agents/core/io_guardrails.py +69 -69
- tapps_agents/core/issue_manifest.py +249 -249
- tapps_agents/core/issue_schema.py +139 -139
- tapps_agents/core/json_utils.py +128 -128
- tapps_agents/core/knowledge_graph.py +446 -446
- tapps_agents/core/language_detector.py +296 -296
- tapps_agents/core/learning_confidence.py +242 -242
- tapps_agents/core/learning_dashboard.py +246 -246
- tapps_agents/core/learning_decision.py +384 -384
- tapps_agents/core/learning_explainability.py +578 -578
- tapps_agents/core/learning_export.py +287 -287
- tapps_agents/core/learning_integration.py +228 -228
- tapps_agents/core/llm_behavior.py +232 -232
- tapps_agents/core/long_duration_support.py +786 -786
- tapps_agents/core/mcp_setup.py +106 -106
- tapps_agents/core/memory_integration.py +396 -396
- tapps_agents/core/meta_learning.py +666 -666
- tapps_agents/core/module_path_sanitizer.py +199 -199
- tapps_agents/core/multi_agent_orchestrator.py +382 -382
- tapps_agents/core/network_errors.py +125 -125
- tapps_agents/core/nfr_validator.py +336 -336
- tapps_agents/core/offline_mode.py +158 -158
- tapps_agents/core/output_contracts.py +300 -300
- tapps_agents/core/output_formatter.py +300 -300
- tapps_agents/core/path_normalizer.py +174 -174
- tapps_agents/core/path_validator.py +322 -322
- tapps_agents/core/pattern_library.py +250 -250
- tapps_agents/core/performance_benchmark.py +301 -301
- tapps_agents/core/performance_monitor.py +184 -184
- tapps_agents/core/playwright_mcp_controller.py +771 -771
- tapps_agents/core/policy_loader.py +135 -135
- tapps_agents/core/progress.py +166 -166
- tapps_agents/core/project_profile.py +354 -354
- tapps_agents/core/project_type_detector.py +454 -454
- tapps_agents/core/prompt_base.py +223 -223
- tapps_agents/core/prompt_learning/__init__.py +2 -2
- tapps_agents/core/prompt_learning/learning_loop.py +24 -24
- tapps_agents/core/prompt_learning/project_prompt_store.py +25 -25
- tapps_agents/core/prompt_learning/skills_prompt_analyzer.py +35 -35
- tapps_agents/core/prompt_optimization/__init__.py +6 -6
- tapps_agents/core/prompt_optimization/ab_tester.py +114 -114
- tapps_agents/core/prompt_optimization/correlation_analyzer.py +160 -160
- tapps_agents/core/prompt_optimization/progressive_refiner.py +129 -129
- tapps_agents/core/prompt_optimization/prompt_library.py +37 -37
- tapps_agents/core/requirements_evaluator.py +431 -431
- tapps_agents/core/resource_aware_executor.py +449 -449
- tapps_agents/core/resource_monitor.py +343 -343
- tapps_agents/core/resume_handler.py +298 -298
- tapps_agents/core/retry_handler.py +197 -197
- tapps_agents/core/review_checklists.py +479 -479
- tapps_agents/core/role_loader.py +201 -201
- tapps_agents/core/role_template_loader.py +201 -201
- tapps_agents/core/runtime_mode.py +60 -60
- tapps_agents/core/security_scanner.py +342 -342
- tapps_agents/core/skill_agent_registry.py +194 -194
- tapps_agents/core/skill_integration.py +208 -208
- tapps_agents/core/skill_loader.py +492 -492
- tapps_agents/core/skill_template.py +341 -341
- tapps_agents/core/skill_validator.py +478 -478
- tapps_agents/core/stack_analyzer.py +35 -35
- tapps_agents/core/startup.py +174 -174
- tapps_agents/core/storage_manager.py +397 -397
- tapps_agents/core/storage_models.py +166 -166
- tapps_agents/core/story_evaluator.py +410 -410
- tapps_agents/core/subprocess_utils.py +170 -170
- tapps_agents/core/task_duration.py +296 -296
- tapps_agents/core/task_memory.py +582 -582
- tapps_agents/core/task_state.py +226 -226
- tapps_agents/core/tech_stack_priorities.py +208 -208
- tapps_agents/core/temp_directory.py +194 -194
- tapps_agents/core/template_merger.py +600 -600
- tapps_agents/core/template_selector.py +280 -280
- tapps_agents/core/test_generator.py +286 -286
- tapps_agents/core/tiered_context.py +253 -253
- tapps_agents/core/token_monitor.py +345 -345
- tapps_agents/core/traceability.py +254 -254
- tapps_agents/core/trajectory_tracker.py +50 -50
- tapps_agents/core/unicode_safe.py +143 -143
- tapps_agents/core/unified_cache_config.py +170 -170
- tapps_agents/core/unified_state.py +324 -324
- tapps_agents/core/validate_cursor_setup.py +237 -237
- tapps_agents/core/validation_registry.py +136 -136
- tapps_agents/core/validators/__init__.py +4 -4
- tapps_agents/core/validators/python_validator.py +87 -87
- tapps_agents/core/verification_agent.py +90 -90
- tapps_agents/core/visual_feedback.py +644 -644
- tapps_agents/core/workflow_validator.py +197 -197
- tapps_agents/core/worktree.py +367 -367
- tapps_agents/docker/__init__.py +10 -10
- tapps_agents/docker/analyzer.py +186 -186
- tapps_agents/docker/debugger.py +229 -229
- tapps_agents/docker/error_patterns.py +216 -216
- tapps_agents/epic/__init__.py +22 -22
- tapps_agents/epic/beads_sync.py +115 -115
- tapps_agents/epic/markdown_sync.py +105 -105
- tapps_agents/epic/models.py +96 -96
- tapps_agents/experts/__init__.py +163 -163
- tapps_agents/experts/agent_integration.py +243 -243
- tapps_agents/experts/auto_generator.py +331 -331
- tapps_agents/experts/base_expert.py +536 -536
- tapps_agents/experts/builtin_registry.py +261 -261
- tapps_agents/experts/business_metrics.py +565 -565
- tapps_agents/experts/cache.py +266 -266
- tapps_agents/experts/confidence_breakdown.py +306 -306
- tapps_agents/experts/confidence_calculator.py +336 -336
- tapps_agents/experts/confidence_metrics.py +236 -236
- tapps_agents/experts/domain_config.py +311 -311
- tapps_agents/experts/domain_detector.py +550 -550
- tapps_agents/experts/domain_utils.py +84 -84
- tapps_agents/experts/expert_config.py +113 -113
- tapps_agents/experts/expert_engine.py +465 -465
- tapps_agents/experts/expert_registry.py +744 -744
- tapps_agents/experts/expert_synthesizer.py +70 -70
- tapps_agents/experts/governance.py +197 -197
- tapps_agents/experts/history_logger.py +312 -312
- tapps_agents/experts/knowledge/README.md +180 -180
- tapps_agents/experts/knowledge/accessibility/accessible-forms.md +331 -331
- tapps_agents/experts/knowledge/accessibility/aria-patterns.md +344 -344
- tapps_agents/experts/knowledge/accessibility/color-contrast.md +285 -285
- tapps_agents/experts/knowledge/accessibility/keyboard-navigation.md +332 -332
- tapps_agents/experts/knowledge/accessibility/screen-readers.md +282 -282
- tapps_agents/experts/knowledge/accessibility/semantic-html.md +355 -355
- tapps_agents/experts/knowledge/accessibility/testing-accessibility.md +369 -369
- tapps_agents/experts/knowledge/accessibility/wcag-2.1.md +296 -296
- tapps_agents/experts/knowledge/accessibility/wcag-2.2.md +211 -211
- tapps_agents/experts/knowledge/agent-learning/best-practices.md +715 -715
- tapps_agents/experts/knowledge/agent-learning/pattern-extraction.md +282 -282
- tapps_agents/experts/knowledge/agent-learning/prompt-optimization.md +320 -320
- tapps_agents/experts/knowledge/ai-frameworks/model-optimization.md +90 -90
- tapps_agents/experts/knowledge/ai-frameworks/openvino-patterns.md +260 -260
- tapps_agents/experts/knowledge/api-design-integration/api-gateway-patterns.md +309 -309
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +521 -521
- tapps_agents/experts/knowledge/api-design-integration/api-versioning.md +421 -421
- tapps_agents/experts/knowledge/api-design-integration/async-protocol-patterns.md +61 -61
- tapps_agents/experts/knowledge/api-design-integration/contract-testing.md +221 -221
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +489 -489
- tapps_agents/experts/knowledge/api-design-integration/fastapi-patterns.md +360 -360
- tapps_agents/experts/knowledge/api-design-integration/fastapi-testing.md +262 -262
- tapps_agents/experts/knowledge/api-design-integration/graphql-patterns.md +582 -582
- tapps_agents/experts/knowledge/api-design-integration/grpc-best-practices.md +499 -499
- tapps_agents/experts/knowledge/api-design-integration/mqtt-patterns.md +455 -455
- tapps_agents/experts/knowledge/api-design-integration/rate-limiting.md +507 -507
- tapps_agents/experts/knowledge/api-design-integration/restful-api-design.md +618 -618
- tapps_agents/experts/knowledge/api-design-integration/websocket-patterns.md +480 -480
- tapps_agents/experts/knowledge/cloud-infrastructure/cloud-native-patterns.md +175 -175
- tapps_agents/experts/knowledge/cloud-infrastructure/container-health-checks.md +261 -261
- tapps_agents/experts/knowledge/cloud-infrastructure/containerization.md +222 -222
- tapps_agents/experts/knowledge/cloud-infrastructure/cost-optimization.md +122 -122
- tapps_agents/experts/knowledge/cloud-infrastructure/disaster-recovery.md +153 -153
- tapps_agents/experts/knowledge/cloud-infrastructure/dockerfile-patterns.md +285 -285
- tapps_agents/experts/knowledge/cloud-infrastructure/infrastructure-as-code.md +187 -187
- tapps_agents/experts/knowledge/cloud-infrastructure/kubernetes-patterns.md +253 -253
- tapps_agents/experts/knowledge/cloud-infrastructure/multi-cloud-strategies.md +155 -155
- tapps_agents/experts/knowledge/cloud-infrastructure/serverless-architecture.md +200 -200
- tapps_agents/experts/knowledge/code-quality-analysis/README.md +16 -16
- tapps_agents/experts/knowledge/code-quality-analysis/code-metrics.md +137 -137
- tapps_agents/experts/knowledge/code-quality-analysis/complexity-analysis.md +181 -181
- tapps_agents/experts/knowledge/code-quality-analysis/technical-debt-patterns.md +191 -191
- tapps_agents/experts/knowledge/data-privacy-compliance/anonymization.md +313 -313
- tapps_agents/experts/knowledge/data-privacy-compliance/ccpa.md +255 -255
- tapps_agents/experts/knowledge/data-privacy-compliance/consent-management.md +282 -282
- tapps_agents/experts/knowledge/data-privacy-compliance/data-minimization.md +275 -275
- tapps_agents/experts/knowledge/data-privacy-compliance/data-retention.md +297 -297
- tapps_agents/experts/knowledge/data-privacy-compliance/data-subject-rights.md +383 -383
- tapps_agents/experts/knowledge/data-privacy-compliance/encryption-privacy.md +285 -285
- tapps_agents/experts/knowledge/data-privacy-compliance/gdpr.md +344 -344
- tapps_agents/experts/knowledge/data-privacy-compliance/hipaa.md +385 -385
- tapps_agents/experts/knowledge/data-privacy-compliance/privacy-by-design.md +280 -280
- tapps_agents/experts/knowledge/database-data-management/acid-vs-cap.md +164 -164
- tapps_agents/experts/knowledge/database-data-management/backup-and-recovery.md +182 -182
- tapps_agents/experts/knowledge/database-data-management/data-modeling.md +172 -172
- tapps_agents/experts/knowledge/database-data-management/database-design.md +187 -187
- tapps_agents/experts/knowledge/database-data-management/flux-query-optimization.md +342 -342
- tapps_agents/experts/knowledge/database-data-management/influxdb-connection-patterns.md +432 -432
- tapps_agents/experts/knowledge/database-data-management/influxdb-patterns.md +442 -442
- tapps_agents/experts/knowledge/database-data-management/migration-strategies.md +216 -216
- tapps_agents/experts/knowledge/database-data-management/nosql-patterns.md +259 -259
- tapps_agents/experts/knowledge/database-data-management/scalability-patterns.md +184 -184
- tapps_agents/experts/knowledge/database-data-management/sql-optimization.md +175 -175
- tapps_agents/experts/knowledge/database-data-management/time-series-modeling.md +444 -444
- tapps_agents/experts/knowledge/development-workflow/README.md +16 -16
- tapps_agents/experts/knowledge/development-workflow/automation-best-practices.md +216 -216
- tapps_agents/experts/knowledge/development-workflow/build-strategies.md +198 -198
- tapps_agents/experts/knowledge/development-workflow/deployment-patterns.md +205 -205
- tapps_agents/experts/knowledge/development-workflow/git-workflows.md +205 -205
- tapps_agents/experts/knowledge/documentation-knowledge-management/README.md +16 -16
- tapps_agents/experts/knowledge/documentation-knowledge-management/api-documentation-patterns.md +231 -231
- tapps_agents/experts/knowledge/documentation-knowledge-management/documentation-standards.md +191 -191
- tapps_agents/experts/knowledge/documentation-knowledge-management/knowledge-management.md +171 -171
- tapps_agents/experts/knowledge/documentation-knowledge-management/technical-writing-guide.md +192 -192
- tapps_agents/experts/knowledge/observability-monitoring/alerting-patterns.md +461 -461
- tapps_agents/experts/knowledge/observability-monitoring/apm-tools.md +459 -459
- tapps_agents/experts/knowledge/observability-monitoring/distributed-tracing.md +367 -367
- tapps_agents/experts/knowledge/observability-monitoring/logging-strategies.md +478 -478
- tapps_agents/experts/knowledge/observability-monitoring/metrics-and-monitoring.md +510 -510
- tapps_agents/experts/knowledge/observability-monitoring/observability-best-practices.md +492 -492
- tapps_agents/experts/knowledge/observability-monitoring/open-telemetry.md +573 -573
- tapps_agents/experts/knowledge/observability-monitoring/slo-sli-sla.md +419 -419
- tapps_agents/experts/knowledge/performance/anti-patterns.md +284 -284
- tapps_agents/experts/knowledge/performance/api-performance.md +256 -256
- tapps_agents/experts/knowledge/performance/caching.md +327 -327
- tapps_agents/experts/knowledge/performance/database-performance.md +252 -252
- tapps_agents/experts/knowledge/performance/optimization-patterns.md +327 -327
- tapps_agents/experts/knowledge/performance/profiling.md +297 -297
- tapps_agents/experts/knowledge/performance/resource-management.md +293 -293
- tapps_agents/experts/knowledge/performance/scalability.md +306 -306
- tapps_agents/experts/knowledge/security/owasp-top10.md +209 -209
- tapps_agents/experts/knowledge/security/secure-coding-practices.md +207 -207
- tapps_agents/experts/knowledge/security/threat-modeling.md +220 -220
- tapps_agents/experts/knowledge/security/vulnerability-patterns.md +342 -342
- tapps_agents/experts/knowledge/software-architecture/docker-compose-patterns.md +314 -314
- tapps_agents/experts/knowledge/software-architecture/microservices-patterns.md +379 -379
- tapps_agents/experts/knowledge/software-architecture/service-communication.md +316 -316
- tapps_agents/experts/knowledge/testing/best-practices.md +310 -310
- tapps_agents/experts/knowledge/testing/coverage-analysis.md +293 -293
- tapps_agents/experts/knowledge/testing/mocking.md +256 -256
- tapps_agents/experts/knowledge/testing/test-automation.md +276 -276
- tapps_agents/experts/knowledge/testing/test-data.md +271 -271
- tapps_agents/experts/knowledge/testing/test-design-patterns.md +280 -280
- tapps_agents/experts/knowledge/testing/test-maintenance.md +236 -236
- tapps_agents/experts/knowledge/testing/test-strategies.md +311 -311
- tapps_agents/experts/knowledge/user-experience/information-architecture.md +325 -325
- tapps_agents/experts/knowledge/user-experience/interaction-design.md +363 -363
- tapps_agents/experts/knowledge/user-experience/prototyping.md +293 -293
- tapps_agents/experts/knowledge/user-experience/usability-heuristics.md +337 -337
- tapps_agents/experts/knowledge/user-experience/usability-testing.md +311 -311
- tapps_agents/experts/knowledge/user-experience/user-journeys.md +296 -296
- tapps_agents/experts/knowledge/user-experience/user-research.md +373 -373
- tapps_agents/experts/knowledge/user-experience/ux-principles.md +340 -340
- tapps_agents/experts/knowledge_freshness.py +321 -321
- tapps_agents/experts/knowledge_ingestion.py +438 -438
- tapps_agents/experts/knowledge_need_detector.py +93 -93
- tapps_agents/experts/knowledge_validator.py +382 -382
- tapps_agents/experts/observability.py +440 -440
- tapps_agents/experts/passive_notifier.py +238 -238
- tapps_agents/experts/proactive_orchestrator.py +32 -32
- tapps_agents/experts/rag_chunker.py +205 -205
- tapps_agents/experts/rag_embedder.py +152 -152
- tapps_agents/experts/rag_evaluation.py +299 -299
- tapps_agents/experts/rag_index.py +303 -303
- tapps_agents/experts/rag_metrics.py +293 -293
- tapps_agents/experts/rag_safety.py +263 -263
- tapps_agents/experts/report_generator.py +296 -296
- tapps_agents/experts/setup_wizard.py +441 -441
- tapps_agents/experts/simple_rag.py +431 -431
- tapps_agents/experts/vector_rag.py +354 -354
- tapps_agents/experts/weight_distributor.py +304 -304
- tapps_agents/health/__init__.py +24 -24
- tapps_agents/health/base.py +75 -75
- tapps_agents/health/checks/__init__.py +22 -22
- tapps_agents/health/checks/automation.py +127 -127
- tapps_agents/health/checks/context7_cache.py +210 -210
- tapps_agents/health/checks/environment.py +116 -116
- tapps_agents/health/checks/execution.py +170 -170
- tapps_agents/health/checks/knowledge_base.py +187 -187
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +324 -0
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +324 -0
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +324 -0
- tapps_agents/health/checks/outcomes.py +324 -324
- tapps_agents/health/collector.py +280 -280
- tapps_agents/health/dashboard.py +137 -137
- tapps_agents/health/metrics.py +151 -151
- tapps_agents/health/registry.py +166 -166
- tapps_agents/hooks/__init__.py +33 -33
- tapps_agents/hooks/config.py +140 -140
- tapps_agents/hooks/events.py +135 -135
- tapps_agents/hooks/executor.py +128 -128
- tapps_agents/hooks/manager.py +143 -143
- tapps_agents/integration/__init__.py +8 -8
- tapps_agents/integration/service_integrator.py +121 -121
- tapps_agents/integrations/__init__.py +10 -10
- tapps_agents/integrations/clawdbot.py +525 -525
- tapps_agents/integrations/memory_bridge.py +356 -356
- tapps_agents/mcp/__init__.py +18 -18
- tapps_agents/mcp/gateway.py +112 -112
- tapps_agents/mcp/servers/__init__.py +13 -13
- tapps_agents/mcp/servers/analysis.py +204 -204
- tapps_agents/mcp/servers/context7.py +198 -198
- tapps_agents/mcp/servers/filesystem.py +218 -218
- tapps_agents/mcp/servers/git.py +201 -201
- tapps_agents/mcp/tool_registry.py +115 -115
- tapps_agents/quality/__init__.py +54 -54
- tapps_agents/quality/coverage_analyzer.py +379 -379
- tapps_agents/quality/enforcement.py +82 -82
- tapps_agents/quality/gates/__init__.py +37 -37
- tapps_agents/quality/gates/approval_gate.py +255 -255
- tapps_agents/quality/gates/base.py +84 -84
- tapps_agents/quality/gates/exceptions.py +43 -43
- tapps_agents/quality/gates/policy_gate.py +195 -195
- tapps_agents/quality/gates/registry.py +239 -239
- tapps_agents/quality/gates/security_gate.py +156 -156
- tapps_agents/quality/quality_gates.py +369 -369
- tapps_agents/quality/secret_scanner.py +335 -335
- tapps_agents/resources/__init__.py +5 -0
- tapps_agents/resources/claude/__init__.py +1 -0
- tapps_agents/resources/claude/commands/README.md +156 -0
- tapps_agents/resources/claude/commands/__init__.py +1 -0
- tapps_agents/resources/claude/commands/build-fix.md +22 -0
- tapps_agents/resources/claude/commands/build.md +77 -0
- tapps_agents/resources/claude/commands/debug.md +53 -0
- tapps_agents/resources/claude/commands/design.md +68 -0
- tapps_agents/resources/claude/commands/docs.md +53 -0
- tapps_agents/resources/claude/commands/e2e.md +22 -0
- tapps_agents/resources/claude/commands/fix.md +54 -0
- tapps_agents/resources/claude/commands/implement.md +53 -0
- tapps_agents/resources/claude/commands/improve.md +53 -0
- tapps_agents/resources/claude/commands/library-docs.md +64 -0
- tapps_agents/resources/claude/commands/lint.md +52 -0
- tapps_agents/resources/claude/commands/plan.md +65 -0
- tapps_agents/resources/claude/commands/refactor-clean.md +21 -0
- tapps_agents/resources/claude/commands/refactor.md +55 -0
- tapps_agents/resources/claude/commands/review.md +67 -0
- tapps_agents/resources/claude/commands/score.md +60 -0
- tapps_agents/resources/claude/commands/security-review.md +22 -0
- tapps_agents/resources/claude/commands/security-scan.md +54 -0
- tapps_agents/resources/claude/commands/tdd.md +24 -0
- tapps_agents/resources/claude/commands/test-coverage.md +21 -0
- tapps_agents/resources/claude/commands/test.md +54 -0
- tapps_agents/resources/claude/commands/update-codemaps.md +20 -0
- tapps_agents/resources/claude/commands/update-docs.md +21 -0
- tapps_agents/resources/claude/skills/__init__.py +1 -0
- tapps_agents/resources/claude/skills/analyst/SKILL.md +272 -0
- tapps_agents/resources/claude/skills/analyst/__init__.py +1 -0
- tapps_agents/resources/claude/skills/architect/SKILL.md +282 -0
- tapps_agents/resources/claude/skills/architect/__init__.py +1 -0
- tapps_agents/resources/claude/skills/backend-patterns/SKILL.md +30 -0
- tapps_agents/resources/claude/skills/backend-patterns/__init__.py +1 -0
- tapps_agents/resources/claude/skills/coding-standards/SKILL.md +29 -0
- tapps_agents/resources/claude/skills/coding-standards/__init__.py +1 -0
- tapps_agents/resources/claude/skills/debugger/SKILL.md +203 -0
- tapps_agents/resources/claude/skills/debugger/__init__.py +1 -0
- tapps_agents/resources/claude/skills/designer/SKILL.md +243 -0
- tapps_agents/resources/claude/skills/designer/__init__.py +1 -0
- tapps_agents/resources/claude/skills/documenter/SKILL.md +252 -0
- tapps_agents/resources/claude/skills/documenter/__init__.py +1 -0
- tapps_agents/resources/claude/skills/enhancer/SKILL.md +307 -0
- tapps_agents/resources/claude/skills/enhancer/__init__.py +1 -0
- tapps_agents/resources/claude/skills/evaluator/SKILL.md +204 -0
- tapps_agents/resources/claude/skills/evaluator/__init__.py +1 -0
- tapps_agents/resources/claude/skills/frontend-patterns/SKILL.md +29 -0
- tapps_agents/resources/claude/skills/frontend-patterns/__init__.py +1 -0
- tapps_agents/resources/claude/skills/implementer/SKILL.md +188 -0
- tapps_agents/resources/claude/skills/implementer/__init__.py +1 -0
- tapps_agents/resources/claude/skills/improver/SKILL.md +218 -0
- tapps_agents/resources/claude/skills/improver/__init__.py +1 -0
- tapps_agents/resources/claude/skills/ops/SKILL.md +281 -0
- tapps_agents/resources/claude/skills/ops/__init__.py +1 -0
- tapps_agents/resources/claude/skills/orchestrator/SKILL.md +390 -0
- tapps_agents/resources/claude/skills/orchestrator/__init__.py +1 -0
- tapps_agents/resources/claude/skills/planner/SKILL.md +254 -0
- tapps_agents/resources/claude/skills/planner/__init__.py +1 -0
- tapps_agents/resources/claude/skills/reviewer/SKILL.md +434 -0
- tapps_agents/resources/claude/skills/reviewer/__init__.py +1 -0
- tapps_agents/resources/claude/skills/security-review/SKILL.md +31 -0
- tapps_agents/resources/claude/skills/security-review/__init__.py +1 -0
- tapps_agents/resources/claude/skills/simple-mode/SKILL.md +695 -0
- tapps_agents/resources/claude/skills/simple-mode/__init__.py +1 -0
- tapps_agents/resources/claude/skills/tester/SKILL.md +219 -0
- tapps_agents/resources/claude/skills/tester/__init__.py +1 -0
- tapps_agents/resources/cursor/.cursorignore +35 -0
- tapps_agents/resources/cursor/__init__.py +1 -0
- tapps_agents/resources/cursor/commands/__init__.py +1 -0
- tapps_agents/resources/cursor/commands/build-fix.md +11 -0
- tapps_agents/resources/cursor/commands/build.md +11 -0
- tapps_agents/resources/cursor/commands/e2e.md +11 -0
- tapps_agents/resources/cursor/commands/fix.md +11 -0
- tapps_agents/resources/cursor/commands/refactor-clean.md +11 -0
- tapps_agents/resources/cursor/commands/review.md +11 -0
- tapps_agents/resources/cursor/commands/security-review.md +11 -0
- tapps_agents/resources/cursor/commands/tdd.md +11 -0
- tapps_agents/resources/cursor/commands/test-coverage.md +11 -0
- tapps_agents/resources/cursor/commands/test.md +11 -0
- tapps_agents/resources/cursor/commands/update-codemaps.md +10 -0
- tapps_agents/resources/cursor/commands/update-docs.md +11 -0
- tapps_agents/resources/cursor/rules/__init__.py +1 -0
- tapps_agents/resources/cursor/rules/agent-capabilities.mdc +687 -0
- tapps_agents/resources/cursor/rules/coding-style.mdc +31 -0
- tapps_agents/resources/cursor/rules/command-reference.mdc +2081 -0
- tapps_agents/resources/cursor/rules/cursor-mode-usage.mdc +125 -0
- tapps_agents/resources/cursor/rules/git-workflow.mdc +29 -0
- tapps_agents/resources/cursor/rules/performance.mdc +29 -0
- tapps_agents/resources/cursor/rules/project-context.mdc +163 -0
- tapps_agents/resources/cursor/rules/project-profiling.mdc +197 -0
- tapps_agents/resources/cursor/rules/quick-reference.mdc +630 -0
- tapps_agents/resources/cursor/rules/security.mdc +32 -0
- tapps_agents/resources/cursor/rules/simple-mode.mdc +500 -0
- tapps_agents/resources/cursor/rules/testing.mdc +31 -0
- tapps_agents/resources/cursor/rules/when-to-use.mdc +156 -0
- tapps_agents/resources/cursor/rules/workflow-presets.mdc +179 -0
- tapps_agents/resources/customizations/__init__.py +1 -0
- tapps_agents/resources/customizations/example-custom.yaml +83 -0
- tapps_agents/resources/hooks/__init__.py +1 -0
- tapps_agents/resources/hooks/templates/README.md +5 -0
- tapps_agents/resources/hooks/templates/__init__.py +1 -0
- tapps_agents/resources/hooks/templates/add-project-context.yaml +8 -0
- tapps_agents/resources/hooks/templates/auto-format-js.yaml +10 -0
- tapps_agents/resources/hooks/templates/auto-format-python.yaml +10 -0
- tapps_agents/resources/hooks/templates/git-commit-check.yaml +7 -0
- tapps_agents/resources/hooks/templates/notify-on-complete.yaml +8 -0
- tapps_agents/resources/hooks/templates/quality-gate.yaml +8 -0
- tapps_agents/resources/hooks/templates/security-scan-on-edit.yaml +10 -0
- tapps_agents/resources/hooks/templates/session-end-log.yaml +7 -0
- tapps_agents/resources/hooks/templates/show-beads-ready.yaml +8 -0
- tapps_agents/resources/hooks/templates/test-on-edit.yaml +10 -0
- tapps_agents/resources/hooks/templates/update-docs-on-complete.yaml +8 -0
- tapps_agents/resources/hooks/templates/user-prompt-log.yaml +7 -0
- tapps_agents/resources/scripts/__init__.py +1 -0
- tapps_agents/resources/scripts/set_bd_path.ps1 +51 -0
- tapps_agents/resources/workflows/__init__.py +1 -0
- tapps_agents/resources/workflows/presets/__init__.py +1 -0
- tapps_agents/resources/workflows/presets/brownfield-analysis.yaml +235 -0
- tapps_agents/resources/workflows/presets/fix.yaml +78 -0
- tapps_agents/resources/workflows/presets/full-sdlc.yaml +122 -0
- tapps_agents/resources/workflows/presets/quality.yaml +82 -0
- tapps_agents/resources/workflows/presets/rapid-dev.yaml +84 -0
- tapps_agents/session/__init__.py +19 -19
- tapps_agents/session/manager.py +256 -256
- tapps_agents/simple_mode/__init__.py +66 -66
- tapps_agents/simple_mode/agent_contracts.py +357 -357
- tapps_agents/simple_mode/beads_hooks.py +151 -151
- tapps_agents/simple_mode/code_snippet_handler.py +382 -382
- tapps_agents/simple_mode/documentation_manager.py +395 -395
- tapps_agents/simple_mode/documentation_reader.py +187 -187
- tapps_agents/simple_mode/file_inference.py +292 -292
- tapps_agents/simple_mode/framework_change_detector.py +268 -268
- tapps_agents/simple_mode/intent_parser.py +510 -510
- tapps_agents/simple_mode/learning_progression.py +358 -358
- tapps_agents/simple_mode/nl_handler.py +700 -700
- tapps_agents/simple_mode/onboarding.py +253 -253
- tapps_agents/simple_mode/orchestrators/__init__.py +38 -38
- tapps_agents/simple_mode/orchestrators/breakdown_orchestrator.py +49 -49
- tapps_agents/simple_mode/orchestrators/brownfield_orchestrator.py +135 -135
- tapps_agents/simple_mode/orchestrators/deliverable_checklist.py +349 -349
- tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py +53 -53
- tapps_agents/simple_mode/orchestrators/epic_orchestrator.py +122 -122
- tapps_agents/simple_mode/orchestrators/explore_orchestrator.py +184 -184
- tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py +206 -206
- tapps_agents/simple_mode/orchestrators/pr_orchestrator.py +237 -237
- tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py +222 -222
- tapps_agents/simple_mode/orchestrators/requirements_tracer.py +262 -262
- tapps_agents/simple_mode/orchestrators/resume_orchestrator.py +210 -210
- tapps_agents/simple_mode/orchestrators/review_orchestrator.py +161 -161
- tapps_agents/simple_mode/orchestrators/test_orchestrator.py +82 -82
- tapps_agents/simple_mode/output_aggregator.py +340 -340
- tapps_agents/simple_mode/result_formatters.py +598 -598
- tapps_agents/simple_mode/step_dependencies.py +382 -382
- tapps_agents/simple_mode/step_results.py +276 -276
- tapps_agents/simple_mode/streaming.py +388 -388
- tapps_agents/simple_mode/variations.py +129 -129
- tapps_agents/simple_mode/visual_feedback.py +238 -238
- tapps_agents/simple_mode/zero_config.py +274 -274
- tapps_agents/suggestions/__init__.py +8 -8
- tapps_agents/suggestions/inline_suggester.py +52 -52
- tapps_agents/templates/__init__.py +8 -8
- tapps_agents/templates/microservice_generator.py +274 -274
- tapps_agents/utils/env_validator.py +291 -291
- tapps_agents/workflow/__init__.py +171 -171
- tapps_agents/workflow/acceptance_verifier.py +132 -132
- tapps_agents/workflow/agent_handlers/__init__.py +41 -41
- tapps_agents/workflow/agent_handlers/analyst_handler.py +75 -75
- tapps_agents/workflow/agent_handlers/architect_handler.py +107 -107
- tapps_agents/workflow/agent_handlers/base.py +84 -84
- tapps_agents/workflow/agent_handlers/debugger_handler.py +100 -100
- tapps_agents/workflow/agent_handlers/designer_handler.py +110 -110
- tapps_agents/workflow/agent_handlers/documenter_handler.py +94 -94
- tapps_agents/workflow/agent_handlers/implementer_handler.py +235 -235
- tapps_agents/workflow/agent_handlers/ops_handler.py +62 -62
- tapps_agents/workflow/agent_handlers/orchestrator_handler.py +43 -43
- tapps_agents/workflow/agent_handlers/planner_handler.py +98 -98
- tapps_agents/workflow/agent_handlers/registry.py +119 -119
- tapps_agents/workflow/agent_handlers/reviewer_handler.py +119 -119
- tapps_agents/workflow/agent_handlers/tester_handler.py +69 -69
- tapps_agents/workflow/analytics_accessor.py +337 -337
- tapps_agents/workflow/analytics_alerts.py +416 -416
- tapps_agents/workflow/analytics_dashboard_cursor.py +281 -281
- tapps_agents/workflow/analytics_dual_write.py +103 -103
- tapps_agents/workflow/analytics_integration.py +119 -119
- tapps_agents/workflow/analytics_query_parser.py +278 -278
- tapps_agents/workflow/analytics_visualizer.py +259 -259
- tapps_agents/workflow/artifact_helper.py +204 -204
- tapps_agents/workflow/audit_logger.py +263 -263
- tapps_agents/workflow/auto_execution_config.py +340 -340
- tapps_agents/workflow/auto_progression.py +586 -586
- tapps_agents/workflow/branch_cleanup.py +349 -349
- tapps_agents/workflow/checkpoint.py +256 -256
- tapps_agents/workflow/checkpoint_manager.py +178 -178
- tapps_agents/workflow/code_artifact.py +179 -179
- tapps_agents/workflow/common_enums.py +96 -96
- tapps_agents/workflow/confirmation_handler.py +130 -130
- tapps_agents/workflow/context_analyzer.py +222 -222
- tapps_agents/workflow/context_artifact.py +230 -230
- tapps_agents/workflow/cursor_chat.py +94 -94
- tapps_agents/workflow/cursor_skill_helper.py +516 -516
- tapps_agents/workflow/dependency_resolver.py +244 -244
- tapps_agents/workflow/design_artifact.py +156 -156
- tapps_agents/workflow/detector.py +751 -751
- tapps_agents/workflow/direct_execution_fallback.py +301 -301
- tapps_agents/workflow/docs_artifact.py +168 -168
- tapps_agents/workflow/enforcer.py +389 -389
- tapps_agents/workflow/enhancement_artifact.py +142 -142
- tapps_agents/workflow/error_recovery.py +806 -806
- tapps_agents/workflow/event_bus.py +183 -183
- tapps_agents/workflow/event_log.py +612 -612
- tapps_agents/workflow/events.py +63 -63
- tapps_agents/workflow/exceptions.py +43 -43
- tapps_agents/workflow/execution_graph.py +498 -498
- tapps_agents/workflow/execution_plan.py +126 -126
- tapps_agents/workflow/file_utils.py +186 -186
- tapps_agents/workflow/gate_evaluator.py +182 -182
- tapps_agents/workflow/gate_integration.py +200 -200
- tapps_agents/workflow/graph_visualizer.py +130 -130
- tapps_agents/workflow/health_checker.py +206 -206
- tapps_agents/workflow/logging_helper.py +243 -243
- tapps_agents/workflow/manifest.py +582 -582
- tapps_agents/workflow/marker_writer.py +250 -250
- tapps_agents/workflow/messaging.py +325 -325
- tapps_agents/workflow/metadata_models.py +91 -91
- tapps_agents/workflow/metrics_integration.py +226 -226
- tapps_agents/workflow/migration_utils.py +116 -116
- tapps_agents/workflow/models.py +148 -148
- tapps_agents/workflow/nlp_config.py +198 -198
- tapps_agents/workflow/nlp_error_handler.py +207 -207
- tapps_agents/workflow/nlp_executor.py +163 -163
- tapps_agents/workflow/nlp_parser.py +528 -528
- tapps_agents/workflow/observability_dashboard.py +451 -451
- tapps_agents/workflow/observer.py +170 -170
- tapps_agents/workflow/ops_artifact.py +257 -257
- tapps_agents/workflow/output_passing.py +214 -214
- tapps_agents/workflow/parallel_executor.py +463 -463
- tapps_agents/workflow/planning_artifact.py +179 -179
- tapps_agents/workflow/preset_loader.py +285 -285
- tapps_agents/workflow/preset_recommender.py +270 -270
- tapps_agents/workflow/progress_logger.py +145 -145
- tapps_agents/workflow/progress_manager.py +303 -303
- tapps_agents/workflow/progress_monitor.py +186 -186
- tapps_agents/workflow/progress_updates.py +423 -423
- tapps_agents/workflow/quality_artifact.py +158 -158
- tapps_agents/workflow/quality_loopback.py +101 -101
- tapps_agents/workflow/recommender.py +387 -387
- tapps_agents/workflow/remediation_loop.py +166 -166
- tapps_agents/workflow/result_aggregator.py +300 -300
- tapps_agents/workflow/review_artifact.py +185 -185
- tapps_agents/workflow/schema_validator.py +522 -522
- tapps_agents/workflow/session_handoff.py +178 -178
- tapps_agents/workflow/skill_invoker.py +648 -648
- tapps_agents/workflow/state_manager.py +756 -756
- tapps_agents/workflow/state_persistence_config.py +331 -331
- tapps_agents/workflow/status_monitor.py +449 -449
- tapps_agents/workflow/step_checkpoint.py +314 -314
- tapps_agents/workflow/step_details.py +201 -201
- tapps_agents/workflow/story_models.py +147 -147
- tapps_agents/workflow/streaming.py +416 -416
- tapps_agents/workflow/suggestion_engine.py +552 -552
- tapps_agents/workflow/testing_artifact.py +186 -186
- tapps_agents/workflow/timeline.py +158 -158
- tapps_agents/workflow/token_integration.py +209 -209
- tapps_agents/workflow/validation.py +217 -217
- tapps_agents/workflow/visual_feedback.py +391 -391
- tapps_agents/workflow/workflow_chain.py +95 -95
- tapps_agents/workflow/workflow_summary.py +219 -219
- tapps_agents/workflow/worktree_manager.py +724 -724
- {tapps_agents-3.6.0.dist-info → tapps_agents-3.6.1.dist-info}/METADATA +672 -672
- tapps_agents-3.6.1.dist-info/RECORD +883 -0
- {tapps_agents-3.6.0.dist-info → tapps_agents-3.6.1.dist-info}/licenses/LICENSE +22 -22
- tapps_agents-3.6.0.dist-info/RECORD +0 -758
- {tapps_agents-3.6.0.dist-info → tapps_agents-3.6.1.dist-info}/WHEEL +0 -0
- {tapps_agents-3.6.0.dist-info → tapps_agents-3.6.1.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.6.0.dist-info → tapps_agents-3.6.1.dist-info}/top_level.txt +0 -0
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
# Code Metrics
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Code metrics provide quantitative measurements of code quality, complexity, and maintainability. These metrics help identify areas needing improvement and track quality trends over time.
|
|
6
|
-
|
|
7
|
-
## Core Metrics
|
|
8
|
-
|
|
9
|
-
### Cyclomatic Complexity
|
|
10
|
-
|
|
11
|
-
Measures the number of linearly independent paths through a program's source code.
|
|
12
|
-
|
|
13
|
-
**Thresholds:**
|
|
14
|
-
- **1-10**: Simple (low risk)
|
|
15
|
-
- **11-20**: Moderate (moderate risk)
|
|
16
|
-
- **21-50**: Complex (high risk)
|
|
17
|
-
- **50+**: Very complex (very high risk)
|
|
18
|
-
|
|
19
|
-
**Reduction Strategies:**
|
|
20
|
-
- Extract methods for complex conditionals
|
|
21
|
-
- Use polymorphism instead of switch statements
|
|
22
|
-
- Break down large functions
|
|
23
|
-
- Apply design patterns (Strategy, Command)
|
|
24
|
-
|
|
25
|
-
### Maintainability Index
|
|
26
|
-
|
|
27
|
-
Composite metric based on:
|
|
28
|
-
- Halstead Volume
|
|
29
|
-
- Cyclomatic Complexity
|
|
30
|
-
- Lines of Code
|
|
31
|
-
|
|
32
|
-
**Scale:** 0-100 (higher is better)
|
|
33
|
-
- **20-40**: Difficult to maintain
|
|
34
|
-
- **40-60**: Moderate maintainability
|
|
35
|
-
- **60-80**: Good maintainability
|
|
36
|
-
- **80-100**: Excellent maintainability
|
|
37
|
-
|
|
38
|
-
### Lines of Code (LOC)
|
|
39
|
-
|
|
40
|
-
**Best Practices:**
|
|
41
|
-
- Methods: < 20 lines
|
|
42
|
-
- Classes: < 300 lines
|
|
43
|
-
- Files: < 500 lines
|
|
44
|
-
- Modules: < 1000 lines
|
|
45
|
-
|
|
46
|
-
### Code Duplication
|
|
47
|
-
|
|
48
|
-
**Thresholds:**
|
|
49
|
-
- **0-3%**: Excellent
|
|
50
|
-
- **3-5%**: Good
|
|
51
|
-
- **5-10%**: Acceptable
|
|
52
|
-
- **10%+**: Needs refactoring
|
|
53
|
-
|
|
54
|
-
**DRY Principle:**
|
|
55
|
-
- Don't Repeat Yourself
|
|
56
|
-
- Extract common functionality
|
|
57
|
-
- Use abstractions and inheritance
|
|
58
|
-
|
|
59
|
-
### Test Coverage
|
|
60
|
-
|
|
61
|
-
**Coverage Types:**
|
|
62
|
-
- **Line Coverage**: % of lines executed
|
|
63
|
-
- **Branch Coverage**: % of branches tested
|
|
64
|
-
- **Function Coverage**: % of functions called
|
|
65
|
-
|
|
66
|
-
**Targets:**
|
|
67
|
-
- **80%+**: Good coverage
|
|
68
|
-
- **90%+**: Excellent coverage
|
|
69
|
-
- **100%**: Perfect (but may be overkill)
|
|
70
|
-
|
|
71
|
-
## Advanced Metrics
|
|
72
|
-
|
|
73
|
-
### Technical Debt Ratio
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
Technical Debt Ratio = (Remediation Cost / Development Cost) × 100
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Interpretation:**
|
|
80
|
-
- **< 5%**: Low technical debt
|
|
81
|
-
- **5-10%**: Moderate technical debt
|
|
82
|
-
- **10-20%**: Significant technical debt
|
|
83
|
-
- **20%+**: Critical technical debt
|
|
84
|
-
|
|
85
|
-
### Code Churn
|
|
86
|
-
|
|
87
|
-
Measures how frequently code changes.
|
|
88
|
-
|
|
89
|
-
**High Churn Indicators:**
|
|
90
|
-
- Frequently modified files
|
|
91
|
-
- Unstable areas of code
|
|
92
|
-
- Potential architectural issues
|
|
93
|
-
|
|
94
|
-
### Coupling Metrics
|
|
95
|
-
|
|
96
|
-
**Afferent Coupling (Ca):** Number of classes outside a package that depend on classes within it.
|
|
97
|
-
|
|
98
|
-
**Efferent Coupling (Ce):** Number of classes inside a package that depend on classes outside it.
|
|
99
|
-
|
|
100
|
-
**Instability (I):** I = Ce / (Ca + Ce)
|
|
101
|
-
- **0**: Stable (no dependencies on external classes)
|
|
102
|
-
- **1**: Instable (depends on external classes)
|
|
103
|
-
|
|
104
|
-
## Metrics Collection Tools
|
|
105
|
-
|
|
106
|
-
### Python
|
|
107
|
-
- **radon**: Complexity metrics
|
|
108
|
-
- **coverage.py**: Test coverage
|
|
109
|
-
- **vulture**: Dead code detection
|
|
110
|
-
- **pylint**: Code quality scoring
|
|
111
|
-
|
|
112
|
-
### JavaScript/TypeScript
|
|
113
|
-
- **complexity-report**: Cyclomatic complexity
|
|
114
|
-
- **istanbul/nyc**: Coverage
|
|
115
|
-
- **escomplex**: Code complexity
|
|
116
|
-
|
|
117
|
-
### Multi-Language
|
|
118
|
-
- **SonarQube**: Comprehensive metrics platform
|
|
119
|
-
- **CodeClimate**: Automated code review
|
|
120
|
-
- **Better Code Hub**: Quality assessment
|
|
121
|
-
|
|
122
|
-
## Using Metrics Effectively
|
|
123
|
-
|
|
124
|
-
1. **Set Baseline**: Measure current state
|
|
125
|
-
2. **Define Targets**: Set improvement goals
|
|
126
|
-
3. **Track Trends**: Monitor over time
|
|
127
|
-
4. **Prioritize**: Focus on high-impact areas
|
|
128
|
-
5. **Automate**: Integrate into CI/CD
|
|
129
|
-
6. **Review Regularly**: Monthly/quarterly assessments
|
|
130
|
-
|
|
131
|
-
## Anti-Patterns to Avoid
|
|
132
|
-
|
|
133
|
-
- **Metrics Obsession**: Don't optimize for metrics alone
|
|
134
|
-
- **False Positives**: Understand context before acting
|
|
135
|
-
- **Ignoring Context**: Metrics without understanding are useless
|
|
136
|
-
- **Gaming Metrics**: Don't artificially improve numbers
|
|
137
|
-
- **One-Size-Fits-All**: Different projects need different thresholds
|
|
1
|
+
# Code Metrics
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Code metrics provide quantitative measurements of code quality, complexity, and maintainability. These metrics help identify areas needing improvement and track quality trends over time.
|
|
6
|
+
|
|
7
|
+
## Core Metrics
|
|
8
|
+
|
|
9
|
+
### Cyclomatic Complexity
|
|
10
|
+
|
|
11
|
+
Measures the number of linearly independent paths through a program's source code.
|
|
12
|
+
|
|
13
|
+
**Thresholds:**
|
|
14
|
+
- **1-10**: Simple (low risk)
|
|
15
|
+
- **11-20**: Moderate (moderate risk)
|
|
16
|
+
- **21-50**: Complex (high risk)
|
|
17
|
+
- **50+**: Very complex (very high risk)
|
|
18
|
+
|
|
19
|
+
**Reduction Strategies:**
|
|
20
|
+
- Extract methods for complex conditionals
|
|
21
|
+
- Use polymorphism instead of switch statements
|
|
22
|
+
- Break down large functions
|
|
23
|
+
- Apply design patterns (Strategy, Command)
|
|
24
|
+
|
|
25
|
+
### Maintainability Index
|
|
26
|
+
|
|
27
|
+
Composite metric based on:
|
|
28
|
+
- Halstead Volume
|
|
29
|
+
- Cyclomatic Complexity
|
|
30
|
+
- Lines of Code
|
|
31
|
+
|
|
32
|
+
**Scale:** 0-100 (higher is better)
|
|
33
|
+
- **20-40**: Difficult to maintain
|
|
34
|
+
- **40-60**: Moderate maintainability
|
|
35
|
+
- **60-80**: Good maintainability
|
|
36
|
+
- **80-100**: Excellent maintainability
|
|
37
|
+
|
|
38
|
+
### Lines of Code (LOC)
|
|
39
|
+
|
|
40
|
+
**Best Practices:**
|
|
41
|
+
- Methods: < 20 lines
|
|
42
|
+
- Classes: < 300 lines
|
|
43
|
+
- Files: < 500 lines
|
|
44
|
+
- Modules: < 1000 lines
|
|
45
|
+
|
|
46
|
+
### Code Duplication
|
|
47
|
+
|
|
48
|
+
**Thresholds:**
|
|
49
|
+
- **0-3%**: Excellent
|
|
50
|
+
- **3-5%**: Good
|
|
51
|
+
- **5-10%**: Acceptable
|
|
52
|
+
- **10%+**: Needs refactoring
|
|
53
|
+
|
|
54
|
+
**DRY Principle:**
|
|
55
|
+
- Don't Repeat Yourself
|
|
56
|
+
- Extract common functionality
|
|
57
|
+
- Use abstractions and inheritance
|
|
58
|
+
|
|
59
|
+
### Test Coverage
|
|
60
|
+
|
|
61
|
+
**Coverage Types:**
|
|
62
|
+
- **Line Coverage**: % of lines executed
|
|
63
|
+
- **Branch Coverage**: % of branches tested
|
|
64
|
+
- **Function Coverage**: % of functions called
|
|
65
|
+
|
|
66
|
+
**Targets:**
|
|
67
|
+
- **80%+**: Good coverage
|
|
68
|
+
- **90%+**: Excellent coverage
|
|
69
|
+
- **100%**: Perfect (but may be overkill)
|
|
70
|
+
|
|
71
|
+
## Advanced Metrics
|
|
72
|
+
|
|
73
|
+
### Technical Debt Ratio
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Technical Debt Ratio = (Remediation Cost / Development Cost) × 100
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Interpretation:**
|
|
80
|
+
- **< 5%**: Low technical debt
|
|
81
|
+
- **5-10%**: Moderate technical debt
|
|
82
|
+
- **10-20%**: Significant technical debt
|
|
83
|
+
- **20%+**: Critical technical debt
|
|
84
|
+
|
|
85
|
+
### Code Churn
|
|
86
|
+
|
|
87
|
+
Measures how frequently code changes.
|
|
88
|
+
|
|
89
|
+
**High Churn Indicators:**
|
|
90
|
+
- Frequently modified files
|
|
91
|
+
- Unstable areas of code
|
|
92
|
+
- Potential architectural issues
|
|
93
|
+
|
|
94
|
+
### Coupling Metrics
|
|
95
|
+
|
|
96
|
+
**Afferent Coupling (Ca):** Number of classes outside a package that depend on classes within it.
|
|
97
|
+
|
|
98
|
+
**Efferent Coupling (Ce):** Number of classes inside a package that depend on classes outside it.
|
|
99
|
+
|
|
100
|
+
**Instability (I):** I = Ce / (Ca + Ce)
|
|
101
|
+
- **0**: Stable (no dependencies on external classes)
|
|
102
|
+
- **1**: Instable (depends on external classes)
|
|
103
|
+
|
|
104
|
+
## Metrics Collection Tools
|
|
105
|
+
|
|
106
|
+
### Python
|
|
107
|
+
- **radon**: Complexity metrics
|
|
108
|
+
- **coverage.py**: Test coverage
|
|
109
|
+
- **vulture**: Dead code detection
|
|
110
|
+
- **pylint**: Code quality scoring
|
|
111
|
+
|
|
112
|
+
### JavaScript/TypeScript
|
|
113
|
+
- **complexity-report**: Cyclomatic complexity
|
|
114
|
+
- **istanbul/nyc**: Coverage
|
|
115
|
+
- **escomplex**: Code complexity
|
|
116
|
+
|
|
117
|
+
### Multi-Language
|
|
118
|
+
- **SonarQube**: Comprehensive metrics platform
|
|
119
|
+
- **CodeClimate**: Automated code review
|
|
120
|
+
- **Better Code Hub**: Quality assessment
|
|
121
|
+
|
|
122
|
+
## Using Metrics Effectively
|
|
123
|
+
|
|
124
|
+
1. **Set Baseline**: Measure current state
|
|
125
|
+
2. **Define Targets**: Set improvement goals
|
|
126
|
+
3. **Track Trends**: Monitor over time
|
|
127
|
+
4. **Prioritize**: Focus on high-impact areas
|
|
128
|
+
5. **Automate**: Integrate into CI/CD
|
|
129
|
+
6. **Review Regularly**: Monthly/quarterly assessments
|
|
130
|
+
|
|
131
|
+
## Anti-Patterns to Avoid
|
|
132
|
+
|
|
133
|
+
- **Metrics Obsession**: Don't optimize for metrics alone
|
|
134
|
+
- **False Positives**: Understand context before acting
|
|
135
|
+
- **Ignoring Context**: Metrics without understanding are useless
|
|
136
|
+
- **Gaming Metrics**: Don't artificially improve numbers
|
|
137
|
+
- **One-Size-Fits-All**: Different projects need different thresholds
|
|
@@ -1,181 +1,181 @@
|
|
|
1
|
-
# Complexity Analysis
|
|
2
|
-
|
|
3
|
-
## What is Code Complexity?
|
|
4
|
-
|
|
5
|
-
Code complexity measures how difficult code is to understand, test, and maintain. High complexity increases the likelihood of bugs and makes code harder to modify.
|
|
6
|
-
|
|
7
|
-
## Types of Complexity
|
|
8
|
-
|
|
9
|
-
### Cyclomatic Complexity
|
|
10
|
-
|
|
11
|
-
Measures the number of linearly independent paths through program code.
|
|
12
|
-
|
|
13
|
-
**Formula:**
|
|
14
|
-
```
|
|
15
|
-
M = E - N + 2P
|
|
16
|
-
```
|
|
17
|
-
Where:
|
|
18
|
-
- E = Number of edges (flow graph connections)
|
|
19
|
-
- N = Number of nodes (statements)
|
|
20
|
-
- P = Number of connected components
|
|
21
|
-
|
|
22
|
-
**Python Example:**
|
|
23
|
-
```python
|
|
24
|
-
# Low complexity (M = 2)
|
|
25
|
-
def is_even(n):
|
|
26
|
-
return n % 2 == 0
|
|
27
|
-
|
|
28
|
-
# Medium complexity (M = 4)
|
|
29
|
-
def categorize_age(age):
|
|
30
|
-
if age < 13:
|
|
31
|
-
return "child"
|
|
32
|
-
elif age < 20:
|
|
33
|
-
return "teenager"
|
|
34
|
-
elif age < 65:
|
|
35
|
-
return "adult"
|
|
36
|
-
else:
|
|
37
|
-
return "senior"
|
|
38
|
-
|
|
39
|
-
# High complexity (M = 8+)
|
|
40
|
-
def process_user(user, permissions, role, context):
|
|
41
|
-
if user.is_active:
|
|
42
|
-
if permissions.has_access:
|
|
43
|
-
if role == "admin":
|
|
44
|
-
if context.is_secure:
|
|
45
|
-
# ... many nested conditions
|
|
46
|
-
return result
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Cognitive Complexity
|
|
50
|
-
|
|
51
|
-
Measures how difficult code is to understand by humans, focusing on readability rather than testability.
|
|
52
|
-
|
|
53
|
-
**Factors:**
|
|
54
|
-
- Nesting levels
|
|
55
|
-
- Logical operators (AND, OR)
|
|
56
|
-
- Recursion
|
|
57
|
-
- Control flow structures
|
|
58
|
-
|
|
59
|
-
### Time Complexity (Big O)
|
|
60
|
-
|
|
61
|
-
Measures how algorithm runtime scales with input size.
|
|
62
|
-
|
|
63
|
-
**Common Complexities:**
|
|
64
|
-
- **O(1)**: Constant time (best)
|
|
65
|
-
- **O(log n)**: Logarithmic (excellent)
|
|
66
|
-
- **O(n)**: Linear (good)
|
|
67
|
-
- **O(n log n)**: Linearithmic (acceptable)
|
|
68
|
-
- **O(n²)**: Quadratic (poor)
|
|
69
|
-
- **O(2ⁿ)**: Exponential (very poor)
|
|
70
|
-
|
|
71
|
-
### Space Complexity
|
|
72
|
-
|
|
73
|
-
Measures memory usage relative to input size.
|
|
74
|
-
|
|
75
|
-
## Reducing Complexity
|
|
76
|
-
|
|
77
|
-
### Strategy Pattern
|
|
78
|
-
Replace complex conditionals with strategy objects.
|
|
79
|
-
|
|
80
|
-
```python
|
|
81
|
-
# Before: High complexity
|
|
82
|
-
def calculate_shipping(country, weight, method):
|
|
83
|
-
if country == "US":
|
|
84
|
-
if method == "standard":
|
|
85
|
-
if weight < 1:
|
|
86
|
-
return 5.00
|
|
87
|
-
elif weight < 5:
|
|
88
|
-
return 10.00
|
|
89
|
-
# ... many nested conditions
|
|
90
|
-
|
|
91
|
-
# After: Lower complexity
|
|
92
|
-
class ShippingCalculator:
|
|
93
|
-
def calculate(self, country, weight, method):
|
|
94
|
-
strategy = self._get_strategy(country, method)
|
|
95
|
-
return strategy.calculate(weight)
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### Extract Methods
|
|
99
|
-
Break large functions into smaller ones.
|
|
100
|
-
|
|
101
|
-
```python
|
|
102
|
-
# Before: Complex function
|
|
103
|
-
def process_order(order):
|
|
104
|
-
# 50+ lines of code with multiple responsibilities
|
|
105
|
-
pass
|
|
106
|
-
|
|
107
|
-
# After: Simpler functions
|
|
108
|
-
def process_order(order):
|
|
109
|
-
validate_order(order)
|
|
110
|
-
calculate_totals(order)
|
|
111
|
-
apply_discounts(order)
|
|
112
|
-
process_payment(order)
|
|
113
|
-
send_confirmation(order)
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Early Returns
|
|
117
|
-
Reduce nesting with early exit conditions.
|
|
118
|
-
|
|
119
|
-
```python
|
|
120
|
-
# Before: Nested conditions
|
|
121
|
-
def process_user(user):
|
|
122
|
-
if user:
|
|
123
|
-
if user.is_active:
|
|
124
|
-
if user.has_permissions:
|
|
125
|
-
# Main logic here
|
|
126
|
-
return result
|
|
127
|
-
return None
|
|
128
|
-
|
|
129
|
-
# After: Early returns
|
|
130
|
-
def process_user(user):
|
|
131
|
-
if not user or not user.is_active:
|
|
132
|
-
return None
|
|
133
|
-
if not user.has_permissions:
|
|
134
|
-
return None
|
|
135
|
-
# Main logic here
|
|
136
|
-
return result
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Complexity Metrics
|
|
140
|
-
|
|
141
|
-
### Acceptable Thresholds
|
|
142
|
-
|
|
143
|
-
| Metric | Excellent | Good | Acceptable | Poor |
|
|
144
|
-
|--------|-----------|------|------------|------|
|
|
145
|
-
| Cyclomatic Complexity | 1-5 | 6-10 | 11-20 | 21+ |
|
|
146
|
-
| Cognitive Complexity | 1-5 | 6-10 | 11-15 | 16+ |
|
|
147
|
-
| Function Length (LOC) | < 20 | 20-50 | 50-100 | 100+ |
|
|
148
|
-
| Nesting Depth | 1-2 | 3 | 4 | 5+ |
|
|
149
|
-
|
|
150
|
-
### Warning Signs
|
|
151
|
-
|
|
152
|
-
1. **High Cyclomatic Complexity**: Many conditional paths
|
|
153
|
-
2. **Deep Nesting**: 4+ levels of indentation
|
|
154
|
-
3. **Long Functions**: 100+ lines
|
|
155
|
-
4. **Many Parameters**: 5+ function parameters
|
|
156
|
-
5. **God Classes**: 1000+ lines per class
|
|
157
|
-
|
|
158
|
-
## Tools for Analysis
|
|
159
|
-
|
|
160
|
-
### Python
|
|
161
|
-
- **radon**: Complexity metrics
|
|
162
|
-
- **mccabe**: Cyclomatic complexity
|
|
163
|
-
- **xenon**: Complexity monitoring
|
|
164
|
-
|
|
165
|
-
### JavaScript/TypeScript
|
|
166
|
-
- **complexity-report**: Code complexity
|
|
167
|
-
- **escomplex**: Complexity analysis
|
|
168
|
-
|
|
169
|
-
### Multi-Language
|
|
170
|
-
- **SonarQube**: Comprehensive analysis
|
|
171
|
-
- **CodeClimate**: Complexity scoring
|
|
172
|
-
|
|
173
|
-
## Best Practices
|
|
174
|
-
|
|
175
|
-
1. **Keep Functions Small**: Single responsibility
|
|
176
|
-
2. **Limit Nesting**: Maximum 3-4 levels
|
|
177
|
-
3. **Use Early Returns**: Reduce nesting
|
|
178
|
-
4. **Extract Methods**: Break down complex logic
|
|
179
|
-
5. **Apply Patterns**: Strategy, Command, Factory
|
|
180
|
-
6. **Refactor Regularly**: Continuously improve
|
|
181
|
-
7. **Set Thresholds**: Enforce in CI/CD
|
|
1
|
+
# Complexity Analysis
|
|
2
|
+
|
|
3
|
+
## What is Code Complexity?
|
|
4
|
+
|
|
5
|
+
Code complexity measures how difficult code is to understand, test, and maintain. High complexity increases the likelihood of bugs and makes code harder to modify.
|
|
6
|
+
|
|
7
|
+
## Types of Complexity
|
|
8
|
+
|
|
9
|
+
### Cyclomatic Complexity
|
|
10
|
+
|
|
11
|
+
Measures the number of linearly independent paths through program code.
|
|
12
|
+
|
|
13
|
+
**Formula:**
|
|
14
|
+
```
|
|
15
|
+
M = E - N + 2P
|
|
16
|
+
```
|
|
17
|
+
Where:
|
|
18
|
+
- E = Number of edges (flow graph connections)
|
|
19
|
+
- N = Number of nodes (statements)
|
|
20
|
+
- P = Number of connected components
|
|
21
|
+
|
|
22
|
+
**Python Example:**
|
|
23
|
+
```python
|
|
24
|
+
# Low complexity (M = 2)
|
|
25
|
+
def is_even(n):
|
|
26
|
+
return n % 2 == 0
|
|
27
|
+
|
|
28
|
+
# Medium complexity (M = 4)
|
|
29
|
+
def categorize_age(age):
|
|
30
|
+
if age < 13:
|
|
31
|
+
return "child"
|
|
32
|
+
elif age < 20:
|
|
33
|
+
return "teenager"
|
|
34
|
+
elif age < 65:
|
|
35
|
+
return "adult"
|
|
36
|
+
else:
|
|
37
|
+
return "senior"
|
|
38
|
+
|
|
39
|
+
# High complexity (M = 8+)
|
|
40
|
+
def process_user(user, permissions, role, context):
|
|
41
|
+
if user.is_active:
|
|
42
|
+
if permissions.has_access:
|
|
43
|
+
if role == "admin":
|
|
44
|
+
if context.is_secure:
|
|
45
|
+
# ... many nested conditions
|
|
46
|
+
return result
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Cognitive Complexity
|
|
50
|
+
|
|
51
|
+
Measures how difficult code is to understand by humans, focusing on readability rather than testability.
|
|
52
|
+
|
|
53
|
+
**Factors:**
|
|
54
|
+
- Nesting levels
|
|
55
|
+
- Logical operators (AND, OR)
|
|
56
|
+
- Recursion
|
|
57
|
+
- Control flow structures
|
|
58
|
+
|
|
59
|
+
### Time Complexity (Big O)
|
|
60
|
+
|
|
61
|
+
Measures how algorithm runtime scales with input size.
|
|
62
|
+
|
|
63
|
+
**Common Complexities:**
|
|
64
|
+
- **O(1)**: Constant time (best)
|
|
65
|
+
- **O(log n)**: Logarithmic (excellent)
|
|
66
|
+
- **O(n)**: Linear (good)
|
|
67
|
+
- **O(n log n)**: Linearithmic (acceptable)
|
|
68
|
+
- **O(n²)**: Quadratic (poor)
|
|
69
|
+
- **O(2ⁿ)**: Exponential (very poor)
|
|
70
|
+
|
|
71
|
+
### Space Complexity
|
|
72
|
+
|
|
73
|
+
Measures memory usage relative to input size.
|
|
74
|
+
|
|
75
|
+
## Reducing Complexity
|
|
76
|
+
|
|
77
|
+
### Strategy Pattern
|
|
78
|
+
Replace complex conditionals with strategy objects.
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
# Before: High complexity
|
|
82
|
+
def calculate_shipping(country, weight, method):
|
|
83
|
+
if country == "US":
|
|
84
|
+
if method == "standard":
|
|
85
|
+
if weight < 1:
|
|
86
|
+
return 5.00
|
|
87
|
+
elif weight < 5:
|
|
88
|
+
return 10.00
|
|
89
|
+
# ... many nested conditions
|
|
90
|
+
|
|
91
|
+
# After: Lower complexity
|
|
92
|
+
class ShippingCalculator:
|
|
93
|
+
def calculate(self, country, weight, method):
|
|
94
|
+
strategy = self._get_strategy(country, method)
|
|
95
|
+
return strategy.calculate(weight)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Extract Methods
|
|
99
|
+
Break large functions into smaller ones.
|
|
100
|
+
|
|
101
|
+
```python
|
|
102
|
+
# Before: Complex function
|
|
103
|
+
def process_order(order):
|
|
104
|
+
# 50+ lines of code with multiple responsibilities
|
|
105
|
+
pass
|
|
106
|
+
|
|
107
|
+
# After: Simpler functions
|
|
108
|
+
def process_order(order):
|
|
109
|
+
validate_order(order)
|
|
110
|
+
calculate_totals(order)
|
|
111
|
+
apply_discounts(order)
|
|
112
|
+
process_payment(order)
|
|
113
|
+
send_confirmation(order)
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Early Returns
|
|
117
|
+
Reduce nesting with early exit conditions.
|
|
118
|
+
|
|
119
|
+
```python
|
|
120
|
+
# Before: Nested conditions
|
|
121
|
+
def process_user(user):
|
|
122
|
+
if user:
|
|
123
|
+
if user.is_active:
|
|
124
|
+
if user.has_permissions:
|
|
125
|
+
# Main logic here
|
|
126
|
+
return result
|
|
127
|
+
return None
|
|
128
|
+
|
|
129
|
+
# After: Early returns
|
|
130
|
+
def process_user(user):
|
|
131
|
+
if not user or not user.is_active:
|
|
132
|
+
return None
|
|
133
|
+
if not user.has_permissions:
|
|
134
|
+
return None
|
|
135
|
+
# Main logic here
|
|
136
|
+
return result
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Complexity Metrics
|
|
140
|
+
|
|
141
|
+
### Acceptable Thresholds
|
|
142
|
+
|
|
143
|
+
| Metric | Excellent | Good | Acceptable | Poor |
|
|
144
|
+
|--------|-----------|------|------------|------|
|
|
145
|
+
| Cyclomatic Complexity | 1-5 | 6-10 | 11-20 | 21+ |
|
|
146
|
+
| Cognitive Complexity | 1-5 | 6-10 | 11-15 | 16+ |
|
|
147
|
+
| Function Length (LOC) | < 20 | 20-50 | 50-100 | 100+ |
|
|
148
|
+
| Nesting Depth | 1-2 | 3 | 4 | 5+ |
|
|
149
|
+
|
|
150
|
+
### Warning Signs
|
|
151
|
+
|
|
152
|
+
1. **High Cyclomatic Complexity**: Many conditional paths
|
|
153
|
+
2. **Deep Nesting**: 4+ levels of indentation
|
|
154
|
+
3. **Long Functions**: 100+ lines
|
|
155
|
+
4. **Many Parameters**: 5+ function parameters
|
|
156
|
+
5. **God Classes**: 1000+ lines per class
|
|
157
|
+
|
|
158
|
+
## Tools for Analysis
|
|
159
|
+
|
|
160
|
+
### Python
|
|
161
|
+
- **radon**: Complexity metrics
|
|
162
|
+
- **mccabe**: Cyclomatic complexity
|
|
163
|
+
- **xenon**: Complexity monitoring
|
|
164
|
+
|
|
165
|
+
### JavaScript/TypeScript
|
|
166
|
+
- **complexity-report**: Code complexity
|
|
167
|
+
- **escomplex**: Complexity analysis
|
|
168
|
+
|
|
169
|
+
### Multi-Language
|
|
170
|
+
- **SonarQube**: Comprehensive analysis
|
|
171
|
+
- **CodeClimate**: Complexity scoring
|
|
172
|
+
|
|
173
|
+
## Best Practices
|
|
174
|
+
|
|
175
|
+
1. **Keep Functions Small**: Single responsibility
|
|
176
|
+
2. **Limit Nesting**: Maximum 3-4 levels
|
|
177
|
+
3. **Use Early Returns**: Reduce nesting
|
|
178
|
+
4. **Extract Methods**: Break down complex logic
|
|
179
|
+
5. **Apply Patterns**: Strategy, Command, Factory
|
|
180
|
+
6. **Refactor Regularly**: Continuously improve
|
|
181
|
+
7. **Set Thresholds**: Enforce in CI/CD
|