Skip to content

docs(roadmap): five lines the radio follows next, and where to read them - #177

Merged
wine-fall merged 1 commit into
mainfrom
zachg-0831--roadmap-doc
Aug 31, 2026
Merged

docs(roadmap): five lines the radio follows next, and where to read them#177
wine-fall merged 1 commit into
mainfrom
zachg-0831--roadmap-doc

Conversation

@wine-fall

Copy link
Copy Markdown
Owner

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 one
    click from the front page.
  • specs/STATUS.md — one line saying direction lives in the roadmap and
    this card holds only the current focus; the #145 pointer 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) is
closed 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 was
never 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 touch
src/contracts.ts, src/director.ts, src/prompts.ts and the same three test
files. They need reconciling into one change before either merges. Recorded in
roadmap §0.

Gates

pre-commit run --all-files ✅ (all four hooks) · pnpm test 1124 passed,
1 skipped ✅ · pnpm run typecheck ✅ (via pre-commit) · docs-only, no runtime
change.

Peer review (codex gpt-5.6-sol, xhigh): 3 findings, 2 applied, 1 dismissed.

  • Applied — the roadmap pointed line 2 at 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 that
    self-initiated talk never takes. Corrected to name the real assembly.
  • Applied — the roadmap treated the machine-detected language as the
    listener'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), and
    detectLanguage reads LC_*/LANG, never the timezone. Rewritten to
    separate effective language from timezone-as-region.
  • Dismissed — "keep The first line a listener types in a session is silently dropped #145 open, an unresolved bug belongs in the issue
    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 #145 is untouched — the seam still reads exactly
as filed. (3) The user did not recognise #145 at all, which is the finding
that 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

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
wine-fall force-pushed the zachg-0831--roadmap-doc branch from 5ac6928 to 4ecfc62 Compare August 31, 2026 11:14
@wine-fall
wine-fall merged commit fa46cfb into main Aug 31, 2026
3 checks passed
@wine-fall
wine-fall deleted the zachg-0831--roadmap-doc branch August 31, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The first line a listener types in a session is silently dropped

1 participant