WI-040 · Tracker Hardening · point-model-fix

Honest point model + one sprint-complete rule

done P1 low risk   Owner: Claude   Reviewer: Paul   100% · 1/1 tasks complete

Gates: TH2 Requirements: REQ-TRACK-010 Updated: 2026-06-22

At a glance

CodeWI-040
PhaseTracker Hardening
Order75 of 93
Story points2
Primary surfacestatus.json points + build-sprint-tracker.mjs/app.html completion rule
Retires
Depends ontracker:check plan-integrity script
Blocks
Evidence
built in Tracker Hardening

Goals

Make sprint completion mean one thing across surfaces, and stop double-counting story points.

Implementation — what to build

Points

  • Umbrella sprint rows WI-026-031 = 0 pts (done in this retro); slices carry points.

Completion rule

  • Make static sprint 'done' = all items done (gates shown separately), matching the live board's items-done retro trigger.

Acceptance

  • tracker:check passes; static + live completion agree.

Checklist

  • TH2 Story points count each work item once (summary rows zero-pointed) and one canonical sprint-complete rule across static + live.

Gates & testing

  • TH2 Story points count each work item once (summary rows zero-pointed) and one canonical sprint-complete rule across static + live.
    CODE TEST

Requirements

  • REQ-TRACK-010 accepted Story points must count each work item once, with one canonical sprint-complete rule.
    Done when: Per-sprint summary rows are zero-pointed; granular slices carry the points; static + live use the same items-done complete rule (gates a separate axis).
    Spec: docs/tracking/decision-log.md#d23 · docs/tracking/retrospectives/proposed-retro-tracker-foundation.html

Verify (done when)

summary rows zero-pointed (done); granular slices carry points; static + live agree on items-done complete.

Cost triggers

No paid API / infra spend triggered by this item.

Status & editing

done   Sprint: Tracker Hardening

Edit status / sprint on the ★ Live Board → — changes are logged live with who / when / why.

Human-in-the-loop

No human tasks linked.

Findings

  • Static + live now agree on completion.
  • Whole-plan points dropped ~212 → ~162 after zeroing the umbrellas.

Concerns

None recorded yet.

Risks

None recorded yet.

Tech debt

None recorded yet.

Tools used

  • Edit — apps/web/scripts/build-sprint-tracker.mjs (items-driven completion rule)
  • Bash — node script to zero WI-026–031 (summary-row) points
  • Bash — regenerated + checked static/live completion agree

Files & artifacts

Update log

Update · 2026-06-19 · Completion is items-driven; summary rows zero-pointed

Static sprint "done" is now all work items done (matching the Live Board's retro trigger); gates are shown as a separate verification axis. The per-sprint summary rows (WI-026–031) are 0-point, so velocity is counted once via the granular slices.

  • Static + live now agree on completion.
  • Whole-plan points dropped ~212 → ~162 after zeroing the umbrellas.