MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-347

6.3.6 Reports hub at /reports + the two built-in report pages (created-vs-resolved, status distribution) with the verified Jira configs

Done
Description

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
Status
Done
Type
Sub-task