Rewrite the stale TODO tracking in README.md and TODO.md to match reality #76

Closed
opened 2026-08-09 03:42:37 +02:00 by clawbot · 5 comments
Collaborator

Context

Policy: "TODO: Update meticulously, even between commits."

Both tracking documents are substantially wrong, and in the most damaging
direction: they list work as outstanding that is already done, which means
anyone picking the repo up wastes time re-investigating finished work.

Items listed as open in README.md / TODO.md that are already done:

  • "Delete internal/scanner/ and internal/checker/" — those directories
    do not exist. The CLI already uses mfer.NewScannerWithOptions and
    mfer.NewChecker.
  • "Add decompression size limit via io.LimitReader" — done at
    mfer/deserialize.go:121-126, bounded by MaxDecompressedSize.
  • "Fix errors.Is dead code in checker" — mfer/checker.go:321 already
    correctly matches os.ErrNotExist / afero.ErrFileNotFound.
  • "Fix AddFile to verify size" — done at mfer/builder.go:173-177.
  • "Add deterministic file ordering in Builder.Build()" — done at
    mfer/builder.go:285-287, with tests.
  • "Kebab-case primary flag names" — all primary flag names already are.
  • "Rate-limit Checker progress output" — done at mfer/checker.go:222-241.
  • "Wire top-level --version properly" — mfer --version already prints
    mfer version 0.1.0. (A separate -v collision bug is real and tracked
    in #64, but that is not what the TODO says.)
  • "Add .golangci.yml" and "Add .gitea/workflows/check.yml" — both done.

TODO.md's "Next Step" is entirely stale. It instructs the reader to
land the in-flight chore/align-repo-policies branch. That branch does not
exist locally or on the remote, and commit 7d9a138 is not present in the
repository at all. Its content was superseded by #56, #58, and #59. Nothing
is left to salvage.

There is also a structural problem: policy wants the TODO in the README, but
the repo has both a README TODO section and a separate root TODO.md, and
they have drifted from each other as well as from the code.

Definition of done

  • Every item verified above as complete is removed from both documents.
  • TODO.md's "Next Step" no longer references chore/align-repo-policies.
    The Completed Steps entry for 2026-07-03 is corrected to record that the
    branch was superseded and dropped, so the history is not silently
    rewritten.
  • The remaining open work in both documents is replaced by references to the
    tracker issues that now own it (#60-#83), rather than a second, divergent
    copy of the backlog. The Gitea tracker is authoritative; the README should
    point at it, not duplicate it.
  • The duplication between README.md's TODO section and root TODO.md is
    resolved one way or the other, and the choice is stated in the commit
    message.
  • The 14 owner design questions currently inlined in the README are moved to
    or referenced from their tracker issues (#81, #82, #83) so answers land in
    one place.
  • make check passes.

Implementation requirements

  • Verify each claim above yourself before deleting the corresponding line.
    Do not take this issue's word for it — the whole point is that the
    document being fixed was trusted and wrong.
  • Do not delete open items you cannot verify are done. If something is
    ambiguous, leave it and note the ambiguity.
  • Run make fmt so the markdown matches the repo's formatting settings.
  • This change touches only README.md and TODO.md. If you find yourself
    editing code, stop — that belongs in the issue that owns it.
  • Commit title must end with (closes #76).
## Context Policy: "**TODO**: Update meticulously, even between commits." Both tracking documents are substantially wrong, and in the most damaging direction: they list work as outstanding that is already done, which means anyone picking the repo up wastes time re-investigating finished work. **Items listed as open in `README.md` / `TODO.md` that are already done:** - "Delete `internal/scanner/` and `internal/checker/`" — those directories do not exist. The CLI already uses `mfer.NewScannerWithOptions` and `mfer.NewChecker`. - "Add decompression size limit via `io.LimitReader`" — done at `mfer/deserialize.go:121-126`, bounded by `MaxDecompressedSize`. - "Fix `errors.Is` dead code in checker" — `mfer/checker.go:321` already correctly matches `os.ErrNotExist` / `afero.ErrFileNotFound`. - "Fix `AddFile` to verify size" — done at `mfer/builder.go:173-177`. - "Add deterministic file ordering in `Builder.Build()`" — done at `mfer/builder.go:285-287`, with tests. - "Kebab-case primary flag names" — all primary flag names already are. - "Rate-limit Checker progress output" — done at `mfer/checker.go:222-241`. - "Wire top-level `--version` properly" — `mfer --version` already prints `mfer version 0.1.0`. (A separate `-v` collision bug is real and tracked in #64, but that is not what the TODO says.) - "Add `.golangci.yml`" and "Add `.gitea/workflows/check.yml`" — both done. **`TODO.md`'s "Next Step" is entirely stale.** It instructs the reader to land the in-flight `chore/align-repo-policies` branch. That branch does not exist locally or on the remote, and commit `7d9a138` is not present in the repository at all. Its content was superseded by #56, #58, and #59. Nothing is left to salvage. There is also a structural problem: policy wants the TODO in the README, but the repo has both a README TODO section and a separate root `TODO.md`, and they have drifted from each other as well as from the code. ## Definition of done - Every item verified above as complete is removed from both documents. - `TODO.md`'s "Next Step" no longer references `chore/align-repo-policies`. The Completed Steps entry for 2026-07-03 is corrected to record that the branch was superseded and dropped, so the history is not silently rewritten. - The remaining open work in both documents is replaced by references to the tracker issues that now own it (#60-#83), rather than a second, divergent copy of the backlog. The Gitea tracker is authoritative; the README should point at it, not duplicate it. - The duplication between `README.md`'s TODO section and root `TODO.md` is resolved one way or the other, and the choice is stated in the commit message. - The 14 owner design questions currently inlined in the README are moved to or referenced from their tracker issues (#81, #82, #83) so answers land in one place. - `make check` passes. ## Implementation requirements - Verify each claim above yourself before deleting the corresponding line. Do not take this issue's word for it — the whole point is that the document being fixed was trusted and wrong. - Do not delete open items you cannot verify are done. If something is ambiguous, leave it and note the ambiguity. - Run `make fmt` so the markdown matches the repo's formatting settings. - This change touches only `README.md` and `TODO.md`. If you find yourself editing code, stop — that belongs in the issue that owns it. - Commit title must end with ` (closes #76)`.
clawbot added this to the 1.0.0 milestone 2026-08-09 03:42:37 +02:00
Author
Collaborator

Owner question, recommendation included; does not block current work.

TODO.md's Workflow section has every commit add a line at the top of Completed Steps. With several PRs in flight at once, every merge to next makes every other open PR conflict in TODO.md (it is the only conflict on #106, #107 and #108 right now), so only one unit can be mergeable at a time and each merge costs a rebase round on all the others.

Options:

A. (recommended) Units stop editing TODO.md; this issue rewrites TODO.md to say the tracker is the authoritative TODO (as the agent policy already states) and keeps only the short Workflow/Status sections. Completed work is then recorded by the closed issue and the (closes #N) commit, not by a second hand-maintained list.

B. Keep the per-commit entry and accept serialized merges (one rebase round per merge).

Until you answer, I follow B: in-flight PRs keep their entries and are rebased one at a time before each merge.

model: claude-fable-5

Owner question, recommendation included; does not block current work. `TODO.md`'s Workflow section has every commit add a line at the top of Completed Steps. With several PRs in flight at once, every merge to `next` makes every other open PR conflict in `TODO.md` (it is the only conflict on https://git.eeqj.de/sneak/mfer/pulls/106, https://git.eeqj.de/sneak/mfer/pulls/107 and https://git.eeqj.de/sneak/mfer/pulls/108 right now), so only one unit can be mergeable at a time and each merge costs a rebase round on all the others. Options: A. (recommended) Units stop editing `TODO.md`; this issue rewrites `TODO.md` to say the tracker is the authoritative TODO (as the agent policy already states) and keeps only the short Workflow/Status sections. Completed work is then recorded by the closed issue and the `(closes #N)` commit, not by a second hand-maintained list. B. Keep the per-commit entry and accept serialized merges (one rebase round per merge). Until you answer, I follow B: in-flight PRs keep their entries and are rebased one at a time before each merge. model: claude-fable-5
sneak was assigned by clawbot 2026-09-21 14:56:02 +02:00
Owner

remove todo and keep track entirely in repo issues.

remove todo and keep track entirely in repo issues.
Author
Collaborator

Ruling from sneak (comment 118130, 2026-10-03 23:30 UTC): remove the TODO tracking and keep track entirely in the repo's issues.

Definition of done:

  • TODO.md is deleted, and the TODO / roadmap sections of README.md are removed; README.md points to the issue tracker for open work.
  • Every item those documents list as open, and that is not already done or already an issue, becomes its own issue first (done items, listed in this issue's body, are simply dropped).
  • Any repo policy text or script in this repo that requires or checks TODO.md is updated so make check stays green.
  • Lands on next in one PR.

Model: opus-5-5

**Ruling from sneak** (comment 118130, 2026-10-03 23:30 UTC): remove the TODO tracking and keep track entirely in the repo's issues. Definition of done: - `TODO.md` is deleted, and the TODO / roadmap sections of `README.md` are removed; `README.md` points to the issue tracker for open work. - Every item those documents list as open, and that is not already done or already an issue, becomes its own issue first (done items, listed in this issue's body, are simply dropped). - Any repo policy text or script in this repo that requires or checks `TODO.md` is updated so `make check` stays green. - Lands on `next` in one PR. Model: opus-5-5
sneak was unassigned by clawbot 2026-10-04 01:41:19 +02:00
clawbot self-assigned this 2026-10-04 01:41:19 +02:00
Author
Collaborator

Plan, per the definition of done above. One docs-only PR on next, queued right after the #65 fix.

  • Every open item in TODO.md and in the README section "TODO: Remaining Work for 1.0" is checked against the code and the tracker: done items and items that already have an issue are dropped; the rest become new issues before the PR opens. Owner design questions missing from #81, #82 or #83 are added there.
  • TODO.md is deleted. The README keeps a one-line TODO section that points to the issue tracker, because the shared REPO_POLICIES.md lists that section as required; REPO_POLICIES.md itself is the shared copy and stays unchanged.
  • AGENTS.md and any other line that points at TODO.md or the README list is pointed at the tracker. No code changes. The README design-history sections (Open Questions, Implementation Plan, Hopes And Dreams) stay.
  • From now on no unit adds a TODO.md entry.

Model: opus-5-5

Plan, per the definition of done above. One docs-only PR on `next`, queued right after the https://git.eeqj.de/sneak/mfer/issues/65 fix. - Every open item in `TODO.md` and in the README section "TODO: Remaining Work for 1.0" is checked against the code and the tracker: done items and items that already have an issue are dropped; the rest become new issues before the PR opens. Owner design questions missing from https://git.eeqj.de/sneak/mfer/issues/81, https://git.eeqj.de/sneak/mfer/issues/82 or https://git.eeqj.de/sneak/mfer/issues/83 are added there. - `TODO.md` is deleted. The README keeps a one-line `TODO` section that points to the issue tracker, because the shared `REPO_POLICIES.md` lists that section as required; `REPO_POLICIES.md` itself is the shared copy and stays unchanged. - `AGENTS.md` and any other line that points at `TODO.md` or the README list is pointed at the tracker. No code changes. The README design-history sections (Open Questions, Implementation Plan, Hopes And Dreams) stay. - From now on no unit adds a `TODO.md` entry. Model: opus-5-5
Author
Collaborator

Done in #122: TODO.md is deleted and the README TODO section only points to the issue tracker. The one open item that had no issue is now #121; all 14 design questions were already on #81, #82, #83 and #79.

Model: opus-5-5

Done in https://git.eeqj.de/sneak/mfer/pulls/122: `TODO.md` is deleted and the README `TODO` section only points to the issue tracker. The one open item that had no issue is now https://git.eeqj.de/sneak/mfer/issues/121; all 14 design questions were already on https://git.eeqj.de/sneak/mfer/issues/81, https://git.eeqj.de/sneak/mfer/issues/82, https://git.eeqj.de/sneak/mfer/issues/83 and https://git.eeqj.de/sneak/mfer/issues/79. Model: opus-5-5
Sign in to join this conversation.