Generated: 2025-12-31 21:19:09
| Function | File | Complexity | Nesting Depth | Risk |
|---|---|---|---|---|
| FileProcessor.read_file_safely | crackerjack/code_cleaner.py | 15 | 5 | medium |
| FileIOService.read_text_file | crackerjack/services/file_io_service.py | 14 | 2 | medium |
| AsyncTimeoutManager.with_timeout | crackerjack/core/timeout_manager.py | 14 | 3 | medium |
| SecurityService.create_secure_token_file | crackerjack/services/security.py | 14 | 4 | medium |
| FileIOService.read_text_file_sync | crackerjack/services/file_io_service.py | 14 | 2 | medium |
| PipAuditAdapter.build_command | crackerjack/adapters/dependency/pip_audit.py | 13 | 3 | medium |
| FileSystemService.get_file_size | crackerjack/services/filesystem.py | 13 | 2 | medium |
| FileSystemService.get_file_mtime | crackerjack/services/filesystem.py | 13 | 2 | medium |
| ValidatedPattern._validate | crackerjack/services/patterns/core.py | 13 | 3 | medium |
| FileSystemService.write_file | crackerjack/services/filesystem.py | 13 | 3 | medium |
Showing top 10 of 728 functions
| File | Function | Lines | Severity | Reason |
|---|---|---|---|---|
| crackerjack/cli/lifecycle_handlers.py | health_probe_handler | 131-133 | critical | unreachable_after_return |
| crackerjack/cli/lifecycle_handlers.py | health_probe_handler | 132-133 | critical | unreachable_after_return |
| crackerjack/cli/lifecycle_handlers.py | health_probe_handler | 135-135 | critical | unreachable_after_raise |
Code fragments grouped by similarity
| File | Lines | Size |
|---|---|---|
| crackerjack/tools/check_ast.py | 48-101 | 54 lines |
| crackerjack/tools/check_json.py | 46-99 | 54 lines |
| crackerjack/tools/check_toml.py | 46-99 | 54 lines |
| crackerjack/tools/check_yaml.py | 47-106 | 60 lines |
| crackerjack/tools/format_json.py | 66-124 | 59 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/adapters/sast/pyscn.py | 60-400 | 341 lines |
| crackerjack/adapters/type/pyrefly.py | 57-396 | 340 lines |
| crackerjack/adapters/type/ty.py | 57-396 | 340 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/services/ai/predictive_analytics.py | 60-74 | 15 lines |
| crackerjack/services/ai/predictive_analytics.py | 113-134 | 22 lines |
| crackerjack/services/predictive_analytics.py | 63-77 | 15 lines |
| crackerjack/services/predictive_analytics.py | 116-137 | 22 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/core/retry.py | 122-164 | 43 lines |
| crackerjack/core/retry.py | 167-209 | 43 lines |
| crackerjack/utils/retry_utils.py | 122-164 | 43 lines |
| crackerjack/utils/retry_utils.py | 167-209 | 43 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/models/config.py | 179-190 | 12 lines |
| crackerjack/models/config.py | 212-223 | 12 lines |
| crackerjack/models/pydantic_models.py | 142-153 | 12 lines |
| crackerjack/models/pydantic_models.py | 170-181 | 12 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/services/anomaly_detector.py | 164-208 | 45 lines |
| crackerjack/services/changelog_automation.py | 69-106 | 38 lines |
| crackerjack/services/quality/anomaly_detector.py | 164-208 | 45 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/adapters/dependency/pip_audit.py | 286-324 | 39 lines |
| crackerjack/adapters/sast/bandit.py | 200-282 | 83 lines |
| crackerjack/adapters/sast/pyscn.py | 196-263 | 68 lines |
| crackerjack/adapters/sast/semgrep.py | 125-171 | 47 lines |
| crackerjack/adapters/security/gitleaks.py | 207-298 | 92 lines |
| crackerjack/adapters/type/pyrefly.py | 187-259 | 73 lines |
| crackerjack/adapters/type/ty.py | 187-259 | 73 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/services/pattern_detector.py | 108-150 | 43 lines |
| crackerjack/services/pattern_detector.py | 184-237 | 54 lines |
| crackerjack/services/pattern_detector.py | 276-323 | 48 lines |
| crackerjack/services/pattern_detector.py | 325-380 | 56 lines |
| crackerjack/services/quality/pattern_detector.py | 109-151 | 43 lines |
| crackerjack/services/quality/pattern_detector.py | 185-238 | 54 lines |
| crackerjack/services/quality/pattern_detector.py | 277-324 | 48 lines |
| crackerjack/services/quality/pattern_detector.py | 326-381 | 56 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/agents/dry_agent.py | 444-486 | 43 lines |
| crackerjack/agents/performance_agent.py | 224-272 | 49 lines |
| crackerjack/agents/refactoring_agent.py | 445-495 | 51 lines |
| File | Lines | Size |
|---|---|---|
| crackerjack/core/performance_monitor.py | 107-120 | 14 lines |
| crackerjack/core/performance_monitor.py | 122-135 | 14 lines |
| crackerjack/core/performance_monitor.py | 137-161 | 25 lines |
Showing top 10 of 37 clone groups
Coupling Between Objects (CBO) metrics
| Class | File | CBO | Risk Level | Dependent Classes |
|---|---|---|---|---|
| CrackerjackSettings | crackerjack/config/settings.py | 15 | high | TestSettings, PublishSettings, GitSettings, ExecutionSettings, CleanupSettings, MCPServerSettings, ConsoleSettings, AdvancedSettings, AISettings, CleaningSettings, HookSettings, ProgressSettings, ZubanLSPSettings, GlobalLockSettings, Settings |
| WorkflowOptions | crackerjack/models/pydantic_models.py | 13 | high | MCPServerConfig, BaseModel, CleaningConfig, HookConfig, TestConfig, CleanupConfig, ZubanLSPConfig, PublishConfig, GitConfig, AIConfig, ExecutionConfig, ProgressConfig, AdvancedConfig |
| WorkflowOptions | crackerjack/models/config.py | 13 | high | ProgressConfig, MCPServerConfig, ZubanLSPConfig, CleaningConfig, HookConfig, GitConfig, ExecutionConfig, CleanupConfig, AdvancedConfig, Any, TestConfig, PublishConfig, AIConfig |
| CodeCleaner | crackerjack/code_cleaner.py | 9 | medium | FormattingStep, BaseModel, CleaningResult, BackupMetadata, FileProcessor, CleaningErrorHandler, CleaningPipeline, PackageCleaningResult, WhitespaceStep |
| PredictiveAnalyticsEngine | crackerjack/services/ai/predictive_analytics.py | 8 | medium | PredictorProtocol, TrendAnalysis, Prediction, MovingAveragePredictor, LinearTrendPredictor, CapacityForecast, datetime, SeasonalPredictor |
| PredictiveAnalyticsEngine | crackerjack/services/predictive_analytics.py | 7 | medium | datetime, TrendAnalysis, Prediction, MovingAveragePredictor, LinearTrendPredictor, SeasonalPredictor, CapacityForecast |
| QAResult | crackerjack/models/qa_results.py | 7 | medium | datetime, Any, BaseModel, UUID, QACheckType, QAResultStatus, Path |
| EnhancedQualityBaselineService | crackerjack/services/quality/quality_baseline_enhanced.py | 7 | medium | QualityBaselineService, QualityAlert, QualityTrend, QualityReport, UnifiedMetrics, SystemHealthStatus, DashboardState |
| PatternDetector | crackerjack/services/pattern_detector.py | 6 | medium | PerformanceVisitor, SecurityVisitor, ImportVisitor, AntiPatternConfig, ComplexityVisitor, AntiPattern |
| PatternDetector | crackerjack/services/quality/pattern_detector.py | 6 | medium | ComplexityVisitor, AntiPattern, PerformanceVisitor, SecurityVisitor, ImportVisitor, AntiPatternConfig |
Showing top 10 of 453 classes
Project-wide module dependency graph metrics
All modules have acyclic dependency relationships.
| # | Depth | Path |
|---|---|---|
| 1 | 7 | crackerjack.adapters.lsp._manager → crackerjack.adapters.lsp.zuban → crackerjack.services.lsp_client → crackerjack.services.server_manager → crackerjack.services.secure_subprocess → crackerjack.services.security_logger → crackerjack.services.logging |
| 2 | 7 | crackerjack.cli.facade → crackerjack.core.workflow_orchestrator → crackerjack.core.phase_coordinator → crackerjack.code_cleaner → crackerjack.services.backup_service → crackerjack.services.secure_path_utils → crackerjack.errors |
| 3 | 7 | crackerjack.cli.handlers → crackerjack.mcp.server → crackerjack.mcp.server_core → crackerjack.slash_commands → crackerjack.services.input_validator → crackerjack.services.regex_patterns → crackerjack.decorators.patterns |
| 4 | 7 | crackerjack.cli.lifecycle_handlers → crackerjack.mcp.server_core → crackerjack.mcp.context → crackerjack.services.secure_path_utils → crackerjack.services.regex_patterns → crackerjack.decorators.patterns → crackerjack.mcp.cache |
| 5 | 7 | crackerjack.cli.lifecycle_handlers → crackerjack.mcp.server_core → crackerjack.mcp.context → crackerjack.services.secure_path_utils → crackerjack.services.regex_patterns → crackerjack.decorators.patterns → crackerjack.decorators.helpers |
| 6 | 7 | crackerjack.cli.lifecycle_handlers → crackerjack.mcp.server_core → crackerjack.mcp.context → crackerjack.services.secure_path_utils → crackerjack.services.regex_patterns → crackerjack.decorators.patterns → crackerjack.errors |
| 7 | 7 | crackerjack.core.async_workflow_orchestrator → crackerjack.core.workflow_orchestrator → crackerjack.core.phase_coordinator → crackerjack.services.git → crackerjack.services.secure_subprocess → crackerjack.services.security_logger → crackerjack.services.logging |
| 8 | 7 | crackerjack.executors.tool_proxy → crackerjack.mcp.tools.core_tools → crackerjack.mcp.context → crackerjack.services.secure_path_utils → crackerjack.services.regex_patterns → crackerjack.decorators.patterns → crackerjack.mcp.cache |
| 9 | 7 | crackerjack.executors.tool_proxy → crackerjack.mcp.tools.core_tools → crackerjack.mcp.context → crackerjack.services.secure_path_utils → crackerjack.services.regex_patterns → crackerjack.decorators.patterns → crackerjack.errors |
| 10 | 7 | crackerjack.mcp.tools.intelligence_tool_registry → crackerjack.mcp.tools.intelligence_tools → crackerjack.intelligence.integration → crackerjack.intelligence.agent_orchestrator → crackerjack.intelligence.agent_selector → crackerjack.intelligence.agent_registry → crackerjack.agents.base |
| Severity | Rule | From | To |
|---|---|---|---|
| error | domain !> application | crackerjack.models.config | crackerjack.config.settings |
| error | domain !> application | crackerjack.models.config | crackerjack.config |
| error | domain !> application | crackerjack.models.protocols | crackerjack.config.hooks |
| error | domain !> application | crackerjack.models.protocols | crackerjack.config.settings |