Skip to main content

CDP — Sprint 1 Goals (2026-Q3)

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".

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

Sprint goal: protect the in-window commitment (Customer Segmentation 07-21), drive the Mention User build (P2, 08-14), and keep Team Owner (P4) confirmed chunks and gate-safe Legacy Migration groundwork moving. Alfi's Mobile over-commitment and CEBE's missing RFC are open PM/TPM calls under ## The real blockers; the 2026-07-14 A4 pull-in is under ## Deviations from roadmap priority.

Source (derived from): the ## Priority table in ../roadmap.md, reconciled against each initiative's rfcs/*.task-breakdown.md, and staffed per each initiative README's per-discipline implementors:. Effort figures (man-days) are shown for sequencing context only, not as a capacity cap — the standing capacity/load picture lives in ../capacity.md. QA defaults to Hendry; Izzul is backup only for timeline clashes or extra support (roadmap sequencing policy, rule 4).

Initiative index (agent lookup table)​

All paths are relative to this file. Priority ranks come from the roadmap ## Priority table.

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
P4Team Owner Field & Team Permission (TF-3185)none yet — no *.task-breakdown.md exists; work against the RFC's Detail 2.x chunks until one is generatedrfc · reviewprd
P5Legacy Migration: CRM Notes → CDP (TF-3183)breakdownrfc · reviewprd
P6Legacy Migration: CRM Activity Logs → CDP (TF-3182)breakdownrfc · reviewprd
P3Export Customer Data with Layout (TF-3181)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 exists yet; do not invent scope, see blockers below— (RFC not authored)core-infra · marketing · anchor

Not queued this sprint (excluded deliberately, not an oversight — see Deviations): Multi-BSUIDs (CDP × CRM) (P9, past-quarter target, no DRI/timeline) and PII Encryption — Contact Service (P10, ranked last pending a PM priority call, no CDP implementors assigned).

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 noted in Deviations below.

Ghozi (BE)​

Agent brief: Queue order below still runs Team Owner Field & Team Permission (P4) before Export (P3) — this no longer matches roadmap rank since the 2026-07-10 reprioritization moved Export ahead of Team Owner (see Deviations). Left as-is pending DRI confirmation of whether Team Owner's 2026-08-31 hard date forces a sequencing exception; do not silently reorder without that call. No task-breakdown exists for Team Owner yet; work the RFC's in-repo chunks directly (they build now behind the cdp_team_permission_enabled flag, default OFF) rather than waiting on Launchpad's GA-gating endpoint.

#Epic (Jira)TaskStatus
1Team Owner Field & Team Permission (TF-3185, P4)RFC Detail 2.3 (DB migration: team_owner_ids field + compound index) → Detail 2.4 (contact-service APIs, EvaluatePermissions extension) → Decision 9 (flag wiring) — the BE chunks that don't need the Launchpad teams-for-user endpointReady — 10 confirmed BE days; generate a *.task-breakdown.md from the RFC early this sprint so task ids exist for the rest of the quarter
2Export Customer Data with Layout (TF-3181, P3)Task 2.1 → 2.2 → 2.3 → 2.4 → 2.5 → 2.7 → 2.8 (foundation → serializers → email/notification client → export consumer → handler/routes → timezone formatting → export-history registrar)Ready — pick up once #1's flag-gated chunks are merged, or in parallel if capacity allows; 15 confirmed BE days

Berlianto (BE)​

Agent brief: Mention User's BE half is this sprint's top BE priority (P2, hard date 08-14 — just past this window, but its 10 BE days must start now to land by then). Legacy Migration: CRM Notes BE work can start building in parallel — the CRM Notes extraction client (Task 2.3) is built against a stub contract, so build proceeds even though running an end-to-end migration 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)Task 2.1 → 2.2 → 2.3 → 2.4 → 2.5 → 2.6 (note doc model → mention parser → sanitizer → active-user validation → wire into create/update → async notify job)Ready — 10 confirmed BE days against the 08-14 hard date; the sprint's largest BE build, must start now to land by then
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)Buildable 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

Julio Jeffer (BE)​

Agent brief: three initiatives, strict priority + hard-date order: Segmentation's 07-21 commitment is the nearest deadline in the whole sprint — finish its small remaining BE scope first. Then Legacy Migration Activity Logs (08-04). CEBE (P8) has no RFC yet — the only startable task is authoring one; do not build against the PRDs directly.

#Epic (Jira)TaskStatus
1Customer Segmentation (TF-2544, P1)Buffer bugfixing on Basic Attributes (Phase 1 CRUD already shipped in Q2)Ready — 4 confirmed BE days; hard date 2026-07-21 is inside this sprint window
2Legacy Migration: CRM Activity Logs → CDP (TF-3182, P6)Task 1 → 2 → 3 → 4 → 5 → 6 → 8 → 9 (schema/indexes → contact finder → schema transformer → MigrateBatch service → trigger/status/rollback/Phase-A gate → consumer/worker → sync watermark → association-log enricher)Ready — 17 confirmed BE days; build proceeds, but running Stage 0 stays gated on CRM's read-only DSN access + passing query plan (Gate A/B)
3Customer Event-Based Engine — CEBE (TF-3302, P8)Author the RFC & standardized design (the 5-day slice Jeffer already sized)Author-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

Jovi (FE)​

Agent brief: Mention User FE leads (P2, 08-14 commitment), then Export FE, then Create Ticket's web track. Create Ticket Tasks 2-3 were gated on CRM decisions due 2026-07-04 — that date is now past as of this sprint's start; confirm with CRM whether those decisions landed before starting those two tasks.

#Epic (Jira)TaskStatus
1Mention User in CDP Notes (TF-3184, P2)Task 1.1 → 1.2 → 1.3 → 1.4 (composer typeahead → notes-list chip render → deep-link → preview card, all mocked) → Task 2.7 → 2.8 (wire to real APIs → wire preview card to real user detail)Ready — 9.5 confirmed FE days against the 08-14 hard date
2Export Customer Data with Layout (TF-3181, P3)Task 1.1 → 1.2 → 1.3 → 1.4 (drawer fix → canExport gate → select-all shortcut → right panel) → Task 2.6 (wire real POST + error handling + Mixpanel)Ready — 7.5 confirmed FE days
3Create Ticket & Auto-Associate from CDP (TF-3359, P7)Task 1 (gate + UI shell) unblocked now; Task 2 → 3 (postMessage contract → fallback associate)Task 1 Ready; Tasks 2-3 check with CRM — their 2026-07-04 decision date has passed with no confirmation on file

Azani (FE)​

Agent brief: Segmentation's 07-21 commitment is the nearest deadline on the team — lead with it per the roadmap's 2026-07-01 correction, confirmed for this sprint's actual start date. Team Owner FE follows.

#Epic (Jira)TaskStatus
1Customer Segmentation (TF-2544, P1)Task 2.1 → 2.2 → 2.3 (SegmentStore integration tests → SegmentListPage integration tests → reachability fields)Ready — 3 confirmed FE days against the 07-21 hard date; highest urgency item in this sprint
2Team Owner Field & Team Permission (TF-3185, P4)FE chunks per the RFC's Detail 2.A (UI contract) / 2.C (UI state matrix) — team-owner field UI + per-note permission controlsReady — 10 confirmed FE days; no task-breakdown yet, same caveat as Ghozi's #1

Alfi (Mobile)​

Agent brief: confirmed over capacity by 11 days across 4 initiatives (load 1.46) — the three deadline-sequenced lanes alone (P2/P3/P4) already exceed his effective 24 days. Queue below still runs Team Owner (P4) before Export (P3), which no longer matches roadmap rank since the 2026-07-10 reprioritization — same open DRI-confirmation question as Ghozi's queue (see Deviations). Do not start Create Ticket's Mobile slice without an explicit PM/TPM call on deferring it or adding capacity (see blockers below).

#Epic (Jira)TaskStatus
1Mention User in CDP Notes (TF-3184, P2)Mobile note composer + chip render + notification handlingReady — 10 confirmed days against the 08-14 hard date, still the tightest deadline in his queue (before Team Owner 08-31)
2Team Owner Field & Team Permission (TF-3185, P4)Mobile rendering of Team Owner field + per-note permission flagsReady — 10 confirmed days; also has an unresolved external dependency (Mobile Squad contract, see blockers)
3Export Customer Data with Layout (TF-3181, P3)Mobile tap-through routing (OQ-12, optional)Ready — 5 confirmed days, no hard date
4Create Ticket & Auto-Associate from CDP (TF-3359, P7)Mobile trackDo not start — no room in Q3 per capacity.md; PM/TPM must decide defer-to-next-quarter vs. more CDP-allocated Mobile capacity before this enters any queue

Hendry (QA, primary)​

Agent brief: QA follows the same priority order as the BE/FE queues above. Team Owner Field & Team Permission's QA days are now confirmed (7.5 days, 1.5 man-weeks) — no unscoped items remain in this queue.

#Epic (Jira)TaskStatus
1Customer Segmentation (TF-2544, P1)QA against composite AC idsReady — 1.5 confirmed days, Lane C
2Mention User in CDP Notes (TF-3184, P2)QA against composite AC ids in the PRD's story tablesReady — 4.5 confirmed days, Lane B
3Team Owner Field & Team Permission (TF-3185, P4)QA against composite AC idsReady — 7.5 confirmed days (1.5 man-weeks), Lane B
4Legacy Migration: CRM Notes → CDP (TF-3183, P5)QA — before/after data crosscheckReady — 4.5 confirmed days, Lane B (manual crosscheck required)
5Legacy Migration: CRM Activity Logs → CDP (TF-3182, P6)QA — before/after data crosscheckReady — 6.5 confirmed days, Lane B
6Export Customer Data with Layout (TF-3181, P3)QAReady — 5 confirmed days, Lane B
7Create Ticket & Auto-Associate from CDP (TF-3359, P7)QA — web track Task 1Ready — 1.5 confirmed days, Lane C (strongest Lane-A candidate)

Izzul (QA, backup)​

Agent brief: per the roadmap sequencing policy (rule 4), Izzul is otherwise reserve-only — picking up work only if Hendry's timeline clashes or CDP needs extra QA support. Deviation (discovered pass 8, 2026-07-16): Izzul independently picked up QA BAU/DORA automation work ahead of Sprint 2's official start — see Deviations below; not a capacity/sequencing conflict with Hendry's queue.

#Epic (Jira)TaskStatus
1QA BAU — Automation Coverage & Deployment Support (TF-3521, off-plan, ungrouped)TF-3524 — Create Automation Test: Loyalty casesIn Progress — pulled in ahead of Sprint 2's official start

Deviations from roadmap priority​

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

  • Ghozi (BE): Team Owner Field & Team Permission (P4) ran before Export Customer Data with Layout (P3); future sprints use Export-first — decision 0002.
  • Alfi (Mobile): Team Owner Field & Team Permission (P4) ran before Export Customer Data with Layout (P3); future sprints use Export-first — decision 0002.
  • Hendry (QA): Team Owner (P4) and both migrations (P5/P6) ran before Export Customer Data with Layout (P3); future sprints use Export-first — decision 0002.
  • Azani (FE): Customer Segmentation (P1) leads Team Owner Field & Team Permission (P4) — again matches the roadmap's corrected order (Customer Segmentation reprioritized to P1 on 2026-07-07, see decisions/0001-reprioritize-segmentation-ahead-of-mention-user.md), not a deviation, restated because the 07-21 commitment now falls inside this sprint window and the order matters operationally.
  • Hendry (QA): Customer Segmentation (P1) now leads Mention User in CDP Notes (P2) in his queue, reversing the order this sprint doc originally shipped with — not a deviation, it is the same 2026-07-07 reprioritization taking effect. initiative-timeline-mapper confirmed this reorder has no forecast/capacity impact (Hendry has no contention between the two at his current load 0.60).
  • 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.
  • Alfi (Mobile) — Create Ticket (P7): explicitly excluded from this sprint's active queue despite being a staffed, confirmed-effort (10-day) item. This is the one "not capacity" call this sprint needs from PM/TPM before it can safely enter any future queue — see blockers below.
  • Julio Jeffer (BE) — Engineering Initiatives bucket item A4 (added 2026-07-14): worked off-plan in this sprint via Task TF-3499 ("Tidy dependencies: satori/go.uuid → google/uuid, pgx/v4 → v5", Done), originally misfiled under the TF-3477 adhoc Epic. Re-homed 2026-07-14 to Epic TF-3500 and split from Story TF-3504 per the bucket convention; tracker row A4 is now in-review (see cdp/engineering-q3-2026/README.md). A4 is 🟡 Standard, so per the pull rule it should only fill when the ranked queue is blocked/between items — it was pulled without that gate being recorded; noted here rather than silently absorbed. Remaining: Hendry's Lane-B QA gate, then close TF-3504 and flip A4 → done (rollup 1/4).
  • Multi-BSUIDs (P9) and PII Encryption (P10): not queued for anyone. Per CLAUDE.md doctrine, an unresolved/unsequenced item does not get invented into a queue row — both need a PM priority call first (see the Initiative index note above).
  • Izzul (QA) — QA BAU/DORA Epic pull-in (discovered pass 8, 2026-07-16): Izzul is working TF-3524 ("[QA] Create Automation Test — Loyalty cases", In Progress) under Epic TF-3521 ("26Q3 CDP - QA Automation Coverage & Deployment Support" in Jira — renamed 2026-07-16 by the TPM to match the Sprint 2 doc's convention), the CDP QA BAU Epic minted 2026-07-16 for Sprint 2. This predates Sprint 2's start; Izzul's queue above now reflects it. TF-3521 has no dedicated initiative folder/roadmap row yet — tracked here as an off-plan pull-in, same convention as the Engineering Initiatives bucket (TF-3500) A4 item, rather than a full registration, since it's a single BAU item so far. Revisit if TF-3521 accrues more sprint work.

The real blockers (not capacity)​

  1. Team Owner Field & Team Permission (P4) — flag-ON GA is gated on Launchpad shipping the teams-for-user(+descendants) API to the §2.4 contract, the "Team Only" permission radio, and the legacy→Launchpad team-name crosswalk. In-repo BE/FE/Mobile chunks (Ghozi #1, Azani #2, Alfi #2) build now regardless — Launchpad-owned ask.
  2. Team Owner Field & Team Permission (P4) — Mobile rendering of the field + per-note permission flags needs a contract confirmation from the Mobile Squad (Alfi #2).
  3. Legacy Migration: CRM Notes → CDP (P5) — running (not building) the migration is a 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 already tracked on the roadmap.
  4. Legacy Migration: CRM Activity Logs → CDP (P6) — Stage-0 go/no-go needs CRM Squad + Platform/CRM DBA to grant read-only Postgres DSN access (Gate A) and pass an EXPLAIN-ANALYZE query-plan/index check (Gate B) before any run — build proceeds without it.
  5. Create Ticket & Auto-Associate (P7), web track — Tasks 2-3 (Jovi #3) are gated on CRM embed reuse / Qontak One auth / allow-list decisions that were due 2026-07-04, three days before this sprint started. PM/TPM: confirm whether those decisions landed — if not, this is now overdue against the sprint, not just "still waiting."
  6. Create Ticket & Auto-Associate (P7), Mobile track — Alfi is over capacity by 11 days (load 1.46) once this is added. PM/TPM decision needed this sprint: defer 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.
  7. Customer Event-Based Engine — CEBE (P8) — no RFC exists. Jeffer's #3 is scoped to authoring one; 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.
  8. Export Customer Data with Layout (P3) — OQ-17 (no CDP "Customer Data" quota type / no s2s export-history register path) 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.
  9. Multi-BSUIDs (CDP × CRM) (P9) — past-quarter target with no DRI and no delivery/timeline.md. PM decision needed: shipped, slipped to Q3, or closed — nothing else proceeds on it until then.
  10. 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. PM to decide sequencing and staffing before it can enter a future sprint's queues.

Jira reconciliation — findings ledger (2026-07-21, close)​

State, not log. This ledger is the current status of every board-vs-plan finding — stable F-<n> ids (never reused), rewritten in place by each sprint-resync pass instead of appending a new narrative section. The full dated record of every pass (evidence, engine output, per-pass propagation worklists) lives in ../reconciliations/2026-07-07-sprint-01/ — one immutable file per pass; latest = pass 11, 2026-07-21 (close pass). Convention: .claude/reference/sprint-drift-audit.md §5. Passes 1–6 predate this ledger and number findings per-pass — each row cites its origin as p<pass>#<n>; the F-<n> ids are the canonical carry-forward keys. Sprint closed 2026-07-21 — open rows below are carry-forward inputs to Sprint 2 planning, re-testable only by a fresh sprint-drift-audit pass on sprint 21484.

Open / escalated (11 passes run, 2026-07-09 → 2026-07-21; close vitals: 78 → 80 issues, 66 done / 13 WIP / 1 to-do, 40 done since 2026-07-17; day 14 of 14):

  1. F-1 coverage-gap · ⛔ ESCALATED (9 passes) · owner TPM · CALM Tasks 3–9 (TF-3466–3472) + Create-Ticket web (TF-3426–3428) never entered the sprint; at close this is a Sprint-2 planning input — file them deliberately · pass 11. (origin p1#1)

  2. F-4 coverage-gap · ⛔ ESCALATED (9 passes, zero movement all sprint) · owner Julio Jeffer / PM · CEBE (TF-3302) RFC-authoring never boarded; Sprint 2 must file it or descope CEBE explicitly · pass 11. (origin p1#6)

  3. F-7 status-progress · ⛔ ESCALATED (4 rechecks) · owner DRI / PM · retro-cost the 7 done Mobile items (TF-3290–3294, TF-3296, TF-3506) or declare out-of-band · pass 11. (origin p6#21)

  4. F-8 scope-watch · ⛔ ESCALATED (4 rechecks, grew to 6 tasks) · owner DRI · confirm the datamart-hardening BE set (TF-3507/3508/3511/3518/3519 + TF-3537) under Segmentation P1 is in-scope (retro-cost) · pass 11. (origin p6#22)

  5. F-10 off-plan-load · ⛔ ESCALATED (3rd recheck) · owner TPM · add Zhelia Alifa (PM/DRI, TF-3478 READY TO DEPLOY) to roster.json or record in capacity.md as out-of-band PM capacity · pass 11. (origin p7#10)

  6. F-16 watch (no marker) · owner TPM · QA BAU Epic TF-3521 still single-item (TF-3524 Done); register an initiative folder only if Sprint-2 volume grows. (origin p8#16)

  7. F-17 status-progress · ⛔ ESCALATED (2nd recheck) · owner TPM / Jovi · backfill Mention User Phase-1 FE tasks 1.1–1.4 (~7 FE days, no board issues, dependent Phase-2 work Done/merged) via sprint-jira-sync — burnup understates the initiative · pass 11. (origin p10#17)

  8. F-18 informational (engine limitation) · CONFIRMED 2nd pass · off-map-Epic issues excluded from the per-assignee join (false "Izzul 0 issues" row) · report upstream to sprint-reconcile.mjs, no repo action · pass 11. (origin p10#18)

  9. F-19 code-evidence-gap · NEW (pass 11) · owner Jovi / TPM · TF-3429/TF-3430 (Export CHAT FE) board-Done, code only on unmerged branches — merge or revert board status; 0-credited · pass 11. (origin p11#19)

  10. F-20 code-evidence-gap · NEW (pass 11) · owner Berlianto / TPM · CRM Notes TF-3407 (unmerged branch) + TF-3408 (no trace) board-Done — merge or fix board; initiative stays 0% until corroborated · pass 11. (origin p11#20)

  11. F-21 scope-watch · NEW (pass 11) · owner DRI · Export: 5 done issues outside the 26-day breakdown (TF-3525, TF-3538, TF-3542, TF-3547, TF-3512) — retro-cost · pass 11. (origin p11#21)

  12. F-22 code-evidence-gap · NEW (pass 11) · owner TPM · adhoc bucket TF-3484/TF-3486 Done, no code trace in any registry repo — board fix or declare code-free (bucket rollup unaffected) · pass 11. (origin p11#22)

  13. F-23 blocked-done-conflict · NEW (pass 11) · owner TPM · CALM board reads 4/4 Done while real progress is 2 of 17 BE days (F-1's unfiled Tasks 3–9) — health stays at-risk, recorded in the 2026-07-21 dated status; resolves with F-1 · pass 11. (origin p11#23)

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

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

  • Azani zero board presence (p1#2) — resolved pass 4
  • Export Customer Data BE coverage (p1#5) — resolved pass 5: TF-3284–3288 in-sprint
  • TF-3464 in-progress-but-unsprinted (p1#8) — resolved pass 5: Done, code-corroborated
  • SPRINT_PRIORITY_DRIFT P1/P2 relabel (p2#9) — fixed pass 2; P3–P6 relabel (p4#16) — fixed pass 4, with Team-Owner-before-Export queue order open as Deviation, now confirmed as a standing sequencing exception 2026-07-16 — see team-owner-field-and-team-permission/delivery/decisions/0001-confirm-team-owner-sequencing-exception.md
  • roster.json missing → created pass 3
  • F-2 TF-3477 off-plan-load — resolved pass 7: bucket README stood up 2026-07-14, engine now tracks TF-3477
  • F-6 assignment-drift engine false positive — resolved pass 10: upstream fix at qontak-docs f41ad1a
  • Progress writes applied (latest first): Customer Segmentation 47% (status/2026-07-17.md), Mention User 32% (status/2026-07-17.md), Legacy Migration: CRM Activity Logs 8% (status/2026-07-17.md); Team Owner / Export / Create Ticket stay 0% (count-notes only — no man-day join; see pass 10)

Sprint review​

Closed 2026-07-21 by pass 11 (the close pass of record). Board at close: 80 issues, 66 done / 13 WIP / 1 to-do; 40 done in the final four days.

  • Shipped / done:
    • Mention User (P2) — full BE chain (TF-3325–3330), FE integration (TF-3331, TF-3382), 7 Mobile items (TF-3290–3294, 3296, 3506); 16/17 board issues done; 51% burnup.
    • Export (P3) — full BE chain (TF-3284–3288, 11.5d merged) + settings/API extras (TF-3525, 3538, 3542, 3547, 3512 — off-breakdown, F-21); 35% burnup.
    • Team Owner (P4) — the entire BE surface: all 12 TEAM-S stories (TF-3448–3458, TF-3488) done and merged behind the flag; FE Tasks 1–5 at Ready-to-Deploy; count-note 13/18.
    • Customer Segmentation (P1) — FE test tasks 2.1/2.2 done (earlier passes); TF-3401 (the 07-21 commitment's last priced task) reached Ready-to-Deploy but not Done on commitment day; 47%; + 6 datamart-hardening BE items (F-8).
    • QA test-case suites written for six initiatives (TF-3489–3495 set) + Izzul's TF-3524 (QA BAU automation).
    • Buckets: adhoc TF-3477 5/6 done; engineering TF-3500 A4/TF-3499 done (tracker in-review pending QA gate).
  • Carried over (→ backlog; Sprint 2 pulls deliberately from re-derived sources — no default carryover):
    • F-1 unfiled work: CALM Tasks 3–9 (TF-3466–3472, 15 BE days against the 08-04 date) and Create-Ticket web (TF-3426–3428) — never boarded this sprint.
    • F-4 CEBE RFC-authoring — zero movement all 14 days; file or descope.
    • Ready-to-Test/Deploy tail: Export FE (TF-3283/3289/3378, TF-3531 Blocked), Team Owner FE Tasks 1–5 (TF-3312–3316), Segmentation TF-3401, Mention User TF-3509, adhoc TF-3478.
    • CRM Notes: remaining Tasks 2.1–2.5 (+ F-20's unmerged 1.1/1.2).
    • Open decisions carried: Alfi's Mobile over-commitment / Create-Ticket Mobile defer (blocker 6), Multi-BSUIDs (P9) and PII Encryption (P10) sequencing.
  • Added mid-sprint: the 2026-07-14 A4 pull-in (TF-3499 → Epic TF-3500); Izzul's QA BAU Epic TF-3521/TF-3524 (pass 8); the datamart-hardening set under P1 (grew to 6, F-8); Export's 5 off-breakdown items (F-21); Zhelia's TF-3478 (F-10). Net board growth 73 → 80 issues.
  • Fed into status: six dated 2026-07-21 reports — Mention User 51%, Export 35%, Segmentation 47% commitment-day record, CALM 8% + F-23, CRM Notes 0% + F-20, Team Owner count-note; README caches + roadmap ## Portfolio progress & forecast updated in the same pass.
  • Decisions taken: 0001 Segmentation → P1 (2026-07-07); 0002 Export-first execution (2026-07-10 reprioritization); Team-Owner sequencing exception (2026-07-16). Still undecided at close: CEBE staffing (blocker 7), Create-Ticket Mobile (blocker 6), Multi-BSUIDs (blocker 9), PII Encryption (blocker 10).

Retro actions​

  1. Drop: letting task-breakdown tasks reach the sprint board lazily — F-1 held 9 passes because CALM Tasks 3–9 / Create-Ticket web were never filed; sprint-jira-sync should file the full Ready queue at sprint start (Sprint-2 planning input).
  2. Add: a retro-cost gate for off-breakdown work — F-7 (7 Mobile items), F-8 (6 datamart items), F-21 (5 Export items) all accumulated silent scope; DRI prices or declares out-of-band within one pass of appearing.
  3. Add: merge-before-Done discipline — F-19/F-20/F-22 show board-Done with unmerged/no code; assignees close only after merge (or state code-free explicitly in the ticket).
  4. Improve (tooling): report the F-18 engine limitation upstream to sprint-reconcile.mjs (off-map-Epic issues excluded from the per-assignee join → false roster-mismatch rows); add Zhelia to roster.json/capacity.md (F-10) so PM-executed work stops firing off-plan-load.
  5. Keep: the deterministic engine + offline --digest path (worked credential-less this close), and same-pass propagation — this close wrote six status entries in one pass.