docs(openspec): archive completed changes and sync main specs
Archive three completed changes to archive/: - api-resource-standard (70 tasks, 14 resource classes) - capacity-expert-mode (68 tasks, expert mode planning grid) - enhanced-allocation (62 tasks, planning fidelity + reporting) Sync all delta specs to main specs/: - api-resource-standard: API response standardization - capacity-expert-mode: Expert mode toggle, grid, KPIs, batch API - resource-allocation: Month execution comparison, bulk, untracked - untracked-allocation: Null team member support - allocation-indicators: Variance indicators (red/amber/neutral) - monthly-budget: Explicit project-month planning All changes verified and tested (157 tests passing).
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Decision Log: capacity-expert-mode
|
||||
|
||||
## 2026-02-24 — Timezone & Accessibility Fixes
|
||||
|
||||
### Issue
|
||||
User reported that weekend shading in Expert Mode was misaligned (showing on 5th/6th instead of 4th/5th for April 2026). Additionally, the shading was too subtle for colorblind users, and cells were not prefilled with `O`/`H` for weekends/holidays.
|
||||
|
||||
### Root Cause
|
||||
Browser `new Date('YYYY-MM-DD')` interprets dates in local timezone, causing dates to shift for users west of UTC. A user in UTC-6 sees `2026-04-04` as `2026-04-03T18:00`, which reports as Friday instead of Saturday.
|
||||
|
||||
### Decisions Made
|
||||
|
||||
| # | Decision | Rationale |
|
||||
|---|----------|-----------|
|
||||
| D8 | Use Eastern Time (America/New_York) as canonical timezone for weekend/holiday detection | Ensures consistent business-day alignment; future configurable |
|
||||
| D9 | Use high-contrast styling for weekends/holidays (solid backgrounds + borders) | Accessibility for colorblind users |
|
||||
| D10 | Prefill weekends with `O`, holidays with `H` on grid load | Matches user expectations; reduces manual entry |
|
||||
| D11 | Frontend and backend must sync when seeding default values | Prevents divergent behavior on refresh |
|
||||
|
||||
### Implementation Notes
|
||||
- Frontend: Parse dates as `new Date(dateStr + 'T00:00:00')` to avoid timezone drift
|
||||
- Backend: Use Carbon with `America/New_York` timezone
|
||||
- Both sides must implement identical prefill logic
|
||||
|
||||
### Future Considerations
|
||||
- Make timezone configurable per-team or per-user (v2)
|
||||
- Extract prefill rules to shared configuration
|
||||
|
||||
---
|
||||
|
||||
## Earlier Decisions
|
||||
|
||||
See `design.md` sections D1-D7 for original design decisions.
|
||||
Reference in New Issue
Block a user