WORK-046
ID:WORK-046Status:done

Enhanced plan dashboard with progress and milestone scoping

Improve the auto-generated dashboard to show project health at a glance: status count summaries, a blocked items callout, per-milestone grouping when multiple milestones exist, and a recent activity section.

Priority:mediumComplexity:moderateSource:SPEC-015
changeset-release/main View source

Criteria completion

No incremental history — criteria tracking started on Apr 19.

Branches 3
History 6
  1. f2b3512
    Content editedby Claude
    Add {ID}-{slug}.md filename convention + migrate filenames subcommand
  2. 59ded4a
    Content editedby Claude
    Implement SPEC-037 plan package hardening: all 7 work items
  3. f262d7b
    Content editedby Claude
    Backfill source attributes on all 123 work items
  4. 4707ead
    Content editedby Claude
    Add enhanced dashboard with progress summaries, milestone grouping, and
  5. 3d8d331
    Content editedby Claude
    Add WORK-050: converge plan renderer with shared layout engine
  6. f5b8bf8
    Created (done)by Claude
    Add work items WORK-037 through WORK-049 for plan site specs

Acceptance Criteria

  • Dashboard shows a progress summary line per entity type (e.g., "35 work items: 12 done, 3 in progress, 7 ready, 2 blocked, 11 draft")
  • Status counts are color-coded using the existing status palette
  • Blocked items section with warning styling surfaces all status: blocked entities
  • When multiple milestones exist, work items and bugs are grouped by milestone with per-milestone progress
  • When one or zero milestones exist, flat layout is used (current behavior)
  • Recent activity section shows last 10 items by file modification time
  • Existing dashboard sections (active milestone, ready, in-progress, recent decisions) are preserved

Approach

Extend the dashboard generation in @refrakt-md/plan's aggregate pipeline phase. Progress summaries and milestone grouping are computed from the entity registry. Recent activity uses mtime from the file scanner.

Note: The dashboard page uses generateDashboardContent() which produces Markdoc content, not raw HTML. This approach is independent of WORK-050's renderer convergence — the dashboard generation creates content that flows through whatever renderer is active.

References

  • SPEC-015 (Plan Site UX at Scale — Feature 3)
  • WORK-039 (HTML adapter refactor — prerequisite)