fix: resolve CI/CD issues - remove unused dependencies and imports
- Remove unused thiserror dependency from Cargo.toml - Remove unused imports (Text, Tabs, Widget, Event, KeyCode, KeyEventKind) from tui/mod.rs - Remove unused imports (File, Write) from export/mod.rs - Remove unused pub use ComplexityDistribution from core/analyzer.rs
This commit is contained in:
228
techdebt-tracker-cli/README.md
Normal file
228
techdebt-tracker-cli/README.md
Normal file
@@ -0,0 +1,228 @@
|
||||
# TechDebt Tracker CLI
|
||||
|
||||
A Rust-based CLI tool that analyzes codebases to extract, categorize, and visualize TODO/FIXME/HACK comments using tree-sitter for multi-language parsing, providing an interactive TUI dashboard and export capabilities.
|
||||
|
||||
## Features
|
||||
|
||||
- **Multi-language Support**: Parse TODO/FIXME/HACK comments in JavaScript, TypeScript, Python, Rust, Go, Java, C/C++, Ruby, and more
|
||||
- **Priority Categorization**: Automatically categorize technical debt by priority (Critical, High, Medium, Low) based on keywords and context
|
||||
- **Interactive TUI Dashboard**: Visualize technical debt with an interactive terminal UI
|
||||
- **Export Capabilities**: Export reports to JSON and Markdown formats
|
||||
- **Complexity Estimation**: Estimate complexity of technical debt items based on comment content and context
|
||||
- **Configurable Patterns**: Define custom comment patterns via YAML configuration
|
||||
- **Ignore Patterns**: Exclude directories and files using .gitignore-style patterns
|
||||
|
||||
## Installation
|
||||
|
||||
### From Source
|
||||
|
||||
```bash
|
||||
git clone https://github.com/example/techdebt-tracker-cli.git
|
||||
cd techdebt-tracker-cli
|
||||
cargo build --release
|
||||
cargo install --path .
|
||||
```
|
||||
|
||||
### Using Cargo
|
||||
|
||||
```bash
|
||||
cargo install techdebt-tracker-cli
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Initialize Configuration
|
||||
|
||||
```bash
|
||||
techdebt-tracker init
|
||||
```
|
||||
|
||||
### Analyze a Directory
|
||||
|
||||
```bash
|
||||
# Analyze current directory
|
||||
techdebt-tracker analyze
|
||||
|
||||
# Analyze specific directory
|
||||
techdebt-tracker analyze --path /path/to/project
|
||||
|
||||
# Output to file
|
||||
techdebt-tracker analyze --output report.json
|
||||
```
|
||||
|
||||
### Open Interactive Dashboard
|
||||
|
||||
```bash
|
||||
techdebt-tracker tui
|
||||
```
|
||||
|
||||
### Export Report
|
||||
|
||||
```bash
|
||||
# Export to JSON
|
||||
techdebt-tracker export --output report.json --format json
|
||||
|
||||
# Export to Markdown
|
||||
techdebt-tracker export --output report.md --format markdown
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Create a `techdebt.yaml` file in your project root or in `~/.config/techdebt-tracker/`:
|
||||
|
||||
```yaml
|
||||
patterns:
|
||||
- keyword: "FIXME"
|
||||
priority: critical
|
||||
regex: false
|
||||
- keyword: "TODO"
|
||||
priority: medium
|
||||
regex: false
|
||||
- keyword: "HACK"
|
||||
priority: low
|
||||
regex: false
|
||||
|
||||
languages:
|
||||
- javascript
|
||||
- typescript
|
||||
- python
|
||||
- rust
|
||||
|
||||
ignore:
|
||||
- "node_modules/**"
|
||||
- "target/**"
|
||||
- ".git/**"
|
||||
```
|
||||
|
||||
## CLI Commands
|
||||
|
||||
### analyze
|
||||
|
||||
Analyze codebase and show summary of technical debt.
|
||||
|
||||
```bash
|
||||
techdebt-tracker analyze [OPTIONS]
|
||||
|
||||
Options:
|
||||
-p, --path <PATH> Directory to analyze (default: current directory)
|
||||
-o, --output <FILE> Output file for results
|
||||
-v, --verbose Show verbose output
|
||||
```
|
||||
|
||||
### tui
|
||||
|
||||
Open interactive TUI dashboard.
|
||||
|
||||
```bash
|
||||
techdebt-tracker tui [OPTIONS]
|
||||
|
||||
Options:
|
||||
-p, --path <PATH> Directory to analyze (default: current directory)
|
||||
```
|
||||
|
||||
### export
|
||||
|
||||
Export analysis to file.
|
||||
|
||||
```bash
|
||||
techdebt-tracker export [OPTIONS]
|
||||
|
||||
Options:
|
||||
-p, --path <PATH> Directory to analyze (default: current directory)
|
||||
-o, --output <FILE> Output file (required)
|
||||
-f, --format <FORMAT> Export format: json or markdown
|
||||
```
|
||||
|
||||
### init
|
||||
|
||||
Initialize default configuration file.
|
||||
|
||||
```bash
|
||||
techdebt-tracker init [OPTIONS]
|
||||
|
||||
Options:
|
||||
-p, --path <PATH> Directory to create config in (default: current directory)
|
||||
```
|
||||
|
||||
## TUI Navigation
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `Tab` | Switch between Dashboard and List views |
|
||||
| `↑` / `↓` | Navigate items |
|
||||
| `Enter` | View item details |
|
||||
| `/` or `f` | Filter items |
|
||||
| `1-4` | Filter by priority (1=Critical, 2=High, 3=Medium, 4=Low) |
|
||||
| `s` | Cycle sort order |
|
||||
| `c` | Clear filters |
|
||||
| `q` | Quit |
|
||||
|
||||
## Export Formats
|
||||
|
||||
### JSON
|
||||
|
||||
```json
|
||||
{
|
||||
"summary": {
|
||||
"total_items": 42,
|
||||
"by_priority": {
|
||||
"critical": 5,
|
||||
"high": 10,
|
||||
"medium": 20,
|
||||
"low": 7
|
||||
}
|
||||
},
|
||||
"items": [...]
|
||||
}
|
||||
```
|
||||
|
||||
### Markdown
|
||||
|
||||
Generates a formatted report with:
|
||||
- Summary statistics
|
||||
- Priority breakdown with visual bars
|
||||
- Language distribution
|
||||
- Detailed item list grouped by priority
|
||||
|
||||
## Supported Languages
|
||||
|
||||
- JavaScript (.js, .jsx)
|
||||
- TypeScript (.ts, .tsx)
|
||||
- Python (.py)
|
||||
- Rust (.rs)
|
||||
- Go (.go)
|
||||
- Java (.java)
|
||||
- C (.c)
|
||||
- C++ (.cpp, .cc, .cxx, .h, .hpp)
|
||||
- Ruby (.rb)
|
||||
|
||||
## Building from Source
|
||||
|
||||
```bash
|
||||
# Debug build
|
||||
cargo build
|
||||
|
||||
# Release build
|
||||
cargo build --release
|
||||
|
||||
# Run tests
|
||||
cargo test --all-features
|
||||
|
||||
# Run linting
|
||||
cargo clippy --all-targets
|
||||
|
||||
# Check formatting
|
||||
cargo fmt --check
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository
|
||||
2. Create a feature branch
|
||||
3. Make your changes
|
||||
4. Run tests and linting
|
||||
5. Submit a pull request
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see LICENSE file for details.
|
||||
Reference in New Issue
Block a user