ship: v2 mockups + polish + 3-click validation (P3) #3

Merged
coreci-bot merged 8 commits from phase/03-mockups-polish-3click into milestone/v0.1-prototype 2026-09-27 01:53:22 +00:00
Owner

Phase 3 ship: /library v2-preview mockups (project graph with shared-source edges, task inbox with toggles) behind the ApiClient boundary; typography care pass (audit clean); 3-click criterion pinned by automated test on the real default path. REQ-60, REQ-61. Gates: typecheck/lint/test(37)/build green. Verify: PASS zero P0, two P1 fixed in-phase.

Phase 3 ship: /library v2-preview mockups (project graph with shared-source edges, task inbox with toggles) behind the ApiClient boundary; typography care pass (audit clean); 3-click criterion pinned by automated test on the real default path. REQ-60, REQ-61. Gates: typecheck/lint/test(37)/build green. Verify: PASS zero P0, two P1 fixed in-phase.
coreci-bot added 8 commits 2026-09-27 01:53:18 +00:00
---ci---
phase: 3
milestone: v0.1
status: plan
requirements:
  covered: []
  partial: []
---/ci---

PLAN.md refreshed at phase boundary: P3 covers REQ-60 (project graph +
task inbox mockups behind the ApiClient boundary) and REQ-61
(typography care pass + 3-click criterion pinned by automated test).
---ci---
phase: 3
milestone: v0.1
status: execute
persona: frontend-engineer
task: T-3.1
requirements:
  covered: [REQ-60]
---/ci---

GraphNode/GraphEdge/ProjectGraph/InboxItem types; getProjectGraph +
getTaskInbox added to the ApiClient interface (map to GET /api/graph,
GET /api/tasks in v0.2); fixture data behind the boundary in the mock.
---ci---
phase: 3
milestone: v0.1
status: execute
persona: frontend-engineer
task: T-3.2
requirements:
  covered: [REQ-60]
---/ci---

v2-preview banner (clearly marked non-functional); project graph panel
with topic nodes, shared-source chips, and cross-link edges; task inbox
panel with toggleable checkboxes (client state, aria-checked).
---ci---
phase: 3
milestone: v0.1
status: execute
persona: frontend-engineer
task: T-3.3
requirements:
  covered: [REQ-60]
---/ci---
---ci---
phase: 3
milestone: v0.1
status: execute
persona: frontend-engineer
task: T-3.5
requirements:
  covered: [REQ-60, REQ-61]
---/ci---

three-click-path.test: drives real AskForm → MethodologyCard → RunView
against the real mock binding, counts clicks (1 Research this, 2 Start
research on recommended default, 3 Approve plan), asserts ≤3 and a
live stream. library-view.test: v2-preview banner, graph nodes + edges,
inbox toggle behavior, boundary fixture flow.
---ci---
phase: 3
milestone: v0.1
status: execute
persona: ci-lead-developer
task: T-3.4
requirements:
  covered: [REQ-61]
---/ci---

Audited all screens: long-form text carries measure-reading (≤68ch) or
measure-narrow on every body/lead element; heading scale ordered
display → headline → body → caption; caption/label letter-spacing
consistent via tokens; section rhythm via mt-block/spacing-section. No
clipped labels, no truncated text. The P1/P2 token work held; no
changes required — recorded as a pass.
---ci---
phase: 3
milestone: v0.1
status: execute
persona: ci-lead-developer
task: T-3.6
requirements:
  covered: [REQ-60]
---/ci---

P1-1: dead byTopic Map removed — "No links" now renders per-node when a
node has no incident edges (was: global edges-empty check). P1-2:
batteries↔transport fixture edge corrected to sharedSourceCount 0 —
their linkedSources are disjoint; renders as topical link. React key
collision on duplicate pair-edges also addressed.
---ci---
phase: 3
milestone: v0.1
status: verify
requirements:
  covered: [REQ-60, REQ-61]
  partial: []
lessons:
  - "layer1 structural: 7 routes compile, no stubs, gates re-run green (37/37)"
  - "layer2 behavioral: 3-click criterion pinned by test on the real default path; library graph + inbox toggles verified honest"
  - "layer3 security STRIDE: no new surfaces — fixtures static, native labeled checkbox, no injection"
  - "layer4 quality review: PASS, zero P0; 3-click test confirmed honest (real components, real binding, asserts <=3)"
  - "P1-1 dead byTopic Map broke per-node No-links fallback — FIXED in-phase"
  - "P1-2 fixture edge claimed shared source where nodes are disjoint — FIXED in-phase (count 0, topical link)"
  - "P2 notes routed to P4: Task type dead, findings[1:] dropped without affordance, eyebrow token drift, caption measure on graph column, topical-link branch untested"
---/ci---
coreci-bot merged commit d15568f19b into milestone/v0.1-prototype 2026-09-27 01:53:22 +00:00
coreci-bot deleted branch phase/03-mockups-polish-3click 2026-09-27 01:53:22 +00:00
Sign in to join this conversation.