13 KiB
Dispo Import Implementation Tickets
Date: 2026-03-14 Purpose: Worker-ready implementation tickets for the clean-slate Dispo v2 import defined in dispo-import-implementation.md.
How To Use This Ticket Pack
- Treat each ticket as a deliverable slice with its own acceptance criteria.
- Respect the dependency graph before starting downstream tickets.
- Parallel workers should only take tickets from the same phase when their touch points do not overlap heavily.
[tbd]project resolution and ambiguous part-time patterns remain review-gated even after implementation.
Dependency Summary
Phase 0
DISPO-00must finish first
Phase 1
DISPO-10depends onDISPO-00DISPO-11depends onDISPO-00DISPO-12depends onDISPO-00
Phase 2
DISPO-20depends onDISPO-10DISPO-21depends onDISPO-10,DISPO-11DISPO-22depends onDISPO-10,DISPO-12
Phase 3
DISPO-30depends onDISPO-20,DISPO-21,DISPO-22DISPO-31depends onDISPO-20,DISPO-21DISPO-32depends onDISPO-20,DISPO-22
Phase 4
DISPO-40depends onDISPO-30,DISPO-31,DISPO-32DISPO-41depends onDISPO-10,DISPO-30,DISPO-32DISPO-42depends onDISPO-40
Parallel Worker Lanes
Recommended worker split after DISPO-00:
- Worker A: staging schema and import orchestration
- Worker B: reset/reseed and reference-data import
- Worker C: parser and token normalization
- Worker D: resource, role, chapter, and availability normalization
- Worker E: commit pipeline, vacations/public holidays, and reconciliation
Tickets
DISPO-00 Canonical Decisions Lock
Goal
Freeze the implementation assumptions so multiple workers do not diverge.
Scope
- confirm canonical person ID strategy
- confirm auth reset scope
- confirm
[tbd]commit policy - confirm default part-time fallback policy
- confirm internal project bucket naming
Deliverables
- decision log appended to dispo-import-implementation.md
- explicit list of values to seed for roles and internal project buckets
Acceptance Criteria
- no remaining ambiguous blocking decisions for schema work
- downstream workers can implement without inventing business rules
Suggested Owner
- architect / lead worker
Estimated Effort
- 0.5 day
DISPO-10 Staging Schema And Import Batch Model
Goal
Add durable staging persistence for workbook parsing and review.
Scope
- add Prisma models for import batches and staged records
- add statuses for parsed, unresolved, approved, committed, failed
- add source-trace fields
- add indexes for batch lookup and unresolved review
Deliverables
- Prisma schema changes
- migration
- shared types/schemas for staged entities
Acceptance Criteria
- an import batch can store staged resources, projects, assignments, vacations, availability rules, and unresolved rows
- all staged records keep workbook, sheet, row, and raw payload traceability
- migration applies cleanly
Dependencies
DISPO-00
Suggested Owner
- Worker A
Estimated Effort
- 1 day
DISPO-11 Full Reset And Bootstrap Reseed
Goal
Provide a safe command that wipes the database and recreates the minimum viable platform baseline.
Scope
- add full reset script/command
- back up before destructive reset
- recreate admin/bootstrap access
- reseed required platform defaults
Deliverables
- reset command
- reseed command or combined bootstrap command
- operator documentation
Acceptance Criteria
- command wipes the intended database scope only
- command requires explicit force confirmation
- platform remains sign-in capable after reset
- rerunning in development is deterministic
Dependencies
DISPO-00
Suggested Owner
- Worker B
Estimated Effort
- 1 day
DISPO-12 Canonical Identity And Role Seed Preparation
Goal
Prepare the canonical master-data rules required by all downstream importers.
Scope
- implement single-ID normalization rule for resources
- define role seed list
- define chapter normalization list
- define internal utilization bucket list
Deliverables
- shared normalization helpers
- seed updates for roles and internal categories
- test coverage for token-to-role and token-to-chapter mapping
Acceptance Criteria
- one canonical person identifier is used throughout import logic
- role seeds exist for
2D Artist,3D Artist,Project Manager,Art Director - chapter mapping is deterministic
Dependencies
DISPO-00
Suggested Owner
- Worker D
Estimated Effort
- 0.5 to 1 day
DISPO-20 Reference Data Importer
Goal
Import and normalize master/reference data from MandatoryDispoCategories_V3.xlsx.
Scope
- countries
- metro cities
- org units
- management level groups and levels
- client hierarchy
- utilization categories
Deliverables
- workbook reader/importer
- reference-data upsert logic
- validation report for unknown values
Acceptance Criteria
- importer creates the normalized reference graph without duplicate nodes
- re-run is idempotent
- unknown or unmapped values are surfaced clearly
Dependencies
DISPO-10
Suggested Owner
- Worker B
Estimated Effort
- 1 to 1.5 days
DISPO-21 Resource, Chapter, Role, And Availability Staging
Goal
Build staged resource records from ChgFC, EID-Attr, and Dispo row metadata.
Scope
- canonical resource identity matching
- resource master field extraction
- chapter mapping
- resource role staging
- baseline FTE and availability staging
Deliverables
- resource staging service
- chapter/role mapping helper
- unresolved resource conflict handling
Acceptance Criteria
- staged resources deduplicate correctly by canonical ID
- resource chapter is derived consistently from agreed token rules
- project-capable roles are staged for later assignment commit
- unresolved missing person fields are flagged, not silently defaulted
Dependencies
DISPO-10DISPO-11
Suggested Owner
- Worker D
Estimated Effort
- 1.5 days
DISPO-22 Dispo Matrix Parser And Token Normalization
Goal
Convert DISPO_2026.xlsx matrix cells into normalized staging records.
Scope
- parse day/slot structure
- detect project, internal work, absence, holiday, unassigned, weekend, and part-time markers
- extract client token, WBS, win probability, role token, ignore suffixes
- emit structured staged records
Deliverables
- parser module
- token normalization library
- parser tests with representative cell examples
Acceptance Criteria
- parser handles known token families:
CH,MO,MD,PD,AB,NA,UN - parser strips
_HBand_SB - parser extracts
[BMW],[11035763],{CH80}, and role prefixes correctly - unknown token shapes are routed into unresolved staging rows
Dependencies
DISPO-10DISPO-12
Suggested Owner
- Worker C
Estimated Effort
- 1.5 to 2 days
DISPO-30 Staged Project Resolver And Internal Bucket Builder
Goal
Resolve staged project identities and create normalized internal planning buckets.
Scope
- create WBS-backed staged projects
- link clients to projects
- derive project names
- stage internal
M&O,MD&I,PD&Rprojects/buckets - keep
[tbd]rows unresolved
Deliverables
- project resolver service
- internal project/bucket seed or creation logic
- unresolved project review list
Acceptance Criteria
- WBS-backed projects are unique and deterministic
- internal work records resolve to canonical internal buckets
[tbd]rows do not auto-create final projects
Dependencies
DISPO-20DISPO-21DISPO-22
Suggested Owner
- Worker C or E
Estimated Effort
- 1 day
DISPO-31 Vacation And Public Holiday Import
Goal
Normalize workbook absences and geography-driven holidays into the vacation planner.
Scope
- map
ABrows to vacations - map public holidays to approved
PUBLIC_HOLIDAYvacations - skip weekends as persisted vacation rows
- reconcile workbook holiday markers with generated holidays
Deliverables
- staged vacation importer
- holiday generation/commit integration
- tests covering holiday and absence cases
Acceptance Criteria
- absences appear as vacation rows
- public holidays are created through the vacation model
- weekends are not persisted as vacations
- duplicate holiday rows are prevented
Dependencies
DISPO-20DISPO-21
Suggested Owner
- Worker E
Estimated Effort
- 1 day
DISPO-32 Part-Time Availability Overlay
Goal
Apply part-time logic to resource availability without creating fake bookings.
Scope
- parse staged part-time markers
- map percentage to available hours
- apply weekday reductions where explicit
- preserve unresolved patterns for manual review when not explicit
Deliverables
- availability overlay service
- unresolved availability pattern review states
- tests for 50%, 75%, 80%, and 100% examples
Acceptance Criteria
- 50% maps to 4 hours on a standard day
- 100% maps to 8 hours on a standard day
- explicit non-working weekdays reduce availability to zero on those days
- unresolved part-time patterns do not silently invent weekday schedules
Dependencies
DISPO-20DISPO-22
Suggested Owner
- Worker D
Estimated Effort
- 1 day
DISPO-40 Commit Pipeline
Goal
Commit approved staged data into final CapaKraken entities.
Scope
- create reference entities if missing
- create/update resources and resource roles
- create projects and internal buckets
- create assignments
- create vacations
- apply availability updates
- preserve staging-to-final traceability
Deliverables
- commit orchestration service
- commit transaction boundaries
- failure and rollback handling
Acceptance Criteria
- only approved/resolved staged rows are committed
- unassigned rows do not create assignments
- unresolved
[tbd]rows block final project commit - assignment roles are committed separately from resource chapters
- commit can be replayed safely for a batch
Dependencies
DISPO-30DISPO-31DISPO-32
Suggested Owner
- Worker E
Estimated Effort
- 1.5 to 2 days
DISPO-41 Review UI Or Operator Workflow For Unresolved Rows
Goal
Provide a practical path for resolving staged conflicts and [tbd] rows.
Scope
- unresolved staged row listing
- filters by type: person, project, part-time pattern, token parse failure
- approve/reject/resolve actions
- batch review workflow or CLI operator tooling
Deliverables
- review UI or CLI workflow
- action handlers for staged resolution
- operator documentation
Acceptance Criteria
- reviewers can find all unresolved rows by batch
[tbd]rows can be explicitly resolved before commit- identity conflicts and part-time ambiguities can be reviewed without DB edits
Dependencies
DISPO-10DISPO-30DISPO-32
Suggested Owner
- Worker A or frontend-focused worker
Estimated Effort
- 1 to 1.5 days
DISPO-42 Reconciliation And Acceptance Report
Goal
Validate committed data against the chargeability workbook and expected planning totals.
Scope
- resource count reconciliation
- FTE reconciliation
- management-group target reconciliation
- project/client/WBS consistency checks
- public-holiday/vacation visibility checks
- free-capacity vs assignment integrity checks
Deliverables
- reconciliation command/report
- machine-readable summary output
- human-readable discrepancy report
Acceptance Criteria
- system can produce a batch-level pass/fail report
- discrepancies identify the exact source rows or final entities involved
- report is repeatable for reimports
Dependencies
DISPO-40
Suggested Owner
- Worker E
Estimated Effort
- 1 day
Suggested Execution Rounds
Round 1
DISPO-00
Round 2
DISPO-10DISPO-11DISPO-12
Round 3
DISPO-20DISPO-21DISPO-22
Round 4
DISPO-30DISPO-31DISPO-32
Round 5
DISPO-40DISPO-41
Round 6
DISPO-42
Critical Path
The likely critical path is:
DISPO-00DISPO-10DISPO-22DISPO-30DISPO-40DISPO-42
If speed matters most, staff this path first.
Suggested Definition Of Done
The Dispo import implementation is complete when:
- the database can be reset and bootstrapped safely
- the three source workbooks can be staged deterministically
- unresolved rows are surfaced for review
- approved staged rows can be committed into normalized planning data
- public holidays and absences appear correctly in the vacation planner
- part-time availability affects availability instead of creating fake bookings
- project bookings carry assignment roles
- unassigned time remains free capacity only
- reconciliation passes against the source workbooks within agreed tolerance