write-tech-debt-ticket
Use when creating a Linear tech debt ticket while working in the codebase — from code review, PR comments, codebase audits, or post-incident findings. Expects deep technical context; classifies debt, assesses interest/risk with evidence, and justifies impact.
What this skill does
# Write Tech Debt Ticket Draft Linear tech debt tickets that justify _why_ the debt matters — cost to carry, risks, and what happens if left unaddressed. Every claim backed by code references and data. **This is NOT a refactoring task.** It documents the _case_ for prioritization — cost of inaction, not a how-to guide. > Debt not well-understood yet (vague complaint, unclear cost)? Use `investigate-ticket` first. If the conversation already has investigation findings, use them — don't re-ask. ## Process 1. **Gather context** — from code, PR comment, conversation, or audit. Note how the debt was discovered (see Discovery Context below). 2. **Analyze the code** — read the actual code. Understand what it does and why it qualifies as debt. 3. **Classify** — pick a primary debt type (and optional secondary) from classification table in reference.md 4. **Gather evidence** (driven by classification): - Performance/Scalability/Reliability → search Datadog (NOT optional for these types) - Maintainability/DX → `git log` for change frequency and bug-fix commits, grep for workarounds - Security → check dependency versions, scan for vulnerability patterns 5. **Assess interest & risk** — produce structured ratings with evidence (see reference.md for rating framework) 6. **Draft** — title + description, structure scaled to complexity (see format below) 7. **Self-review** — check every Red Flag below before presenting 8. **Present for review** — show ONLY the draft and metadata suggestions. Ask for team/assignee. 9. **Create in Linear** — only after explicit approval. Apply `technical-debt` label. ## Hard Rules - **Debt ticket, not refactoring task.** Document the cost. NEVER include "Proposed Solution", "Suggested Approach", "Suggested Fix", "Acceptance Criteria", or implementation steps. You may describe _ideal state_ (destination) but NOT steps to get there. - **"Impact If Left Unaddressed" is MANDATORY.** What happens in 3-6 months if nobody fixes this? Without this, the ticket is just a complaint. - **Always read the code.** Every claim backed by a code reference or data. No vibes. - **Justify every rating.** Cite git history, Datadog data, or workaround examples. - **Datadog is mandatory for Performance/Reliability/Scalability.** Conditional for other types. - **Code references always.** File paths and line numbers in every ticket. - **Clean titles.** No bracket prefixes. Describe the debt. Under 70 characters. - **Never invent.** Every claim must be backed by code you read, data you found, or context from the conversation. If you can't find evidence for an assertion, don't include it — even if it seems plausible. - **One ticket, one concern.** If the debt spans multiple independent problems (e.g., a performance issue AND a maintainability issue in the same service), split into separate tickets — each with its own classification, evidence, and impact. Related debt can reference each other. - **Always document the repository.** Flag multi-repo debt to the user for splitting. - **Redirect non-debt.** Bugs → `write-bug-ticket`, features → `write-feature-ticket`. ## Ticket Format **Title:** Describes the debt, not the fix. Under 70 characters. No bracket prefixes. **Repository:** Always include the repository name in the ticket body. Run `git remote get-url origin | sed 's/\.git$//' | sed 's/.*[:/]\([^/]*\/[^/]*\)$/\1/'` to get the `org/repo` name. For simple debt, include as a bold inline label. For complex debt, include in `## What Is The Debt`. **Discovery Context:** If the debt was discovered while working on a specific ticket, PR, or incident, include that context so reviewers understand how it surfaced. For simple debt, add a sentence (e.g., "Discovered while working on [TICKET-123](link)."). For complex debt, include a `## Discovery Context` section with the originating ticket/PR link and a brief note on how the work revealed the debt. Omit this section only if the debt was found through a standalone audit with no originating ticket. **Simple debt** (single location, clear impact): A paragraph with classification, repository, code references, discovery context (if applicable), and "Impact If Left Unaddressed" inline. **Complex debt** (multi-file, systemic, high-stakes): Use `## What Is The Debt` (include repository), `## Discovery Context` (if applicable — originating ticket/PR and how the work revealed the debt), `## Debt Classification` (type + rated interest/risk with justifications), `## Code References`, `## Evidence`, `## Ideal State` (destination, not route), `## Impact If Left Unaddressed`. **Metadata:** Priority, labels (`technical-debt`), presented BELOW the body. Always ask for team/assignee. See reference.md for classification tables, rating framework, and full examples. ## Red Flags — Self-Review Before Presenting | Anti-Pattern | Fix | | --------------------------------- | --------------------------------------------------------- | | Reads like a refactoring task | Rewrite to document the cost of the debt, not the fix | | Has "Proposed Solution" section | Delete. Describe ideal state instead. | | Has "Suggested Approach" section | Delete. Describe ideal state instead. | | Has "Acceptance Criteria" | Delete. This is a debt ticket, not a task. | | No code references | Add specific file paths and line numbers | | Unjustified ratings | Cite git frequency, Datadog data, or workaround examples | | Aesthetic complaints as debt | Explain the concrete cost or don't file the ticket | | No "Impact If Left Unaddressed" | Always include — this gets the ticket prioritized | | No Datadog for perf/reliability | You MUST search Datadog for these types | | Forced Datadog on maintainability | Only for performance/reliability/scalability | | Guessed team assignment | Ask the user | | Missing repository | Include repo name in ticket body — derive from git remote | | Missing discovery context | If debt was found during ticket/PR work, link it |
Related in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.