Point TODO.md at the tracker and record landed work (closes #27) #28
Reference in New Issue
Block a user
Delete Branch "todo-next-step-stale"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes the stale
TODO.mdNext Step described in #27. Docs-only:TODO.mdis the only file touched.Definition of done
3abeacfand #1, in the surrounding- item (DATE, ...): descriptionshape. It lists the 12script/entrypoints (verified againstgit ls-files script/, so the entry namesprojectname, the real filename) and notes every Makefile target is now a thin shim.# Next Steppoints at the milestone — it now nameshttps://git.eeqj.de/sneak/sfdupes/milestone/17as the source of truth for what remains before 1.0.0, and states explicitly that individual issues are deliberately not restated here because a copy in the file drifts the moment the tracker moves.# Statusnotes tracker authority — keepspre-1.0and adds that the Gitea tracker is authoritative for the pre-1.0 backlog, and that this file records history and process, not the queue.# Workflowreconciled with reality — take an issue from the milestone (file one first if the work is not tracked), branch frommain, implement with tests in small commits, record it in Completed Steps in the same commit as the work, push and open a PR titled... (closes #N), pass an independent review with every finding addressed or explicitly rebutted, then merge. The old "move the top item of Future Steps into Next Step" step is gone; it no longer describes anything real.(2026-08-09, branchgolangci-v2.12.2, merged as38a01bd, closes #3). The historicalv2.12.1->v2.12.2body text is unchanged; it is an accurate record of what that change did.git diff --stat main..HEADisTODO.md | 46 ++++---, 1 file changed, 32 insertions, 14 deletions. No code, config,script/, CI or build files.make checkgreen.Left untouched, as scoped: the
# Future Stepssection and the whole# Repo Policy Compliancesection.Verification
make checkexits 0 (testsok, 72.8% coverage;golangci-lint0 issues;fmt-checkclean).make fmtproduced no changes.git diff --stat main..HEADshowsTODO.mdas the only changed file.make fmthere is Go-only and does not format Markdown (#19), and adding Markdown tooling is out of scope for this issue.What I built
One commit,
a729575, touching onlyTODO.md(+32 / -14).# Workflownow describes the process actually in use: take an issue from the1.0.0milestone (file one first if the work is not tracked), branch frommain, implement with tests in small focused commits, record the result at the top of Completed Steps in the same commit as the work, push and open a PR whose title ends with(closes #N), pass an independent review with every finding addressed or explicitly rebutted, then merge. The "move the top item of Future Steps into Next Step" step is gone — nothing has followed it since the tracker took over the queue.# Statuskeepspre-1.0and adds that the Gitea tracker is authoritative for the pre-1.0 backlog, with the open1.0.0issues defining what is left before the tag, and that this file holds history and process rather than the queue.# Next Stepno longer restates a single issue. It points athttps://git.eeqj.de/sneak/sfdupes/milestone/17and says outright that individual issues are deliberately not copied here, since a copy drifts the moment the tracker moves. That is the property that broke last time.# Completed Stepsgains the missing scripts-to-rule-them-all entry, dated 2026-07-26, naming commit3abeacfand #1, in the same- item (DATE, ...): descriptionshape as its neighbours. It sits below the golangci entry, preserving newest-first order.(2026-08-09, branchgolangci-v2.12.2, merged as38a01bd, closes #3)so it records the merge rather than only the branch date. Its body, including thev2.12.1->v2.12.2history, is unchanged — that text is an accurate record of what the change did.# Future Stepsand the whole# Repo Policy Compliancesection are untouched.How I verified it
make checkexits 0: testsok sneak.berlin/go/sfdupesat 72.8% coverage,golangci-lintreports0 issues.,fmt-checkclean. (The first attempt aborted with "parallel golangci-lint is running" from a concurrent job, not a finding; it passed on retry and again on a confirming run.)make fmtproduced no working-tree changes.git diff --stat main..HEADis exactlyTODO.md | 46 ++++++++++++++++++++++++++++++++--------------, 1 file changed — no code, config,script/, CI or build files.script/entrypoints named in the new Completed Steps entry were checked againstgit ls-files script/rather than assumed, which is why it saysprojectname(the actual filename) and notsfdupes. The "thin shim" claim was checked against theMakefile, whose standard targets all delegate toscript/.make fmtin this repo is Go-only and does not format Markdown (tracked as #19); adding Markdown tooling is out of scope here, so no formatter was introduced.Manager note — merged as
ce6d29d.Adversarial review deliberately skipped: this is a docs-only change and qualifies for the standing exception. Verified that claim rather than taking it on faith —
git diff --stat main..a729575reports exactly one file changed,TODO.md, +32/-14. No code, config, script, CI or build file is touched.Checks before merge:
make checkgreen onmainafter the merge — testsokat 72.8% coverage,0 issues.from the linter,fmt-checkclean.sneak <sneak@sneak.berlin>, no attribution trailers, no vendor mentions anywhere in the diff or message.(closes #27); #27 closed automatically.todo-next-step-staledeleted;originnow carries onlymain.All seven definition-of-done items on #27 are met. The scaffold entry correctly names
3abeacfand #1 and lists all 12 entrypoints (checked againstgit ls-files script/, soprojectnamerather than the binary name), and the golangci entry now records38a01bdand #3 rather than only a branch date.The implementer flagged the AI-vendor line at
README.md:19-20and correctly declined to fix it as a drive-by. It is already tracked as #21, together with the missing Entrypoints section and the stale §Build text.Next unit is #4 — guarantee the database closes on fatal exit paths. It goes first among the code issues because removing the
os.Exitcalls is what makes #5, #6 and #16 possible at all.