Estimate: 16m · Depends on: 2.5.1, 2.5.2
Replace the ProjectStubPage at app/(authed)/issues/page.tsx with the real surface. The Server Component resolves the active project (getActiveProject() → /dashboard if none), calls getProjectTree (2.5.1), and renders, top to bottom per tree.png: the "Issues" header + "All issues in {project}" subtitle; the toolbar — a [Filter] button (a disabled/placeholder shell here; wired in 2.5.4), the [Tree ▾] view-switcher (renders "Tree" as the active/only v1 mode — the documented seam for a future List mode), and the [+ New issue] button reusing 2.3.3's CreateIssueModal trigger; and the TreeTable (2.5.2) with the three columns — TITLE (IssueTypeIcon + identifier + title, the whole row linking to /issues/{identifier}), ASSIGNEE (avatar + name, "Unassigned" empty), STATUS (Pill by category).
Empty + loading states (mockup panels 2 & 3). A project with no issues renders the centered EmptyState ("No issues yet" / "Create your first issue to start tracking work." / a New-issue CTA). A Suspense/loading boundary renders the skeleton table (header + shimmer rows) drawn in panel 3. Expand/collapse state is client-held (default: roots expanded one level, matching the mockup); no per-row persistence in v1.
/issues renders the active project's issues as the nested TreeTable with TITLE/ASSIGNEE/STATUS exactly per tree.png; each row links to its /issues/[key] detail page; rows expand/collapse.[Filter] · [Tree ▾] · [+ New issue] toolbar render; "New issue" opens 2.3.3's CreateIssueModal (no second create path); the view-switcher shows "Tree".EmptyState; a loading boundary renders the skeleton table.--el-*; type icons take their type hue, status via Pill tones.design/work-items/tree.png — all 3 panels (populated · empty · skeleton)app/(authed)/issues/page.tsx (the stub to replace) + _components/ProjectStubPage; getActiveProject(); the 2.4.1 /issues/[key] detail page as the sibling/route conventionCreateIssueModal / CreateIssueProvider / CreateIssueTrigger; EmptyState / Button / Pill / IssueTypeIcon; 2.5.2 TreeTable; 2.5.1 getProjectTreemotir-core/CLAUDE.md — Server Component / 4-layer / --el-*