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:
49
openspec/specs/untracked-allocation/spec.md
Normal file
49
openspec/specs/untracked-allocation/spec.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Purpose
|
||||
|
||||
TBD
|
||||
|
||||
# Requirements
|
||||
|
||||
## Requirement: Support null team member in allocation APIs
|
||||
|
||||
The system SHALL allow allocation records with `team_member_id = null`.
|
||||
|
||||
### Scenario: Create untracked allocation
|
||||
- **GIVEN** user has allocation create permission
|
||||
- **WHEN** POST /api/allocations with `team_member_id = null`
|
||||
- **THEN** allocation is created successfully
|
||||
|
||||
### Scenario: Bulk create with mixed tracked/untracked
|
||||
- **GIVEN** a bulk payload contains tracked and untracked entries
|
||||
- **WHEN** POST /api/allocations/bulk is executed
|
||||
- **THEN** untracked entries with valid data are processed successfully
|
||||
|
||||
## Requirement: Include untracked in project totals
|
||||
|
||||
Untracked hours SHALL contribute to project-level and grand totals.
|
||||
|
||||
### Scenario: Project total includes untracked
|
||||
- **GIVEN** project has tracked 80h and untracked 20h in selected month
|
||||
- **WHEN** project row total is computed
|
||||
- **THEN** row total is 100h
|
||||
|
||||
## Requirement: Exclude untracked from member capacity metrics
|
||||
|
||||
Untracked allocations SHALL NOT contribute to any team member utilization/capacity variance.
|
||||
|
||||
### Scenario: Member utilization ignores untracked
|
||||
- **GIVEN** selected month has untracked allocations
|
||||
- **WHEN** member column totals and capacity variance are computed
|
||||
- **THEN** untracked rows are excluded from member computations
|
||||
|
||||
## Requirement: Present untracked in execution grid
|
||||
|
||||
The allocation grid SHALL expose untracked as a first-class execution bucket.
|
||||
|
||||
### Scenario: Untracked column visible
|
||||
- **WHEN** manager opens allocation execution grid
|
||||
- **THEN** untracked column/bucket is visible and editable
|
||||
|
||||
## Requirement: Capacity validation
|
||||
|
||||
Capacity validation SHALL be skipped for untracked allocations (`team_member_id = null`).
|
||||
Reference in New Issue
Block a user