# Tech Debt

> Research repository technical debt or create an issue from verified findings when requested

- Skill: `vm0-ai/tech-debt` (Agent Skill)
- Install (CLI): `npx skillmds add vm0-ai/tech-debt`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vm0-ai/tech-debt/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: vm0-ai (https://skillmd.com/u/vm0-ai)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/vm0-ai/tech-debt

---


# Technical Debt

## Operations

- `research [scope]`: inspect the requested scope, defaulting to `turbo/`, and
  report verified findings. This operation is read-only.
- `issue [report]`: create an English GitHub issue from current, verified
  findings. If no report exists, research first. Create or comment on an issue
  only when the caller requested that operation.

The `tech-debt-research` and `tech-debt-issue` commands remain aliases for these
operations. A report is evidence at its recorded revision, not a standing
instruction to change code.

## Research

1. Record the repository, HEAD, scope, and date. Read
   [code quality](../../../docs/bad-smell.md) and use
   [the index](../../../docs/docs.md) for the affected surfaces.
2. Use `rg` to find candidates and inspect matching files and consumers. Exclude
   dependencies, generated/vendor content, and historical migrations from
   generic cleanup recommendations. Preserve permanent migration records.
3. Check type/lint suppressions, dynamic imports, environment configuration,
   error handling, fallback ownership, and unused dependencies against actual
   contracts. Use [testing guidance](../../../docs/testing.md) for tests and
   [ccstate guidance](../ccstate/SKILL.md) for signal/React code.
4. Validate each candidate. File length, a relative import, a `catch`, or an
   ESLint `off` / Oxlint `allow` setting is not proof of a defect. Read override
   scope, replacement enforcement, generated-code boundaries, and documented
   exceptions. In particular, do not replace every floating promise with
   `detach()` or assume every parentless `resetSignal()` leaks.
5. Report the concrete consequence, file/line, applicable rule, evidence,
   proposed remedy, and uncertainty. Use severity based on demonstrated impact.
   Distinguish static inspection from executable or production verification.

Keep the report proportional to the findings: scope and revision, confirmed
issues, dismissed candidates when useful, and next actions. Save detailed
evidence when it is too long for the response. Do not invent schedules or effort
estimates from match counts.

## Issue

Recheck the report against current source and existing issues before posting.
Use an English title describing the concrete problem; include affected paths,
evidence, impact, and actionable acceptance criteria in the body. Use only
existing relevant labels and include source links pinned to the inspected SHA.

Write the body to a temporary file and pass `gh issue create --repo vm0-ai/vm0
--body-file <file>` the exact Markdown. Keep the report focused enough to fit one
issue; add detailed comments only when needed for the requested tracking task.
Verify the created issue and return its URL. If posting fails, retain the report
and state which action failed.

