Skip to main content

Delivery Timeline

MilestoneEffort (BE/FE/QA…)ConfidenceProgressTarget DateStatus
PRD v2.1 finalized0/02026-06-09Done
RFC review R2: 8.0/10 Strong / PROCEED with notes (7-chunk scope)High0/02026-06-18Done
Task breakdown expanded to 9 chunks (+ Task 8 SyncWatermarkResolver, Task 9 AssociationLogEnricher)BE +4 / QA +1.5Medium0/02026-07-01Done — R2 review not yet re-run against this scope
Development startBE 17 / FE 1 / QA 6.5Medium0/24.52026-Q3Planned (all 9 chunks writable; Task 9 highest-risk, buildable against fixtures)
Stage-0 operational gates0/0TBDPending before migration run — no committed date from CRM/Platform
Migration dry-run0/0TBDPlanned (after Stage-0 gates)
QA before/after crosscheck (Lane B — no automation substitute)QA 6.5Medium0/6.5migration-complete ~2026-08-27 → GA 09-07 [derived]Start unknown — gated on Stage-0 DSN/query plan (🔴, no date); requirement only
Production migration24.5 total (CDP-side)Medium0/24.52026-Q3Planned (gated on Stage-0 dry-run + CRM operational checks)

RFC Readiness Notes

  • rfc-reviewer R2 on 2026-06-18 scored the RFC 8.0/10, Strong, verdict PROCEED with notes, against the 7-chunk scope (reviewed_rfc_last_updated: 2026-06-18).
  • The RFC itself was subsequently expanded (last_updated: 2026-06-30) to add Task 8 (SyncWatermarkResolver) and Task 9 (AssociationLogEnricher) — the review has not been re-run against this 9-chunk scope; Task 9 in particular (highest-risk, depends on OQ-13 match-key collision-safety) is unreviewed net-new work. Recommend an R3 delta review before treating Task 9 as PROCEED-equivalent to the rest.
  • The code path is implementation-ready: all 9 chunks are writable, including the IAG session-authenticated migration-status proxy for the frontend indicator, and Task 9 is unit-testable against fixtures today.
  • Stage-0 operational gates still block the migration run, not the build: CRM read-only DSN, extraction query plan on the audits table, per-account contact coverage, and remaining edge confirmations for actor/category mapping.
  • Effort is breakdown-sourced (BE 17 / FE 1 / QA 6.5 = 24.5, medium confidence, Jeffer-confirmed 2026-07-01); DATA Team's own days remain TBD. Forecast dates are withheld pending the CRM-owned Stage-0 gate (see Dependencies & gates). Lane-B QA-driven finish-by (derived, requirement not forecast): the 6.5d before/after crosscheck trails the migration run, so for GA by the 09-07 commitment the run must complete by ~08-27; the start is unknown (🔴 Stage-0 DSN/query plan has no committed date), so this is a finish-by requirement. Hendry's 6.5d here collides with Legacy Notes + Team Owner E2E in the same 08-20→09-07 window — capacity.md.

Staffing

Implementors for RFC: Legacy Migration — CRM Contact Activity Logs → CDP:

DisciplineImplementorCommitted days (this initiative)
BackendJeffer (= Julio Jeffer, also BE on Customer Segmentation P2)17
DataDATA Team (external squad)TBD
FrontendTBD (minor — migration status indicator, CALM-S05)1
QAHendry (primary), Izzul (backup)6.5

Dependencies & gates

  • 🔴 CRM Squad + Platform — read-only Postgres DSN / read-replica scoped to SELECT on audits + users (Gate A, OQ-1).
  • 🔴 CRM DBAEXPLAIN ANALYZE extraction query plan + CRM index before Stage 0; no-go until it passes (Gate B, OQ-2).
  • 🟡 Platform / USMAN — confirm GetUsersByEmails deactivated-user representation for actor mapping (Gate D, OQ-9).
  • 🟡 Design — Figma frames for the badge + status indicator before Stage 1 FE (OQ-10).
  • 🟡 CRM + CDP — Deal–Person / Deal–Company join-model class names + won/done/resolved id-sets (Gate E, OQ-12); safe fallthrough to generic …/update until confirmed.
  • Internal — shared BE owner (resolved on capacity 2026-07-01) — Jeffer is also BE on Customer Segmentation (P1); both now sized (Segmentation BE 4 d, this initiative 17 d), combined load 0.40 clears under the sequencing policy. See status/2026-07-01.

Internal critical path: BE chunks 1–6, 8–9 + FE chunk 7 build now (pending Jeffer's P2 queue clearing) → Stage-0 gates (DSN, query plan, per-account Contact source_id coverage ≥99%) → migration dry-run → production migration per account.