Fix dashboard hydration and archive theming
This commit is contained in:
40
openspec/specs/monthly-dashboard/spec.md
Normal file
40
openspec/specs/monthly-dashboard/spec.md
Normal file
@@ -0,0 +1,40 @@
|
||||
## Purpose
|
||||
|
||||
TBD
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: Dashboard shows month-specific financial totals
|
||||
The system SHALL return month-specific dashboard data for a requested `YYYY-MM` month using the local machine timezone for month boundaries.
|
||||
|
||||
#### Scenario: Dashboard totals are calculated for a populated month
|
||||
- **WHEN** the user requests the dashboard for a month with expenses and paychecks
|
||||
- **THEN** the system returns total expenses, total paychecks, net cash flow, and a category breakdown for that month
|
||||
|
||||
#### Scenario: Dashboard supports partial current-month data
|
||||
- **WHEN** the user requests the dashboard for the current month before the month is complete
|
||||
- **THEN** the system returns meaningful month-to-date totals and comparisons using the transactions recorded so far
|
||||
|
||||
### Requirement: Dashboard includes derived spending comparisons
|
||||
The system SHALL provide derived comparisons for the selected month, including highest category, largest expense, average daily spend, and paycheck coverage information.
|
||||
|
||||
#### Scenario: Derived comparisons are available
|
||||
- **WHEN** the selected month contains enough data for comparisons
|
||||
- **THEN** the system returns the highest category, largest single expense, average daily spend, and spend-versus-paycheck coverage values
|
||||
|
||||
#### Scenario: Derived comparisons degrade safely for sparse data
|
||||
- **WHEN** the selected month has no expenses or otherwise insufficient data for a comparison
|
||||
- **THEN** the system returns null or empty-safe comparison fields instead of failing
|
||||
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Monthly dashboard UI renders correctly in both themes
|
||||
The system SHALL render dashboard sections, insight cards, category bars, stat tiles, and empty states with readable contrast in both light and dark themes.
|
||||
|
||||
#### Scenario: Dashboard renders in dark mode
|
||||
- **WHEN** the user opens the dashboard while dark mode is active
|
||||
- **THEN** the summary cards, comparison cards, progress bars, and empty states use dark-compatible colors and remain readable
|
||||
|
||||
#### Scenario: Dashboard renders in light mode
|
||||
- **WHEN** the user opens the dashboard while light mode is active
|
||||
- **THEN** the summary cards, comparison cards, progress bars, and empty states use light-compatible colors and remain readable
|
||||
Reference in New Issue
Block a user