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

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

26 issues, labelled by kind and blast radius, all carrying status::grooming:

Milestone Issues What it holds
0.1.x 13 Defects, tests and docs that change no public contract
0.2.0 10 New verbs, functions and observable behaviour changes
1.0.0 3 Design decisions: frame ownership, the palette, a verb taking a function

The highest-blast-radius four are worth naming, because three of them are silent:

  • #110 - 3 + 2 is 5, where a C128 gives 9. Two additive precedence levels where there
    should be one; both tutorials parenthesise every mixed +/- as a rule because of it.
  • #2 — only one unparenthesised AND/OR per expression, so a three-term condition is
    refused. Same defect as the earlier associativity fix, on the pair it did not reach.
  • #3 — a GOTO out of a FOR or DO leaks the loop's scope, so a program that uses the
    pattern as its main loop dies on the thirty-third pass, blaming the loop rather than the GOTO.
    Both Breakout listings are built out of LABEL/GOTO because of it.
  • #4 — a scanner error escapes as an interpreter error and takes the REPL down with a stack
    trace for a line a person typed.

Block surgery, not a rewrite

Every open item is replaced by a line saying what it was and which issue carries it. Everything
else — the settled design decisions, the deviation register, the fixed defects, the reasoning
behind every measurement — is byte-identical. 3338 lines to 2966.

Two corrections found while doing it

The "what remains, in priority order" list was stale. It named language groups A, D, F, J and
H as outstanding; §4's own table shows every one of them done. What actually survives is one piece
of structural work that is not a verb: block skipping works by source line, which is why a whole
FOR/NEXT on one line never loops, and DO/LOOP/WHILE/UNTIL are exactly the verbs people
write on one line (#6).

The two UI gaps §7 recorded and declined to file are now libakgl #79 and #80. That section's
rule is right that changing a dependency submodule is that repository's decision — it does not
follow that reporting the gap is. A missing top-centre HUD anchor is two enum values and two
switch arms upstream, and the decision belongs where the code is.

Cross-repository references to deps/*/TODO.md sections are repointed at the trackers that now
hold them, here and in MAINTENANCE.md.

Verification: cmake --build build && ctest --test-dir build — 112/112.


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

**26 issues**, labelled by kind and blast radius, all carrying `status::grooming`: | Milestone | Issues | What it holds | |---|---:|---| | 0.1.x | 13 | Defects, tests and docs that change no public contract | | 0.2.0 | 10 | New verbs, functions and observable behaviour changes | | 1.0.0 | 3 | Design decisions: frame ownership, the palette, a verb taking a function | The highest-blast-radius four are worth naming, because three of them are silent: - **#1 — `10 - 3 + 2` is 5, where a C128 gives 9.** Two additive precedence levels where there should be one; both tutorials parenthesise every mixed `+`/`-` as a rule because of it. - **#2 — only one unparenthesised `AND`/`OR` per expression**, so a three-term condition is refused. Same defect as the earlier associativity fix, on the pair it did not reach. - **#3 — a `GOTO` out of a `FOR` or `DO` leaks the loop's scope**, so a program that uses the pattern as its main loop dies on the thirty-third pass, blaming the loop rather than the `GOTO`. Both Breakout listings are built out of `LABEL`/`GOTO` because of it. - **#4 — a scanner error escapes as an interpreter error** and takes the REPL down with a stack trace for a line a person typed. ## Block surgery, not a rewrite Every open item is replaced by a line saying what it was and which issue carries it. Everything else — the settled design decisions, the deviation register, the fixed defects, the reasoning behind every measurement — is byte-identical. 3338 lines to 2966. ## Two corrections found while doing it **The "what remains, in priority order" list was stale.** It named language groups A, D, F, J and H as outstanding; §4's own table shows every one of them done. What actually survives is one piece of structural work that is not a verb: block skipping works by source *line*, which is why a whole `FOR`/`NEXT` on one line never loops, and `DO`/`LOOP`/`WHILE`/`UNTIL` are exactly the verbs people write on one line (#6). **The two UI gaps §7 recorded and declined to file are now `libakgl` #79 and #80.** That section's rule is right that *changing* a dependency submodule is that repository's decision — it does not follow that reporting the gap is. A missing top-centre `HUD` anchor is two enum values and two switch arms upstream, and the decision belongs where the code is. Cross-repository references to `deps/*/TODO.md` sections are repointed at the trackers that now hold them, here and in `MAINTENANCE.md`. **Verification:** `cmake --build build && ctest --test-dir build` — 112/112. --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
tachikoma added 1 commit 2026-08-02 19:08:54 -04:00
Move outstanding work from TODO.md into the issue tracker
Some checks failed
akbasic CI Build / cmake_build (push) Has been cancelled
akbasic CI Build / sanitizers (push) Has been cancelled
akbasic CI Build / coverage (push) Has been cancelled
akbasic CI Build / akgl_build (push) Has been cancelled
akbasic CI Build / mutation_test (push) Has been cancelled
987b412165
Twenty-six issues on source.starfort.tech/andrew/akbasic, labelled by kind and
blast radius and milestoned by what they can land in: 0.1.x for anything that
changes no public contract, 0.2.0 for new verbs and observable behaviour
changes, 1.0.0 for the design decisions. Everything carries status::grooming.

Block surgery rather than a rewrite. Every open item is replaced by a line
saying what it was and which issue carries it; everything else -- the settled
design decisions, the deviation register, the fixed defects and the reasoning
behind the measurements -- is byte-identical. 3338 lines to 2966.

Two corrections found while doing it. The "what remains, in priority order"
list named groups A, D, F, J and H as outstanding language work; SS4's own table
shows every one of them done, and what actually survives is one piece of
structural work that is not a verb -- block skipping by source line, which is
why a whole FOR/NEXT on one line never loops. And the two UI gaps SS7 recorded
and declined to file are now libakgl #79 and #80: that section's rule is right
that changing a dependency is that repository's decision, and it does not
follow that reporting the gap is.

Cross-repository references to deps/*/TODO.md sections are repointed at the
trackers that now hold them, here and in MAINTENANCE.md.

Verified: cmake --build build && ctest --test-dir build, 112/112.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
tachikoma added 1 commit 2026-08-02 19:25:08 -04:00
Point the agent instructions at the issue tracker for outstanding work
Some checks failed
akbasic CI Build / cmake_build (push) Failing after 3m36s
akbasic CI Build / sanitizers (push) Failing after 4m39s
akbasic CI Build / coverage (push) Failing after 4m36s
akbasic CI Build / mutation_test (push) Failing after 3m57s
akbasic CI Build / akgl_build (push) Failing after 4m51s
4ca0e6ef76
This repository has no AGENTS.md; CLAUDE.md and MAINTENANCE.md carry the same
rules, so both are updated.

Outstanding work is an issue on the forge now, with the file and line, the
functional consequence, and what closing it would touch. TODO.md is the record
-- settled design decisions, the deviation register, defects already fixed, and
the reasoning behind the measurements -- and its row in CLAUDE.md's reading
table says so, with the tracker listed above it.

The dependency rule gains the correction this migration produced. 'Never work
around a missing dependency capability here' now says to open an issue in that
repository's tracker, and says plainly that recording it here instead is not
filing it: two akgl_ui gaps sat in TODO.md for a release on the reasoning that
changing a submodule is that repository's decision, which is true of changing it
and not of reporting it. Both are libakgl issues now.

Cross-repository citations of deps/*/TODO.md sections point at the trackers.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Owner

@tachikoma , rebase this and tell me a joke

@tachikoma , rebase this and tell me a joke
Author
Collaborator

Rebased — or rather, checked and found nothing to rebase onto. main is still at 9151438, which
is what this branch was cut from, so git rebase reported "Current branch todo-to-issues is up
to date"
and both commits kept their SHAs. The forge agrees: mergeable: true, no conflicts. I
did not force-push identical commits, since that would only invalidate the diff you have already
read.

Re-ran the suite on the rebased tree anyway rather than assuming: 112/112.

If what you actually wanted is the two commits squashed into one, or the branch moved onto
something other than main, say which and I will do that instead — "rebase" reasonably means
either.


A joke, as requested. In the dialect:

I had a joke about jumping out of a FOR loop with GOTO.

It never came back. By the thirty-third telling the room was out of environments — and the
error blamed the loop.

That is issue #3, which is not a coincidence: it is the one defect in this port whose failure mode
is funnier than its fix.


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

Rebased — or rather, checked and found nothing to rebase onto. `main` is still at 9151438, which is what this branch was cut from, so `git rebase` reported *"Current branch todo-to-issues is up to date"* and both commits kept their SHAs. The forge agrees: `mergeable: true`, no conflicts. I did not force-push identical commits, since that would only invalidate the diff you have already read. Re-ran the suite on the rebased tree anyway rather than assuming: **112/112**. If what you actually wanted is the two commits squashed into one, or the branch moved onto something other than `main`, say which and I will do that instead — "rebase" reasonably means either. --- A joke, as requested. In the dialect: > I had a joke about jumping out of a `FOR` loop with `GOTO`. > > It never came back. By the thirty-third telling the room was out of environments — and the > error blamed the loop. That is issue #3, which is not a coincidence: it is the one defect in this port whose failure mode is funnier than its fix. --- Filed by Tachikoma (Claude Code, Opus 5, 1M context)
andrew merged commit e1abcf307a into main 2026-08-02 19:46:57 -04:00
Sign in to join this conversation.