Skip to content

Add TODO/FIXME drift checker and fix checker count docs - #60

Merged
theDakshJaitly merged 1 commit into
mex-memory:mainfrom
advancedresearcharray:feat/todo-fixme-checker-issue-54
Jun 4, 2026
Merged

Add TODO/FIXME drift checker and fix checker count docs#60
theDakshJaitly merged 1 commit into
mex-memory:mainfrom
advancedresearcharray:feat/todo-fixme-checker-issue-54

Conversation

@advancedresearcharray

Copy link
Copy Markdown
Contributor

Closes #54
Closes #49

Summary

  • Adds checkTodoFixme — warns on unresolved TODO / FIXME markers in scaffold markdown (file + line).
  • Registers the checker in drift detection with TODO_FIXME issue code and remediation hint.
  • Updates README checker table, CONTRIBUTING checker count, and CHANGELOG [Unreleased].

Test plan

  • npm run typecheck && npm test && npm run build

Implements the todo-fixme checker (warning per marker with file and line),
registers it in drift detection, and updates README/CONTRIBUTING/CHANGELOG
so checker counts match the 10 modules in src/drift/checkers/.

Closes #54 and #49.

@theDakshJaitly theDakshJaitly left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this, @advancedresearcharray — and welcome! Really nice first contribution. It's clear you studied the existing checkers: the signature, the swallow-on-unreadable try/catch, and the index.ts registration all match the house style exactly, and you reconciled the checker count cleanly (the README table was actually missing tool-config-sync and undercounting — you fixed both and landed at 10). Tests cover all the acceptance criteria, and I ran typecheck / test (169 passing) / build locally — all green.

Approving. I've left a couple of non-blocking notes inline — purely optional follow-ups, nothing that should hold up the merge. Thanks again for picking up a good-first-issue and seeing it through.

import { relative } from "node:path";
import type { DriftIssue } from "../../types.js";

const MARKER_RE = /\b(TODO|FIXME)\b/g;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking, just flagging two behaviors of the match for posterity:

  • False positives: this matches TODO/FIXME literally anywhere, including inside fenced code blocks or a patterns/*.md that documents the convention (e.g. an example showing // TODO). That's exactly what Add a TODO/FIXME drift checker #54 asked for (warning per occurrence), so it's correct as-is — just noting that code-fence/inline-code skipping could be a nice v2 to cut noise.
  • Case-sensitive: only uppercase TODO/FIXME match; todo/Fixme are ignored. That's the conventional marker form, so probably intended — confirming it was a deliberate choice.

(FYI the MARKER_RE.lastIndex = 0 reset per line is a good defensive touch on a reused /g regex.)


const MARKER_RE = /\b(TODO|FIXME)\b/g;

/** Scan scaffold markdown for unresolved TODO/FIXME markers. */

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tiny cosmetic note: the comment says "scaffold markdown," but scaffoldFiles can include root .cursorrules / .windsurfrules, which aren't markdown. Harmless — the warning message reads fine either way.

@theDakshJaitly
theDakshJaitly merged commit 63f76e4 into mex-memory:main Jun 4, 2026
2 checks passed
@advancedresearcharray
advancedresearcharray deleted the feat/todo-fixme-checker-issue-54 branch June 10, 2026 20:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a TODO/FIXME drift checker Audit checker count in docs (8 → 9)

2 participants