dazzer
v0.1.7
Published
Find why AI assistants get confused by your code and fix it. Get AI readiness score and actionable improvements.
Maintainers
Readme
Dazzer - AI Code Scanner
Why AI assistants get confused by your code and how to fix it.
Dazzer scans your repository and shows exactly what makes AI tools like Copilot and Cursor struggle with your codebase. Get a clear AI readiness score and actionable fixes.
Install & Run
# Install
npm install -g dazzer
# Scan your project
dazzer
# Scan specific folder
dazzer /path/to/your/projectWhat You Get
AI Readiness Score (0-100) - Higher scores mean AI assistants work better with your code
Issue List - Specific problems that confuse AI, with exact locations and fix suggestions
Categories:
- Naming Issues - Inconsistent or unclear variable/function names
- Missing Documentation - Functions without clear explanations
- Complex Code - Deep nesting, long functions that AI can't follow
- Hidden Logic - Implicit context and side effects AI misses
- Type Confusion - Missing or unclear type information
Understanding Your Report
# Basic scan
dazzer .
# Save detailed report
dazzer . --output report.txt
# Get JSON for tools
dazzer . --json results.jsonScore Ranges:
- 80-100: Excellent AI compatibility
- 60-79: Good, minor improvements needed
- 40-59: Fair, several issues to address
- 0-39: Poor, significant cleanup required
All Available Detectors
Code Quality Issues:
dazzer . --naming # Inconsistent naming conventions
dazzer . --missing-docs # Functions without documentation
dazzer . --long-functions # Functions over 50 lines
dazzer . --deep-nesting # Too many nested levels
dazzer . --magic-numbers # Hardcoded numbers without explanation
dazzer . --type-hints # Missing type annotations
dazzer . --duplicates # Duplicate code blocksAI Confusion Patterns:
dazzer . --cognitive-complexity # Complex logic flow
dazzer . --ambiguous-returns # Unclear return values
dazzer . --hidden-side-effects # Functions that modify global state
dazzer . --implicit-context # Code that relies on hidden assumptions
dazzer . --stringly-typed # Using strings instead of proper types
dazzer . --dynamic-attr # Dynamic attribute access
dazzer . --type-coercion # Automatic type conversionsArchitecture Problems:
dazzer . --temporal-coupling # Order-dependent operations
dazzer . --cross-file # Complex dependencies between files
dazzer . --mixed-abstraction # Mixing high/low level concepts
dazzer . --config-spread # Configuration scattered everywhere
dazzer . --overloaded-names # Same names meaning different thingsCode Structure Issues:
dazzer . --callback-hell # Deeply nested callbacks
dazzer . --exception-swallowing # Catching errors without handling
dazzer . --heavy-mocking # Tests with excessive mocking
dazzer . --business-docs # Missing business logic explanationsFixing Priority Order
Start with these (biggest AI impact):
- Add function documentation -
dazzer . --missing-docs - Fix naming consistency -
dazzer . --naming - Break up long functions -
dazzer . --long-functions - Add type hints -
dazzer . --type-hints - Remove magic numbers -
dazzer . --magic-numbers
Advanced Usage
# Comprehensive analysis
dazzer . --full-report
# Simple stakeholder report
dazzer . --simple
# Focus on AI integration issues
dazzer . --ai-agent --json ai-report.json
# Generate Cursor IDE rules
dazzer . --cursor-rules
# Performance tuning
dazzer . --workers 8 --verbose
# Exclude directories
dazzer . --exclude-dirs tests node_modules buildSupported Languages
Python, JavaScript, TypeScript, React, Java, C/C++, C#, Go, Rust, Ruby, PHP, Swift, Kotlin, Dart, Shell, and 20+ more.
Requirements
- Node.js 14+ (for npm install)
- Python 3.8+ (automatically used)
- Works on: macOS, Linux, Windows
Troubleshooting
"Python not found" - Install Python 3.8+ from python.org
"Permission denied" - Run sudo npm install -g dazzer (macOS/Linux)
Slow scanning - Use --exclude-dirs to skip large folders like node_modules
Empty results - Check you're in a code directory with supported file types
Support
Email: [email protected]
Issues: https://github.com/designmetric/dazzer/issues
Privacy
Dazzer collects anonymous usage statistics to improve the tool. No source code or personal information is ever collected. Disable with dazzer --disable-telemetry or set DAZZER_TELEMETRY=false.
Make your code AI-ready in minutes, not hours.
