Engineering

Tech Debt Board

Tech Debt Board: Stop Losing Cleanup Work to Slack Threads

Every engineering team accumulates tech debt — the deprecated library nobody's swapped out, the flaky test everyone ignores, the 1,400-line class that needs splitting. The problem isn't spotting debt, it's tracking it. This Tech Debt Board gives you a dedicated kanban board with four columns — Backlog, Triaged, In Progress, and Resolved — so shortcuts and cleanup work get logged the moment they're found instead of forgotten in code comments. It's built to work equally well for human engineers and AI coding agents: connect via the MCP server so an agent can call create_task the instant it notices debt while working, then use move_task and update_task to keep the board current as items get triaged, worked, and resolved.

kanboard.io/templates/tech-debt

Template preview

Tech Debt Board

4 columns
Backlog

Newly logged tech debt items awaiting triage — anything from quick hacks to larger structural issues discovered during regular work.

3

Replace deprecated moment.js with date-fns in billing module

moment.js is deprecated upstream; billing/*.ts still imports it in 6 files. Swap to date-fns and remove the dependency.

Flaky test: checkout_flow_spec.rb times out intermittently

Test fails ~1 in 15 CI runs with a timeout on the payment webhook mock. Needs investigation of async wait conditions.

Duplicate validation logic across UserForm and AdminUserForm

Both forms reimplement email/password validation. Extract shared validator into lib/validators/user.ts.

Triaged

Debt that's been reviewed, estimated for effort/impact, and prioritized for upcoming work.

2

Migrate legacy REST endpoints from callback style to async/await

12 endpoints in api/legacy/ still use callback-based error handling. Estimated 2 days; medium impact on maintainability.

Consolidate three separate logging libraries into one

winston, pino, and console.log are all used across services. Standardize on pino; estimated 1.5 days.

In Progress

Cleanup and refactor work currently being actively worked on by an engineer or agent.

2

Refactor monolithic OrderService class into smaller modules

OrderService.ts is 1,400 lines handling pricing, shipping, and notifications. Split into three focused services.

Remove unused feature-flag code paths from 2022 experiments

Search for flags EXP_2022_* and delete dead branches once confirmed fully rolled out.

Resolved

Tech debt that has been fixed, merged, and verified — kept briefly for reference before archiving.

2

Upgraded ESLint config and fixed resulting lint errors

Migrated to flat config format and resolved 34 new lint warnings across the codebase. Merged in PR #482.

Removed jQuery dependency from admin dashboard

Replaced remaining jQuery DOM manipulation with vanilla JS in admin/dashboard.js. Bundle size reduced by 28KB.

How to run this board

Step 1

Log debt the moment it's spotted: create a task in Backlog with file paths, reasoning, and rough impact so nothing gets lost in comments or memory.

Step 2

During planning or weekly triage, move items from Backlog to Triaged once effort and priority are estimated, keeping the board reflective of real capacity.

Step 3

Pull Triaged items into In Progress as engineers or agents pick them up, using MCP's move_task to keep the board in sync with actual work.

Step 4

Mark items Resolved after merge and verification, then periodically prune old Resolved tasks with delete_task to stay within plan limits.

Step 5

Review column counts regularly with get_board or list_tasks to catch Backlog pileup before it becomes unmanageable.

AI agent usage

Run it with AI agents

Open MCP setup

An AI coding agent (or engineer) connected via the MCP server can use this board to log tech debt as it's discovered, triage it against active sprint work, and burn it down systematically instead of letting it rot in code comments and Slack threads. Agents should create a task the moment they spot a shortcut, flaky test, or outdated dependency, tag it with context in the description, and move it through columns as capacity opens up.

## Tech Debt Board (MCP)
When you (the agent) notice tech debt while working — a hack, a TODO, a flaky test, an outdated dependency — immediately call `create_task` on the Tech Debt Board project and place it in the **Backlog** column. Include file paths and reasoning in the description. Never silently fix unrelated debt mid-task; log it instead. During planning sessions, move items from **Backlog** to **Triaged** once impact/effort is estimated, then to **In Progress** when someone starts work, and **Resolved** when merged and verified. Use `move_task` for column changes and `update_task` to add findings. Respect the free plan's 25-task cap by archiving or deleting stale **Resolved** items with `delete_task` during cleanup.
Log a tech debt task for the flaky auth integration test and put it in Backlog
Triage all Backlog items older than 2 weeks and move the ones with clear fixes to Triaged
Show me everything in In Progress so I know what's actively being cleaned up this sprint

Learn more about the board-centric workflow in Kanban for AI Agents or open the MCP guide.

Frequently asked questions

Can an AI agent add tech debt tasks automatically while coding?

Yes. If your agent is connected via the MCP server, it can call create_task whenever it notices a shortcut, flaky test, or outdated dependency, placing new items directly in the Backlog column with context in the description.

How many tasks can I track on the free plan?

The free plan supports 1 project and up to 25 tasks total. For a Tech Debt Board, that means keeping Resolved items pruned regularly so Backlog and Triaged have room for new findings.

What happens if we hit the 25-task limit?

You'll need to delete or archive completed tasks (typically from Resolved) using delete_task, or upgrade to Pro ($12/mo or $96/yr) for higher limits across projects and tasks.

Does this board replace our issue tracker?

No — it's meant as a lightweight, focused kanban board for surfacing and prioritizing tech debt specifically, separate from feature or bug tracking, so cleanup work doesn't get buried.

Can we customize the column names?

Yes, the four columns (Backlog, Triaged, In Progress, Resolved) are a starting template. You can rename or add columns directly on the kanban board to match your team's workflow.

Is there a way to see the board's state via API instead of the UI?

Yes, the REST API and MCP server both expose get_board and list_tasks so you or your agents can pull current column states programmatically.

Related templates

Ready to create this board?

Sign in and use the template to create a project with columns and sample tasks.

Sign in to activate