tech-debt-report
npx skills add https://github.com/ihkreddy/agent-skills-ts --skill tech-debt-report
Agent 安装分布
Skill 文档
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.NowDateTime.UtcNowBookingService.cs:89 HttpClient()IHttpClientFactoryFlightService.cs:34 GetAwaiter().GetResult()async/awaitSearchRequest.cs:12 [Obsolete] FlightClassCabinClassenumProgram.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 |