A comprehensive CLI application for analyzing the health of .NET repositories, including dependency analysis, architecture review, and health scoring.
# Build container
.\build-docker.ps1 # Windows
./build-docker.sh # Linux/macOS
# Run
docker run --rm codemedic:latest --help
docker run --rm -v ${PWD}:/repo codemedic:latest health /repocd src/CodeMedic
dotnet buildcodemedic --help
codemedic --version
dotnet run -- --help- CLI Quick Reference:
user-docs/cli_quick_reference.md - Configuration Files:
user-docs/configuration-files.md- Batch analysis with JSON/YAML - Docker Usage:
user-docs/docker_usage.md - Vulnerability Scanning:
user-docs/vulnerability-scanning.md
- CLI Architecture:
doc/cli_architecture.md - Implementation Guide:
doc/cli_skeleton_implementation.md - Docker Implementation:
doc/docker_implementation.md - Test Results:
doc/cli_skeleton_test_results.md
- ✅ Help system with command reference
- ✅ Version information display
- ✅ Cross-platform support (Windows, macOS, Linux)
- ✅ Docker containerization with automated versioning
- ✅ Rich formatted console output
- ✅ Proper error handling with exit codes
- ✅ Extensible plugin architecture
- ✅ Repository health analysis
- ✅ Bill of Materials (BOM) generation
- ✅ NuGet package vulnerability scanning
- ✅ Multiple output formats (console, markdown)
- ✅ Path argument support (
-p/--path) for all analysis commands - ✅ Command-specific help with argument documentation
- ✅ Configuration file support (JSON & YAML) for batch analysis
# General commands
codemedic # Show help (default)
codemedic --help # Explicit help
codemedic --version # Show version
# Configuration-based batch analysis
codemedic config <config-file> # Run multiple analyses from config file
codemedic config config.json
codemedic config config.yaml
# Analysis commands
codemedic health # Repository health dashboard
codemedic health -p /path/to/repo --format markdown
codemedic bom # Bill of Materials
codemedic bom --path /path/to/repo --format md > bom.md
codemedic vulnerabilities # Scan for NuGet vulnerabilities
codemedic vulnerabilities -p /path/to/repo --format markdown > vulns.md- .NET 10.0 - Application framework
- System.CommandLine 2.0.0 - CLI infrastructure
- Spectre.Console 0.49.1 - Rich terminal output
- Nerdbank.GitVersioning 3.9.50 - Automatic versioning
- ✅ CLI skeleton implemented and tested
- ✅ Help and version commands working
- ✅ Error handling and exit codes proper
- ✅ Documentation complete
- ✅ Plugin architecture implemented
- ✅ Health dashboard command (internal plugin)
- ✅ Bill of materials command (internal plugin)
- ✅ Repository scanner with NuGet inspection
- ✅ Multiple output formats (console, markdown)
- ✅ Vulnerability scanning for NuGet packages
- ✅ Dedicated vulnerability analysis command
CodeMedic uses an extensible plugin system for analysis engines:
Current Plugins:
- HealthAnalysisPlugin - Repository health and code quality analysis
- BomAnalysisPlugin - Bill of Materials generation
- VulnerabilityAnalysisPlugin - NuGet package vulnerability scanning
See doc/plugin_architecture.md for details on creating custom plugins.
- Implement Health Dashboard - Repository health analysis and scoring
- Implement BOM Command - Dependency reporting with multiple formats
- Add Plugin System - Extensible architecture for third-party plugins
- Extended Options - Format selection (JSON, Markdown, XML)
See doc/cli_architecture.md for extension guidelines.
d:\doctor-dotnet/
├── README.md # This file
├── doc/
│ ├── cli_skeleton_implementation.md # Technical guide
│ ├── cli_architecture.md # Architecture & extensions
│ ├── cli_skeleton_test_results.md # Test coverage
│ ├── feature_bill-of-materials.md
│ ├── feature_repository-health-dashboard.md
│ └── plugin_architecture.md
├── user-docs/
│ └── cli_quick_reference.md # User reference
└── src/CodeMedic/
├── Program.cs
├── Commands/
├── Output/
├── Utilities/
└── Options/
All 8 core functionality tests passing:
- Help command (4 variants)
- Version command (3 variants)
- Error handling
Run manual tests:
codemedic # Help
codemedic --version # Version
codemedic unknown-cmd # Error handlingWhen adding new features:
- Follow existing code patterns in
Commands/andOutput/ - Add documentation in
doc/ - Test on Windows, macOS, and Linux
- Update help text in
ConsoleRenderer.RenderHelp()
See doc/cli_architecture.md for detailed extension patterns.
- Users: Start with
user-docs/cli_quick_reference.md - Developers: Read
doc/cli_skeleton_implementation.mdthendoc/cli_architecture.md - Architects: See
doc/plugin_architecture.mdanddoc/cli_architecture.md
- Build: ✅ 0 errors, 0 warnings
- Tests: ✅ 8/8 passing
- Code: ✅ Clean architecture, well-organized
- Docs: ✅ Comprehensive
- Cross-platform: ✅ Ready
READY FOR PRODUCTION AND EXTENSION