JJijibora Docs
docs.jijibora.online
On this page (24 sections)

Backlog — Specific Action Items for Gap Remediation

Date: 2026-11-09 Purpose: Concrete, assignable action items organized by gap, with ownership, priority, and target completion windows.

Action Item Format

IDGapActionOwnerPriorityTarget

CRITICAL Priority Items

GAP-01: Zero Bespoke Tables — Table Migration

IDActionOwnerPriorityTarget
BL-001Audit SurrealDB schema — list all tables, identify kazi_ and materra_Platform teamCRITICALDay 1-2 of Phase 1
BL-002Design canonical mapping for each non-canonical table (kazi_health→integration_entity, kazi_claim→claim with CNS type, etc.)Platform teamCRITICALDay 3-4 of Phase 1
BL-003Create migration script scripts/migrate-kazi-to-canonical.surql — read existing rows, create canonical rows, mark migrationPlatform teamCRITICALEnd of Week 1 of Phase 1
BL-004Execute migration against dev → staging → production SurrealDB instancesPlatform teamCRITICALWeek 2 of Phase 1
BL-005Delete or rename non-canonical tables that can be expressed as canonical kindsPlatform teamCRITICALWeek 3 of Phase 1
BL-006Update apps/agent-bff/src/kazisasa-bff-routes.js to use canonical functions (fn::claim_processing::create_claim, fn::integration::upsert_entity, fn::lifecycle::*) instead of any vertical-specific logicKaziSasa vertical teamCRITICALWeek 3-4 of Phase 1
BL-007Ensure all kazi scenario packs are loaded from NATS KV SOVEREIGN_SCENARIOS/SOVEREIGN_LOOKUPS at runtime, not from disk (fs.readFile)KaziSasa vertical teamCRITICALWeek 4 of Phase 1
BL-008Run verify-kazi-headless-api.mjs — confirm all 9 gates pass against real infrastructureQA teamCRITICALEnd of Week 4 of Phase 1
BL-009Add CI pre-commit hook/CI step that scans for kazi_ / materra_ table references and fails if found unmapped to canonical kindPlatform teamCRITICALEnd of Week 1 (ongoing)
BL-010Same as BL-009 but for MARS vertical (mars_ / killbill_mars_ tables)MARS teamCRITICALEnd of Week 1 of Phase 1-F

GAP-03: Fail-Closed / No Synthetic Fallbacks

IDActionOwnerPriorityTarget
BL-011Run automated audit of all catch blocks in the codebase — find catch blocks that return values (not throw error)Backend teamCRITICALDay 1-2 of Phase 1B
BL-012Fix each identified catch block: change to throw error or return HTTP error status (400/422/502/503)Backend teamCRITICALWeek 1 of Phase 1B
BL-013Add ESLint rule no-synthetic-success-in-catch — flag any catch block body that is not just throw error or return new Response(..., { status })Platform teamCRITICALWeek 2 of Phase 1B
BL-014Fix the three documented cases: LaunchDarkly bundle patch verification, kutuma-api getSignedToken patch verification, general catch audit completionFrontend team + Backend teamCRITICALWeek 2 of Phase 1B
BL-015Add the lint rule to the CI pipeline — build fails if any catch block violates the patternPlatform teamCRITICALWeek 3 of Phase 1B
BL-016Create and run scripts/verify-fail-closed.mjs — automated verification: infrastructure failure → HTTP error (4xx/5xx), NOT synthetic success; assert no status: "OPTIMAL" or approved: true in responseQA teamCRITICALWeek 3-4 of Phase 1B

GAP-05: No Fake Tests

IDActionOwnerPriorityTarget
BL-017Audit test files for magic numbers (32.4m, 17.6m, total_allocated_kg: 18500, etc.) that don't come from real engine dataQA teamCRITICALDay 1-2 of Phase 1C
BL-018Rewrite each fake test: either (a) create real claims/data through the engine and assert the engine-produced values, or (b) restructure to assert structural contract only (shape, not specific values)QA team + Platform teamCRITICALWeek 1-2 of Phase 1C
BL-019Flag which tests were "fake" and which were rewritten — document in the backlogQA teamCRITICALWeek 2 of Phase 1C
BL-020Add ESLint rule no-magic-numbers-in-tests — flag test assertions against specific number values not backed by real engine dataPlatform teamCRITICALWeek 2 of Phase 1C
BL-021Add the lint rule to the CI pipeline — build fails if any test asserts a magic number from a non-enginePlatform teamCRITICALWeek 2-3 of Phase 1C
BL-022Create and run scripts/verify-fake-tests.mjs — automated identification of fake testsQA teamCRITICALWeek 3-4 of Phase 1C
BL-023Update AGENTS.md mandates section with concrete examples of forbidden/fixed patternsPlatform teamCRITICALWeek 4 of Phase 1C

HIGH Priority Items

GAP-04: No Synthetic Payloads / Hardcoded Metrics

IDActionOwnerPriorityTarget
BL-024Audit all UI metrics and values — run the audit script from Design — Eliminating Synthetic Payloads and Hardcoded Metrics (GAP-04, GAP-05)Frontend teamHIGHWeek 1 of Phase 2A
BL-025Replace each hardcoded UI metric with a call to the live backend API or database query; if unavailable, replace with null (UI shows skeleton loader or honest empty state)Frontend teamHIGHWeek 1-2 of Phase 2A
BL-026Replace each hardcoded value in API routes — route to real data source; if unavailable, return HTTP 503 with error description; if request doesn't match contract, return HTTP 400Backend teamHIGHWeek 1-2 of Phase 2A
BL-027Replace each magic number in test files — either create real claims/data through the engine and assert engine-produced values, or restructure to assert structural contract onlyQA teamHIGHWeek 1-2 of Phase 2A
BL-028Add ESLint rules: no-hardcoded-metrics, no-synthetic-contract, no-magic-numbers-in-testsPlatform teamHIGHWeek 2-3 of Phase 2A
BL-029Add all three lint rules to the CI pipeline — build fails if any violation existsPlatform teamHIGHWeek 3 of Phase 2A
BL-030Run verification scripts: test_proxy_auth2.mjs (0 errors after Keycloak login), capture_all.mjs (4 previously-422 endpoints now 200, e.g. /v1/changes/count → {"data":13}), 16/16 tests pass across 5 test scriptsQA teamHIGHWeek 3-4 of Phase 2A
BL-031Fix LaunchDarkly bundle — verify the entrypoint.sh sed patch for LD is applied and idempotent; verify the zg? passthrough pattern worksFrontend teamHIGHWeek 3-4 of Phase 2A
BL-032Verify kutuma-api environmentId — confirm the patched getSignedToken falls back to member.environmentId, MongoDB backfill is in place, patched image kutuma-api:patched is runningBackend teamHIGHWeek 3-4 of Phase 2A

GAP-06: Trusted Timestamping on Finalize

IDActionOwnerPriorityTarget
BL-033Investigate timestamp-authority options — check if external timestamp service (AWS TimeSync, on-prem KMS, etc.) is available, or if a PSAP/timestamp-authority customer will arrivePlatform team + Security teamHIGHWeek 1 of Phase 2B
BL-034If external authority available: design integration, implement timestamp attachment to receipt claims, test end-to-endPlatform team + Security teamHIGHWeek 1-2 of Phase 2B
BL-035If no external authority: design internal deterministic timestamp mechanism bound to receipt claim's root hash, generated at finalisation time, verifiable by recomputing from session chain headPlatform team + Security teamHIGHWeek 1-2 of Phase 2B
BL-036Update FCT-18 card status from DEFERRED to resolved or deferred-with-conditionsProgram managementHIGHWeek 2 of Phase 2B

GAP-07: Live Money Movement Gating

IDActionOwnerPriorityTarget
BL-037Document the gating conditions for FINMON-16 live desk in a runbook: "finance keys + human approval + payments ledger ready"Finance teamHIGHWeek 1 of Phase 2C
BL-038Backfill members.environmentId in MongoDB for each org's first (Development) environment (verify the already-done fix is correct)MongoDB teamHIGHWeek 1 of Phase 2C
BL-039Verify the patched getSignedToken function falls back to member.environmentId when environmentId is not suppliedBackend teamHIGHWeek 2 of Phase 2C
BL-040Write the FINMON-16 runbook with detailed steps for when the finance gate lifts, including who approves, what keys are needed, and how the ledger is preparedFinance teamHIGHWeek 2-3 of Phase 2C
BL-041Test the soft path end-to-end from split profile creation through wallet credit (soft, not live), verifying every leg reports its real outcomePlatform teamHIGHWeek 3-4 of Phase 2C
BL-042Verify the four previously-422 endpoints now return 200: /v1/changes/count, /v1/environments/me, /v1/notification-groups, /v1/notification-templatesQA teamHIGHWeek 4 of Phase 2C

MEDIUM Priority Items

GAP-08: Emergency-Call Location Format

IDActionOwnerPriorityTarget
BL-043Monitor for PSAP customer engagement — track if any public-safety answering point expresses interestProgram managementMEDIUMOngoing (Week 1 of Phase 3A)
BL-044If PSAP customer arrives: design the location pack as declarative configuration in the scenarios plane with geospatial NATS subject routingPlatform teamMEDIUMWeek 1 of Phase 3A (if customer arrives)
BL-045If no PSAP customer: document the deferration in the program backlog with a clear re-unblocking condition; ensure no code depends on this featureProgram managementMEDIUMWeek 1 of Phase 3A

GAP-09: Six-Stage Promotion Lifecycle

IDActionOwnerPriorityTarget
BL-046Design the six-stage workflow (draft → submission → validation → approval → settlement → retired) in Kestra or Camel, backed by the scenarios planePlatform team + Kestra/Camel teamMEDIUMWeek 1-2 of Phase 3B
BL-047Map each claim type fragment to the six-stage workflow — ensure every pilot claim type (motor, medical, home, government benefit, government compensation, community ticket, industrial) has a complete mapped lifecyclePlatform teamMEDIUMWeek 2 of Phase 3B
BL-048Implement the dual-control integration — the draft→commit→project pattern from D-08 FCT-18 must integrate with the six-stage workflow, not be separatePlatform teamMEDIUMWeek 2-3 of Phase 3B
BL-049Emit outbox events at each stage — verify structural events write only delivery anchors, index synchronisation follows as consequencePlatform teamMEDIUMWeek 3 of Phase 3B
BL-050Test end-to-end — create a real claim through the full six-stage lifecycle, verifying outbox events, proof receipts, and final stateQA teamMEDIUMWeek 4 of Phase 3B
BL-051Update the readiness probe — ensure it correctly reports the lifecycle stage as part of its five-probe checkPlatform teamMEDIUMWeek 4 of Phase 3B

GAP-10: Break-Glass Elevation

IDActionOwnerPriorityTarget
BL-052Design the break-glass workflow — records a proof event when invoked, files a corrective action claim, bounds the TTL and role expiryPlatform team + Security teamMEDIUMWeek 1-2 of Phase 3C
BL-053Implement the break-glass workflow — in Kestra/Camel or as a SurrealQL procedure with the break-glass guardPlatform team + Security teamMEDIUMWeek 2 of Phase 3C
BL-054Test end-to-end — invoke break-glass in dev, verify the proof event and corrective action claim are recorded, verify the TTL and role expiry are boundedQA teamMEDIUMWeek 2-3 of Phase 3C
BL-055Document the pattern — update AGENTS.md mandates with the break-glass designPlatform teamMEDIUMWeek 3 of Phase 3C

GAP-11: Customer-Held Seal/Certification/Signing Root

IDActionOwnerPriorityTarget
BL-056Design the customer-held seal/certification/signing root infrastructure — if a customer or use case requires itPlatform team + Security teamMEDIUMWeek 1-2 of Phase 3D
BL-057If a customer requires it: deploy the infrastructure and test end-to-endPlatform team + Security teamMEDIUMWeek 2-3 of Phase 3D
BL-058If no customer requires it: explicitly document in AGENTS.md that these are out of scope for this release, the platform operates without them, and the "stop and ask the user" pattern applies if future need arisesPlatform teamMEDIUMWeek 2-3 of Phase 3D
BL-059Update AGENTS.md mandates — document the decisionPlatform teamMEDIUMWeek 3 of Phase 3D

GAP-12: Cross-Cutting Lint for Honesty Invariants

IDActionOwnerPriorityTarget
BL-060Design the cross-cutting lint rule — checks module responses for invent_refuse_live and live_gate_met flags where applicablePlatform teamMEDIUMWeek 1 of Phase 3E
BL-061Implement the lint rule — ESLint or equivalent for the project's tech stackPlatform teamMEDIUMWeek 1-2 of Phase 3E
BL-062Audit existing modules — check each module's responses carry the required flags; fix any that don'tEach module teamMEDIUMWeek 2-3 of Phase 3E
BL-063Add CI enforcement — add the lint rule to the CI pipelinePlatform teamMEDIUMWeek 3-4 of Phase 3E
BL-064Document the invariant — update AGENTS.md with the honesty invariant patternPlatform teamMEDIUMWeek 4 of Phase 3E

GAP-13: Kazi Lookup and Scenario Packs

IDActionOwnerPriorityTarget
BL-065Create datasets/lookups/lookup.kazi* files — the lookup tables for KaziSasaKaziSasa vertical teamMEDIUMWeek 1-2 of Phase 3F
BL-066Create kazi scenario packs under datasets/scenarios/ — journey definitions, panel configs, SLA windows, quorum bandsKaziSasa vertical teamMEDIUMWeek 1-2 of Phase 3F
BL-067Verify the verify-kazi-headless-api.mjs script can load these packs — ensure the imported helpers (createRequisition, submitCrewBid, solveCrewMatching, bindMicroInsurance, reserveToolDepotEquipment, etc.) can load from the new filesKaziSasa vertical team + QA teamMEDIUMWeek 2-3 of Phase 3F
BL-068Run verify-kazi-headless-api.mjs against real infrastructure — confirm all 9 gates passQA teamMEDIUMWeek 3-4 of Phase 3F
BL-069Map all KaziSasa endpoints to canonical claim types — ensure every endpoint in the shim routes through canonical planesKaziSasa vertical teamMEDIUMWeek 3-4 of Phase 3F

GAP-14: MARS Schema Fork Resolution

IDActionOwnerPriorityTarget
BL-070Audit database/schema/mars/ — list all tables, identify mars_ and killbill_mars_ violationsMARS teamMEDIUMWeek 1 of Phase 3G
BL-071Migrate each violable table to canonical kinds — determine the canonical mapping (claim, truth_node, truth_edge, resource, integration_entity) and create the migrationMARS team + Platform teamMEDIUMWeek 1-3 of Phase 3G
BL-072Delete or rename violating tables that cannot be mapped canonically (stop-and-ask-the-user for any unmappable)MARS teamMEDIUMWeek 3-4 of Phase 3G
BL-073Update MARS-CFG backlog — reflect the remediation status, update TODO items, remove items now resolvedMARS teamMEDIUMWeek 4-5 of Phase 3G
BL-073Verify MARS-CFG backlog status — confirm "MARS is a configuration pack, not a schema fork" headline is accurateMARS teamMEDIUMWeek 5 of Phase 3G

GAP-18: Verifier Suites Not Executed

IDActionOwnerPriorityTarget
BL-074Execute scripts/verify-kazi-headless-api.mjs against real infrastructure → 9/9 gatesQA teamHIGHWeek 1-2 of Phase 4A
BL-075Execute scripts/verify-kazi-solver-gateway.mjs against real :3070 → 5/5 gatesQA team + Solver teamHIGHWeek 1-2 of Phase 4A
BL-076Execute scripts/verify-novu-kv-templates.mjs → 3/3 gatesQA teamHIGHWeek 1-2 of Phase 4A
BL-077Execute scripts/verify-ai-prompts-kv.mjs → 4/4 gatesQA teamHIGHWeek 1-2 of Phase 4A
BL-078Document the results for each suite — which gates pass/fail, root cause for each failureQA teamHIGHWeek 1-2 of Phase 4A
BL-079Address failures — fix underlying issues (may span multiple phases) or file issues with clear descriptionsPlatform team + relevant teamsHIGHWeek 2-4 of Phase 4A
BL-080Create a verification summary report — consolidate all four suite results into one document with overall platform health assessmentQA team + Platform teamHIGHWeek 4 of Phase 4A

LOW Priority Items

GAP-4B: Journey Ladder Unchecked

IDActionOwnerPriorityTarget
BL-081Design the journey ladder as declarative configuration in the scenarios plane or NATS KVPlatform teamLOWWeek 1 of Phase 4B
BL-082Check against actual integrator flows — verify the ladder matches real integrator workflowsPlatform team + integrator communityLOWWeek 1 of Phase 4B
BL-083Ensure it's maintained as code — version-controlled and change-reviewed like any other codePlatform teamLOWWeek 1 of Phase 4B

GAP-17: Wage-Floor Semantics Verification

IDActionOwnerPriorityTarget
BL-084Execute scripts/verify-kazi-solver-gateway.mjs against real :3070 → 5/5 gates (or identify failures)QA team + Solver teamLOWWeek 1-2 of Phase 4C
BL-085Document the wage-floor Option A and Option B semantics from the actual solver gateway responsesPlatform teamLOWWeek 2 of Phase 4C
BL-086Verify the procurement.basket_split@1 decision-request contract — test the solver gateway with the canonical request shape and verify the responsePlatform team + Solver teamLOWWeek 2-3 of Phase 4C
BL-087If the contract is not satisfied: stop and ask the user before proceeding (per mandate 9: real-infrastructure citation)Program managementLOWWeek 3 of Phase 4C

GAP-4D: Documentation and Closure

IDActionOwnerPriorityTarget
BL-088Update Gap Analysis Validation — Cross-Document Gap Audit — mark each gap as RESOLVED, DEFERRED (with condition), or ONGOINGProgram managementLOWWeek 1-2 of Phase 4D
BL-089Update all design documents — ensure they reflect the current state of remediationPlatform teamLOWWeek 2 of Phase 4D
BL-090Update AGENTS.md mandates — add any new concrete patterns discovered during remediationPlatform teamLOWWeek 2 of Phase 4D
BL-091Conduct a final platform health assessment — run the verification suites, check the exit criteria, and produce a summaryPlatform team + QA teamLOWWeek 2-3 of Phase 4D
BL-092Close the remediation program — document what was resolved, what remains deferred with conditions, and the next review dateProgram managementLOWWeek 3-4 of Phase 4D

Cross-Cutting Actions

IDActionOwnerPriorityTarget
BL-093Create the Gap Analysis Validation — Cross-Document Gap Audit document — cross-document gap audit against AGENTS.md mandatesPlatform teamCRITICALCompleted (already created)
BL-094Create the DESIGN-REMediation-SEQUENCE.md document — execution order for addressing all validated gapsPlatform teamCRITICALCompleted (already created)
BL-095Create the Backlog — Specific Action Items for Gap Remediation document — concrete, assignable action items organized by gapPlatform teamCRITICALCompleted (already created)
BL-095Ensure all new code follows the fail-closed pattern (try/catch → throw error or return HTTP error; never synthesize success)All developersCRITICALOngoing, from Phase 1 onward
BL-095Ensure all UI components pull metrics from live data, skeleton loaders, or honest empty states — never hardcoded numbersAll frontend developersCRITICALOngoing, from Phase 2A onward
BL-095Ensure all tests assert structural contracts, not magic numbers from non-enginesAll QA developersCRITICALOngoing, from Phase 1C onward
BL-095CI pipeline enforcement: any PR violating the above patterns fails CICI systemCRITICALOngoing, from Phase 1 onward