docs(roadmap): five lines the radio follows next, and where to read them - #177
Merged
Conversation
The open issues had no main line through them, so the ones that mattered sat unread beside the ones that did not. This adds the direction layer the backlog was missing: ROADMAP.md, five ordered lines with what each is and what this round delivers, linked from the README's Status section. Two goals held at once this round — good enough that its author leaves it on, and runnable by someone who is not its author. Local TTS is recorded as out of scope. Line 0 absorbs issue #145 (the listener's first typed line is silently dropped): repro table, the suspected seam, and the done-when move into the roadmap and the issue closes, so the bug is somewhere it will be read. STATUS.md loses that pointer and gains one line saying direction lives in the roadmap and the card holds only the current focus. Peer review (codex gpt-5.6-sol, xhigh): 3 findings, 2 applied, 1 dismissed.
wine-fall
force-pushed
the
zachg-0831--roadmap-doc
branch
from
August 31, 2026 11:14
5ac6928 to
4ecfc62
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The open issues had no main line running through them — sixteen entries, no
order, so the ones that mattered sat unread beside the ones that did not. This
adds the layer the backlog was missing.
ROADMAP.md(new, repo root) — five ordered lines, each with what it is,what this round delivers, and the issues it is tracked as. Line 0 foundations
(land the queued PRs; stop dropping the first typed line), 1 sound like a DJ,
2 say real things, 3 pick well and play reliably, 4 others can run it and it
does not rot. Each line then gets a short section with the mechanism — the
actual call paths and file positions a builder needs, verified against
src/in the session that wrote it.
README.md— the Status section now points at it, so the roadmap is oneclick from the front page.
specs/STATUS.md— one line saying direction lives in the roadmap andthis card holds only the current focus; the
#145pointer is removed.Two goals are held at once this round, and they do not conflict: murmur should
be good enough that its author leaves it on, and runnable by someone who is
not its author. Local TTS is recorded as explicitly out of scope.
Issue #145 moves into line 0
#145(the listener's first typed line is silently dropped, reproduced 3/3) isclosed in favour of roadmap line 0, which carries the whole record: the repro
table, the suspected seam (
src/guide.ts:143/src/host.ts:108), what wasnever investigated, the spec contract violated, and the done-when. The bug is
unfixed — it moved to where it will actually be read, at the user's direction,
because an unread issue is not tracking.
Not touched
PRs #162 / #165 / #168 are left alone; the user merges those. Worth flagging
for whoever does: #162 and #165 implement the same thing twice — both add a
time field and a music-state field to
ContextPack, both touchsrc/contracts.ts,src/director.ts,src/prompts.tsand the same three testfiles. They need reconciling into one change before either merges. Recorded in
roadmap §0.
Gates
pre-commit run --all-files✅ (all four hooks) ·pnpm test1124 passed,1 skipped ✅ ·
pnpm run typecheck✅ (via pre-commit) · docs-only, no runtimechange.
Peer review (codex gpt-5.6-sol, xhigh): 3 findings, 2 applied, 1 dismissed.
isolatedOptions(src/brain.ts:102);the self-initiated talk task actually runs through
runTask→agenticOptions, so a builder following it would have loosened a path thatself-initiated talk never takes. Corrected to name the real assembly.
languageas thelistener's locale. The effective spoken language is owned by the persona and
overridable via
settings.language(src/app.ts:200-203, spec 12 §3.9), anddetectLanguagereadsLC_*/LANG, never the timezone. Rewritten toseparate effective language from timezone-as-region.
index." Correct as convention, but closing it is the explicit ask here and
the reason for the change: the issue went six days unread with zero comments
after being filed as a side finding of PR feat(settings): every knob changes two ways — the pane and just saying so [spec 12] #146. The full record travels into
roadmap line 0 rather than being lost.
AI coding brief
Original request. The user opened with "we need to set a roadmap — look at
the open issues and see which ones fit." The session read all sixteen, sorted
them into direction / one-off debt / acceptance gates, and proposed five lines.
The user then added three directions of their own that no issue covered (real
topics weighted by the listener's locale, better music sourcing via targeted
channels, and a song introduction that is a lead-in rather than a label), ruled
local TTS out, and confirmed that "runnable by others" and "good enough to
listen to myself" are both goals. The final instruction: close #145, leave the
open PRs alone, write the roadmap as a document, merge it, and link it from the
README so it is visible from the front page.
Manual interventions. Three, all corrective and all material. (1) The
session's first draft table put "merge the queued PRs" in line 0 as ready work;
the user stopped it — a dispatched pane is still self-verifying those, and they
are not mine to merge. (2) The user challenged line 0's bug ("I remember that
being fixed"), which was worth checking: the beat-grounding fix is real but
sits in an unmerged PR, while
#145is untouched — the seam still reads exactlyas filed. (3) The user did not recognise
#145at all, which is the findingthat shaped this PR: it was filed by an agent session during PR #146's smoke,
recorded in one line, and never surfaced again. The roadmap exists to stop that
from repeating.
Retro. The expensive part was discovering the #162/#165 overlap by diffing
two PRs one file at a time, after already drafting a table that assumed they
were independent. Checking whether in-flight PRs touch the same seam belongs
before writing anything that references them. A prompt that says "survey open
issues and open PRs before proposing an ordering" would have caught the
duplicate work in the first pass instead of the fourth.
🤖 Generated with Claude Code