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).
1.7 KiB
1.7 KiB
Resource Allocation - Delta Specification
This delta documents required updates to existing resource allocation behavior for fidelity with explicit month planning.
MODIFIED Requirements
Requirement: Month execution comparison target
Original behavior: month execution was compared against derived or lifecycle assumptions.
Updated behavior: selected month project allocation is compared against explicit project-month planned hours.
Scenario: Compare row total to month plan
- GIVEN selected month plan for project is 1200h
- AND project allocations total 1300h
- THEN project row variance is +100h
- AND row status is
OVER
Scenario: Blank month plan comparison
- GIVEN selected month has no plan value set
- AND project allocations total 50h
- THEN comparison target is 0h
- AND row status is
OVER - AND allocation remains allowed
Requirement: Bulk allocation behavior
Original behavior: all-or-nothing transaction semantics.
Updated behavior: valid items SHALL be saved even if some items fail.
Scenario: Partial bulk success
- WHEN 10 allocation items are submitted and 2 fail validation
- THEN 8 valid items are persisted
- AND failed items return per-index validation errors
- AND response includes summary created/failed counts
Requirement: Untracked execution semantics
Original behavior: untracked support was ambiguous/incomplete.
Updated behavior: team_member_id = null is valid and treated as untracked effort.
Scenario: Untracked counted in project, excluded from capacity
- WHEN untracked allocation exists for selected month
- THEN project totals include it
- AND member capacity/utilization computations exclude it