Overall code coverage percentage and code coverage per feature: A declining percentage is a red flag for a growing tech debt
Number of failed CI or CD builds: If the number of failed CI/CD builds increases, it’s a strong indicator for instability in your codebase. This can be related to both design and code debt.
Create tasks and when people don't have enough work they can work on them
In my experience, the longer technical debt goes unfixed, the lower the chance it ever will. The only way to get rid of it is to stay on top of it and refactor all the time. If a new feature touches some part of code that needs to be refactored, you can add the refactoring to the estimate and do both in the same task. If this is not possible due to time constraints, as other commenter said, make a task for it and add it to the backlog.
We have 20% of each sprint dedicated to technical debt, if we feel we have any. This is an agreement we have with our manager. This is purely for bigger things, not day to day refactoring or nuget upgrades.
Best solution is to avoid tech debt by saying no to unrealistic deadlines and stop taking shortcuts.
Therefore, it's essential that you actively share knowledge about features and important codebase changes. It includes creating documentation, examples, tests, and sharing knowledge during retrospective meetings.
Knowledge sharing is one of the easiest methods to solve technical debt.