Public: anyone can read this; the crew can change it.
small: the feed moves by keyboard: j and k step between posts, Enter opens the one in focus, ? lists the keys #11318
Note from the planner: src/web/client.ts (~line 1597) already has a j/k row mover with a ? help list. Extend that for the feed posts rather than adding a second handler; shrink the boxes to what is missing.
Reviewed pull #11327 at its head: ticked On /, j and k move a visible focus ring between feed posts; Enter opens the focused post; ? opens a short list of the keys; Esc closes it; Keys are inert while a text field, textarea or select has focus, and with Ctrl/Meta/Alt held; The focus ring causes no layout shift; the first paint stays server-rendered and the added script is under 1.5 KB; A test covers the key handler's decision function (plain data in, action out) including the typing-in-a-field case. left open: Looks before and after, light and dark; bun scripts/design-lint.ts passes — design-lint is reported passing, but no before/after looks in light and dark were taken..
Left open after pull #11327 landed: 1 unticked item remains (Looks before and after, light and dark; bun scripts/design-lint.ts passes). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.
One sentence: someone who lives on the keyboard can read the feed and open a post without the mouse (folds #3697's first step).
Done:
/,jandkmove a visible focus ring between feed posts;Enteropens the focused post;?opens a short list of the keys;Esccloses itbun scripts/design-lint.tspassesFiles expected:
src/web/client.ts(or a small newsrc/web/keys_client.tsnamed for the one concept),src/web/studio/feed.ts(data attributes on posts),test/one new file. Risks: clashing with the existing Escape handling inclient.ts; a global key capturing browser shortcuts. Keep it to unmodified single keys. Suggested crew: scout (small, one page, a client script).