Skip to content

Commit 58c934e

Browse files
nextlevelshitclaude
andcommitted
docs: add webui gap analysis vs mockups
Gap analysis documents delta between current implementation and mockup designs across all pages. Includes priority ranking based on epic phases. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 9b5b8d6 commit 58c934e

1 file changed

Lines changed: 208 additions & 0 deletions

File tree

docs/scope/webui-gap-analysis.md

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
# WebUI Gap Analysis — Mockups vs Implementation
2+
3+
**Date:** 2026-05-03
4+
**Baseline:** Epic #1624 alpha branch, `data-theme="dark"` fix committed (9b5b8d6f)
5+
**Mockup source:** `docs/scope/mockups/`
6+
7+
---
8+
9+
## Migration Status (from epic #1624)
10+
11+
| Page | Status | Notes |
12+
|------|--------|-------|
13+
| /work | migrated | w-nav + w-container + bindings list |
14+
| /work/:forge/:repo/:num | migrated | "Run" disabled until #2.4 wiring |
15+
| /runs | migrated | w-nav + w-page-header + filter badges |
16+
| /pipelines | migrated | w-nav + w-page-header + filter badges |
17+
| /proposals | migrated | status filter pills |
18+
| /proposals/:id | partial | No approve/reject, no signal sidebar |
19+
| /issues | migrated | w-list |
20+
| /prs | migrated | w-list |
21+
| /contracts | migrated | w-list |
22+
| /personas | migrated | w-list |
23+
| /skills | migrated | w-list |
24+
| /compose | migrated | w-list |
25+
| /analytics | migrated | w-list |
26+
| /retros | migrated | w-list |
27+
| /health | migrated | w-nav + w-page-header |
28+
| /onboard | migrated | w-nav + w-container |
29+
| /admin | migrated | sidebar layout |
30+
31+
**Design system:** COMPLETE — all pages use `w-nav`, `w-container`, `w-page-header`, `badge`, `w-btn`
32+
**Dark mode:** FIXED — `data-theme="dark"` on all 18 page templates
33+
34+
---
35+
36+
## Gap Detail
37+
38+
### 1. Work Board (`/work`) — Missing filterbar + actions
39+
40+
**Mockup (02-work-board.html):**
41+
- `<div class="filterbar">` with 4 `<select>` elements (forge, kind, state, label) + search input
42+
- "Refresh" + "New work" buttons in page-header
43+
- Work item list rows with: icon, title+badge, meta (forge, author, tags), kind badge, status badge, action button
44+
- Pagination: "6 of 23 items shown · load more"
45+
46+
**Actual (`/work`):**
47+
- No filterbar
48+
- No "Refresh" or "New work" buttons
49+
- Shows bindings table, not work items
50+
- No pagination
51+
52+
**Gap:** filterbar, action buttons, work item list (bindings list ≠ work items)
53+
54+
---
55+
56+
### 2. Work Item Detail (`/work/:forge/:repo/:num`) — Disabled dispatch + missing binding picker
57+
58+
**Mockup (03-work-item.html):**
59+
- Breadcrumb: Work › forge/repo › issue #N
60+
- Issue body in `.card`
61+
- Binding picker radio list (impl-issue, research, scope with cost/time estimates)
62+
- `<details>` with custom pipeline/adapter/model/budget/detached/notes options
63+
- "Run impl-issue" + "Dry-run" buttons
64+
- Recent runs list
65+
- Aside: Item dl, Suggested binding card, Live cost forecast card
66+
67+
**Actual:**
68+
- "Run on this issue" button disabled (shows "disabled — wires up in #2.4")
69+
- No binding picker UI
70+
- No cost forecast card
71+
- No recent runs section
72+
- Hint: "Could not fetch live details"
73+
74+
**Gap:** Dispatch wiring (#2.4), binding picker, cost forecast, recent runs
75+
76+
---
77+
78+
### 3. Evolution Proposal Detail (`/proposals/:id`) — No action UI
79+
80+
**Mockup (04-evolution-proposal.html):**
81+
- Breadcrumb: Proposals › #ID
82+
- Status badge (awaiting approval) + propose metadata in page-header
83+
- Approve & activate + Reject + Settings buttons
84+
- Trigger signal explanation hint
85+
- Tab bar: Diff | Signal log | Validation | Replay
86+
- Diff block with syntax highlighting
87+
- Replay forecast signal-list
88+
- Aside: trigger signals grid, version dl, generated by dl, related proposals
89+
90+
**Actual (`/proposals/detail.html`):**
91+
- Page title + back link
92+
- Status badge (proposed/approved/rejected)
93+
- No approve/reject buttons
94+
- No signal sidebar (judge score, retry rate, top failure, avg cost)
95+
- No trigger signals display
96+
- No tabs
97+
- No diff view
98+
- No replay forecast
99+
100+
**Gap:** Full proposal action UI — per epic, this is Phase 3.4 work (`/proposals` approve/reject + CLI)
101+
102+
---
103+
104+
### 4. Landing / Bridge View — Redirects to /work
105+
106+
**Mockup (00-landing.html):**
107+
- Fleet at a glance: in-flight runs, live activity, judge trend
108+
- Multi-model comparison preview
109+
- Recent landings
110+
- Rhythm section
111+
112+
**Actual (`/`):**
113+
- HTTP redirect to `/work`
114+
115+
**Gap:** Bridge view not implemented. This is the "post-onboard default landing" — depends on Phase 2.3 work.
116+
117+
---
118+
119+
### 5. Public Landing (`public-landing.html`)
120+
121+
**Mockup:** Full marketing page with hero, diagram cards, trust bar, code chip
122+
123+
**Actual:** Not implemented, not routed
124+
125+
**Gap:** Out of scope for epic #1624 (marketing page)
126+
127+
---
128+
129+
### 6. Nav Extraction — Inline nav everywhere
130+
131+
**Epic #1624 says:** `templates/partials/nav_main.html` exists but not used by standalone pages
132+
**Actual:** Every standalone page has inline `<nav class="w-nav">...</nav>`
133+
134+
**Gap:** Extract to partial. Requires `ActivePage` field in page data structs.
135+
136+
---
137+
138+
### 7. Schedules Nav Link — Missing
139+
140+
**Mockup nav:** Work | Schedules | Proposals (count badge) | Runs | Admin
141+
**Actual nav:** Work | Runs | Pipelines | Proposals | Issues | PRs | Onboard | Health
142+
143+
**Gap:** Schedules link absent (scheduling feature not yet built — Phase 0.6)
144+
145+
---
146+
147+
### 8. Proposals Count Badge — Missing from nav
148+
149+
**Mockup nav:** `Proposals <span class="badge badge-yellow">2</span>`
150+
**Actual nav:** Plain `Proposals` link, no count badge
151+
152+
**Gap:** Badge needs dynamic count from page data
153+
154+
---
155+
156+
### 9. Onboarding Session (`/onboard`) — Different structure
157+
158+
**Mockup (01-onboarding-session.html):**
159+
- Chat-style interface with message bubbles and inline gates
160+
- "Wave scaffolds itself to your project" description
161+
- Streaming Claude-Code session concept
162+
163+
**Actual:**
164+
- Different UI structure (step-based, not chat-style)
165+
- WebOnboardSession SSE-based
166+
167+
**Gap:** Onboarding UI redesign — Phase 1.2 work
168+
169+
---
170+
171+
### 10. Work Board — Filter Controls Missing
172+
173+
**Mockup (02-work-board.html) filterbar:**
174+
- All forges | gitea: code-crispies | github: re-cinq/mp
175+
- All kinds | Issues only | PRs only | Scheduled tasks
176+
- Open | All | Closed
177+
- Any label | bug | epic | auto-impl
178+
179+
**Actual:** No filterbar on /work
180+
181+
**Gap:** Filterbar with forge/kind/state/label selectors
182+
183+
---
184+
185+
## Priority (based on epic phases)
186+
187+
| Priority | Gap | Phase |
188+
|----------|-----|-------|
189+
| P1 | Nav extraction | remaining in epic |
190+
| P1 | Proposals detail — approve/reject UI | Phase 3.4 |
191+
| P2 | Work board — filterbar + actions | Phase 2 |
192+
| P2 | Work item detail — dispatch wiring | Phase 2.4 |
193+
| P3 | Bridge view landing | Phase 2.3 |
194+
| P3 | Onboarding chat UI | Phase 1.2 |
195+
| P4 | Schedules nav link | Phase 0.6 |
196+
| P4 | Public landing | separate |
197+
198+
---
199+
200+
## Verified Working
201+
202+
- `data-theme="dark"` on all 18 page templates ✓
203+
- `.pipeline-card { display: flex }` in style.css ✓
204+
- w-nav class + w-nav-brand + w-nav-links structure ✓
205+
- w-container, w-page-header, w-page-title, w-page-sub ✓
206+
- badge + w-btn classes ✓
207+
- All pages HTTP 200 ✓
208+
- No emojis — SVG icons only ✓

0 commit comments

Comments
 (0)