My friend @apopoutsis wrote about why he largely stopped using To-Do comments in code, and ask about the preferred way to track the to-do list of others in the codebases. ↓
TL;DR: explicit and tool-aided issue management is healthier.
📄 apop.tech/posts/why-i-stopped-using-to-do-code-comments/ (@apopoutsis)
I also believe it, but I usually don't hold myself from taking // notes, on the heat, side by side with the code. Then unused for months (until I got tools and discipline).
My personal setup is with a to-do's lister extension on the IDE, manually converting every major task to the issue tracker, and treating the rest as part of the technical debt.
Either way, don't use what you won't pay attention to, @apopoutsis has some implicit rationale here.
For teams using Github, you can use a "TODO to Issue" action that will convert newly committed to-do comments to GitHub issues on push and can be config to close the issues if the items are removed in a future commit.
github.com/marketplace/actions/todo-to-issue