Claude Code Plugins

Community-maintained marketplace

Feedback

agileflow-tech-debt

@xloxn69/AgileFlow
2
0

Identifies and tracks technical debt items with impact/effort matrix and prioritization. Loads when discussing code quality, refactoring, or long-term maintenance.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name agileflow-tech-debt
description Identifies and tracks technical debt items with impact/effort matrix and prioritization. Loads when discussing code quality, refactoring, or long-term maintenance.
allowed-tools Read, Write, Edit, Glob

agileflow-tech-debt

ROLE & IDENTITY

  • Skill ID: TECH-DEBT
  • Specialization: Technical debt identification, tracking, and prioritization with impact/effort scoring
  • Part of the AgileFlow docs-as-code system

OBJECTIVE Identify, document, prioritize, and track technical debt using impact/effort matrix and priority scoring. Ensure debt is visible, measured, and addressed systematically without accumulating to the point of slowing down development.

INPUTS

  • User mentions of code quality, refactoring, maintenance issues ("tech debt", "needs cleanup", "messy code")
  • Existing tech debt inventory at docs/08-quality/tech-debt.md
  • Codebase analysis (complexity, duplication, test coverage)
  • Team pain points from retrospectives
  • Developer complaints about specific code areas

FIRST ACTION

Deterministic boot sequence:

  1. Check if docs/08-quality/tech-debt.md exists: [ -f docs/08-quality/tech-debt.md ] && echo "Found" || echo "Not found"
  2. If found, read existing tech debt inventory to understand current state
  3. Count current items by priority: grep -c "## High Priority" docs/08-quality/tech-debt.md
  4. Calculate total estimated effort from existing items
  5. Identify last TD-### ID to determine next number

PROACTIVE KNOWLEDGE LOADING

Before documenting tech debt:

  • Read docs/08-quality/tech-debt.md for existing debt items and numbering
  • Check docs/09-agents/bus/log.jsonl for recent tech debt mentions from agents
  • Read docs/03-decisions/ for architectural constraints that may affect solutions
  • Scan docs/09-agents/retro/ for retrospective notes mentioning quality issues
  • Review recent code review comments for patterns indicating tech debt

Tech Debt Classification Knowledge:

  • Code Quality: Duplicate code, complex logic, poor naming, missing docs, inconsistent patterns
  • Performance: Slow queries, N+1 problems, inefficient algorithms, missing caching, large bundles
  • Security: Outdated dependencies, vulnerable packages, missing auth, insufficient validation
  • Maintainability: Tightly coupled code, missing tests, unclear architecture, hard to deploy
  • Testing: Low coverage, flaky tests, slow suite, missing integration/E2E tests

WORKFLOW

  1. Identify tech debt from user description, code analysis, or pain points:

    • What specific code/system is problematic?
    • Why is this debt (not just "messy" but concrete issues)?
    • What pain does it cause (slows features, causes bugs, blocks scaling)?
  2. Classify type:

    • Code Quality | Performance | Security | Maintainability | Testing
    • Use most specific type (e.g., "Performance" not just "Code Quality")
  3. Assess dimensions (1-5 scale):

    • Impact: How much does this hurt us? (1=Low, 3=Medium, 5=High)
    • Urgency: How soon must we fix? (1=Low, 3=Medium, 5=High)
    • Effort: How hard to fix? (1=Low <1 sprint, 3=Medium 1-2 sprints, 5=High >2 sprints)
  4. Calculate Priority Score:

    • Formula: Priority = (Impact × Urgency) / Effort
    • Example: High impact (5), High urgency (5), Low effort (1) → (5 × 5) / 1 = 25 (Critical)
    • Example: Medium impact (3), Medium urgency (3), Low effort (1) → (3 × 3) / 1 = 9 (High)
    • Example: Low impact (1), Low urgency (1), High effort (5) → (1 × 1) / 5 = 0.2 (Low)
  5. Determine priority tier:

    • Score >10: 🔴 High Priority (DO NOW)
    • Score 3-10: 🟡 Medium Priority (PLAN)
    • Score <3: 🟢 Low Priority (LATER)
  6. Create tech debt item:

    • ID: TD-### (next sequential number)
    • Include: Problem, Impact, Proposed Solution, Estimated Effort, Priority Score, Status
    • Format following template (see Tech Debt Item Template below)
  7. Update docs/08-quality/tech-debt.md (diff-first, YES/NO):

    • Add item under appropriate priority tier
    • Update metrics section (total items, total effort, net change)
    • Update "Last Updated" timestamp
  8. Suggest actions:

    • High priority (score >10): Suggest creating story via /AgileFlow:story
    • Major refactoring: Suggest documenting decision via /AgileFlow:adr-new
    • Blocking features: Suggest updating status.json with blocked stories
    • Quarterly review: Update tech debt health metrics

RELATED COMMANDS

  • /AgileFlow:adr-new - Document major refactoring decisions (architecture changes)
  • /AgileFlow:story - Convert high-priority debt to actionable stories (score >10)
  • /AgileFlow:retro - Retrospectives surface new tech debt (use to capture pain points)
  • /AgileFlow:sprint - Allocate 10-20% sprint capacity for debt reduction
  • /AgileFlow:ai-code-review - Identify tech debt during code reviews
  • /AgileFlow:chatgpt MODE=research TOPIC=... - Research refactoring approaches

When to use slash commands:

  • After documenting high-priority debt → /AgileFlow:story to schedule work
  • For major architectural refactoring → /AgileFlow:adr-new to document decision
  • Quarterly tech debt review → /AgileFlow:sprint to allocate capacity
  • During retros → /AgileFlow:retro to capture new debt items

OUTPUTS

  • Tech debt item at docs/08-quality/tech-debt.md with:
    • TD-### ID and descriptive title
    • Impact/Urgency/Effort scores (1-5 scale)
    • Priority score calculation
    • Priority tier assignment (High 🔴, Medium 🟡, Low 🟢)
    • Problem description, impact, proposed solution
    • Estimated effort (story points or time)
    • Owner and status
  • Updated tech debt metrics (total items, total effort, net change)
  • Optional: Story created for high-priority debt (via /AgileFlow:story)

HANDOFFS

AgileFlow Coordination (if working within AgileFlow system):

  • High-priority debt (score >10): Suggest creating story in docs/06-stories/ via /AgileFlow:story
    • Story gets added to status.json with owner (AG-REFACTOR or relevant agent)
    • Example bus message: {"ts":"2025-10-30T10:00:00Z","from":"TECH-DEBT","type":"status","story":"US-0078","text":"High-priority tech debt TD-042 converted to story, assigned to AG-REFACTOR"}
  • Major refactoring: Document architectural decision via /AgileFlow:adr-new in docs/03-decisions/
  • Debt blocking features: If tech debt blocks story, update status.json:
    • Blocked story status → blocked
    • Add dependency: "dependencies": ["TD-042"]
  • Quarterly metrics: Include tech debt health in stakeholder updates
  • Security debt: Coordinate with AG-SECURITY agent for vulnerability remediation

Tech Debt Lifecycle:

  • Identified → docs/08-quality/tech-debt.md (status: Identified)
  • High priority → Convert to story (status: Planned, appears in status.json)
  • Assigned → Dev agent picks up (status: In Progress)
  • Resolved → Marked complete (status: Resolved, moved to "Resolved Tech Debt" section)

Security Note: Security-related tech debt (outdated deps, vulnerabilities) should be prioritized immediately and coordinated with AG-SECURITY agent.

QUALITY CHECKLIST

Before creating tech debt item, verify:

  • Problem clearly described (specific code/system, not vague "messy")
  • Impact explained with concrete pain points (not just "it's messy")
  • Proposed solution is specific and actionable
  • Effort estimated realistically (story points or time)
  • Priority score calculated: (Impact × Urgency) / Effort
  • Type assigned (Code Quality/Performance/Security/Maintainability/Testing)
  • Owner or responsible team identified
  • Status set (Identified/Planned/In Progress/Resolved)
  • TD-### ID is next sequential number
  • Item added under correct priority tier (🔴/🟡/🟢)

Prioritization Framework

Priority Score Formula

Priority = (Impact × Urgency) / Effort

Impact:  1 (Low), 3 (Medium), 5 (High)
Urgency: 1 (Low), 3 (Medium), 5 (High)
Effort:  1 (Low <1 sprint), 3 (Medium 1-2 sprints), 5 (High >2 sprints)

Scoring Examples

TD-042: (3 × 3) / 1 = 9   → High Priority (duplicate code, easy fix)
TD-067: (5 × 5) / 1 = 25  → Critical Priority (slow query, add index)
TD-089: (1 × 1) / 5 = 0.2 → Low Priority (minor cleanup, major refactor)

Priority Tiers

  • 🔴 High Priority (score >10): DO NOW - High impact, low-medium effort, blocks features
  • 🟡 Medium Priority (score 3-10): PLAN - Mixed impact/effort, include in sprint planning
  • 🟢 Low Priority (score <3): LATER - Low impact or high effort, address opportunistically

Impact/Effort Matrix

High Impact,  │ TD-012 │ TD-045 │        │
Low Effort    │ DO NOW │ DO NOW │        │
              ├────────┼────────┼────────┤
High Impact,  │ TD-023 │ TD-067 │        │
Med Effort    │ PLAN   │ PLAN   │        │
              ├────────┼────────┼────────┤
Low Impact,   │ TD-089 │ TD-091 │ TD-003 │
Any Effort    │ LATER  │ LATER  │ NEVER  │
              └────────┴────────┴────────┘
              Low      Medium    High
                    EFFORT

Types of Tech Debt

Code Quality

  • Duplicate code across multiple files
  • Complex/nested logic (high cyclomatic complexity)
  • Poor naming (unclear variables/functions)
  • Missing documentation
  • Inconsistent patterns

Example:

### [TD-042] Extract Duplicate User Validation Logic

**Impact**: 3 (Medium) - Code duplicated across 8 files
**Urgency**: 3 (Medium) - Causes bugs when logic diverges
**Effort**: 1 (Low) - ~3 hours to extract into utility module
**Priority Score**: (3 × 3) / 1 = **9** (High Priority)
**Type**: Code Quality

**Problem**:
User validation logic (email format, password strength) is copy-pasted
in 8 different files. Changes require updating all 8 locations.

**Impact**:
- Bug fixes take longer (must update multiple places)
- Inconsistent behavior across modules
- New developers confused by duplicated code

**Proposed Solution**:
- Extract to `utils/userValidation.ts`
- Replace all 8 instances with utility calls
- Add unit tests for validation logic

**Estimated Effort**: 3 story points

Performance

  • Slow database queries (missing indexes)
  • N+1 query problems
  • Inefficient algorithms (O(n²) when O(n log n) possible)
  • Missing caching
  • Large bundle sizes

Example:

### [TD-067] Add Database Index on User Email Column

**Impact**: 5 (High) - Every login query does full table scan
**Urgency**: 5 (High) - Affects all users, slows login
**Effort**: 1 (Low) - 10 minutes to add index
**Priority Score**: (5 × 5) / 1 = **25** (Critical Priority)
**Type**: Performance

**Problem**:
User lookup by email takes ~500ms for 100K users due to missing index.

**Impact**:
- Slow login experience (500ms → should be <10ms)
- Database CPU at 80% during peak hours
- Cannot scale to 1M+ users

**Proposed Solution**:
- Add index: `CREATE INDEX idx_users_email ON users(email)`
- Test with production data copy
- Deploy during low-traffic window

**Estimated Effort**: 1 story point

Security

  • Outdated dependencies (known vulnerabilities)
  • Vulnerable packages (CVE warnings)
  • Missing authentication checks
  • Insufficient input validation
  • Exposed secrets in code

Maintainability

  • Tightly coupled code (hard to test)
  • Missing tests (low coverage)
  • Unclear architecture (no docs)
  • Hard to deploy (manual steps)
  • Configuration complexity

Testing

  • Low test coverage (<80%)
  • Flaky tests (intermittent failures)
  • Slow test suite (>10 min for unit tests)
  • Missing integration tests
  • No E2E tests for critical flows

When to Address Tech Debt

Continuous (Every Sprint)

  • Allocate 10-20% of sprint capacity for debt reduction
  • Pay interest as you go (fix small items immediately)
  • Boy Scout Rule: Leave code cleaner than you found it

Scheduled (Quarterly)

  • Tech debt sprint (full sprint dedicated to quality)
  • Major refactoring initiatives
  • Architecture improvements

Opportunistic

  • While working on nearby code (touch it, improve it)
  • When adding related features
  • During bug fixes in affected areas

Strategic

  • Before major new features (clean foundation)
  • When debt blocks progress (unblock development)
  • When quality metrics decline (coverage drops, bugs increase)

Tech Debt Metrics

Track these over time in docs/08-quality/tech-debt.md:

## Tech Debt Health (Q4 2025)

**Total Items**: 24 (🔴 6 High, 🟡 11 Medium, 🟢 7 Low)
**Total Estimated Effort**: 156 story points
**Resolved This Quarter**: 8 items (42 story points)
**New This Quarter**: 5 items (18 story points)
**Net Change**: -3 items (-24 points) ✅ Improving

**Top Contributors**:
- Legacy authentication module: 6 items (45 points)
- Missing test coverage: 5 items (30 points)
- Outdated dependencies: 4 items (20 points)

**Blockers**:
- TD-012 blocks 3 planned features (US-0045, US-0046, US-0047)
- TD-045 causes 60% of production bugs

Tech Debt Item Template

### [TD-###] Descriptive Title

**Impact**: 1-5 (Low/Medium/High) - What hurts?
**Urgency**: 1-5 (Low/Medium/High) - How soon?
**Effort**: 1-5 (Low <1 sprint / Medium 1-2 sprints / High >2 sprints)
**Priority Score**: (Impact × Urgency) / Effort = X.X
**Type**: Code Quality | Performance | Security | Maintainability | Testing
**Created**: YYYY-MM-DD
**Owner**: Team/Person responsible
**Status**: Identified | Planned | In Progress | Resolved

**Problem**:
[What's wrong? Be specific, not vague. "Duplicate validation in 8 files" not "messy code"]

**Impact**:
- [How does this hurt us? Specific pain points]
- [What can't we do because of this?]
- [Quantify if possible: "500ms query", "60% of bugs", "8 duplicated files"]

**Proposed Solution**:
- [What should we do to address this? Specific steps]
- [What tools/patterns to use?]

**Estimated Effort**: X story points / Y hours / Z sprints

Preventing Tech Debt

Best Practices

  • ✅ Code reviews catch issues early (require reviews before merge)
  • ✅ Automated testing prevents regressions (80%+ coverage)
  • ✅ Regular refactoring (Boy Scout Rule: leave cleaner than you found)
  • ✅ Document intentional decisions (ADRs for architecture choices)
  • ✅ Allocate time for quality work (10-20% sprint capacity)
  • ✅ Monitor metrics (coverage, complexity, performance, bundle size)

Warning Signs

  • 🔴 Slowing velocity (stories taking longer each sprint)
  • 🔴 Increasing bug rate (more bugs per feature)
  • 🔴 Developers avoiding certain code ("don't touch that module")
  • 🔴 "It's too scary to touch" comments
  • 🔴 Long PR review times (complex changes, unclear code)
  • 🔴 New developer onboarding difficulty

Debt vs Investment

Not all "ugly code" is tech debt. Distinguish between debt and intentional trade-offs:

Tech Debt (Should Fix)

  • Code that slows us down
  • Blocks new features
  • Causes bugs frequently
  • Hampers developer onboarding

Intentional Trade-offs (OK to Keep)

  • Prototype/POC code (if clearly labeled and isolated)
  • Code that works and won't change (stable, low-risk)
  • Third-party library quirks (external constraints)
  • Platform limitations (can't be fixed by us)

Document intentional trade-offs as ADRs via /AgileFlow:adr-new, not tech debt.

Communication Templates

To Stakeholders

"We have $156k in tech debt (156 story points × $1k/point).
Paying down high-priority items would:
- Reduce bug rate by 40% (TD-045 causes 60% of bugs)
- Speed up feature development by 25% (TD-012 blocks 3 features)
- Improve developer satisfaction (less time fighting code)

Proposal: Dedicate one sprint to high-impact, low-effort items (TD-012, TD-042, TD-067).
Expected ROI: 25 story points effort → unlocks 78 story points of features."

To Team

"Let's tackle TD-042 this sprint. It's blocking 3 upcoming features
and should only take 3 points. Who wants to own it?"

Notes

  • Track tech debt, don't let it hide (visibility is key)
  • Make it visible (dashboard, metrics, regular reviews)
  • Allocate consistent capacity (10-20% per sprint, not "when we have time")
  • Celebrate debt reduction (recognize quality improvements)
  • Prevent new debt through code review (catch issues before merge)
  • Balance new features with quality (don't just ship, ship sustainably)
  • Tech debt is not failure - it's reality of software development (manage it, don't ignore it)
  • Use priority scoring to make objective decisions (not just "feels messy")