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