Files
CapaKraken/docs/dispo-import-implementation-tickets.md

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-00 must finish first

Phase 1

  • DISPO-10 depends on DISPO-00
  • DISPO-11 depends on DISPO-00
  • DISPO-12 depends on DISPO-00

Phase 2

  • DISPO-20 depends on DISPO-10
  • DISPO-21 depends on DISPO-10, DISPO-11
  • DISPO-22 depends on DISPO-10, DISPO-12

Phase 3

  • DISPO-30 depends on DISPO-20, DISPO-21, DISPO-22
  • DISPO-31 depends on DISPO-20, DISPO-21
  • DISPO-32 depends on DISPO-20, DISPO-22

Phase 4

  • DISPO-40 depends on DISPO-30, DISPO-31, DISPO-32
  • DISPO-41 depends on DISPO-10, DISPO-30, DISPO-32
  • DISPO-42 depends on DISPO-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

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-10
  • DISPO-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 _HB and _SB
  • parser extracts [BMW], [11035763], {CH80}, and role prefixes correctly
  • unknown token shapes are routed into unresolved staging rows

Dependencies

  • DISPO-10
  • DISPO-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&R projects/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-20
  • DISPO-21
  • DISPO-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 AB rows to vacations
  • map public holidays to approved PUBLIC_HOLIDAY vacations
  • 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-20
  • DISPO-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-20
  • DISPO-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-30
  • DISPO-31
  • DISPO-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-10
  • DISPO-30
  • DISPO-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-10
  • DISPO-11
  • DISPO-12

Round 3

  • DISPO-20
  • DISPO-21
  • DISPO-22

Round 4

  • DISPO-30
  • DISPO-31
  • DISPO-32

Round 5

  • DISPO-40
  • DISPO-41

Round 6

  • DISPO-42

Critical Path

The likely critical path is:

  1. DISPO-00
  2. DISPO-10
  3. DISPO-22
  4. DISPO-30
  5. DISPO-40
  6. DISPO-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