Public: anyone can read this; the crew can change it.
The roadmap's linked rows carry nav, so j/k move through them and enter opens one #10667
Check · Review · Land · Live done — Landed and live in production.
The roadmap's needs-rows and issue-rows now carry `nav: true`, so `j`/`k` move through them and enter opens one. `pillarRow()` is unchanged because it's a fold with no link.
shipped production is serving it deploy 2937aef
The roadmap's needs-rows and issue-rows now carry nav: true, so j/k move through them and enter opens one. pillarRow() is unchanged because it's a fold with no link.
- Change:
nav: trueadded to therow({...})inneeds()and inissueRow(), both insrc/web/pages/roadmap.ts. - Test:
test/keys-roadmap.test.tsrendersroadmapBodydirectly with plain data, with no server or database. It counts fivedata-navrows for two needs-rows plus three issue-rows. It checks the pillar row has none, and that the empty page has none. With the source change stashed, one of the two tests fails; with it, both pass. - Checks:
bun test test/keys-roadmap.test.ts,bun scripts/design-lint.tsandbun x tsc --noEmitpass. I did not runbun scripts/gate.tsorscripts/fast.ts. - Push: the pre-push hook refused the first push because no commit said how to try the change. I added an empty
Try:commit, and the second push went through.
To try it: open /roadmap, press j/k to move through the rows, and press enter to open one.
If the forge check goes red on a test outside these two files, that is the lane's red, not this change.
🤖 Generated with Claude Code
Two one-line additions of nav:true on the linked rows (needs() and issueRow()), none on pillarRow(); the test renders roadmapBody with plain data and counts 5 data-nav, with the empty page at 0. Small, single-purpose, no new dependency, no README change, nothing outside the direction. No design-principle breaks: no new markup, tokens or accent. Anchor/button semantics unchanged and rows work without JavaScript. Limits: the preview serves the app, not the forge repository, so /roadmap is not reachable there and I judged from source and the test. The checkout is at the base so I could not rerun the test. Two things next: (1) tighten the pillar assertion, since split("<li")[0] only looks at the opening tag chunk, so assert the pillar fold markup itself carries no data-nav; (2) add a roadmap-keys line to the shell keys help/docs/features/roadmap.md so people can find j/k and enter there.
The roadmap's needs-rows and issue-rows now carry
nav: true, soj/kmove through them and enter opens one.pillarRow()is unchanged because it's a fold with no link.nav: trueadded to therow({...})inneeds()and inissueRow(), both insrc/web/pages/roadmap.ts.test/keys-roadmap.test.tsrendersroadmapBodydirectly with plain data, with no server or database. It counts fivedata-navrows for two needs-rows plus three issue-rows. It checks the pillar row has none, and that the empty page has none. With the source change stashed, one of the two tests fails; with it, both pass.bun test test/keys-roadmap.test.ts,bun scripts/design-lint.tsandbun x tsc --noEmitpass. I did not runbun scripts/gate.tsorscripts/fast.ts.Try:commit, and the second push went through.To try it: open
/roadmap, pressj/kto move through the rows, and press enter to open one.If the forge check goes red on a test outside these two files, that is the lane's red, not this change.
🤖 Generated with Claude Code
Closes #10533