Tech Debt Report Generator
Scans the codebase to identify technical debt including TODO comments, deprecated API usage, outdated patterns, and potential refactoring opportunities.
π― Use Case Demo
Scenario: Quarterly Tech Debt Assessment
Before (Manual Process):
Tech Lead needs to assess tech debt for planning:
- Grep for TODO and FIXME comments
- Manually review code for deprecated APIs
- Check for outdated patterns
- Try to estimate effort for each item
- Create Jira tickets manually
- Prioritize based on gut feeling
Time: 1-2 days, incomplete coverage
After (With This Skill):
Tech Lead: "Generate tech debt report for the codebase"
Agent Response:
π§ TECHNICAL DEBT REPORT βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π Report Date: December 20, 2024 π Scanned: 47 files, 8,234 lines of code βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π DEBT SUMMARY βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | Category | Count | Estimated Effort | Priority | |----------|-------|------------------|----------| | Critical TODOs | 3 | 2 days | π΄ High | | Deprecated APIs | 5 | 1 day | π΄ High | | Code Smells | 12 | 3 days | π‘ Medium | | Old Patterns | 8 | 2 days | π‘ Medium | | Minor TODOs | 15 | 1 day | π’ Low | | **TOTAL** | **43** | **9 days** | | βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π΄ CRITICAL ISSUES (Fix ASAP) βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ 1. π¨ Security: Hardcoded API Key π Services/PaymentService.cs:23 ```csharp // TODO: Move to environment variable - URGENT private const string ApiKey = "sk_live_xxxxx";β±οΈ Effort: 30 min π« Suggested: Create Jira ticket with "security" label
π¨ Data Loss Risk: Missing Transaction π Services/BookingService.cs:156
// FIXME: No transaction wrapper - can cause partial bookings await _repository.CreateBooking(booking); await _paymentService.Charge(payment);β±οΈ Effort: 2 hours π« Suggested: High priority bug ticket
π¨ Deprecated: Newtonsoft.Json π Multiple files (7 occurrences) Issue: Using Newtonsoft.Json instead of System.Text.Json Impact: Performance, security updates β±οΈ Effort: 4 hours π« Suggested: Refactoring ticket
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π‘ DEPRECATED API USAGE βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Location | Deprecated API | Replacement | |----------|----------------|-------------| | FlightsController.cs:45 |
DateTime.Now|DateTime.UtcNow| | BookingService.cs:89 |HttpClient()|IHttpClientFactory| | FlightService.cs:34 |GetAwaiter().GetResult()|async/await| | SearchRequest.cs:12 |[Obsolete] FlightClass|CabinClassenum | | Program.cs:67 |UseUrls()|WebApplication.Urls|βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π TODO/FIXME COMMENTS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
High Priority (blocking or risky): π BookingService.cs:45 - TODO: Add retry logic for API calls π PaymentService.cs:78 - FIXME: Handle timeout properly π FlightService.cs:112 - TODO: Cache this query
Medium Priority (quality/performance): π FlightsController.cs:89 - TODO: Add pagination π BookingsController.cs:34 - TODO: Add input validation π SearchRequest.cs:23 - TODO: Add date range validation ... and 6 more
Low Priority (nice to have): π Multiple files - TODO: Add XML documentation π Models/*.cs - TODO: Add validation attributes ... and 9 more
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π OUTDATED PATTERNS βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Manual Dependency Injection π Program.cs:23-45 Current: Manual service registration Better: Use Scrutor for assembly scanning Effort: 2 hours
String Concatenation in Queries π FlightService.cs:67 Current: String interpolation in SQL Better: Parameterized queries or EF Core Risk: SQL Injection (CRITICAL) Effort: 1 hour
Synchronous File I/O π Services/LogService.cs:34 Current: File.WriteAllText() Better: File.WriteAllTextAsync() Effort: 15 min
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π RECOMMENDED ACTION PLAN βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Sprint 1 (Immediate - 2 days): β‘ Fix hardcoded API key (security) β‘ Add transaction wrapper (data integrity) β‘ Fix SQL injection vulnerability
Sprint 2 (Next - 3 days): β‘ Migrate from Newtonsoft.Json β‘ Fix deprecated HttpClient usage β‘ Add retry logic to API calls
Sprint 3 (Planned - 4 days): β‘ Clean up remaining TODOs β‘ Modernize DI registration β‘ Add missing validation
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ π« CREATE JIRA TICKETS? βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Say "Create tickets for critical tech debt" to automatically create Jira tickets for the high-priority items.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Time Saved: 1-2 days β 2 minutes (500x faster)
Agent Instructions
When this skill is activated:
-
Scan for TODO/FIXME Comments:
- Search all source files for TODO, FIXME, HACK, XXX comments
- Extract the comment text and file location
- Parse any ticket references or priority indicators
-
Check for Deprecated APIs:
- Look for
[Obsolete]attributes - Check for known deprecated patterns:
DateTime.NowβDateTime.UtcNownew HttpClient()βIHttpClientFactoryGetAwaiter().GetResult()β proper async- Newtonsoft.Json β System.Text.Json
- Check for deprecated framework APIs
- Look for
-
Identify Code Smells:
- Long methods (>50 lines)
- Large classes (>500 lines)
- Deep nesting (>4 levels)
- Magic numbers/strings
- Duplicate code patterns
-
Assess Security Issues:
- Hardcoded secrets/keys
- SQL injection vulnerabilities
- Missing input validation
-
Categorize and Prioritize:
- Critical: Security, data integrity
- High: Deprecated APIs, blocking TODOs
- Medium: Performance, code quality
- Low: Documentation, minor cleanup
-
Estimate Effort:
- Based on scope and complexity
- Consider testing requirements
-
Generate Action Plan:
- Group into sprint-sized chunks
- Prioritize by risk and impact
Example Prompts
- "Generate tech debt report"
- "Find all TODO comments in the codebase"
- "Check for deprecated API usage"
- "What refactoring is needed?"
- "Show me code quality issues"
Benefits
| Metric | Before | After | Improvement | |--------|--------|-------|-------------| | Assessment time | 1-2 days | 2 min | 500x faster | | Coverage | 60-70% | 100% | Complete scan | | Prioritization | Subjective | Data-driven | Better decisions | | Tracking | Ad-hoc | Systematic | Nothing forgotten |