From d64be383d1ef100b9762c0acf0eb569f29487f8c Mon Sep 17 00:00:00 2001 From: Forge Dev Date: Sat, 11 Jul 2026 14:18:25 +0000 Subject: [PATCH] =?UTF-8?q?design:=20DECISION=20=E2=80=94=20Layout=20B=20l?= =?UTF-8?q?ibrary-centric=20main=20window;=20grade=20drawer=20summonable?= =?UTF-8?q?=20(A=20as=20mode=20inside=20B);=20consequences=20for=20macOS?= =?UTF-8?q?=20phase?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/design/001-layout-decision.md | 25 +++++++++++++++++++++++++ docs/design/wireframes.html | 12 ++++++------ 2 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 docs/design/001-layout-decision.md diff --git a/docs/design/001-layout-decision.md b/docs/design/001-layout-decision.md new file mode 100644 index 0000000..63d11e1 --- /dev/null +++ b/docs/design/001-layout-decision.md @@ -0,0 +1,25 @@ +# Design decision 001 — Main window layout + +**Decision (2026-07-11): Layout B, library-centric.** + +Owner choice from docs/design/wireframes.html. + +## Shape +- Main window = clip table (sortable, dense, 44px rows), project tree left + (days / cameras / jobs), inspector right (selection metadata + grade snapshot + actions). +- Live grading = inspector mode when a camera slot is selected, plus a summonable + grade drawer (preview + node strip — Layout A distilled) for panel/trackball work. + Keyboard: ⌘G toggles drawer; slot switching stays single-keystroke. +- Jobs (offload/verify/proxy) surface in the tree with inline progress — matches + Silverstack's workstation posture and our offload/proxy engines. + +## Consequences for macOS phase +- NavigationSplitView: sidebar (tree) / content (table) / inspector — B maps 1:1 + to native three-column. Grade drawer = bottom sheet over content column. +- Table virtualization + SF Mono numerics from day one. +- Panel focus model: active slot follows either table selection (camera row) or + explicit slot keys — must never steal focus during rec. + +## Skin (unchanged) +Reel tokens: bg-0 chrome, amber accent as tally, #FF3B30 reserved for REC, +SF Mono for TC/CDL/clip names, hairline dividers, 10.5px uppercase eyebrows. diff --git a/docs/design/wireframes.html b/docs/design/wireframes.html index 6714bac..44e3457 100644 --- a/docs/design/wireframes.html +++ b/docs/design/wireframes.html @@ -328,12 +328,12 @@ one step removed from the image. Stronger for offload/verify/report days; weaker the "roll sound, grade now" moment.

-

Recommendation

-

Layout A as the main window, with B's table one ⌘-key away (Library tab/window). - Forge's differentiator is in-camera live grading — the app should open into the moment - it wins. The library table (B) is genuinely better for end-of-day work, so ship it as a - second surface using the same panes, not a compromise hybrid of both.

-

Shared skin either way: bg-0 chrome, amber tally accent, #FF3B30 strictly for REC, +

DECISION (2026-07-11): Layout B — library-centric

+

B is the main window. The clip table is home; days/cameras/jobs tree left, + inspector right. Live grading enters through the inspector when a camera is selected, + plus a summonable full-width grade drawer (preview + node strip from Layout A) for + trackball sessions — A survives as a mode inside B, not a separate window.

+

Shared skin: bg-0 chrome, amber tally accent, #FF3B30 strictly for REC, SF Mono for TC/CDL/clip names, hairline dividers, 10.5px eyebrows — family resemblance to dragonflight without pretending to be a web app.