pyscn Analysis Report

Generated: 2025-12-31 21:19:09

Health Score: 65/100 (Grade: C)

Analysis Summary

Quality Scores

Complexity 65/100
Avg: 6.4, High-risk: 0
Dead Code 95/100
3 issues, 3 critical
Duplication 0/100
33.4% duplication, 37 groups
Coupling (CBO) 85/100
Avg: 1.8, High-coupling: 3/453
Dependencies 75/100
No cycles, Depth: 14
Architecture 100/100
99% compliant

File Statistics

354
Total Files
354
Analyzed Files
6.41
Avg Complexity
3
Dead Code Issues
2654
Unique Fragments
33.4%
Code Duplication
453
Total Classes
3
High Coupling (CBO)
1.77
Avg CBO

Dependencies

353
Total Modules
655
Total Dependencies
14
Max Depth
✅ 0
Circular Dependencies

Architecture

4
Violations
99.4%
Compliance
3
Layers Analyzed
655
Total Rules

Complexity Analysis

65/100
728
Total Functions
6.41
Average
15
Maximum

Top Complex Functions

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

Dead Code Detection

95/100
3
Total Issues
3
Critical
0
Warnings

Top Dead Code Issues

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

Clone Detection

0/100
2654
Unique Fragments
37
Clone Groups
0.96
Avg Similarity

Clone Groups

Code fragments grouped by similarity

Group 36 - 5 clones (Type Type-2, similarity: 1.00)

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

Group 9 - 3 clones (Type Type-2, similarity: 1.00)

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

Group 26 - 4 clones (Type Type-2, similarity: 1.00)

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

Group 17 - 4 clones (Type Type-2, similarity: 0.99)

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

Group 24 - 4 clones (Type Type-2, similarity: 0.99)

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

Group 28 - 3 clones (Type Type-2, similarity: 0.99)

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

Group 2 - 7 clones (Type Type-2, similarity: 0.99)

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

Group 35 - 8 clones (Type Type-2, similarity: 0.99)

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

Group 11 - 3 clones (Type Type-2, similarity: 0.99)

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

Group 16 - 3 clones (Type Type-2, similarity: 0.99)

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

Class Coupling

85/100

Coupling Between Objects (CBO) metrics

453
Total Classes
3
High Risk Classes
1.77
Average CBO
15
Max CBO

Most Dependent Classes

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

Module Dependencies

75/100

Project-wide module dependency graph metrics

353
Total Modules
655
Total Dependencies
14
Max Depth
✅ 0
Circular Dependencies

Circular Dependencies

✅ No circular dependencies detected

All modules have acyclic dependency relationships.

Longest Dependency Chains

# 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

Architecture Validation

100/100
3
Layers Analyzed
655
Total Rules
4
Violations
99.4%
Compliance

Top Rule Violations

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