Move outstanding work from TODO.md into the issue tracker #78

Merged
andrew merged 2 commits from todo-to-issues into main 2026-08-02 19:47:30 -04:00
Collaborator

TODO.md carried two records in one file: what had been done, with the
measurements behind it, and what was left. The second half is what a tracker is
for, and keeping it in a file had already cost something — AGENTS.md records a
round where eleven entries described code that had already changed, and the file
admitted to three more when it was migrated.

What moved

64 issues, labelled by kind (defect, performance, test-coverage,
api-gap, packaging, docs, design-decision, abi-break, hygiene) and by
blast radius, milestoned by what they can land in:

Milestone Issues What it holds
0.9.x 48 Breaks no ABI
0.10.0 14 New or changed public symbols
1.0.0 6 Design work
Unscheduled 2 Constraints waiting on a trigger

Four are epics: the performance plan (#60), coverage (#61), actor rotation (#62),
and the false header comments (#63).

Verified before filing, not transcribed

Three entries were already fixed and were not filed:

  • the akgl_path_relative error-context leak — src/util.c:115-129 sets the flag
    and calls path_relative_root after FINISH, which is the fix the entry proposed
  • the tests/draw.c extension for akgl_draw_background — already covers zero,
    negative and NULL
  • the SDL enumeration audit — keyboards, gamepads and mappings are all freed in
    CLEANUP today

Two were reworded because the code had moved:

  • the fonts item is a missing teardown entry point, not a missing API:
    akgl_text_unloadallfonts exists, nothing calls it at exit, and there is no
    akgl_game_shutdown (#15)
  • draw_world's tilemap call is already bounded by numlayers; only the
    per-layer actor rescan remains (#26)

What stays in TODO.md

The part a tracker has no place for: why a decision went the way it did, what the
measurement was, and which arguments turned out to be wrong. The status-byte
truncation that made every suite unfailable, the CMake one-level override chain,
the equivalent-mutant analysis, the grid-versus-BSP numbers, why tg is still
vendored, why the collections wrappers are not used. 2,575 lines to 855.

TODO.txt is deleted

Four of its eight entries had shipped — actor-to-actor collision, actor-to-world
collision, automatic facing, image layers. The four that had not are #74 through
#77, with the GPU renderer's research links kept because that is the part that
took the time.

Everything else

Every reference that named an item number or a moved section is repointed — the
manual, the headers, the tests and the examples, 40 files.

Verification: cmake --build build && ctest --test-dir build — 35/35 pass.
This commit changes documentation and comments only.


Filed by Tachikoma (Claude Code, Opus 5, 1M context)

`TODO.md` carried two records in one file: what had been done, with the measurements behind it, and what was left. The second half is what a tracker is for, and keeping it in a file had already cost something — `AGENTS.md` records a round where eleven entries described code that had already changed, and the file admitted to three more when it was migrated. ## What moved **64 issues**, labelled by kind (`defect`, `performance`, `test-coverage`, `api-gap`, `packaging`, `docs`, `design-decision`, `abi-break`, `hygiene`) and by blast radius, milestoned by what they can land in: | Milestone | Issues | What it holds | |---|---:|---| | 0.9.x | 48 | Breaks no ABI | | 0.10.0 | 14 | New or changed public symbols | | 1.0.0 | 6 | Design work | | Unscheduled | 2 | Constraints waiting on a trigger | Four are epics: the performance plan (#60), coverage (#61), actor rotation (#62), and the false header comments (#63). ## Verified before filing, not transcribed Three entries were already fixed and were **not** filed: - the `akgl_path_relative` error-context leak — `src/util.c:115-129` sets the flag and calls `path_relative_root` after `FINISH`, which is the fix the entry proposed - the `tests/draw.c` extension for `akgl_draw_background` — already covers zero, negative and `NULL` - the SDL enumeration audit — keyboards, gamepads and mappings are all freed in `CLEANUP` today Two were reworded because the code had moved: - the fonts item is a **missing teardown entry point**, not a missing API: `akgl_text_unloadallfonts` exists, nothing calls it at exit, and there is no `akgl_game_shutdown` (#15) - `draw_world`'s tilemap call is already bounded by `numlayers`; only the per-layer actor rescan remains (#26) ## What stays in TODO.md The part a tracker has no place for: why a decision went the way it did, what the measurement was, and which arguments turned out to be wrong. The status-byte truncation that made every suite unfailable, the CMake one-level override chain, the equivalent-mutant analysis, the grid-versus-BSP numbers, why `tg` is still vendored, why the collections wrappers are not used. 2,575 lines to 855. ## TODO.txt is deleted Four of its eight entries had shipped — actor-to-actor collision, actor-to-world collision, automatic facing, image layers. The four that had not are #74 through #77, with the GPU renderer's research links kept because that is the part that took the time. ## Everything else Every reference that named an item number or a moved section is repointed — the manual, the headers, the tests and the examples, 40 files. **Verification:** `cmake --build build && ctest --test-dir build` — 35/35 pass. This commit changes documentation and comments only. --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added 1 commit 2026-08-02 18:48:17 -04:00
Move outstanding work from TODO.md into the issue tracker
Some checks failed
libakgl CI Build / cmake_build (push) Successful in 9m7s
libakgl CI Build / performance (push) Successful in 9m44s
libakgl CI Build / mutation_test (push) Has been cancelled
libakgl CI Build / memory_check (push) Has been cancelled
eabb9ad376
TODO.md carried two records in one file: what had been done, with the
measurements behind it, and what was left. The second half is what a tracker
is for, and keeping it here has already cost something -- AGENTS.md records a
round where eleven entries described code that had already changed, and this
file admitted to three more.

Every open item is now an issue on source.starfort.tech/andrew/libakgl,
labelled by kind and blast radius and milestoned by what it can land in: 0.9.x
for anything that breaks no ABI, 0.10.0 for new or changed public symbols,
1.0.0 for the design work. Four are epics: the performance plan (#60),
coverage (#61), actor rotation (#62), and the false header comments (#63).

Verified against the tree before filing rather than transcribed. Three entries
were already fixed and were not filed: the akgl_path_relative context leak, the
akgl_draw_background test extension, and the SDL enumeration audit -- keyboards,
gamepads and mappings are all freed in CLEANUP today. Two were reworded because
the code had moved: the fonts item is a missing teardown entry point rather than
a missing API, since akgl_text_unloadallfonts exists, and draw_world's tilemap
call is already bounded by numlayers, so only the per-layer actor rescan remains.

TODO.md keeps the part a tracker has no place for: why a decision went the way
it did, what the measurement was, and which arguments turned out to be wrong.

TODO.txt is deleted. Four of its eight entries had shipped -- actor-to-actor
collision, actor-to-world collision, automatic facing, image layers -- and the
four that had not are #74 through #77, with the GPU renderer's research links
kept because that is the part that took the time.

Every reference that named an item number or a moved section is repointed, in
the manual, the headers, the tests and the examples.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
tachikoma added 1 commit 2026-08-02 19:24:24 -04:00
Point AGENTS.md at the issue tracker for outstanding work
Some checks failed
libakgl CI Build / cmake_build (push) Successful in 11m45s
libakgl CI Build / memory_check (push) Successful in 14m58s
libakgl CI Build / performance (push) Failing after 33m46s
libakgl CI Build / mutation_test (push) Successful in 26m43s
963d511224
The rules section now says where new work goes: an issue on the forge, with the
file and line, the functional consequence, and what closing it would touch,
carrying status::grooming until its scope is settled. TODO.md is the record of
decisions and measurements, and adding outstanding items back to it is what the
split exists to prevent -- a description of work still to do goes stale the
moment somebody does it.

Two rules go with it. Say what you learn about an open issue in the issue,
because an issue nobody has re-checked is worth what an unverified comment is
worth. And file a dependency's defect against that dependency rather than
working around it here.

The 'do not trust a comment, a TODO entry, or a CI exclusion' lesson keeps its
evidence and gains the three entries found stale during the migration.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
andrew merged commit 3468ba14b2 into main 2026-08-02 19:47:30 -04:00
Sign in to join this conversation.