Skip to main content

CDP — Sprint 2 Goals (2026-Q3)

Sprint window: 2026-07-21 → 2026-08-04 (2 weeks)

Sprint goal: ship Customer Segmentation by 2026-07-28; drive Mention User toward 2026-08-14; Bulk Export ahead of Team Owner; land engineering-bucket Expedite A5-A8; close Sprint 1's carryover findings.

Provisional: rederive queues from Sprint 1's close pass before 2026-07-21 — pass-10 (2026-07-17) was cited at initial draft time; pass-11 is the actual close pass (2026-07-21, final — F-5 resolved, Team Owner BE-complete / FE Ready to Deploy). Team Owner's rows below are reconciled against pass-11; every other lane in this doc still reflects pass-10 and needs a full sprint-planner rederivation before being treated as current.

Delivery / Program Management — team-level, cross-initiative. A sprint is a derived render of the roadmap Priority table × per-discipline implementors: × each initiative's rfcs/*.task-breakdown.md readiness × capacity.md, plus the sprint envelope above. It is not a source of truth for priority, effort, or staffing — those stay canonical in the roadmap / README / capacity. See CLAUDE.md "Sprint layer".

Approach: unchanged from Sprint 1 — priority-ordered backlogs per engineer, not capacity-boxed. Each person works their list top to bottom; a genuinely blocked item (external dependency, governance gate, missing design/spec — not "no time left") is skipped and circled back once the blocker clears. There is no man-day ceiling in this plan — effort figures live in ../capacity.md and each initiative's task-breakdown for sequencing context only.

Source: the ## Priority table in ../roadmap.md, reconciled against each initiative's rfcs/*.task-breakdown.md, and Sprint 1's 2026-07-17 pass-10 findings ledger for what has actually shipped/merged since the roadmap's own progress cache was last refreshed.

This is a continuation, not a restatement. No priority, effort, or staffing is re-declared here — see ../roadmap.md / ../capacity.md for canonical figures. Per sprint doctrine, nothing carries over by default: every row below is re-derived from the current roadmap rank + each initiative's remaining task-breakdown work (cited to pass-10 where corroborated, flagged TBD at close where Sprint 1's own progress evidence doesn't pin an exact task position). QA defaults to Hendry; Izzul is backup only for timeline clashes or extra support (roadmap sequencing policy, rule 4).

How to point your AI agent at this plan

This file is written to be handed to a coding agent as-is. Copy-paste brief:

Read cdp/delivery/sprints/2026-07-21-sprint-02.md. Find the section ## <my name> — that table is my priority-ordered sprint queue. Start at item #1 that is not marked Blocked. Before writing any code for an item, read (in order) its task-breakdown, its RFC, and its PRD from the Initiative index table — the task-breakdown defines the task ids/order referenced in my queue, the RFC defines the design, the PRD's Section-8 story tables define the acceptance criteria. Work the tasks in the stated order; when a task is done per its breakdown acceptance, move to the next. If I hit a blocker listed under "The real blockers", stop that item, note it, and move to my next Ready item.

Ground rules for the agent (and the human driving it) — identical to Sprint 1:

  1. The task-breakdown is the work contract. Task ids in the queue tables refer to the linked *.task-breakdown.md, never to Jira ticket numbers. Read it first, every time.
  2. Done means the breakdown's acceptance for that task is met — code merged behind the stated flags/contracts, and the PRD's composite AC ids (<STORY-ID>/AC-n) it maps to are satisfied. QA items are done when the covered ACs have executed test evidence.
  3. Never renumber or invent AC/story ids — they key Jira tickets and test specs.
  4. Effort numbers are context, not caps. Only the named blockers below justify skipping an item.
  5. Blocked ≠ idle. Do non-gated prep where noted, otherwise skip cleanly and record what you're waiting on.
  6. Do not touch Jira automation. Never trigger the jira-sync pipeline.
  7. Cross-person handoffs: if your task unblocks someone else's queue, say so in your status update the day it merges.

Initiative index (agent lookup table)

All paths are relative to this file. Priority ranks come from the roadmap ## Priority table — unchanged since the 2026-07-10 reprioritization (no reorder this window).

PriInitiative (Epic)Task breakdownRFCPRD
P1Customer Segmentation (TF-2544)FE breakdown · BE breakdownfe rfc · be rfcbasic-attributes · use-case-activities · anchor
P2Mention User in CDP Notes (TF-3184)breakdownrfc · reviewprd
P3Export Customer Data with Layout (TF-3181)breakdownrfc · reviewprd
P4Team Owner Field & Team Permission (TF-3185)BE breakdown — F-5 residual, see statusrfc · reviewprd
P5Legacy Migration: CRM Notes → CDP (TF-3183)breakdownrfc · reviewprd
P6Legacy Migration: CRM Activity Logs → CDP (TF-3182)breakdownrfc · reviewprd
P7Create Ticket & Auto-Associate from CDP (TF-3359)web breakdownweb rfc · reviewweb · mobile · anchor
P8Customer Event-Based Engine — CEBE (TF-3302)none — no RFC yet; F-4 ESCALATED, see blockers below— (RFC not authored)core-infra · marketing · anchor
Adhoc laneCDP 26Q3 Engineering Initiatives (TF-3500, bucket)— (unsized)— (no RFC per story)README tracker
Adhoc lane26Q3 CDP Adhoc (TF-3477, bucket)— (unsized)— (no RFC per story)PRDs · README tracker

Not queued this sprint (excluded deliberately, not an oversight — see Deviations and Blockers): Multi-BSUIDs (P9, past-quarter target, no DRI/timeline, pending shipped/slipped/closed decision); PII Encryption — Contact Service (P10, ranked last pending a PM priority call, no CDP implementor assigned); CDP Contact Enrichment (P11, target_quarter: TBD — not yet agreed for 26Q3); Customer Health Score (P12, target_quarter: TBD — not yet agreed for 26Q3); and Create Ticket & Auto-Associate (P7) Mobile track for Alfi (PM/TPM defer-or-expand decision still unresolved from Sprint 1 — Alfi is 11 days / 1.46 load over capacity, the third Mobile initiative in his queue without a lane).

Each initiative folder also has a README.md (DRI, jira_epic, qa_lane) and delivery/timeline.md (dependencies & gates) — consult them when a row's status here is ambiguous.

Per-engineer queues

Each person works their list top-to-bottom; a genuinely blocked item (external dependency, governance gate, missing design/spec — not "no time left") is skipped and circled back once the blocker clears. Queue order mirrors the roadmap Priority rank unless the item appears in "Deviations from roadmap priority" below.

Ghozi (BE)

Agent brief: finish the 🔴 Expedite A7 (TF-3526, chat_data back-sync) first — the DefineTarget duplicate-contact fix must land before the webhook is re-enabled (Expedite log). Then Export #2; Team Owner's BE core (all 12 TEAM-S stories) already shipped in Sprint 1 (pass-11 closestatus) — do not rebuild it; #3 is now backfill-job + confirmation work against the now-existing breakdown, not breakdown authoring. The Export merge opens Hendry QA #3. Also owns A5's Phase-3 chat-producer coordination (#5, gated — see row) and the adhoc bucket's A6 placeholder (#7).

#Epic (Jira)TaskStatus
1CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE for A7 (TF-3552/TF-3526, 🔴 Expedite)CDP-side of the chat_data back-sync (Qontak One): ContactSyncRequest + DefineTarget qontak_customer_id lookup fix (land before the chat squad re-enables the webhook), coordinate the hub_core flag/payload side → prd🔴 In Progress — pulled 2026-07-21 (Expedite log)
2Export Customer Data with Layout (TF-3181, P3)Close Tasks 2.1–2.5, then 2.7–2.8Ready — core in testing (pass 10)
3Team Owner Field & Team Permission (TF-3185, P4)Confirm chunk 6 fallback/events actually landed (code check vs TF-3488, which only evidences the flag gate in its description); execute the backfill job TF-3548 (To Do); size the task breakdown to close F-5's residualReady after #2 — BE core already Done pass 11 (status); 08-31 does not override P3 (decision 0002)
4CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE for A4 (UUID consolidation, TF-3499)Re-home tracker from TF-3477 → TF-3500 (already done 2026-07-14); close Story TF-3504 once Hendry's Lane-B QA gate passes and flip A4 → done (rollup 1/4)🟡 In-review close — pull-in fill, only when #2/#3 are between items
5CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE-Chat for A5 (Story pending mint, 🔴 Expedite, reclassified 2026-07-21)Coordinate with the chat/omnichannel producer team to stop duplicating source into custom_fields (RFC's Phase 3, cross-team ask) — Julio Jeffer owns the contact-service side (Phases 0-2) in parallel → rfcNot startable yet — gated on Jeffer's #2 shipping + a bake period, per the RFC's sequencing note; not a capacity/priority block, so its position here doesn't change once unblocked
6CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE for A1 (Go bump, BIF-keyed TF ticket TBD)Standard, pull-in fill — chase when #2's Export BE core has converged and #3 is between sub-tasksBacklog — pull-in fill only, behind #5
726Q3 CDP Adhoc (TF-3477, Adhoc lane) — BE for A6 (TF-3609, Sticky Agents set/remove assignment support, Chat ask — 🔴 Expedite)Intake placeholder only — Chat/Omnichannel needs CDP support for set/remove assignment actions; nothing beyond that one sentence is scoped yet → rfcNot real work yet — classification unconfirmed, see tracker

Berlianto (BE)

Agent brief: Mention User's BE half is this sprint's top BE priority (P2, 08-14 — p50 08-10 / p85 08-19, the tightest deadline in the sprint). Finish the BE chain first (core near-merge per pass 10); unblocking P5 (Legacy Migration: CRM Notes) downstream is the largest single portfolio-risk move this window can make. P5 build-ahead resumes in parallel — the CRM extraction client (Task 2.3) continues against the stub contract; an end-to-end run stays blocked on P2 shipping + the Legacy CRM Squad's extraction endpoint (OQ-7).

#Epic (Jira)TaskStatus
1Mention User in CDP Notes (TF-3184, P2)Close TF-3328 + TF-3329 (READY TO MERGED) → finish TF-3330 (notification client, In Progress) → sweep Tasks 2.4–2.6 for any residual wiringReady — 10 BE days against the 08-14 hard date; resuming mid-stream, near-Merge on the core chain
2Legacy Migration: CRM Notes → CDP (TF-3183, P5)Task 1.1 → 1.2 (data model + job constants → HTML normalizer) → Task 2.1 → 2.2 → 2.3 (contact/owner resolver → attachment processor → CRM extraction client, stub-contract) — build progresses against the stub; do not enable end-to-end runsBuildable now, do not enable end-to-end runs — P5 is blocked on P2 shipping and on the Legacy CRM Squad's org-scoped extraction endpoint (OQ-7); building against the stub is explicitly sanctioned by the task-breakdown's own confidence note
3CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE co-owner for A1–A4Co-own the EOL items (A1 Go 1.25→1.26, A2 Alpine 3.18→3.21/3.22, A3 gocraft/work migration, A4 satori/go.uuid close) — 🟡 Standard / ⚪ Intangible pull-in fill per the bucket's pull rule; never ahead of ranked workBacklog — pull-in fill only when #1/#2 are between items; A2 is 🔴 Expedite (may preempt, WIP ≤2, logged in the bucket ## Expedite log)

Julio Jeffer (BE)

Agent brief: five lanes, strict priority + hard-date order. Segmentation's 07-28 commitment is the nearest deadline in the whole sprint — close its remaining BE scope first (pass-07: datamart hardening TF-3507/3508/3511 all READY TO DEPLOY; F-8 asks the DRI to confirm these are in-scope hardening and retro-cost them — do not silently absorb them into the P1 scope). Directly under it sit two 🔴 Expedite items — A5 (now outranks A6, see Adhoc interrupts below) and A6 (TF-3517, crm_data_id back-sync). Pull A5 first: Phase 0 (TF-2991, zero-code) then contact-service execution (BE CDP, Phases 0-2); then A6 (settle transport with CRM). WIP ≤2 — A7 is already in flight, so only one of A5/A6 can also run at once. See A5 RFC / A6 PRD. Then Legacy Migration Activity Logs (09-07). CEBE (P8) has no RFC yet — F-4 ESCALATED open 7 passes with zero board movement; the only startable work is authoring the RFC (the 5-day slice Jeffer already sized). A third sprint without that RFC filed is itself the decision to deprioritize CEBE — make the call deliberately, not by default.

#Epic (Jira)TaskStatus
1Customer Segmentation (TF-2544, P1)Close BE hardening TF-3507/3508/3511 (READY TO DEPLOY → merged) and any remaining buffer-bugfixing scope (4 confirmed BE days, mostly landed); flag F-8 retro-cost to DRI before treating as fully doneReady — hard dates 2026-07-28 (10 days inside this window); the P1 commitment's remaining BE scope is finishing, not starting
2CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE-CDP for A5 (Story pending mint, 🔴 Expedite, reclassified 2026-07-21; prioritized ahead of A6, 2026-07-21)Own the contact-service execution surface (Phases 0-2: shared resolver, Family A wiring, serializer/search-filter fixes, self-healing, SourceName persistence) — Ghozi owns the parallel Phase-3 chat-producer coordination ask once this ships and bakes → rfc🔴 Expedite — pull after #1, ahead of #3, may preempt #4/#5 (Expedite log); WIP ≤2 with A7 already in flight — see agent brief
3CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE for A6 (TF-3551/TF-3517, 🔴 Expedite)CDP-side of the crm_data_id back-sync for CDP-originated contacts (Qontak One): agree transport + payload contract with the CRM squad (webhook-reuse precedent per TF-3526), then build the ingestion/matching side → prd🔴 Expedite — pull after #1/#2, may preempt #4 (Expedite log)
4Legacy Migration: CRM Activity Logs → CDP (TF-3182, P6)Task 1 already done + code-corroborated (PR #855/#858); Task 2 (TF-3465) READY TO DEPLOY → close. Continue Tasks 3 → 4 → 5 → 6 → 8 → 9 (contact finder → schema transformer → MigrateBatch service → trigger/status/rollback/Phase-A gate → consumer/worker → sync watermark → association-log enricher). TPM action required (F-1 STILL OPEN pass 7): add TF-3466–3472 to the new Jira sprint before this window opens — they exist as tickets but were never sprint-scoped in Sprint 1Ready — 17 confirmed BE days; build proceeds, running Stage 0 stays gated on CRM's read-only DSN access + passing query plan (Gate A/B)
5Customer Event-Based Engine — CEBE (TF-3302, P8)Author the RFC & standardized design (the 5-day slice Jeffer already sized). F-4 ESCALATED: file the Jira Task this sprint or record explicit not-started in this doc's Deviations — 7 passes with zero movement alreadyAuthor-only this sprint — do not start the CTWA+Broadcast or customer-change/segments-event work (the other 10 of his 15 days) until the RFC exists and is reviewed; see blockers below
6CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — BE co-owner for A1–A4Co-own the EOL items — 🟡 Standard / ⚪ Intangible pull-in fill when #1–#5 are blocked or between items; A2 (Alpine EOL) is 🔴 Expedite (security — no more upstream fixes) and may preempt ranked work when pulled (WIP ≤2, logged in the bucket ## Expedite log)Backlog — pull-in fill only, behind #5

Jovi (FE)

Agent brief: Mention User FE (P2, 08-14) leads — finish the composer/renderer/preview chain so Berlianto's BE merge closes the FE lane for the commitment. New 🔴 Expedite A8 (legacy CRM contact-page guard/redirect) sits directly behind it — pull once Mention User is between items; see row #2 for preemption order. No Story minted; confirm the v1/v2 location + restrict-vs-redirect call (A8 RFC) before starting. Then Export FE (P3), then Create Ticket's web track (P7): Task 1 (gate + UI shell) is unblocked behind an OFF flag; Tasks 2-3 (postMessage contract → fallback associate) are gated on CRM decisions due 2026-07-04, now 17+ days overduePM/TPM confirm whether they landed before starting Tasks 2-3. Per-task merge/RTD state: pass 10.

#Epic (Jira)TaskStatus
1Mention User in CDP Notes (TF-3184, P2)Close TF-3331 + TF-3382 (RTD → merged, then wire preview card to real user detail — Task 2.8) → Task 2.7 (wire to real APIs, may already be done) → TF-3509 (deleted-user fallback, To Do)Ready — 9.5 confirmed FE days against the 08-14 hard date; resuming mid-stream
2CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — FE for A8 (pending mint, 🔴 Expedite)Guard the legacy CRM contact page for Qontak One users who force-navigate its URL — restrict or redirect to CDP /customer/{id}rfc🔴 Expedite — pull once #1 is between items, may preempt #3/#4 (Expedite log — add a row once actually pulled in flight)
3Export Customer Data with Layout (TF-3181, P3)Close TF-3512 (Done + corroborated) → continue TF-3429/3430 (export-history/report, In Progress) → Task 2.6 (wire real POST + error handling + Mixpanel)Ready — 7.5 confirmed FE days; resuming mid-stream
4Create Ticket & Auto-Associate from CDP (TF-3359, P7) — web trackTask 1 (gate + UI shell) unblocked now → Tasks 2 → 3 (postMessage contract → fallback associate)Task 1 Ready; Tasks 2-3 pending CRM decisions overdue since 2026-07-04 — PM/TPM confirm before starting

Azani (FE)

Agent brief: Segmentation's 07-28 commitment is the nearest deadline on the team — lead with it per the roadmap's 2026-07-01 correction, confirmed for this sprint. Pass-07 landed Azani's TF-3399 (SegmentStore integration tests) and TF-3400 (SegmentListPage integration tests) Done + code-corroborated 2026-07-15 — the first real FE build progress beyond QA test-case writing. TF-3401 (reachability fields) is Blocked — confirm the block's cause with Julio Jeffer/DRI this sprint: it's the last FE item on the 07-28 commitment's critical path, and Azani has no higher-priority FE work until Team Owner (P4) opens up. Team Owner FE follows, but per Sprint 1's close pass FE Tasks 1–5 (TF-3312–3316) already sit at Ready to Deploy — this is a deploy-gate clear, not a 10-day build.

#Epic (Jira)TaskStatus
1Customer Segmentation (TF-2544, P1)Task 2.3 — TF-3401 (reachability fields) is Blocked; unblock + finish it. Highest urgency FE item in this sprint — the 07-28 commitment depends on itReady — 3 confirmed FE days against the 07-28 hard date; 2 of 3 already shipped (TF-3399/3400 Done)
2Team Owner Field & Team Permission (TF-3185, P4)FE Tasks 1–5 (TF-3312–3316 — team-owner field UI MpInputTag multi-select, /customers/teams route, per-note permission controls reading level) already Ready to Deploy since Sprint 1's close — clear the deploy gate, do not rebuild; the BE-only task breakdown still has no FE chunk mapping (F-5 residual) — cross-check against the RFC's Detail 2.A/2.C if any FE scope remains beyond these 5 ticketsReady — deploy-gate clearing, not new build (status)
3CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — FENo FE-scoped items in the bucket today (A1–A4 are all Backend/Infra — FE column is ). The bucket grows mid-quarter per the How the bucket grows checklist — pull-in fill if a FE-scoped engineering item is appendedBacklog — contingent on a future FE-scoped item being appended

Wulan Febyazzahra Putri (Bulan) (PD, FE-capable, conditional)

Agent brief: Wulan has no standing CDP capacity allocation. This queue records the live Jira assignment deterministically; it does not infer quarterly availability or committed effort.

#Epic (Jira)TaskStatus
1Export Customer Data with Layout (Epic linkage missing — F-14)TF-3550[FE] Unable to add field on layoutJira-observed off-plan assignment — Ready to Test at pass-01; DRI must parent it to the owning executable Epic before it is treated as initiative-planned work

Alfi (Mobile)

Agent brief: over capacity (load 1.46) across 4 initiatives — see capacity. Third sprint without resolution. Create Ticket Mobile (P7, 10 d) stays out of his active queue — the PM/TPM defer-or-expand decision is overdue and must land this window (Sprint 1 blocker 6, open since 2026-07-01). Mention User Mobile is near-finishing; TF-3506 (list-picker pagination) is Done but out-of-breakdown-scope — DRI must retro-cost or declare out-of-band (F-7). Per-task evidence: pass 10.

#Epic (Jira)TaskStatus
1Mention User in CDP Notes (TF-3184, P2)Close remaining verification items (TF-3292/3293 already Done; confirm any Mobile-side residue from Berlianto's BE notification chain as it merges). F-7 retro-cost decision needed from DRI for TF-3506 (out-of-mention-scope build)Ready — 10 confirmed days against the 08-14 hard date, near-finishing
2Export Customer Data with Layout (TF-3181, P3)Mobile tap-through routing (OQ-12, optional)Ready — first shared-capacity claim after Mention User; 5 confirmed days
3Team Owner Field & Team Permission (TF-3185, P4)Mobile rendering of Team Owner field + per-note permission flags (read permission flags per note on CDP/Contact360 notes)Ready after #2 — 10 confirmed days against the 08-31 hard date; Mobile Squad contract confirmation remains an external dependency
4Create Ticket & Auto-Associate from CDP (TF-3359, P7) — Mobile trackMobile ticket-create and auto-associate flowDo not start — no Q3 room; defer or add capacity (capacity)
5CDP 26Q3 Engineering Initiatives (TF-3500, Adhoc lane) — MobileNo Mobile-scoped items in the bucket today (A1–A4 are all Backend/Infra — Mobile column is ). The bucket grows mid-quarter per the How the bucket grows checklist — pull-in fill if a Mobile-scoped engineering item is appendedBacklog — contingent on a future Mobile-scoped item being appended

Hendry (QA, primary)

Agent brief: Start P1 QA, then P2, Export P3, and Team Owner P4; skip both migrations until their gates clear.

#Epic (Jira)TaskStatus
1Customer Segmentation (TF-2544, P1)QA against composite AC ids — close the 07-28 commitmentReady — 1.5 confirmed days, Lane C
2Mention User in CDP Notes (TF-3184, P2)QA against composite AC ids in the PRD's story tables — major testing push as BE/FE/Mobile code merges (TF-3489 test cases already Done)Ready — 4.5 confirmed days, Lane B
3Export Customer Data with Layout (TF-3181, P3)QA — first end-to-end integration window opens as Ghozi's BE core (TF-3284–3288) clears testing and Jovi's FE export-history landsReady — first shared-capacity claim after P1/P2; 5 confirmed days, Lane B
4Team Owner Field & Team Permission (TF-3185, P4)QA against composite AC ids — BE (all 12 TEAM-S stories) and FE (Tasks 1–5) already Done/Ready to Deploy per pass-11; Alfi's Mobile track (#3) remains the gating piece for full end-to-end QAReady after #3 for full coverage, BE/FE portions startable now — 7.5 confirmed days (1.5 man-weeks), Lane B
5Legacy Migration: CRM Notes → CDP (TF-3183, P5)QA — before/after data crosscheck (manual)Queued, not startable — blocked on P2 shipping + CRM extraction endpoint (OQ-7); prep test plan when Berlianto's stub-contract build allows
6Legacy Migration: CRM Activity Logs → CDP (TF-3182, P6)QA — before/after data crosscheck (manual)Queued, not startable — blocked on CRM Stage-0 DSN query-plan gate; prep test plan as Jeffer's tasks 3-9 land
7Create Ticket & Auto-Associate from CDP (TF-3359, P7) — web trackQA for Task 1 (gate + UI shell)Ready — 1.5 confirmed days, Lane C (strongest Lane-A candidate); Tasks 2-3 blocked with Jovi's #3
8QA BAU — Automation Coverage & Deployment Support (TF-3521)Own automation-coverage improvements and partner with Izzul on release verification; create a Jira item for every discrete BAU outcome using the contract belowOngoing — scheduled deployment verification takes precedence; otherwise pull into gaps between ready initiative work

Izzul (QA, backup)

Agent brief: per the roadmap sequencing policy (rule 4), Izzul only picks up initiative work if Hendry's timeline clashes or CDP needs extra QA support. The one standing exception is QA BAU — Izzul can lead or back up release verification and automation-coverage work alongside Hendry without a clash trigger, since BAU is ongoing and not tied to a specific initiative's deadline.

No in-scope initiative queue is active for Izzul in this sprint. Izzul can still co-lead release verification and TF-3521 BAU outcomes with Hendry under the standing BAU contract below.

#Epic (Jira)TaskStatus
1QA BAU — Automation Coverage & Deployment Support (TF-3521)TF-3570 and TF-3571 — QA automation outcomesActive-sprint Jira assignments; intentionally mapped to the off-initiative QA BAU lane, not an initiative queue

QA BAU Jira-item contract (Hendry & Izzul)

QA BAU is an unsized standing workstream owned by Hendry and Izzul. Create each outcome under the current Epic and follow the routing, item, and evidence contract in ../qa-bau.md.

Epic-wiring disposition (2026-07-26 pass-03): TF-3521 is the intentional executable container for CDP QA BAU, including TF-3570 and TF-3571. It is deliberately off the initiative map because QA BAU is a team-level standing workstream, not a product initiative. Do not re-parent these issues to an unrelated initiative Epic; reconciliation should treat TF-3521 as the documented off-map exception.

Adhoc interrupts (this sprint)

A7 (Ghozi #1) and A5 (Jeffer #2, now outranking A6 #3) are this sprint's 🔴 Expedite pulls — WIP ≤2, one slot free. See Expedite log for authorization and cap accounting.

  • CDP 26Q3 Engineering Initiatives bucket (TF-3500): A2 (Alpine 3.18 EOL → 3.21/3.22) is classed 🔴 Expedite (security — no more upstream fixes) but is still backlog, so it preempts nothing yet. If pulled mid-sprint, it enters this running sprint via the mid-sprint Expedite intake gate — authorization lives in the bucket README ## Expedite log, it is WIP-capped (≤2 in flight per expedite_wip_limit), and a preemption's displaced-work note lives in the affected initiative's dated status/. Render it in this subsection only when that happens.
  • Every developer carries a 🟡/⚪ Engineering bucket pull-in-fill row this sprint for the non-Expedite items A1/A3/A4/A9 (Ghozi #4/#6, Berlianto #3, Julio Jeffer #6, Jovi #4, Azani #3, Alfi #5) — A5 and A6 are called out separately above since they're now both 🔴 Expedite, not ordinary pull-in fill. Per the tracker, these pull-in-fill items carry no assigned FE/Mobile work today; Jovi's, Azani's, and Alfi's rows are therefore contingent on an FE/Mobile-scoped assignment landing per the How the bucket grows checklist — they are present so the queue is ready to pull the moment such an item lands, not because there is FE/Mobile work today.
  • 26Q3 CDP Adhoc bucket (TF-3477): A2 (billing-duplicate-charge fix) closed in Sprint 1 — no active Expedite. A4 (Edit Customer null-address edge case) is 🟡 Standard, in-review — Lane-B QA gate pending (Hendry), then close.
  • New this sprint — A9 (Team Owner backfill, engineering bucket): added 2026-07-21, backlog, not pulled by anyone — it isn't startable until CRM migrates its own Team data into USMAN (no committed date). See blocker 3(c) above and the RFC.
  • A5 reclassified 🟡→🔴 Expedite 2026-07-21, now outranks A6 for Jeffer's pull order — see Expedite log for the justification. FE/Mobile ownership still unconfirmed — see Deviations below.

Deviations from roadmap priority

Anything not listed here is expected to match the roadmap ## Priority rank.

  • Bulk Export / Team Owner: no deviation — shared queues follow P3 → P4 (decision 0002).
  • Alfi / Create Ticket Mobile: excluded — PM/TPM must defer it or add capacity (capacity).
  • Julio Jeffer (BE) — CEBE (P8): queued last and scoped to RFC-authoring only, even though its 15 confirmed days would otherwise put real build work in this sprint. Deliberate: CEBE has no RFC yet, and per CLAUDE.md doctrine an agent must not invent scope from the PRDs alone. F-4 ESCALATED open 7 passes with zero board movement: if the RFC is not filed (or explicit not-started not declared in this doc) this sprint, that itself is the decision to deprioritize CEBE for 26Q3 — make the call deliberately.
  • Multi-BSUIDs (P9), PII Encryption (P10), CDP Contact Enrichment (P11), Customer Health Score (P12): not queued for anyone. Per CLAUDE.md doctrine, an unresolved/unsequenced item does not get invented into a queue row — all four need a PM priority call first (Multi-BSUIDs also needs a shipped/slipped/closed call against its past-quarter 2026-Q2 target).
  • Zhelia / Wulan — off-plan: rostered; Wulan's TF-3550 alignment remains open — pass-03.
  • A5 (contact source ID/label split) FE + Mobile ownership unconfirmed: per 2026-07-21 sprint planning, BE ownership is settled (Jeffer/BE-CDP, Ghozi/BE-Chat — see Jeffer #5/Ghozi #5 above), but the qontak-customer-fe owner is still TBD and whether Mobile has any scope here at all still needs checking. Owner: DRI (Zhelia) — confirm an FE owner and rule Mobile in or out before A5's FE chunk (RFC §qontak-customer-fe) can be pulled by anyone.
  • Sticky Agents (Chat) — set/remove assignment support ask, placeholder only: tracked as A6 in the adhoc bucket (rfc, Story TF-3609); 🔴 Expedite by sprint-planning instruction with no risk analysis behind it. Owner: PM (Zhelia) — scope with the Chat squad and confirm or revise the class before any engineering time is committed.

The real blockers (not capacity)

Each blocker names its owner — that's who to escalate to; nobody's queue waits silently.

  1. Customer Segmentation (P1) — 07-28 commitment, 7 days inside this window. TF-3401 (reachability fields, Azani's #1) is Blocked — the cause was not in the pass-07 digest; confirm with Julio Jeffer/DRI at sprint start whether it's a DATA Team dependency (still unsized per the initiative README), a Figma gap, or a BE blocker. Owner: DRI (Zhelia) — surface cause and unblock Azani's only FE item on the 07-28 critical path within the first two days. Per F-8 (pass 7 ESCALATED, open 2 passes), also confirm the datamart BE hardening TF-3507/3508/3511 (all READY TO DEPLOY) is in-scope hardening (retro-cost into the breakdown) and that the protected commitment hasn't silently grown.
  2. Mention User in CDP Notes (P2) — 08-14 commitment, p50 08-10 / p85 08-19. Critical path is pure BE→FE→QA length against a tight window — no external gate, just the chain Berlianto→Jovi →Alfi→Hendry finishing. Web Figma frames for the mention picker + chip (OQ-14) are the only build blocker — Design System-owned (🔴 in the roadmap external-deps table). Owner: Design System — confirm frames before the FE composer/chip wire closes, or scope-cut (DRI/PM call). Infosec approval of bluemonday allow-list + lock-screen PII egress (OQ-19/REV-14) + notification category choice (mention(2) reuse vs CDP-specific, OQ-1) — Infosec / Notification Platform, 🟡.
  3. Team Owner Field & Team Permission (P4) — GA gated on Launchpad + Mobile Squad. (a) Launchpad must ship the teams-for-user(+descendants) API to the §2.4 contract, the Team Only permission radio, and the legacy→Launchpad team-name crosswalk before flag-ON GA — in-repo BE/FE/Mobile chunks (Ghozi #3, Azani #2, Alfi #2) build now behind the OFF flag regardless. (b) Mobile Squad must confirm the contract for Mobile rendering of the field + per-note permission flags (Alfi #2). (c) Separately — not gating this sprint's queued work — the team_owner backfill onto existing/migrated contacts is blocked on CRM migrating its own Team data into USMAN (no committed date); per 2026-07-21 sprint planning this is tracked as its own engineering-bucket item, A9 (rfc), rather than inside P4's 08-31 commitment. Owner: CRM Squad / Platform-USMAN.
  4. Legacy Migration: CRM Notes → CDP (P5) — running blocked, building OK against stub. Hard prerequisite on the Legacy CRM Squad's net-new org-scoped Person-notes extraction endpoint (OQ-7, does not exist today), on top of the P2 dependency (sprint goal is to close P2 this window so this becomes the binding blocker only). 🟡 open: per-CID coverage ≥99% (OQ-2); bulk-throughput load test (OQ-7); bluemonday/Infosec (OQ-10); CRM bucket access + PII residency (OQ-9); per-caller audit (OQ-11); CSM per-CID consent.
  5. Legacy Migration: CRM Activity Logs → CDP (P6) — Stage-0 go/no-go, CRM-owned. Running any migration is gated on CRM Squad + Platform/CRM DBA granting read-only Postgres DSN access (Gate A/OQ-1) and passing an EXPLAIN-ANALYZE query-plan/index check (Gate B/OQ-2) before any run. Build proceeds without it (Jeffer #3). 🟡 edge confirmations outstanding: USMAN deactivated-user behavior (OQ-9); Figma badge/status frames (OQ-10); Deal join-model class names + won/done/resolved id-sets (OQ-12). Sprint 1 F-1 STILL OPEN pass 7: add TF-3466–3472 (Tasks 3–9, 16 BE days) to the new Jira sprint before this window opens (TPM Jira board edit).
  6. Create Ticket & Auto-Associate (P7) — web track Tasks 2-3 gated on CRM decisions overdue since 2026-07-04. Owner: PM/TPM — confirm whether the CRM embed reuse / Qontak One auth / embed-source allow-list decisions landed. If not, this is 17+ days overdue against the sprint, not "still waiting"; either chase the answer or explicitly descope Tasks 2-3 for this quarter.
  7. Create Ticket & Auto-Associate (P7) — Mobile track blocked on PM/TPM over-commitment decision. Owner: PM/TPM — defer Create-Ticket Mobile to next quarter, or secure ~10–11 more raw days of CDP-allocated Mobile capacity. Until decided, Alfi's #4 stays out of his active queue. (Sprint 1 blocker 6, unresolved since 2026-07-01 — third sprint.)
  8. Customer Event-Based Engine — CEBE (P8) — no RFC; Data/Infra unstaffed. Sprint 1 F-4 ESCALATED open 7 passes with zero board movement. Owner: Julio Jeffer — file the lightweight Jira Task for RFC-authoring, or record explicit not-started in this doc's Deviations. Separately, Data (Central DB schema, retriever/metrics, backfill) and Infra (streaming/queue, monitoring) tracks remain unstaffed (TBD (Infra) on the roadmap) — PM to staff Infra and confirm Data Team allocation before CEBE can be planning-ready.
  9. Export Customer Data with Layout (P3) — OQ-17, gates Should-Have only. No CDP "Customer Data" quota type / no s2s export-history register path today (OQ-17) blocks only the Should- Have EXP-S08 gate, not the core pipeline — Billing/IAG + Chat/Omnichannel-owned, non-blocking for this sprint's queued tasks. 🟡: notification ingest channel REST vs Kafka (OQ-10); OSS quota headroom (OQ-4); optional mobile tap-through routing (OQ-12).
  10. Multi-BSUIDs (CDP × CRM) (P9) — past-quarter target, no DRI, no timeline. Owner: PM — decide shipped / slipped to Q3 / closed, then set its health, DRI and timeline (or drop the row). Nothing proceeds on it until then.
  11. PII Encryption — Contact Service (P10) — ranked last pending a PM priority call. Effort is already sized (BE 10 / QA 3.25) but no CDP implementor is assigned. Owner: PM — decide sequencing and staffing before it can enter a future sprint's queues.
  12. CDP Contact Enrichment (P11) — not yet agreed for 26Q3 pickup. Effort still TBD; Legal (OQ-P1) and BI datamart (OQ-BI) blockers open. Owner: PM priority call.
  13. Customer Health Score (P12) — not yet agreed for 26Q3 pickup. Status draft, effort not sized, no RFC yet. Owner: PM priority call.

Jira reconciliation — findings ledger (2026-07-27)

State-not-log: one current state line per finding; the full evidence-anchored narrative lives in the dated pass files under reconciliations/2026-07-21-sprint-02/, latest pass-04.

Open / escalated (4 passes run, 2026-07-23 → 2026-07-27; 73 issues (72→73), WIP 22, done-since 0 — zero completions heading into tomorrow's P1 07-28 commitment):

  1. F-4 · coverage-gap · ESCALATED (9th pass) · Julio Jeffer / PM (Zhelia) · resolve the ADR — commit or deprioritize — before sprint close · pass-04
  2. F-5 · status-progress · OPEN · Ghozi / DRI · add the FE/Mobile chunk mapping · pass-04
  3. F-7 · status-progress · ESCALATED · DRI / PM · retro-cost or declare out-of-band · pass-04
  4. F-8 · scope-watch · ESCALATED (time-critical) · DRI (Zhelia) · retro-cost + recompute the burnup today, before 07-28 · pass-04
  5. F-14 · epic-wiring-drift · OPEN · DRI (Zhelia) · reparent TF-3550 to TF-3181 · pass-04
  6. F-24 · code-evidence-gap · OPEN · TPM + Azani · confirm TF-3555 code-free vs stale board · pass-04
  7. F-25 · code-evidence-gap · OPEN · TPM · confirm TF-3572 code-free vs stale board · pass-04
  8. F-26 · code-evidence-gap · OPEN · TPM · confirm TF-3584 code-free vs stale board · pass-04
  9. F-29 · plan-staleness · OPEN · sprint-planner · amend Azani's row 3 for her 3 live bucket items · pass-04

Resolved (closing pass linked; details in the pass files):

  • F-1 (coverage-gap) — resolved pass-04: tasks confirmed in-sprint.
  • F-3 (data-quality) — resolved pass-04: duplicate confirmed closed.
  • F-10 (off-plan-load) — resolved pass-03.
  • F-15 / F-16 (coverage-gap / assignment-drift) — resolved pass-04.
  • F-17 / F-19 (assignment-staffing / data-quality) — resolved pass-03.
  • F-20 (off-plan-load) — resolved pass-04.
  • F-21 (roster-mismatch) — resolved pass-04 — see pass-04 for the TF-3521 caveat.
  • F-22 (roster-mismatch) — resolved pass-04.
  • F-23 / F-27 (code-evidence-gap) — resolved pass-04: both code-free by resolution.
  • F-28 (epic-wiring-drift) — resolved pass-04: documented off-map exception.

Sprint review

  • Shipped / done: TBD at close.
  • Carried over: what remains unfinished, with remaining work restated — returned to the backlog as sprint-3 candidates, not pre-committed rows: the next sprint-planner run re-derives them from the current roadmap rank and pulls them deliberately (no default carryover).
  • Added mid-sprint: anything pulled in that wasn't planned (dated amendments, Expedite intakes).
  • Fed into status: the status/<date>.md reports updated with this sprint's progress (link them).
  • Decisions taken: link any delivery/decisions/ ADR + roadmap Priority reorder this sprint triggered — esp. the F-4 CEBE RFC/not-started call, F-5 residual (Team Owner breakdown sizing + FE/Mobile mapping), F-7/F-8 retro-costs, F-10 roster, and the Alfi-over-capacity defer/expand decision.

Retro actions

3–5 bounded process items (drop / add / keep / improve) about how the team plans and reconciles — distinct from the outcome bookkeeping above. Explicit inputs to the next sprint-planner run. Durable tooling/roster learnings (an engine bug, a name collision) go to their real homes (roster.json, an upstream issue), not just this list.

  • <drop | add | keep | improve>: <the process change, and who acts on it>.