6.3.6 Reports hub at /reports + the two built-in report pages (created-vs-resolved, status distribution) with the verified Jira configs
Estimate: 30m · Depends on: 6.3.2, 6.3.3, 6.3.4
The project Reports surface, per the 6.3.3 design, replacing the Epic-6 stub page at /reports (the surface 4.6 explicitly deferred here).
Build: the hub — the grouped index (agile group: burndown / velocity / sprint-report link cards into the SHIPPED surfaces; analysis group: the two report pages); Created vs Resolved (/reports/created-vs-resolved) — scope control (the active project by default, or a 6.2 saved filter), period + days-back + cumulative controls (URL-driven params, the shipped ?view/?sort convention, so a configured report is shareable), the 6.3.4 difference/area chart + the designed zero-data state; Status distribution (/reports/distribution) — the statistic-type picker + scope control, the 6.3.4 donut + legend. Both pages share the registry editor kinds with the 6.3.5 config panels (one control vocabulary, two hosts). Per-viewer gating surfaces the designed no-access state (a filter over a project the viewer can't see). Strings via next-intl.
A11y: the hub cards + both pages pass the strict sweep; charts expose the hidden tables; controls keyboard-complete.
Acceptance criteria
- The hub matches the design (both groups; agile cards LINK, never redraw); the stub page is gone.
- Both report pages match the design; config state round-trips through the URL (reload/share restores); charts track the controls live; zero-data + no-access + stale-filter states render per design.
- The resolved series demonstrably tracks done-category transitions (resolve + reopen an issue → the bucket nets correctly — the E2E hook 6.3.7 automates).
- Axe-clean; token tiers only; next-intl; integration tests over the control↔URL↔read wiring; coverage ≥90%.
Context refs
design/reports/dashboard.mock.html+ notes (6.3.3) — THE authority (hub + report-page panels)- 6.3.2 (the reads + configs); 6.3.4 (the chart forms); the 2.5.8/2.5.12 URL-param conventions
app/(authed)/reports/page.tsx(the stub this replaces); the 4.6.5/4.6.6 mounted chart surfaces (the agile links' targets)- The verified Jira report configs in the Story 6.3 description; the i18n threading pattern