no-todo-comments
Sinaliza comentários TODO, FIXME, HACK e XXX para que sejam resolvidos antes do merge.
Detalhes da regra
Seção intitulada “Detalhes da regra”Comentários TODO são úteis durante o desenvolvimento, mas não devem se acumular na branch principal. Esta regra usa ctx.grepFiles para escanear todos os arquivos fonte em busca de marcadores de tarefas comuns em comentários. Ela usa severidade warning para não bloquear o CI, mas torna os comentários visíveis em cada execução de verificação.
Exemplos de código incorreto
Seção intitulada “Exemplos de código incorreto”// TODO: handle merge conflicts// FIXME: this breaks on Windows// HACK: workaround for upstream bug// XXX: revisit this logicExemplos de código correto
Seção intitulada “Exemplos de código correto”// Proper implementation with no deferred workImplementação da regra
Seção intitulada “Implementação da regra”/// <reference path="../rules.d.ts" />
export default { rules: { "no-todo-comments": { description: "TODO and FIXME comments should be resolved before merging", severity: "warning", async check(ctx) { const matches = await ctx.grepFiles( /\/\/\s*(TODO|FIXME|HACK|XXX):/i, "src/**/*.ts" ); for (const match of matches) { ctx.report.warning({ message: `${match.content.trim()} — resolve before merging`, file: match.file, line: match.line, }); } }, }, },} satisfies RuleSet;Quando usar
Seção intitulada “Quando usar”Quando você quer ter visibilidade sobre trabalho adiado e quer evitar que comentários TODO se acumulem ao longo do tempo. Altere a severidade para "error" e use ctx.report.violation() para torná-lo um bloqueador definitivo.
Quando não usar
Seção intitulada “Quando não usar”Quando comentários TODO são documentação intencional (por exemplo, rastreados por uma ferramenta separada que cria issues a partir de comentários TODO).