ifURI docs

TODO.md consolidation audit — 2026-07-08 (IFURI-208)

Review of every TODO.md in the if-uri hub, prompted by the recurring [NXDO] Review and Consolidate TODO.md Files housekeeping ticket. Answers one question: is TODO.md being used consistently across the ecosystem, and if not, what should change.

Inputs

Commands run from /home/tom/github/if-uri:

find . -maxdepth 2 -iname "TODO.md" -not -path "*/node_modules/*" \
  -not -path "*/.claude/*" -not -path "*/.work/*"

# per-file open/done checkbox counts
grep -c '^\s*- \[ \]' <file>; grep -c '^\s*- \[x\]' <file>

# ecosystem-wide conformance, from if-uri/ifuri-com
STRICT=1 bash scripts/docs-lint.sh

Finding: two unrelated things share the filename TODO.md

Hand-curated backlog TODO.md (31 repos, e.g. todo.md, docs/TODO.md, roadmap/TODO.md, get-ifuri-com/TODO.md, most urirun-connector-* repos with a TODO.md) — short, prose, [x] items carry evidence (commit/file reference), matches the repo-standards.md definition of "the live backlog." todo.md and roadmap/TODO.md already carry dated review headers (IFURI-157, IFURI-217) and are current.

prefact-generated lint-issue dumps — machine-written, unrelated to backlog planning:

RepoGeneratedHeader claimsCheckbox lines in file
urirun/TODO.md2026-07-05711 active, 56 completed256 (200 open + 56 done)
examples/TODO.md2026-06-21320 active, 0 completed200
app/TODO.md2026-06-21269 active, 128 completed200 open + 100 done shown
urivision/TODO.md2026-07-05223 active, 6 completed200 + 6
urirun-connector-kvm/TODO.md2026-06-27170 active, 6 completed170 + 6
urirun-connector-twin/TODO.md2026-06-2788 active, 0 completed88
urirun-contract-windowpair/TODO.md2026-06-2734 + 9
relcom/TODO.md2026-07-080 active, 0 completed0

Two problems follow from treating these as the backlog:

These are linter output, not planning documents — useful for prefact -a --execute-todos, not for "what should this repo work on next."

Finding: docs-lint --strict TODO.md gap is large and pre-existing

STRICT=1 bash scripts/docs-lint.sh (ifuri-com) reports 31/132 repos conform, 101 need work, of which 92/132 lack a TODO.md at all. This gap predates this audit and spans the whole urirun-connector-* and urirun-* fleet (most connectors extracted since the ~60-repo split have no TODO.md). Bulk-creating 92 placeholder files is out of scope for a single consolidation pass — it would produce empty boilerplate, not a live backlog, which is the opposite of what repo-standards.md asks for. Tracked as follow-up, not fixed here.

Action taken

Not done in this pass