You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(diff-ux): add §3.13 — two blind independent redesigns, convergence, and adoptions
Two designers were given only the task list and research evidence (the
existing Fresh UI and this doc's workspace design withheld) and asked to
design the review TUI from scratch. Both independently converged with the
workspace on the same skeleton — comparison-as-identity, section tree,
selection-drives-preview, relabeling verbs, hash-keyed viewed marks,
resume-leads-with-delta, undo over confirmation, runnable help — which
de-risks the §3 core.
The section presents each alternative's distinctive ideas with one
representative frame and a verdict table, keeps the genuine differences
explicit (chips vs hint bar, cycling rail, in-workspace presets), and
ends with the adoption list: uppercase-escalation keymap rule, C conclude
verb, runnable-help-as-palette, persisted undo journal via git objects,
waiting-on-you session ordering, narrative default order for agent
scopes, live-update queueing, symbol-graph reject guard, last-review
default target, interdiff pseudo-commit, noise out of the progress
denominator, command log, and the sub-100-col zoom model.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01756Rh35n65zC4xHQcQAqBL
│ hunk: s keep · x reject · v viewed · c note · N next open · live: files update │
664
+
```
665
+
666
+
Distinctive ideas, with verdicts:
667
+
668
+
| Idea | Verdict for the workspace |
669
+
|---|---|
670
+
|**Uppercase escalates lowercase** (`v` viewed → `V` unmark; `c` comment → `C`*conclude*; one rule makes the map guessable) |**Adopt the rule** as a keymap design principle; `C` = conclude (commit / submit / finish) fills a gap — the workspace had completion *exits* but no single conclude verb |
671
+
|**`?` help = runnable, filterable command list** (help and palette are one thing) |**Adopt** (both designs had it; §3.7 said "runnable" — make it the palette itself, scoped) |
672
+
|**Undo journal persisted across restarts**, discarded hunks saved as patch files |**Adopt**; upgrade §3.1 principle 9 from "session undo" to journal-backed |
673
+
|**Entry rows sorted "waiting on you" first** with per-session progress sparklines |**Adopt** in the scope presets |
674
+
|**Narrative order (agent's edit sequence) as the default file order in agent scopes**|**Adopt as the default** there (deterministic — it's the edit log, not an AI summary; path order one toggle away) |
675
+
| Comments have **no panel at review width** — inline pills only; a comments rail exists only ≥160 cols | Partial: keep the notes rail as a cycled projection (a severity-sorted index of a 50-file review is worth a rail), but adopt the **wide-screen anchored rail** for ≥160 cols |
676
+
|`v` = viewed (because `Space` = extend selection) | Keep `Space` = advance (§3.6); selection stays on `v`/drag — the burn-down key deserves the biggest key |
677
+
678
+
#### Alternative B — the "lens" design (take/untake/drop, live-queue design)
679
+
680
+
One frame (the live-update queue and the symbol-graph guard — its two best
681
+
ideas — visible together):
682
+
683
+
```
684
+
┌ Review ▸ session lexer-rewrite start ⇄ now ● agent working ▰▰▰▱ 11/18 · [s 1/3]┐
│ s keep · x reject · u unkeep · N jump to 2 new changes · ]s next session · ? help │
696
+
```
697
+
698
+
Distinctive ideas, with verdicts:
699
+
700
+
| Idea | Verdict for the workspace |
701
+
|---|---|
702
+
|**Live-update queueing**: files you're inside queue agent edits behind a `↻N` badge (`N` applies and jumps); other files refresh freely — *content never moves under your cursor*|**Adopt verbatim** — the best answer found to watch-mode vs. rug-pull, stronger than plain watch |
703
+
|**Symbol-graph context-blindness guard**: rejecting a hunk checks identifiers it removes against identifiers *kept* hunks reference; inline warning lists the linked hunks with one-key "reject those too" |**Adopt** — replaces §3.9's cruder file-default heuristic (keep file-level default too; they compose) |
704
+
|**"Since my last review" as the *default* target when reopening a previously-reviewed lens** (full range one keypress away) |**Adopt** — §3.6's resume banner asked; B's default answers |
705
+
|**`⇅ interdiff` pseudo-commit** in commits lens after a force-push (v3→v5 as just another section) |**Adopt** in the commits lens |
706
+
|**Noise excluded from the progress denominator** (lockfiles/generated/fmt-only don't count against 19/34) |**Adopt** — progress must measure judgment, not scrolling |
707
+
|**Undo ring backed by git objects** (`refs/…/undo/*`), destructive verbs recoverable across restarts |**Adopt** as the implementation of A's journal |
708
+
|**`` ` `` VCS command log** toggle (every echoed command, reviewable) |**Adopt** — cheap, completes the transparency story |
709
+
|**<100-col zoom model**: one pane at a time (Esc shows the tree full-screen, Enter dives back); burn-down loop works without ever visiting the navigator |**Adopt** — cleaner than shrinking panes side-by-side at 80 cols |
710
+
|**`h`/`l` widen/narrow granularity** (file ⇄ hunk ⇄ line as a ladder you climb) | Consider (conflicts with pane-focus muscle memory; prototype both) |
711
+
| Verb triad named **take/untake/drop** (`s`/`u`/`x`) relabeling per lens | Naming kept as-is (stage/keep are the users' words), but the *triad symmetry* (every take has an untake) is adopted as a rule |
712
+
713
+
#### What stays deliberately different in the workspace design
714
+
715
+
-**Chips over a global hint bar.** Both alternatives keep a persistent
716
+
bottom hint bar listing current verbs; the workspace puts the verb hints
717
+
*on the focused section* (chip row) with a leaner context line. Chips keep
718
+
eyes on the code and scale better to the web renderer; the hint bar
719
+
duplicates what chips already say. (If chips test poorly for
720
+
discoverability, B's hint bar is the fallback — it's the same data.)
721
+
-**The rail cycles (files/commits/notes); the alternatives fix it to
722
+
files+commits.** The notes projection earns its slot in marathon reviews;
723
+
cycling keeps the one-rail budget.
724
+
-**Scope presets open in-workspace** (§3.3's choosing state) rather than as
725
+
a modal overlay picker — one less floating surface, same content.
726
+
727
+
#### Adoption summary (folded into the next revision of §3)
728
+
729
+
From A: uppercase-escalation rule; `C` conclude verb; runnable-help-as-palette;
0 commit comments