Skip to main content

Bifrost — Program Roadmap

Delivery / Program Management — team-level rollup across the team's initiatives.

Portfolio

InitiativeTarget quarterHealthDRIImplementorsQATimeline
Deduction V22026-Q3backlogaddo.hernando@mekari.comHafrizYoddi, Izzultimeline
Downgrade Webhook2026-Q3addo.hernando@mekari.comMadaniYoddi, Izzultimeline
Lite Seats2026-Q3pm-group.qontak@mekari.comSatya, Syafrizal M.Yoddi, Izzultimeline
Self-Subs — New Subscription, Renewal & Upgrade2026-Q3at-riskaddo.hernando@mekari.comGrehasta, Syafrizal M.Yoddi, Izzultimeline
Billing Expired Handling2026-Q3addo.hernando@mekari.comHafrizYoddi, Izzultimeline
Postpaid Usage Scheduler2026-Q3pm-group.qontak@mekari.comHafrizYoddi, Izzultimeline
Qontak One Team Migration2026-Q3pm-group.qontak@mekari.comGrehasta, Syafrizal M.Yoddi, Izzultimeline
Meta x Modpanel Call Usage Comparison2026-Q3addo.hernando@mekari.comGrehastaYoddi, Izzultimeline
Qontak Launchpad Audit Logs2026-Q3vinsensius.widhismara@mekari.comSatyaYoddi, Izzultimeline
Quota Management — User Quota Integration2026-Q3addo.hernando@mekari.comMadaniYoddi, Izzultimeline
Downgrade User2026-Q3addo.hernando@mekari.comSatyaYoddi, Izzultimeline
Self Top-up Improvement2026-Q3addo.hernando@mekari.comHafriz, Madani, Syafrizal M.Yoddi, Izzultimeline
Integrate Sales Invoice with Jurnal2026-Q3addo.hernando@mekari.comHafriz, Syafrizal M.Yoddi, Izzultimeline
One CID Multiple WABA2026-Q3addo.hernando@mekari.comGrehasta, Syafrizal M.Yoddi, Izzultimeline
Centralized SSO Token (realizes the SSO-token proposal)2026-Q3at-risksyafrizal.abdillah@mekari.comSatya, Syafrizal M.Yoddi, Izzultimeline

Priority

PriorityInitiativeDepends onNote
P1Deduction V2Meta max price
P2Self Top-up Improvement[QA] as-built ~90% (Epic BIF-7797, In Progress); Commit — only E2E BIF-8382 left
P3Qontak One Team MigrationRFC approved (R3 PROCEED); 15.5 md sized incl. Task 5; Chat/CRM trigger contract signed 2026-07-01 (OQ-1/OQ-9 closed) — Commit-ready
P4Integrate Sales Invoice with Jurnal[QA] — decrease support ticket; FE resequenced 2026-07-01 ahead of Centralized SSO Token (see Capacity summary)
P5Self-Subs — New Subscription, Renewal & UpgradeNo downgrade in this phase
P6Centralized SSO Tokencentralized web session via Mekari Session SDK (SSO ops docs: ../sso); FE now serial-last behind Qontak One Team + Sales Invoice + Jurnal (resequenced 2026-07-01) — Q3 E2E fit at risk
P7Lite Seats[internal] piloting
P8Downgrade WebhookPre-req of downgrade user
P9Quota Management — User Quota IntegrationPre-req of downgrade user
P10Downgrade UserDowngrade Webhook, Quota ManagementDowngrade user logic
P11One CID Multiple WABA[collab test] — sized 2026-07-01 (25.5 md); RFC still draft but reviewed at 7.0/10 (BE PROCEED / FE HOLD on Detail 2.F); Syafrizal M. (FE) still over capacity, no open slot; QA reassigned to Izzul 2026-07-01, Yoddi back under
P12Meta x Modpanel Call Usage ComparisonPM-confirmed rank (2026-07-01)
P13Billing Expired HandlingPM-confirmed rank (2026-07-01)
P14Qontak Launchpad Audit LogsPM-confirmed rank (2026-07-01)
P15Postpaid Usage SchedulerPM-confirmed rank (2026-07-01)

Portfolio progress & forecast

Initiative% doneEffort (total man-days)p85 forecastConfidence
Centralized SSO Token0%58.5 (FE 37 · BE 8 · QA 13.5)low
Lite Seats0%22.5 (FE 4 · BE 14 · QA 4.5)medium
Self Top-up90%22 (FE 12.5 · BE 5 · QA 4.5)as-built — ~2 md left (E2E BIF-8382 only)high
Self-Subs0%17.5 (FE 7.5 · BE 6 · QA 4)medium
Deduction V20%16 (BE 13 · QA 3; FE 0)medium
Meta x Modpanel Call Usage0%15.5 (BE 11.5 · QA 4.0; FE 0)medium
Qontak Launchpad Audit Logs0%10 (FE 3.5 · BE 5 · QA 1.5)medium
Downgrade Webhook0%9 (BE 7 · QA 2; FE 0)high
Qontak One Team Migration0%15.5 (BE 10.5 · FE 1.5 · QA 3.5)medium
Postpaid Usage Scheduler0%21 (FE 4 · BE 12.5 · QA 4.5)medium
Billing Expired Handling0%17.5 (FE 5 · BE 8 · QA 4.5; Mobile TBD)low
Integrate Sales Invoice with Jurnal0%6.5 (FE 2 · BE 2.5 · QA 2)medium
One CID Multiple WABA0%25.5 (FE 7.0 · BE 12.5 · QA 6.0)medium
all other bifrost initiatives0%

Effort for Centralized SSO Token, Lite Seats, Self Top-up, Self-Subs, Deduction V2, Qontak Launchpad Audit Logs, Meta x Modpanel Call Usage, Downgrade Webhook, Qontak One Team Migration, Postpaid Usage Scheduler, Billing Expired Handling, Integrate Sales Invoice with Jurnal and One CID Multiple WABA is captured from their RFC/PRD task-breakdowns (as_of 2026-06-29/2026-06-30/2026-07-01); every other initiative's effort_* stays TBD until its DRI confirms the per-discipline man-days. One CID Multiple WABA is FE 7.0 · BE 12.5 · QA 6.0 = 25.5 md (medium confidence) from its 2026-07-01 task-breakdown (vertical, 11 tasks) — RFC status is still draft but it has been reviewed (R1, 7.0/10): Backend half PROCEED; Frontend half HOLD, gated on the single FE-owner task Detail 2.F: component contracts/frames/UI states. Lands on Grehasta (BE) + Syafrizal M. (FE); QA reassigned 2026-07-01 to Izzul (was pushing Yoddi over capacity). Syafrizal M. (FE) remains over capacity — see Capacity summary below; QA is resolved, FE is now this initiative's binding constraint alongside its still-draft RFC status. Postpaid Usage Scheduler is FE 4 · BE 12.5 · QA 4.5 = 21 md (medium confidence) from its 2026-07-01 task-breakdown (vertical, 7 tasks T1-T7) — the blocked T7 async ZIP worker is already included in the total per that breakdown's own scoping. Lands on Hafriz (BE); FE is unstaffed. Billing Expired Handling is FE 5 · BE 8 · QA 4.5 = 17.5 md (low confidence) — the BE 8 (medium confidence) is this RFC's own scope (moderator-be + qontak-launchpad + hub_core); the FE 5 is a low-confidence estimated stub for a separate, not-yet-authored FE RFC, and Mobile (in scope_changes) has no estimate yet so it is excluded from the 17.5 total — expect it to grow once Mobile is sized. Lands on Hafriz (BE); FE and Mobile are unstaffed. Integrate Sales Invoice with Jurnal is FE 2 · BE 2.5 · QA 2 = 6.5 md (medium confidence) from its 2026-07-01 task-breakdown — backend is agent-execution-ready (reuses organization_packages.extras, no new endpoint); the FE half is a documented consumer contract pending a hub-chat RFC + design. Lands on Hafriz (BE) + Syafrizal M. (FE, staffed 2026-07-01) — his FE 2 md sits on an already-tight queue; resequenced 2026-07-01 (EM decision) to run ahead of Centralized SSO Token, immediately after Qontak One Team's FE — see Capacity summary below for the consequence on SSO Token's schedule. Downgrade Webhook is BE-only, BE 7 · QA 2 = 9 md (high confidence) from its 2026-06-30 task-breakdown — the Bifrost-owned qontak-billing scope only; the chat/crm inbound-webhook endpoints, content-team email template and the email consumer are cross-squad external contracts (not Bifrost man-days) and remain the real gate, not effort. Lands on Madani (BE, ample headroom). Qontak One Team Migration is BE 10.5 · FE 1.5 · QA 3.5 = 15.5 md (medium confidence) from its 2026-07-01 task-breakdown — now the full actionable total: Task 5 (Chat/CRM trigger + TEAM_MIGRATED contract, BE 1.5 + QA 0.5) is unblocked as of 2026-07-01, both Chat and CRM having signed off the trigger/event contract (OQ-1/OQ-9 closed, REV-1 resolved at RFC R3 PROCEED). Only Task 6 (team-URL redirect) is excluded — out of repo (legacy CRM app). Lands on Grehasta (BE) + Syafrizal M. (FE). Self Top-up is an as-built reconciliation, now Committed (Epic BIF-7797, not BIF-5840): its 22 md is ~90% spent as of 2026-07-01 — Phase 1 UI + Phase 2 API are shipped across 5 repos, so its FE 12.5 / BE 5 are not Q3-forward load; all 10 Stories resolved Done in Jira the same day, and the BIF-7797 Epic moved To DoIn Progress (deprio lifted on the board). ~2 md remain — only the BIF-8382 E2E, still In Testing, owned by Yoddi/Izzul, well inside the runway to 2026-08-31. Meta x Modpanel is backend-only (BE 11.5 · QA 4.0) — its scope_changes Data/Infra surfaces are delivered as backend code, so they carry no separate man-days. Centralized SSO Token's 58.5 is the bifrost FE-side effort across 4 repos (low confidence) and excludes the upstream @mekari/sdk package/CDN + company-sync endpoint owned by SSO/Account (BE). p85 forecast still requires available-days/capacity, which remain TBD.

QA Lanes

InitiativeLaneBasisAs of
Deduction V2Bmoney-critical: real-time balance hold, deduction & settlement2026-06-26
Downgrade WebhookBmoney-critical: downgrade → billing & quota recalculation2026-06-26
Lite SeatsBmoney-critical: tiered quota deduction/refund; security: role & permission model2026-06-26
Self-SubsBmoney-critical: new subscription, renewal & upgrade with payment/invoicing2026-06-26
Billing Expired HandlingBmoney-critical: billing-expiry & subscription state; Mobile in scope (out-of-reach)2026-06-26
Postpaid Usage SchedulerBmoney-critical: scheduled postpaid usage drives the billing charge2026-06-26
Qontak One Team MigrationBsecurity/isolation: team-assignment/access migration; one-time migration (out-of-reach)2026-06-26
Meta x Modpanel Call UsageBmoney-critical: billing reconciliation vs Meta — silent failure = revenue loss/overcharge2026-06-26
Qontak Launchpad Audit LogsBsecurity/isolation: audit trail of permission changes, PII, permission-gated2026-06-26
Quota Management — User Quota IntegrationBmoney-critical: quota check/deduction/refund vs central service2026-06-26
Downgrade UserBmoney-critical: quota-deficit role restriction/restoration after downgrade2026-06-29
Self Top-upBmoney-critical: payment flows & balance top-up with financial impact2026-06-29
One CID Multiple WABABmoney-critical: shared-pool balance deduction, WABI reset & postpaid limits across multiple WABA IDs2026-06-29
Integrate Sales Invoice with JurnalBbilling-document: incorrect document buttons or broken Jurnal SI URLs on a payment flow damage client trust and create Finance support burden2026-06-29
Centralized SSO TokenBsecurity/isolation-sensitive: centralized auth/session + cross-company sync across products2026-06-29

Lane A: 0 of 15 initiatives (target 20–50% in Lane A). Every Bifrost initiative is money-critical or isolation-sensitive, and none has E2E test specs yet — so the Lane-A entry bar (100% E2E, spec-mapped) is unmet across the board. Lane A becomes reachable only once tests/** specs land and a non-core surface clears the entry bar.

Team policy: every Bifrost initiative is Lane B because it touches revenue-sensitive pricing, deductions, quota, subscriptions or billing where a silent failure hits revenue. Targeted automation is still added for specific testcases (e.g. CRUD in user management, permission validation, UI changes).

Capacity summary

See capacity.md for the full per-implementor table.

  • Available-days now follow the CDP 2026-Q3 basis (65 eng-days = 13 man-weeks for the 13-week quarter, focus 0.8 → 52 effective). QA defaults to Yoddi (65); Izzul is cross-team backup at 15. Loads are computable for fourteen of the fifteen estimated initiatives; only Satya's row (Downgrade User still TBD) remains a lower bound.
  • Committed-days / loads so far: Syafrizal M. 59 FE → over (1.13, 7 days over); Satya 27 BE → under (≥0.52); Hafriz 36 BE (deduction-v2 13 + sales-invoice-jurnal 2.5 + billing-expired-handling 8 + postpaid-usage-scheduler 12.5; self-topup BE 5 as-built/spent excluded) → under (0.69, fully sized); Grehasta 40.5 BE (self-subs 6 + meta-modpanel 11.5 + qontak-one-team 10.5 + one-cid 12.5) → under (0.78, fully sized — no more TBD on his book); Yoddi 57 QA → over (1.10, 5 days over); Madani 16.5 BE (downgrade-webhook 7 + quota-management 9.5) → under (0.32, fully sized). Only Satya's Downgrade User allocation stays TBD.
  • 🔴 Syafrizal M. is now OVER capacity (1.13, 7 days over) — no longer "at the line," now confirmed over. One CID Multiple WABA's FE was sized at 7.0 md 2026-07-01, landing on top of his already-exactly-1.00 queue (centralized-sso-token 37 + self-subs 7.5 + lite-seats 4 + qontak-one-team 1.5 + sales-invoice-jurnal 2). Known forward FE is now 59 ÷ 52 effective = 1.13 (deduction-v2 carries no FE). Queue resequenced 2026-07-01 (EM decision): qontak-one-team FE (1.5) and sales-invoice-jurnal FE (2) slot ahead of centralized-sso-token — serial order Self-Subs → Lite → Qontak One Team → Sales Invoice + Jurnal → Centralized SSO Token → One CID (no slot). This delivers qontak-one-team's FE without waiting on SSO and resolves sales-invoice-jurnal's queue blocker, but pushes centralized-sso-token's FE start back ~3.5 md: its projected finish moves from ~W9.7 to ~W10.6, past the ~W10.3 finish-by its Lane-B 13.5-md E2E gate needs — see centralized-sso-token/delivery/timeline.md — and One CID's FE 7.0 md now has no queue slot at all, overflowing into Q4 outright absent a capacity change. Decision needed, now unavoidable — and Syafrizal M. stays the FE owner on One CID: add a second FE engineer, or move other (lower-priority) work off him.
  • Yoddi's QA overcommit resolved 2026-07-01 — Izzul takes One CID's QA instead. One CID's QA (6.0 md) would have landed on top of an already-tight ≥0.98 (51/52), pushing Yoddi to 1.10 — over. EM decision same day: Izzul (backup QA) is staffed onto One CID's 6.0 md QA, so Yoddi stays at 51 ÷ 52 effective = 0.98 — under (no spare headroom) and Izzul sits at 6 ÷ 12 effective = 0.50 — under.
  • 🟡 qontak-launchpad-audit-logs carries FE 3.5 with no FE implementor (staffed Satya/BE only) — its FE owner is TBD and has no home at all against Syafrizal M.'s over (1.13) load.
  • 🔴 BE (Satya/Hafriz/Grehasta/Madani) still has real headroom. FE is now the sole binding constraint — Syafrizal M. is over capacity; QA (Yoddi/Izzul) is resolved back to under.

Cross-initiative dependencies

Bifrost-internal edges are sparse — across all 26Q3 RFCs the only dependency between sibling Bifrost initiatives is the downgrade chain:

  • Downgrade User (P10) depends on Downgrade Webhook (P8) and Quota Management (P9) — both are pre-reqs of the downgrade-user logic (mirrors the Priority table's Depends on).
  • Deduction V2 and Downgrade Webhook share the Modpanel↔Billing quota-management API surface (sibling RFCs) — a coordination point, not a blocking dependency.

Every other initiative's hard blockers point outward at other squads or external Mekari platform contracts, not at sibling Bifrost initiatives — tracked in the next section.

External & cross-squad dependencies

The dominant delivery risk for 26Q3: most initiatives are gated by artifacts owned outside Bifrost. Sourced from each initiative's RFC(s) as of 2026-06-30; none of these appear in the locked seven-column Portfolio table above. Status legend: 🔴 blocking · 🟡 needs confirmation · ✅ resolved.

InitiativeBlocking dependencyOwner (squad / vendor)Status
Centralized SSO Token@mekari/sdk Session SDK package, Session Manager service (/sm/*), current_company endpoint, canonical iframe path, session.refresh() throttle, CSP frame-ancestors whitelistAccount & Launchpad (+ infosec)🔴 blocks all FE execution — no RFC is execution-ready
Self-SubsSelf-subscription API + Invoicable list API contracts; Mekari Pay redirect-param convention; CID Billing Settings page pathMekari Billing, Mekari Pay, moderator-be🔴 gates Phase-2 ship
Downgrade Webhooktriggers_downgrade billing-component column + 6-code backfill; Chat inbound-webhook contract; CRM inbound-webhook + pigeon registration; client email template contentbilling-team, chat-squad, crm-squad, content-team🔴 needs contracts
Lite SeatsLite component code strings; lite_seats_enabled flag delivery (Kafka / company_features); Lite-config Figma frameMekari Billing / ModPanel, Platform, Design🟡 needs confirmation
Deduction V2PRD refresh to authorize-at-send (source PRD Non-Goal #4 forbids send-blocking) — internal governance gate before RFC approved; code (T1–T7) is execution-readyBifrost PM (internal)🔴 blocks RFC approval
Qontak Launchpad Audit Logsinfosec review / sign-off (RFC still at IDEA)infosec🟡 approval gate
Qontak One Team MigrationChat/CRM trigger endpoint (path/auth/payload) + TEAM_MIGRATED event/topic sign-off (RFC OQ-1/OQ-9)chat-squad, crm-squad✅ resolved 2026-07-01 — both squads signed off; Task 5 unblocked, full end-to-end migration buildable

Self-Subs carries the hard end-of-August commitment (commitment_date: 2026-08-31) yet is the initiative most exposed to external contracts it does not own — the deadline-vs-contract risk is recorded in its 2026-06-30 status report. (The Deduction V2 row is an internal PM-governance gate, listed here for completeness because it blocks RFC approval rather than being internal task-sequencing.)

Program-level risks

  • 🔴 FE capacity is now confirmed OVER — Syafrizal M. at 1.13, a 7-day shortfall, no longer speculative. Revised 2026-07-01: after self-topup was reconciled as as-built (FE 12.5 already spent, not Q3-forward) and qontak-one-team's FE (1.5 md) and sales-invoice-jurnal's FE (2 md) were staffed onto him, he sat exactly at 1.00 (zero headroom). Later the same day, One CID Multiple WABA's FE was sized at 7.0 md off its 2026-07-01 task-breakdown — exactly the overflow the docs had already predicted. Known forward FE is now 59 vs 52 effective = 1.13. Queue resequencing (2026-07-01, EM decision) — qontak-one-team FE (1.5) and sales-invoice-jurnal FE (2) ahead of centralized-sso-token — remains in place: Self-Subs → Lite → Qontak One Team → Sales Invoice + Jurnal → Centralized SSO Token → One CID (no slot). centralized-sso-token's FE finish is pushed to ~W10.6, past the ~W10.3 finish-by its Lane-B 13.5-md E2E gate needs, on top of its pre-existing 4 external-contract gate. One CID's 7.0 md FE now has no queue slot at all and overflows into Q4 outright unless capacity changes. Decision needed, now unavoidable — Syafrizal M. stays One CID's FE owner: add a second FE engineer, or move other (lower-priority) work off him. Separately, qontak-one-team's cross-squad contract is signed off (2026-07-01, OQ-1/OQ-9 closed) — its full 15.5 md incl. Task 5 remains unblocked and Commit-ready.
  • QA capacity risk resolved 2026-07-01 — Izzul staffed onto One CID's QA instead of Yoddi. One CID's QA (6.0 md) would have landed on top of an already-tight ≥0.98 (51/52) and pushed Yoddi to 1.10 — over. EM decision: Izzul (backup) takes One CID's 6.0 md QA, leaving Yoddi at 0.98 — under (no spare headroom) and Izzul at 0.50 — under. Lower-priority QA (Billing Expired Handling / Postpaid Usage Scheduler, both already unsequenced) still needs a sequencing pass given Yoddi's thin headroom.
  • 🟡 qontak-launchpad-audit-logs FE unstaffed. Task-breakdown carries FE 3.5; the initiative staffs only Satya (BE). FE owner TBD; with Syafrizal M. now over (1.13) it has no open slot at all and competes with One CID's newly-sized, also-unhoused FE — realistically needs a second FE engineer or it slips.