Skip to main content

Bifrost — Sprint 1 Goals (2026-Q3)

Sprint window: 2026-07-06 → 2026-07-20 (extended from the original 07-17; see the ledger's date-correction history in the pass files)

Approach: priority-ordered backlogs per engineer, not capacity-boxed. Each person works their list top to bottom; if an item is genuinely blocked (external dependency, governance gate, or a missing design/spec — not just "no time left"), skip to the next ready item and circle 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; you are encouraged to work the list as far as it goes.

Source: the ## Priority table in ../roadmap.md, reconciled against each initiative's rfcs/*.task-breakdown.md.

Note vs. an earlier capacity-boxed draft of this plan: Syafrizal M.'s queue below leads with Qontak One Team Migration + Sales Invoice/Jurnal (P4/P5) rather than Self-Subs/Lite Seats (P6/P7). The Self-Subs-first order recorded elsewhere in the roadmap was a 2026-07-01 EM resequencing made specifically because he was over capacity for the quarter; since this sprint plan does not optimize for what fits, raw priority order takes over instead.

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 bifrost/delivery/sprints/2026-07-06-sprint-01.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 only real blockers", stop that item, note it, and move to my next Ready item.

Ground rules for the agent (and the human driving it):

  1. The task-breakdown is the work contract. Task ids in the queue tables (Task 1 → 2 → 3, T1 → T7, 2.1/2.2/…) 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. Cite existing composite ids exactly as written in the PRD.
  4. Effort numbers are context, not caps. Do not stop a queue because "the estimate is used up". Only the named blockers below justify skipping an item.
  5. Blocked ≠ idle. For blocked items you may still do non-gated prep the row allows (test planning, scaffolding behind a flag) if explicitly noted — otherwise skip cleanly to the next Ready item and record what you're waiting on.
  6. Do not touch Jira automation. Never trigger the jira-sync pipeline; the Jira mirror for these epics is maintained by hand per the repo convention (jira_epic on each initiative README, site jurnal.atlassian.net).
  7. Cross-person handoffs: if your task unblocks someone else's queue (e.g. Madani's P8/P9 unblock Satya's and Syafrizal's Downgrade User items), say so in your status update the day it merges.
  8. 🎯 PULL-TO-CLOSE = a commitment to finish this sprint, never "already closed" — completion is evidenced only by sprint:reconcile (verdict semantics).

Initiative index (agent lookup table)​

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

PriInitiative (Epic)Task breakdownRFCPRD
P1Deduction V2 (BIF-8644)breakdownrfc · reviewprd
P2Meta WhatsApp Pricing (BIF-8755, minted 2026-07-06)breakdown (12 md, authored 2026-07-06)rfc (draft)prd (draft)
P3Self Top-up (BIF-7797)breakdown—prd
P4Qontak One Team Migration (BIF-8642)breakdownrfc · reviewprd
P5Sales Invoice + Jurnal (BIF-8117)breakdownrfcprd
P6Self-Subs (BIF-8639)breakdownrfc · reviewprd
P7Lite Seats (BIF-8638)breakdownrfc · reviewprd
P8Downgrade Webhook (BIF-8643)breakdownrfc · reviewprd
P9Quota Management (BIF-8713)breakdownrfcprd
P10Downgrade User (BIF-8684)breakdownrfcprd
P11One CID Multiple WABA (BIF-8910; supersedes BIF-6428, the original Phase-1 build Epic — see F-1 resolution + decision 0001, 2026-07-19)breakdownrfc · reviewprd
P12Centralized SSO Token (BIF-7802)rfcs folder — per-repo FE breakdowns (crm-fe, hub-fe, hub-chat-v2-fe, launchpad-fe, cross-repo)same folder, per-repo RFCs + reviewsprd
P13Meta x Modpanel Call Usage (BIF-8658)breakdownrfcprd
P14Billing Expired Handling (BIF-8640)breakdownrfcprd
P15Qontak Launchpad Audit Logs (BIF-8659)breakdownrfc— (RFC-driven; no PRD)
P16Postpaid Usage Scheduler (BIF-8641)breakdownrfcprd
Adhoc lane26Q3 Adhoc Requests (BIF-8695, bucket — classed, not ranked)— (unsized; small self-contained stories)— (no RFC per story)11 PRDs · README per-story tracker — story ids A1…A11 with per-story Class (🔴 Expedite / 📅 Fixed-Date / 🟡 Standard / ⚪ Intangible), live Status, owners + Jira keys. Pull 🔴 Expedite first (A1/A2/A3/A9), ⚪ Intangible last (A10); Expedite MAY preempt ranked work (WIP ≤3 in flight, logged in the README ## Expedite log) — A9 is the current in-flight preemption for Syafrizal; A1/A3 remain FE-capacity escalations. Not a ## Priority rank; see the roadmap ## Adhoc / Interrupt 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.

Grehasta (BE)​

Agent brief: backend spine of the sprint — migration plumbing first (P4), then Self-Subs Phase-2 BE, then the two fully-open BE-only initiatives.

#Epic (Jira)Focus (task ids from the breakdown)Status
1Qontak One Team Migration (BIF-8642, P4)Task 1 → 2 → 3 → 4(BE) → 5, in order (source-tracking cols → receive path → General-team retry → invite BE → Chat/CRM trigger)Ready
2Self-Subs (BIF-8639, P6)Task 2.1 → 2.2 → 2.3 → 2.4 (migration → expose flags → initiate proxy → moderator-be gate)Ready
3One CID Multiple WABA (BIF-6428, P11)Full BE scopeReady — RFC review is BE PROCEED even though FE is on hold. Your BE progress is what Izzul's QA execution (his #2) follows — flag milestones to him. Gre's 2026-07-06 note: FE design review is needed on Detail 2.F before Syafrizal's #6 can unblock — flag your BE milestones to him so he can check the designs against them. ⚠️ 2026-07-07 Jira reconciliation: the BIF-6428 Epic shows status: Done in Jira — conflicts with this row still being open work. Confirm with PM/TPM before continuing spend — see Jira reconciliation section below.
4Meta x Modpanel Call Usage (BIF-8658, P13)Full BE scope (backend-only initiative)Ready — alerting confirmed required 2026-07-06 (Gre); the RFC's Google Chat discrepancy alert (§3/MMCU-S04) stays in scope, no descope
526Q3 Adhoc (BIF-8695, Adhoc lane) — BE for A4 (BIF-8749)Qontak One re-invite — BE half🟡 BE-advance → Q4 close (BE+FE; FE over cap). Contingent on BIF-6428 confirmed Done. Verdict per the Pull rule; story state in the tracker.

Satya (BE)​

Agent brief: Lite Seats immediately-startable tasks (2.1/2.2/2.4/2.5) are done + code-corroborated (pass-06, 2026-07-16); only 2.3 (B1 — ModPanel component codes) and 2.8 (B2 — permission list) remain, both blocked on external answers. Update 2026-07-16: pull Adhoc A2 (BIF-8751, SSO Change Owner webhook — BE-only 🔴 Expedite) immediately — it was this sprint's one forecasted firm bucket close that was never actually pulled (F-7); your #2 (Downgrade User) and #3 (SSO Token) are both Blocked so the eligibility gate is met. #3 (Centralized SSO Token) is externally blocked and downranked to P12 on 2026-07-08 — skip it.

#Epic (Jira)Focus (task ids from the breakdown)Status
1Lite Seats (BIF-8638, P7)Phase-2 BE — 2.1/2.2/2.4/2.5 done + code-corroborated (pass-06, 2026-07-16); only 2.3 (B1 — ModPanel component codes) and 2.8 (B2 — permission list) remain, both blocked on external answers — chase them, don't waitDone (startable) — blocked remainder
2Downgrade User (BIF-8684, P10)Full BE scopeBlocked on Downgrade Webhook + Quota Management (Madani) landing first — once those ship, pull this ahead of #4
3Centralized SSO Token (BIF-7802, P12)—Blocked — "no RFC is execution-ready" (Account & Launchpad SDK/infosec). Downranked P7 → P12 on 2026-07-08 (tech-debt, no instant customer value); skip it.
4Qontak Launchpad Audit Logs (BIF-8659, P15)Full BE scopeReady
526Q3 Adhoc (BIF-8695, Adhoc lane) — BE for A1, A2, A7A1 BIF-8750 · A2 BIF-8751 · A7 BIF-8736 — BE halves🎯 A2 = PULL-TO-CLOSE — never effective on the board (F-7) (BE-only Expedite). A1 = BE-advance + ESCALATE; A7 = BE-advance → Q4. Verdicts per the Pull rule; state in the tracker.

Hafriz (BE)​

Agent brief: P1 is the team's top priority and is now confirmed unblocked (2026-07-06, Hafriz's own alignment note) — start at #1 T1 → T7, then continue down the queue in order.

#Epic (Jira)Focus (task ids from the breakdown)Status
1Deduction V2 (BIF-8644, P1)T1 → T7 in order (hold ledger → create hold → available-balance gate → webhook transitions → EOD settlement → sweeper → cron)Ready — confirmed unblocked 2026-07-06 (Hafriz, team alignment); engineering may resume T1 at the top of the queue. Note: the RFC frontmatter is still in-review and the PRD still draft — PM should formally move the RFC to approved to close the paper trail on the Non-Goal #4 vs. authorize-at-send reconciliation.
2Sales Invoice + Jurnal (BIF-8117, P5)Task 1 → Task 2 → Task 3 (flag round-trip → Jurnal timeout → auth allowlist)Task 3 needs an OQ-2 + infosec call; 1 & 2 are ready now
3Billing Expired Handling (BIF-8640, P14)Full BE scopeReady, low-confidence estimate — expect to firm it up as you go
4Postpaid Usage Scheduler (BIF-8641, P16)Full BE scopeReady
526Q3 Adhoc (BIF-8695, Adhoc lane) — BE for A3, A8A3 BIF-8696 · A8 BIF-8718 — BE halves🎯 A8 = PULL-TO-CLOSE if a window opens (BE-only Standard; your P1 fills the sprint). 🔴 A3 = ESCALATE (Expedite BE+FE, second FE-hire trigger); BE-advance only if idle. Verdicts per the Pull rule.

Madani (BE)​

Agent brief: four items now, reordered 2026-07-06 to follow roadmap Priority rank (P2 → P3 → P8 → P9) per the alignment-notes update. #1 (Meta WhatsApp Pricing) is real work, not just review — the task-breakdown is now authored (12 md, 2026-07-06), so review it then start executing the Phase-1 tasks it flags as startable (Tasks 1.1–1.5; the open pricing decision + hub_core access gate still block the Phase-2 data values + verification). That means it can genuinely eat into time for #3/#4, which are still the sprint's highest-leverage items — they gate Downgrade User (Satya #2, Syafrizal M. #5, Izzul #1). If #1 runs long, flag it and pull #3/#4 forward rather than letting the unblock slip silently. Announce each merge; three queues are waiting on #3/#4.

#Epic (Jira)Focus (task ids from the breakdown)Status
1Meta WhatsApp Pricing (BIF-8755, minted 2026-07-06, P2)The task-breakdown is now authored (12 md, 2026-07-06) — review it, then start building the Phase-1 tasks it flags as startable (1.1–1.5); only the Phase-2 data values + the pieces gated on the open pricing decision / hub_core access waitReady — mid-sprint addition (Madani's 2026-07-06 note); highest-ranked item in the queue (P2); not review-only, so it may push #3/#4 later than planned — see Deviations note below
2Self Top-up (BIF-7797, P3) bugfix — BE halfFix BIF-8708 (wrong MUV nominal — likely option_value seed data) and BIF-8709 (MUV shows despite Unlimited component — show_by_component/hide_by_component gating), the 2 of 6 retest bugs (2026-07-06) that are BE-owned; the other 4 are FE and went to Syafrizal M. (his #11) per 2026-07-07 Jira triageReady — mid-sprint addition; unblocks Yoddi #2's retest and initiative close alongside Syafrizal's FE half
3Downgrade Webhook (BIF-8643, P8)Phase 1 (schema) → Phase 2 (logic & workers), full scopeReady — Bifrost-owned scope has no blockers; the chat/crm/content-team webhook contracts are separate cross-squad work, not a gate on this queue
4Quota Management (BIF-8713, P9)T1 → T8 in orderReady — plus, per Madani's 2026-07-06 note, start exploring with QA how to raise confidence on this initiative (decide the "how," then collaborate with Yoddi/Izzul on test-case coverage)
526Q3 Adhoc (BIF-8695, Adhoc lane) — BE for A5, A6, A10A5 BIF-8787 · A6 BIF-8788 · A10 BIF-8747 — BE🎯 A10 = PULL-TO-CLOSE (Intangible BE-only, pull when #1 hits its gate). A5/A6 = BE-advance → Q4 (BE+FE, FE over cap). Verdicts per the Pull rule.

Syafrizal M. (FE)​

Agent brief: the only FE queue — many small, independent Ready items (#1, #2, #3, #4, #5, #10, #11, #12) with the blocked ones interleaved; skip blocked rows without waiting and keep moving down. Syafrizal M. confirmed 2026-07-06 that #1 and #2 below are valid, active work; A9 is the 2026-07-14 Expedite amendment at #3.

#Epic (Jira)Focus (task ids from the breakdown)Status
1Qontak One Team Migration (BIF-8642, P4)Task 4 (FE half — mandatory team on invite)Ready — confirmed active 2026-07-06 (Syafrizal M.)
2Sales Invoice + Jurnal (BIF-8117, P5)Task 4 (Download-SI button + handling)Ready — confirmed active 2026-07-06 (Syafrizal M.)
326Q3 Adhoc (BIF-8695, Adhoc lane) — A9 Custom Solution Insights UI polish (BIF-8682), FE onlySettings-menu entry, sidebar-label rename, remove page title (3 ACs, no BE half)🔴 PREEMPT — reclassified ⚪ Intangible → 🔴 Expedite 2026-07-14, pulled in-progress now. Trivial single-discipline scope (~0.5 md) means no BE-without-FE WIP trap, so it closes this window at #3 by preempting Self-Subs (P6), formerly #3 and now #4. #1 (Qontak One Team) is already In Deployment and #2 (Sales Invoice + Jurnal) is In Progress per the 2026-07-13 Jira reconciliation. Self-Subs resumes at #4 right after; see ## Adhoc interrupts (this sprint) and the Expedite log. Read the PRD §8.
4Self-Subs (BIF-8639, P6)Task 1.1 → 1.3 → 2.5Ready
5Lite Seats (BIF-8638, P7)Task 1.1 (Phase-1 UI)Ready
6Downgrade User (BIF-8684, P10)FEBlocked on Downgrade Webhook + Quota Management BE landing
7One CID Multiple WABA (BIF-6428, P11)FEBlocked — RFC review HOLD on Detail 2.F (component contracts/frames/UI states not decided). Gre's 2026-07-06 note: this needs an FE review of the proposed designs — check the designs against Grehasta's BE milestones (his #3) as the concrete next step to clear the hold. ⚠️ 2026-07-07: BIF-6428 shows status: Done in Jira — see Jira reconciliation section below before treating this as live scope.
8Centralized SSO Token (BIF-7802, P12)All FE (per-repo breakdowns: crm-fe, hub-fe, hub-chat-v2-fe, launchpad-fe, cross-repo)Blocked — same external SDK gate as Satya's item above; also downranked P4 → P7 in this queue (roadmap P7 → P12) on 2026-07-08.
9Billing Expired Handling (BIF-8640, P14)FENot yet spec'd — the FE RFC hasn't been authored, this is a stub estimate. Flag to PM to scope; do not have an agent invent the FE design from the BE RFC.
10Qontak Launchpad Audit Logs (BIF-8659, P15)FEReady
11Postpaid Usage Scheduler (BIF-8641, P16)FEReady
12Self Top-up (BIF-7797, P3) bugfix — FE halfFix BIF-8704 (help-center redirect), BIF-8705 (continue-button blocked), BIF-8706 (minus balance/excess not showing), BIF-8707 (missing PPN/Service Fee hint)Ready — assigned 2026-07-07 per Jira triage (see Jira reconciliation section); runs alongside Madani's BE half (BIF-8708/8709) to unblock Yoddi #2's retest
1326Q3 Adhoc (BIF-8695, Adhoc lane) — FE for the 6 remaining BE+FE storiesA1, A3, A4, A5, A6, A7 — FE halves (keys in the tracker)🔴 ESCALATE — no real slot (queue full through #12); these 6 FE halves are the gate behind every "BE-advance → Q4" verdict above. A1 + A3 are the two Expedite second-FE-hire triggers (ADR 0001). If a second FE lands, pull in Class order.

Yoddi (QA, primary)​

Agent brief: #2 (Self Top-up E2E BIF-8382) was the sprint's one guaranteed initiative-closer, but is now blocked on new bugs found during retest (2026-07-06) — skip to #1 (now Ready, Deduction V2 unblocked) and the rest of the queue, and circle back to #2 once Madani's bugfix lands. For each item, QA scope = the composite AC ids (<STORY-ID>/AC-n) in the initiative PRD's Section-8 story tables; check the initiative README's qa_lane for how heavy the manual gate is.

#Epic (Jira)FocusStatus
1Deduction V2 (BIF-8644, P1)—Ready — epic confirmed unblocked 2026-07-06 (Hafriz)
2Self Top-up (BIF-7797, P3)Finish BIF-8382 E2EBlocked — new bugs found during retest 2026-07-06 (Syafrizal M./Yoddi); holds until both halves land — Madani's BE bugfix (his #2, BIF-8708/8709) and Syafrizal M.'s FE bugfix (his #11, BIF-8704–8707), assigned 2026-07-07 — then retest closes this initiative
3Qontak One Team Migration (P4)QA for Tasks 1–5Ready
4Sales Invoice + Jurnal (P5)QA for Task 1/2/4Ready
5Self-Subs (P6)QA Phase 1 + Phase 2Ready
6Lite Seats (P7)QA Phase 1 + Phase 2Ready
7Downgrade Webhook (P8)QAReady
8Quota Management (P9)QAReady
9Centralized SSO Token (P12)—Blocked with the epic; downranked P6 → P9 in this queue (roadmap P7 → P12) on 2026-07-08
10Meta x Modpanel (P13)QAReady
11Billing Expired Handling (P14)QAReady (stub scope)
12Qontak Launchpad Audit Logs (P15)QAReady
13Postpaid Usage Scheduler (P16)QAReady
1426Q3 Adhoc (BIF-8695, Adhoc lane) — QA for all 11 stories (Lane B)Per-story AC verification against each PRD §8🎯 Only the PULL-TO-CLOSE stories are testable this sprint (A2 firm; A8/A10 if windows open; A9 after its FE merge) — run in gaps as each BE merge lands, not batched (you are at 0.95; Izzul backup ≈1 day). BE+FE stories sequence QA in Q4.
15QA BAU — Automation Coverage & Deployment Support (BIF-8869)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: both items are gated on BE progress, but #2 has agent-ready prep now — author the test plan against the BE-PROCEED half of the One CID RFC while Grehasta builds.

#Epic (Jira)FocusStatus
1Downgrade User (BIF-8684, P10)QABlocked on BE prereqs (same as Satya/Syafrizal's items)
2One CID Multiple WABA (BIF-6428, P11)QACan start test planning now against the BE-PROCEED half; full execution follows Grehasta's BE progress. ⚠️ 2026-07-07: BIF-6428 shows status: Done in Jira — see Jira reconciliation section below before continuing test-planning spend.
3QA BAU — Automation Coverage & Deployment Support (BIF-8869)Lead or back up release verification and partner with Yoddi on automation coverage; 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

QA BAU Jira-item contract (Yoddi & Izzul)​

This is a standing QA workstream, not a new initiative or capacity estimate. Yoddi and Izzul share ownership: Yoddi leads automation-coverage improvements, while Izzul leads or backs up deployment verification as availability permits.

AI execution instruction — create Jira items: For every discrete QA BAU outcome, Yoddi's or Izzul's AI must manually create a Jira item in the BIF project before starting work. Use a Task for planned automation or deployment-support work, and a Bug when verification finds a product defect. Put work expected to finish in this window in Bifrost 26Q3 Sprint 1; otherwise leave it in the backlog. Set BIF-8869 as the parent Epic. Do not use the jira-sync pipeline.

Each Jira item must include:

  • one of these summaries: QA Automation — <flow> regression coverage or QA Deployment Support — <service/release> verification;
  • Yoddi or Izzul as assignee; the affected service, user flow, and related initiative, release, incident, or defect when applicable;
  • the coverage gap or deployment trigger, the checks to automate or execute, and the expected evidence of completion (test-run result, smoke-test result, or defect report);
  • a completion note containing the outcome, remaining risk, and linked follow-up issues.
BAU workstreamRequired practiceOutcome
Increase automation coverageIdentify regression gaps from delivered changes, retests, and escaped defects; add or maintain automated coverage for the highest-frequency and highest-risk paths; stabilise flaky tests and test data that block dependable execution.More release-critical flows have reliable automated regression coverage.
Support regular deploymentsConfirm test scope and environment readiness for each planned deployment; execute the agreed pre-release checks; run post-deployment smoke verification; and promptly report the result or a blocking defect.Each deployment has timely QA confidence and a recorded verification outcome.

Deviations from roadmap priority​

The one fact this sprint owns (everything else above is a render of the roadmap ## Priority table). Queues follow roadmap Priority rank except:

  • Syafrizal M. (FE): this sprint runs his queue in raw priority order — Qontak One Team (P4) + Sales Invoice/Jurnal (P5) lead, then Self-Subs (P6) / Lite Seats (P7). The roadmap's 2026-07-01 EM resequencing put Self-Subs first because he is over capacity for the quarter; this sprint is deliberately not capacity-boxed, so raw rank takes over for the window. Tactical, one-sprint only — if it recurs, it must be reconciled into the roadmap Priority table (or an ADR), not left to live here.
  • Meta WhatsApp Pricing (new roadmap P2, inserted 2026-07-06 mid-sprint): the roadmap ranks above were shifted down one (old P2→P3 … P15→P16) to match. It was originally intentionally absent from the engineer queues — draft with no RFC/task-breakdown, so there were no task ids to queue. Update 2026-07-06 (Madani's alignment note): a PRD (service-message-billing.md) and RFC (service-message-billing.md) now exist (both still draft), and the task-breakdown is now authored (service-message-billing.task-breakdown.md, 12 md, Phase 1 actionable) — the roadmap/capacity "no task-breakdown" notes are reconciled to the 12 md figure. Madani reviews the breakdown and starts building the Phase-1 tasks it flags as startable (1.1–1.5, his #1) — this is real engineering work, not just review. The pricing decision (absorb / pass-through / bundle) and hub_core access gate are still open and remain PM-owned, and block the Phase-2 data values + whichever tasks depend on them, but the rest can proceed this sprint rather than waiting for next sprint. (The breakdown has landed — agents should build from it, not from the impact analysis.)
  • Madani's queue reordered 2026-07-06 to follow roadmap Priority rank (P2 Meta WhatsApp Pricing → P3 Self Top-up bugfix → P8 Downgrade Webhook → P9 Quota Management), now that P2 and P3 both carry actionable work for him. This is not a deviation from Priority rank — it's the queue catching up to it — but it is a real deviation from the leverage-first framing this sprint plan originally used for Madani ("shortest queue, highest leverage — P8+P9 first"): #3/#4 still gate three other queues (Satya #2, Syafrizal M. #5, Izzul #1), and unlike a quick review, #1 is genuine build work that can push #3/#4 later than planned. Accepted trade-off for now since it follows Priority rank; if #1 runs long, escalate rather than letting the Downgrade User unblock slip silently — pull #3/#4 forward if the delay becomes material.
  • Self Top-up bugfix + Meta WhatsApp Pricing review (Madani #2/#1) and Self Top-up retest hold (Yoddi #2), both mid-sprint additions, 2026-07-06: captured directly in each queue table above rather than here, since they map cleanly to existing initiatives (P3, P2).
  • "USMAN Team" new payload request (Gre's alignment note, 2026-07-06): a cross-team ask to add a new payload, requested by another team, that does not map to any initiative in the index table above. Per sprint doctrine this is not invented into a queue row without a roadmap/effort decision — it needs PM scoping (which initiative it belongs to, or whether it is net-new) before it can enter any engineer's queue. Flag to PM; do not have an agent start building against it yet.
  • 26Q3 Adhoc bucket (BIF-8695) — accommodated mid-sprint 2026-07-08, revised 2026-07-09 to the Class-of-Service model (doctrine): classed not ranked, no ## Priority rank, append-only; canonical per-story state in the README tracker, rendered into the queues above via the Pull rule. Deterministic forecast: BE-only A2 (firm) / A8 / A10 close; the six BE+FE stories BE-advance → Q4; A1/A3 are the two Expedite FE-capacity escalation triggers (ADR 0001). Effort deliberately unsized.
  • A9 reclassified ⚪ Intangible → 🔴 Expedite 2026-07-14 — the bucket's first PREEMPT (FE-only, ~0.5 md, so no unfinishable-WIP trap): preempts Self-Subs (P6) on Syafrizal M.'s queue; see his #3 row, ## Adhoc interrupts, the Expedite log, and the Self-Subs status note. No change to the A1/A3 escalation.

Adhoc interrupts (this sprint)​

Bounded, append-only record of adhoc stories that entered a running sprint as a genuine Expedite preemption (doctrine: adhoc-interrupt-doctrine.md). This renders the decision recorded in the bucket README's ## Expedite log; it does not originate it. sprint_goal is unchanged by any row here — the displaced ranked item is simply carried over (or, as below, resumes immediately after a sub-day interrupt).

StoryDateOwner queuePreemptsStatus
A9 (BIF-8682)2026-07-14Syafrizal M. (FE)Self-Subs (P6), formerly his #3 and now #4in-progress — see Syafrizal's #3 row above; Self-Subs resumes at #4 right after this ~0.5 md item closes

The only real blockers (not capacity)​

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

Resolved this sprint (2026-07-06):

  • Deduction V2 (P1) — Hafriz confirmed the blocked status was stale and engineering is clear to resume. Hafriz #1 and Yoddi #1 both move to Ready. Paper-trail gap: RFC frontmatter is still in-review and the PRD still draft — PM should move the RFC to approved to make the repo match the confirmed decision.

Active:

  1. Centralized SSO Token (P12) — external (Account & Launchpad): @mekari/sdk/Session Manager + infosec sign-off. No engineering path around this. Unblocks: Satya #3, Syafrizal #7, Yoddi #9.
  2. Lite Seats B1/B2 — need answers from Billing/ModPanel (component codes) and Commercial/Product (permission list); only blocks sub-tasks 2.3 and 2.8, not the epic.
  3. Downgrade User (P10) — structurally depends on Downgrade Webhook (P8) + Quota Management (P9) shipping first — Madani's queue is the unblock. Unblocks: Satya #2, Syafrizal #5, Izzul #1.
  4. One CID (P11) FE — RFC review HOLD on Detail 2.F, needs a design/contract decision (PM/Design-owned) before FE can start. BE and QA planning proceed regardless. Concrete next step per Gre's 2026-07-06 note: Syafrizal (FE) reviews the proposed designs against Grehasta's BE progress.
  5. Self Top-up (P3) retest — new bugs found during Syafrizal M./Yoddi's 2026-07-06 retest. Madani owns the fix (his #2); blocks Yoddi's #2 retest/close.

Everything else is open — no artificial ceiling, just work the list in order.

Alignment notes (2026-07-06) not otherwise actionable this sprint​

One item from this date's alignment meeting doesn't map to a queue row or an existing blocker and is recorded here so it isn't lost, without inventing scope:

  • Syafrizal M.: recheck and validate initiatives. A general due-diligence ask (not tied to one initiative) to re-verify the roadmap/sprint state is accurate — reflected in this sprint's updates (Deduction V2 unblock, Self Top-up bug status, Meta WhatsApp Pricing RFC now existing) rather than as a separate task.

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

State, not log — final. The sprint closed with pass 10, 2026-07-21 (fresh full pull: 147 issues, +5 vs pass 9; 85 done · 15 WIP · 47 To Do; oldest WIP BIF-8570, ~34 days). Full pass narratives live in ../reconciliations/2026-07-06-sprint-01/. Findings still open below are carried to Sprint 2 as planning inputs — they are re-tested there, not here; this ledger is frozen at close.

Open / escalated at close (10 passes, 2026-07-07 → 2026-07-21 — carried forward):

  1. F-4 off-plan-load — ⛔ ESCALATED (9 passes): BIF-8570 In Progress ~34d; second-FE ADR 0001 still proposal/dri: TBD. Owner: EM/TPM — decide in Sprint 2 week 1.
  2. F-8 off-plan-load — STILL OPEN: BIF-8757 grew to 30 in-sprint issues at close. Owner: TPM — tracked-bucket-container decision.
  3. F-14 code-evidence-gap — STILL OPEN, downgraded: BIF-8708/8709 no code trace, but retest BIF-8773 passed + Done 2026-07-20 (functional verification). Owner: Madani — one-line confirmation of where the fix landed.
  4. F-15 (scope question) — STILL OPEN: BIF-7825 off-breakdown; BIF-8760 ended Ready to Test. Owner: TPM.
  5. F-16 bucket-tracker-drift — ⛔ ESCALATED: A9 Story BIF-8682 still To Do while children are Done and BIF-8829–8833 are Ready to Merged / In Deployment. Owner: Addo — board fix.
  6. F-17 bucket-tracker-drift — STILL OPEN: A11 BIF-8612 Waiting Confirmation, unassigned. Owner: TPM.
  7. F-18 blocked-done-conflict — STILL OPEN (decision only): all 10 BIF-8642 issues Done; README health: needs the completion decision (Sprint-2 remainder = Tasks 7–8 + BIF-8911). Owner: Addo/TPM.
  8. F-19 epic-wiring-drift — ⛔ ESCALATED: 9 off-map parent Epics at close (BIF-7803 ×12, BIF-8101 ×8, BIF-8757 ×30, BIF-7795 ×1, BIF-8869 ×2, BIF-8293 ×3, BIF-7792 ×1, BIF-7550 ×1, BIF-7949 ×3). Owner: TPM → jira-alignment-check.
  9. F-22 coverage-gap (P9) — STILL OPEN, first movement: BIF-8715 Done 2026-07-20; 8 To Do remain. Sprint 2 Madani #4 owns T1–T8.

Resolved / closed at close (one line each; evidence in the linked pass files):

  • F-7 forecast-at-risk — closed pass 10: A2 (BIF-8751) confirmed never entered sprint 21367 — recorded as a forecast miss in the Sprint review; Sprint 2 re-routes it to Satya as PULL-TO-CLOSE.
  • F-10 coverage-gap — closed pass 10: P13/P14/P15/P16 ended at zero board presence — recorded in Carried over; Sprint 2 queues them deliberately (P15's four tasks are in Sprint 21464).
  • F-13 code-evidence-gap — resolved post-close corroboration, 2026-07-19: BIF-8803/8804 were genuine redirects (BIF-8792/8793), code-verified merged.
  • F-1 One CID blocked-done-conflict — resolved pass 8 via decision 0001; Epic BIF-8910 owns the 26Q3 remainder.
  • F-9 bucket-tracker-drift (core children) — superseded pass 8; residual drift tracked as F-16/F-17.
  • F-20 Meta WhatsApp Pricing — substantially resolved pass 8; Phase-1 3/5 corroborated.
  • F-21 Downgrade Webhook — Phase-1 half corrected + resolved pass 9; Phase 2 genuinely unstarted; code_repos override added to the README.
  • F-2 → superseded into F-6/F-10 · F-3 resolved pass 4 · F-5 superseded by F-9 · F-6 resolved pass 4 · F-11 closed benign pass 4 (pattern resurfaced, no reopen) · F-12 superseded by F-18.
  • Progress write-ups: deduction-v2 81% (pass 7 → status) · qontak-one-team 81% (pass 6) · lite-seats 13% (pass 6) · self-subs held 3% (pass 5; recompute owed) · meta-whatsapp-pricing 33% held pending F-20 confirmation · downgrade-webhook held pending F-21 confirmation · sales-invoice-jurnal unchanged (F-15).

Sprint review​

Final — written at close (pass 10, 2026-07-21) from the 147-issue close digest + the pass-file history.

  • Shipped / done:

    • Deduction V2 (P1): T1–T7 BE complete + code-corroborated (BIF-8740–8746); BIF-8824 stakeholder sign-off Done. Reopened daily-rollup scope (M0–M5) is Sprint-2 work per ADR 0002.
    • Qontak One Team Migration (P4): all 10 in-sprint issues Done — incl. the BE Launchpad endpoints BIF-8864/8865/8866 (resolved 2026-07-19/20). Completion decision owed (F-18); Tasks 7–8 + BIF-8911 QA are Sprint-2 scope.
    • Self Top-up (P3): retest BIF-8773 Done 2026-07-20, closing BIF-8382 E2E. New bugs BIF-8844/8845 carried to Sprint 2 (Madani #2 / Yoddi #3). Fix-evidence caveat: F-14 confirmation still owed by Madani.
    • Lite Seats (P7): Phase-2 BE subset done + corroborated (BIF-8848–8851); 2.3/2.8 remain externally blocked.
    • Meta WhatsApp Pricing (P2): all 5 in-sprint issues Done (Phase-1 3/5 corroborated per the 2026-07-19 post-close walk; Task 1.4 descoped, 1.5 pricing-gated).
    • Downgrade Webhook (P8): Phase 1 (schema) merged + corroborated; Phase 2 confirmed unstarted (F-21) — Sprint 2 Madani #3.
    • Self-Subs (P6): Task 2.2 both halves done (BIF-8802 hub-service half resolved 2026-07-20; BIF-8792/8793 redirects code-verified).
    • Quota Management (P9): first task Done (BIF-8715, 2026-07-20); T1–T8 remainder is Sprint 2.
    • Adhoc A9 (BIF-8682): children BIF-8880 (FE) + BIF-8876 (QA) Done; follow-on FE cluster BIF-8829–8833 Ready to Merged / In Deployment; parent Story still To Do (F-16 board fix owed).
  • Carried over (returned to the backlog; Sprint 2 pulled them deliberately — no default carryover):

    • A2 / BIF-8751 — never entered Sprint 1 (F-7 closed as a forecast miss); Sprint 2 Satya #3.
    • Centralized SSO Token (P12) — external gate narrowed to SB-2 Session Manager + Infosec CSP whitelist.
    • One CID FE (P11) — Detail 2.F HOLD unchanged; BIF-8910 owns the remainder.
    • Downgrade User (P10) — paused, deliberately out of Sprint 2.
    • P13/P14/P15/P16 — zero Sprint-1 board presence (F-10 closed as outcome); ranked low in Sprint 2 queues, P15's four tasks now in Sprint 21464.
    • Open findings F-4, F-8, F-14, F-15, F-16, F-17, F-18, F-19, F-22 — frozen in the close ledger above, each with a named owner; re-tested under Sprint 2's audit cadence.
  • Added mid-sprint:

    • Meta WhatsApp Pricing (P2) inserted 2026-07-06 with PRD/RFC/task-breakdown authored.
    • 26Q3 Adhoc bucket classed as 🔴/📅/🟡/⚪ and distributed into queues 2026-07-08/09.
    • A9 (BIF-8682) reclassified ⚪ Intangible → 🔴 Expedite and preempted Syafrizal's Self-Subs slot on 2026-07-14.
  • Fed into status:

    • deduction-v2/delivery/status/2026-07-17.md — 81% (13/16).
    • The 2026-07-20 dated entries written during Sprint 2 pass-01 propagation (self-topup, qontak-one-team, and peers) are the latest evidenced burnups; pass 10 adds no new man-day writes.
    • Still held: sales-invoice-jurnal pending F-15; meta-whatsapp-pricing Phase-2 gated.
  • Decisions taken:

Retro actions​

  1. Adopt a per-sprint max-escalation-of-3 rule. F-1 (One CID) was open through 7 passes with no ADR. Any finding still open on its 3rd recheck must route to a decisions/ ADR, dated status/ risk, or descope — not carry to the 6th+ pass.
  2. Close the qontak-billing / report-worker evidence gap. These repos were skipped in every pass, so all Done issues there grade PARTIAL. Before Sprint 2 close, either add sibling checkouts to the evidence registry or establish a board-corroboration fallback (merge-commit search / Bitbucket UI) so F-20/F-21-style gaps don't recur.
  3. Enforce Jira Story close when children are Done. A9 (F-16) had FE + QA children Done while the parent Story BIF-8682 stayed To Do. Add a daily standup check: if all child Tasks are Done, move the Story.
  4. Make the second-FE-engineer decision a Sprint 2 planning input. F-4 and six BE+FE adhocs (A1/A3/A4/A5/A6/A7) are blocked solely by Syafrizal's capacity. Don't let this roll as a passive observation into Sprint 3.
  5. Reconcile roadmap capacity prose with capacity.md. F-4 surfaced contradictory figures (1.21/11d canonical vs 1.13/7d stale prose). Roadmap risks should derive from capacity.md, not be hand-maintained.

Post-close corroboration addendum (2026-07-19)​

Retro action #2 actioned: qontak-billing + report-worker cloned and walked, closing the evidence gaps F-13/F-14/F-20/F-21 were held on. Full evidence (commits, PRs, Jira quotes): post-close corroboration file. Summary — one line per finding:

  • F-13 (self-subs BIF-8803/8804) — resolved: both were genuine redirects (BIF-8792/BIF-8793), code-verified merged; Task 2.2 is a real two-repo split, only the 0.267.0 release landing remains.
  • F-14 (self-topup BIF-8708/8709) — still open, stronger: zero code trace across all three in-scope repos; board Done likely stale unless Madani/TPM confirms a no-diff fix.
  • F-20 (Meta WhatsApp Pricing) — substantially resolved: Phase-1 3/5 corroborated; only the descoped Task 1.4 and pricing-gated Task 1.5 remain.
  • F-21 (Downgrade Webhook) — split: Phase 1 schema merged; Phase 2 logic confirmed unmerged — any Done board status there is a genuine conflict for Madani/TPM.
  • New, unresolved: BIF-8813/PR #296 also carries wa_balance_holds/wa_reconciliation_batches migrations mapping to no task-breakdown — flagged to TPM as unexplained scope.

These updates are reflected forward in 2026-07-21-sprint-02.md, where the live, actionable versions of this evidence now live.