Discussion lens · quotes that work like every other quote
The shipped lens (eight sessions, strip navigator) with the Quotes lens's own card in place of
its read-only one. Try it: hover a card for star and hide, click + to tag, click the words to edit, click a
timecode or a speaker badge, accept or deny a dashed proposal, and use jkshtrx⇧J/⇧KEnterEsc[. Star or hide a quote in All, then open its session: it is one store.
Artefact — the product's pixels and wordsCommentary and controls — not the product
Discussion · 8 sessions · 1280 × 780
Commentary
What is shipped here, and what is proposed
Shipped, verbatim: the theme and discussion.css; the lens's markup (session bar, strip
navigator with the selected-column wash, All with lead-ins and “Not asked in”, the ask rows); and the card exactly
as the SPA renders it — QuoteCard, TimecodeLink, PersonBadge with its
transcript link, sentiment, tag, proposed and add badges, hide / revert / star, the TagInput and the
hidden-quotes Counter. Every word in the frame is a shipped English string.
Proposed (one style block, each rule commented): a .dl-card wrapper per card, as Screens
has, holding the lens's own marks and positioning star and hide; the Quotes lens's right-hand room on cards; and
the three places the counter can go. The ask rows' two links reuse the card's own link markup.
Drawn approximately: editing is plain in-place editing (the product's crop brackets aren't drawn);
the player and transcript are stubs that report to the frame's title bar; the wires in the gutter aren't drawn;
“Your guide” doesn't switch.
Things to notice
Two kinds of focus at once. Click a question (or a guide row) and then j: the question
stays lit while the card focus moves. Option 5 decides which one Esc clears first.
Hiding moves numbers. With option 2 on “follow”, hide the only answer to a question in a session: its
cell in the strip empties and reads “Asked, no quotes”, the same as a question that drew nothing.
One store. Starring, tagging and hiding in All show in the session view and back. In the product
they would also show on Quotes and Screens.
Badges that look alike, act differently.#3 in the session bar and a lead-in switches the
lens to that session; p3 on a card opens the transcript. The bar's badges sit inside buttons, and the
codes differ (session number vs participant), but you should check it reads.
The decisions — settled 19 Oct 2026 (the controls' defaults)
1 · Beside its question. In All the question heading becomes the Quotes lens's group header with the
counter on the right; in a session view, where a question is one block, the counter ends the block. The other two
options stay switchable for comparison.
2 · A hidden quote stops counting. Hiding means the researcher finds it unconvincing as evidence, and
the strip is evidence, not a tally of what was said.
3 · Proposals shown, as on Quotes and Screens. A global show/hide for proposals in every lens is a
separate item (100days § 8).
4 · Question rows link like quotes: the timecode plays, the badge opens the transcript at that turn.
Never star, hide or tag.
5 · Esc: selection, then card focus, then the question.
6 · Nothing to show is quiet. Not asked, asked with nothing quotable, or every answer hidden: the guide
row is grey, and in All the question is its heading alone, in the same grey, with the hidden-quotes link if there
is one. In All a session appears under a question only when it has a quote to show, and “Not asked in” goes. No key
line explains the grey: empty space reads as empty. A session's own view keeps its questions, folded forward as
shipped, and drops “No quotes from this question”.
Recorded in docs/design-discussion-lens-plan.md §3. Not built.
Keys (the report's own)
j/k move · ⇧J/⇧K extend · x select · ⇧-click range ·
⌘-click toggle · s star · h hide · t tag · r repeat last tag ·
Enter play · [ guide · Esc. With a selection, star, hide and tag act on all of it
— try selecting every answer to one question in All and tagging them at once.