Welcome — animations for the “Study tools” cell · AutoCode · Codebooks · Tag · Star & hide

Replacing the 8 static screenshots in the large “Study tools” cell with tiny looping illustrations — themeable, responsive, no baked-in macOS chrome. Same playbook as the science cell: prototype idea + motion + copy here, then decide native-SwiftUI vs webview and build for real. Doing the tools one by one — this is AutoCode.

1 · AutoCode — quote streams in → AI tags flash in → accept → solid, real card

Copy: “Let AutoCode propose tags across every quote — you Accept or Deny.” · link AI helps tag →. Sequence: the quote types out (LLM/fast-human) → the Satisfaction sentiment + a proposed code flash in → the [✗ ✓] action pill is offered → accept is clicked, the code goes solid (accept-flash). Tag + card CSS are the shipped classes; the final frame is a real blockquote.quote-card.

Study tools
AutoCode
Let AutoCode propose tags across every quote — you Accept or Deny.
AI helps tag →
Drop a folder
Drag recordings or transcripts here to add a project.
at cell scale · real quote-card type
  • The code arrives; the rest is context. Quote, timecode, p1 · Participant and the Satisfaction sentiment settle first — AutoCode’s contribution is the code, so it flashes in proposed (dashed, pulsing, real .badge-proposed), offers the real [✗ ✓] pill, and on accept solidifies with the real badge-accept-flash.
  • Real quotes, de-branded. 11:30 → visible options; 13:08 → platform convention.
  • Copy edit needed: quote 2 was 37 words → trimmed to ~19 here (≈50%) so it streams + fits. Your final wording goes in QUOTES.
  • Open Qs: should the + pulse when the code lands? Show the deny path occasionally, or always accept? Stream both cards stacked in the big cell vs cycle one?

2 · Manual tags — the researcher hand-builds groups AI could never originate

The human counterpart to AutoCode. Two groups build by hand — title + description + codes typed via the real + → type → commit flow — one at a time, then slide away. A/B homepage trial = a designed experiment; Switching costs = a commercial dive from the brief (the participant uses a rival). Auto-coding can’t originate either: it wasn’t in the room when the research purpose was set. Group colours are the real codebook OKLCH sets (ux 250 / opp 75).

Study tools
Tag & group by hand
Create your own tags and groups — the intent only you brought to the research.
Manual tagging & codebooks →
Drop a folder
Drag recordings or transcripts here to add a project.
at cell scale
  • Why two groups. One is a designed A/B experiment, one a commercial investigation from the brief — the two kinds of a-priori intent auto-coding structurally can’t have (it never attended the research-purpose meeting).
  • Real flow, by hand. Title + subtitle + each code typed via + → type → commit → chip (real tag-input + .badge-user), in the group’s real codebook colour.
  • Fit: groups really accumulate into a codebook — shown one at a time here (slides away) for space. Per-group descriptions included as requested.
  • Open: final tag wording is placeholder; and whether to also show a code being applied to a quote after creation.

3 · Tag — click a quote → press ⌜t⌟ → your code types itself in

The most basic move in Bristlenose. Sequence: the pointer moves in and clicks to select (the real .bn-selected blue tint + bar) → a raised keycap (t) rises and presses → a code types itself in character-by-character (same typeInto grammar as the Codebooks cell) and commits to a real .badge-user chip. Keycap = skin B “Raised” from design-keycaps.md (faked — the primitive is unbuilt).

Study tools
Tag a quote
Press t to tag the quote you’re on — your own code, typed in.
Tag & filter →
Drop a folder
Drag recordings or transcripts here to add a project.
at cell scale
  • Pointer → click → keycap → action. The shared grammar for the three keyboard tools (Tag / Star / Hide). The pointer arcs in (real hands don’t move in straight lines), clicks the card chrome, the cap presses under the cursor over empty gutter space, and the consequence fires.
  • Reuses the “typed” tag. The code arrives one character at a time via the same flow as the Codebooks cell — it reads as “a human wrote this,” the counterpoint to AutoCode’s AI proposal.
  • Click the chrome, not the words. Clicking the quote text opens trim/edit (crop) mode in the real report (handleQuoteTextClick), so the pointer lands on the card’s left rule, where a plain click focuses + single-selects together (Finder-style, handleCardClick). Colours are the shipped tokens: --bn-selection-bg #eef4fc + a full accent-blue --bn-selection-border (#007aff) + the --bn-focus-shadow lift.

4 · Star & hide — ⌜s⌟ stars what matters · ⌜h⌟ hides the noise, count ticks up

Two keys, one idea: curate. The pointer focuses a quote → s stars it (the star + left rule pick up the starred tint, body weight bumps) → then focuses another → h hides it (the real .bn-hiding collapse) and the hidden count ticks up by one. Star, hide, and hidden-count CSS copied verbatim from atoms/toggle.css, quote-actions.css, hidden-quotes.css.

Study tools
Star & hide
Press s to star what matters, h to hide the noise.
Focus your quotes →
Drop a folder
Drag recordings or transcripts here to add a project.
at cell scale
  • The on-state is a whisper, not gold. Shipped --bn-colour-starred is #999 / #ccc — a tint differential (star + left rule + weight), not a gold fill. The roadmap once said “fills gold”; the code disagrees. Open: keep the subtle real state, or make the illustration louder than the product?
  • Hide is a real collapse. .bn-hiding animates max-height/opacity/margins to 0 (300ms), then .bn-hidden (display:none); the sibling slides up. The N hidden chip bumps +1 — the quote isn’t gone, it’s parked.
  • Click lands on the gutter, not the text. A plain click on the card chrome focuses + selects (real handleCardClick); clicking the words would open trim/edit instead. s/h then act on that quote; the hide button only appears on focus (real behaviour).
  • Vertical fit. Two compact single-line cards + the hidden-count strip sit inside the real φ-cell height (172px here) with room to spare. If real quotes run long, the fallback is to sequence them (star card A, then card B slides in to be hidden) rather than show both at once — say if the two-up still feels tight.

· The eight tools — one by one; AutoCode first

Each replaces one screenshot. Concept seeds (react as we go); we lock a shared visual grammar on AutoCode and hold the rest to it.

How it plugs in. Each animation replaces the image: screenshot inside a studyTools slot (WelcomeHomeView.swift), rendered by the SlotRotator one item at a time. Freezes to a legible still under prefers-reduced-motion. Build target per tool is a later call: native SwiftUI for pure design-system chrome, webview for bespoke motion — the split the science cell landed on.