Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-254Done

4.6.6 UI — mount the velocity chart (committed vs completed per sprint + average) into the Story-4.4.6 sprint-report chart seam

Estimate: 20m · Depends on: 4.6.1, 4.6.2, 4.6.4, 4.4.6

Mount the velocity chart on the sprint report — the cross-sprint planning view that sits beside the completed-sprint burndown (4.6.5). Binds the 4.6.2 grouped BarChart primitive to the 4.6.4 getVelocity data, in the placement 4.6.1 specifies. Design-gated UI → carries 4.6.1 in dependsOn, seeded blocked.

Placement. The 4.6.1 design specifies where velocity sits in the sprint-report chart seam (Story 4.4.6) — the same surface as the completed-sprint burndown, the two charts presented together as the report's analytics. Fetch getVelocity({ projectId, lastN: 7 }); render the committed vs completed bars per completed sprint + the average-completed readout (the forecast). This is Jira's placement of velocity alongside the sprint report — no new nav surface (a standalone Reports area is Epic 6.3, which reuses this chart).

States. Low history (0–1 completed sprints) → the "not enough history yet" message from the design, not an axis-of-one; unestimated sprints → 0 / the issue-count value, never NaN; loading/error reuse the report scaffold. The chart carries the 4.6.2 a11y fallback (committed vs completed read as text+number — finding #35).

Acceptance criteria

  • The sprint report (4.4.6) renders the velocity grouped-bar chart in the placement 4.6.1 specifies: committed vs completed per completed sprint (last 7) + the average-completed readout, bound to getVelocity (4.6.4) — matching design/reports/charts.mock.html.
  • Low-history (0–1 sprints) and unestimated states render per the design (no axis-of-one, no NaN); loading/error reuse the report scaffold.
  • Reuses the 4.6.2 BarChart primitive + its a11y fallback (no second chart implementation); colour via --el-*, shape via element shape tokens; bars distinguished by text label, not colour alone (finding #35).
  • The velocity bars match the scrum header / sprint-report numeric figures (same 4.3.3 done-category aggregate); no new navigation surface is introduced (that is Story 6.3).

Context refs

  • Story 4.4.6 (the sprint report view + its reserved chart seam) — where velocity mounts; design/sprints/sprint-lifecycle.mock.html
  • Story 4.6.2 (grouped BarChart primitive) + 4.6.4 (getVelocity + GET /api/projects/[id]/velocity) — the primitive + data this binds; design/reports/charts.mock.html (4.6.1) — the placement spec
  • Story 6.3 (dashboards & reports) — the future standalone-reports home this deliberately does NOT build; motir-core/CLAUDE.md; findings #35, #54