Skip to content
add-manual-debt logo

Add Manual Technical Debt

add-manual-debt

Manually add a technical debt item to MASTER_DEBT.jsonl

SKILL.md

Full skill instructions

Add Manual Technical Debt

Purpose: Add ad-hoc technical debt items discovered outside formal audits.

When to Use: When you discover tech debt during development that should be tracked but wasn't found by automated tools.


Overview

This skill guides you through adding a single technical debt item to the canonical tracker with proper validation and ID assignment.

Output Location: docs/​technical-debt/​MASTER_DEBT.jsonl


Execution Steps

Step 1: Gather Required Information

Collect the following from the user (or context):

FieldRequiredDescriptionExample
fileYesFile path (relative to repo root)components/​auth/​login.tsx
lineYesLine number145
titleYesShort description (< 80 chars)Missing error boundary
severityYesS0 (Critical), S1 (High), S2 (Medium), S3 (Low)S2
categoryYessecurity, performance, code-quality, docs, etc.code-quality
effortNoE0 (<30m), E1 (<2h), E2 (<8h), E3 (>8h)E1
descriptionNoDetailed descriptionComponent lacks error...

Step 2: Validate File Exists

# Verify the file exists
ls -la {file}

If file doesn't exist, ask user to correct the path.

Step 3: Validate Line Number

# Check if line number is valid
wc -l {file}

If line exceeds file length, warn user.

Step 4: Preview Item

Show user what will be added:

📋 Technical Debt Item Preview
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

ID:          DEBT-XXXX (auto-assigned)
Source:      manual
File:        components/​auth/​login.tsx:145
Severity:    S2 (Medium)
Category:    code-quality
Effort:      E1 (<2h)
Title:       Missing error boundary
Description: Component lacks error boundary, crashes propagate to parent

Confirm? [Y/​n]

Step 5: Run Intake Script

node scripts/​debt/​intake-manual.js \
  --file "components/​auth/​login.tsx" \
  --line 145 \
  --title "Missing error boundary" \
  --severity S2 \
  --category code-quality \
  --effort E1 \
  --description "Component lacks error boundary, crashes propagate to parent"

Script behavior:

  1. Validates all inputs
  2. Checks for duplicates (same file:line)
  3. Assigns next available DEBT-XXXX ID
  4. Appends to MASTER_DEBT.jsonl
  5. Logs to intake-log.jsonl

Step 6: Regenerate Views

node scripts/​debt/​generate-views.js

Step 7: Confirm Success

✅ Technical Debt Item Added

   ID:       DEBT-0891
   File:     components/​auth/​login.tsx:145
   Severity: S2
   Status:   NEW (pending verification)

📄 Updated files:
   - docs/​technical-debt/​MASTER_DEBT.jsonl
   - docs/​technical-debt/​views/​verification-queue.md

💡 Next steps:
   - Item is in verification queue (status: NEW)
   - Run 'verify-technical-debt' to verify this item
   - Or manually update status to VERIFIED after confirming issue exists

Duplicate Detection

If a similar item already exists:

⚠️ Potential Duplicate Detected

Existing item:
   ID:    DEBT-0234
   File:  components/​auth/​login.tsx:142
   Title: Missing error handling in login

Your item:
   File:  components/​auth/​login.tsx:145
   Title: Missing error boundary

Options:
   [A] Add anyway (different issue)
   [M] Merge with existing (update DEBT-0234)
   [C] Cancel

Severity Guidelines

SeverityCriteria
S0Security vulnerability, data loss risk, crash
S1Major functionality broken, significant perf hit
S2Code smell, minor bug, moderate tech debt
S3Style issue, documentation, nice-to-have cleanup

Category Options

  • security - Auth, input validation, OWASP
  • performance - Load times, queries, caching
  • code-quality - Types, patterns, hygiene
  • documentation - README, API docs, comments
  • refactoring - Tech debt, complexity, DRY
  • process - CI/​CD, testing, workflows

Related

  • sync-sonarcloud-debt - Import from SonarCloud
  • add-deferred-debt - Add from PR reviews
  • verify-technical-debt - Verify items in queue