Skip to main content

ktayl IS β€” Build Roadmap (the single place)

If you're ever unsure what to build next, read this. Everything on the ktayl-solution IS sits in one of three parallel tracks (plus the live foundations). This page is the map of the tracks, their order, and β€” crucially β€” how they interlock, so nothing feels scattered.

FOUNDATIONS (live) ──────────────────────────────────────────────────────────
platform #3 Β· AI platform #4 Β· digital workplace #10 Β· Policy Admin #6 Β· ERPNext #8

TRACK A β€” BUSINESS BUILD (the insurance value chain β€” sequenced)
Distribution #13 β†’ UNDERWRITING #12 β†’ Policy Admin #6 β†’ Claims #11 β†’ Billing #14 β†’ Reinsurance #22
(live)
every domain is built the same way, and passes ↓

TRACK B β€” GOVERNANCE & COMPLIANCE (continuous β€” the gate every Track-A build clears)
regulatory layer Β· AI-Act gate Β· obligations register (framework built βœ…, applied per domain)

TRACK C β€” MODERNIZATION PRACTICE LAB (parallel skills cadence, feeds real integration skill into Track A)
GlobalCore βœ… Β· GenApp modernization M1–M4

All three are valuable and all three stay on the roadmap. Track A delivers the business; Track B keeps it compliant by design; Track C builds the legacy/integration muscle real insurers need. They are not competing β€” they interlock (see How they interlock).


Track A β€” Business build (the value chain)​

Build outward from what's already live (Policy Admin #6). Sequenced by value + dependency:

PhaseBuildWhy here
1Underwriting & Pricing #12 ← recommended starthighest value; FDE playbook ready; feeds the live Policy Admin
1Distribution / broker portal #13where submissions come in (feeds #12)
1Claims #11the other half of the policy lifecycle
1Billing #14premium in
2Reinsurance #22 Β· Risk Engineering #21 Β· International #23 Β· Compliance #15specialty + control
3Data/Actuarial #5; Documents #24 / Integration #25 / MDM #20 as a domain needs theminsight + layers-on-demand
4AI/automation capstone: Knowledge Assistant #18 Β· AI Ops Copilot #19LAST β€” automates over real systems

:::warning Live-deadline item β€” Facturation Γ©lectronique (jump the queue) The French e-invoicing reform is already in effect (1 Sep 2026) β€” a deadline-driven compliance capability, not deferrable like the rest of Phase 2/3. It's a Finance #14 capability (extending ERPNext's existing erpnext_facturx), backed by an obligation in the register (Compliance #15) and PDP connectivity (Integration #25). Minimum immediate piece = receiving e-invoices via a PDP (universal, regardless of insurance's VAT-exemption). Scope needs Compliance confirmation (premiums are VAT-exempt β†’ receiving + e-reporting apply; taxable B2B services must issue). See the obligations register. :::

Opportunistic quick win (Enterprise-IT, not the value chain): GLPI/ITSM #16 β€” do when convenient.

Track B β€” Governance & compliance (continuous, not a phase)​

The framework is built β€” it now applies to every Track-A domain as a gate, not a separate project:

  • Regulatory layer (compliance-by-design) β€” each capability declares its triggered frameworks + controls.
  • AI-Act gate β€” every AI use case gets a risk tier β†’ proportionate controls.
  • Obligations register (RC-05) β€” the single map of what applies.

β†’ docs: Regulatory Operating Model, AI-Act Gate; register in ktayl-compliance.

Track C β€” Modernization practice lab (parallel cadence)​

A skills track that builds the wrap / strangler / legacy-comprehension muscle β€” then feeds it back into Track A whenever a domain integrates with something legacy:

  • GlobalCore β€” a deliberately-legacy Java/SOAP core, built βœ… (globalcore-legacy).
  • GenApp modernization (M1–M4) β€” recover the real IBM COBOL app's rules β†’ reimplement on the cluster (cics-genapp/docs/business-rules-catalog.md).

β†’ full plan: ktayl-integration/docs/legacy-wrapper-initiative-spec.md.


How they interlock (one repeatable recipe per domain)​

Building any Track-A domain is the same loop β€” and that loop is where B and C plug in:

1. FDE playbook (understand the domain: process, users, pain, data, KPIs)
2. BMAD spec + stories (the implementation contract)
3. Build a thin end-to-end slice ──uses Track-C patterns when it touches legacy/integration
4. Pass the governance gate ──Track-B: regulatory impact + AI-Act tier + controls by design
5. Deploy (GAP wrapper chart) + iterate

So Underwriting #12 = its FDE playbook (done) → spec → thin slice (submission→quote→bind→PAS) → clears the governance gate (any AI in it gets an AI-Act tier) → deploy → next slice. Every domain repeats it.

The one open decision​

Where to start Track A. Recommended: Underwriting #12 (value + playbook ready + feeds the live PAS). Once chosen, the recipe above repeats per domain and the roadmap stops feeling ad-hoc.

Alignment check β€” the "Enterprise Claims & Risk Intelligence" reference blueprint​

A widely-circulated portfolio blueprint ("Atlas Insurance β€” Enterprise Claims & Risk Intelligence Platform") describes the exact pattern this IS is built on: an Oracle legacy core you must not replace, modernized around with domain APIs, CDC/events, a modern data + AI platform, and enterprise-grade identity / observability / DevOps. It is not a new project β€” it's a checklist we can grade ourselves against. Below: what we already support, what the Claims build delivers, the genuinely new items it adds to the roadmap, and where we deliberately differ (our stack β‰  the blueprint's defaults).

What we already support (live foundations)​

Blueprint capability (Β§)Our equivalentStatus
Kubernetes platform (Β§17)k3s, 6-nodeβœ… live
CI/CD (Β§18)GitHub Actions + Argo CD + Kargoβœ… live
IaC (Β§19)OpenTofu (MAAS/AWS) + Helm/Kustomizeβœ… live
Observability (Β§16)OTel + Prometheus + Grafana + Loki + Tempoβœ… live
OAuth/OIDC + RBAC (Β§14)Authentik (not Keycloak/Entra)βœ… live
Audit (Β§15)change-records + app audit + Langfuse AI tracesβœ… live
Event bus (Β§7)NATS (not Kafka)βœ… live
Modern app DB (Β§6)PostgreSQLβœ… live
RAG pipeline (Β§10–11)markitdown / rag-ingest β†’ Qdrant β†’ LiteLLMβœ… live
Structured-vs-document AI split (Β§12)RAG for docs Β· SQL-tools for dataβœ… pattern set
Secrets / least-privilege (Β§14)Vault + ESO + default-deny netpolsβœ… live

What the Claims build delivers (Track A β€” Claims #11, planned; PR #6 merged)​

Blueprint capability (Β§)Where in our plan
Oracle legacy core, don't replace (Β§2, Β§4)GlobalCore on Oracle Free (ADR-002)
Controlled domain APIs around Oracle (Β§5)the ACL β€” stories S003 / S004
Oracle CDC β†’ events (Β§7)Debezium β†’ NATS β€” S005 (not GoldenGate/Kafka)
CQRS read-model (Β§6)Postgres read-model β€” S006
Structured AI tool (Β§12) + identity propagation (Β§14)governed SQL-tool β€” S007, threat-model T8
Claims Copilot agent (Β§13)v1 = read-only tool; full multi-tool agent = AI Ops Copilot #19 (capstone, parked)
Bounded Oracle→Postgres migration (§20)ADR-007 footnote (later, non-critical only)

Net-new items this blueprint adds to the roadmap​

  • Event-driven Risk / Fraud scoring service (Β§8) β€” a NATS consumer of CLAIM_CREATED / …_CHANGED writing a risk_assessment table in Postgres β†’ a Claims #11 post-v1 capability (fraud/SIU lane), not a new board. (Distinct from Risk Engineering #21, which is physical risk/prevention on the underwriting side.)
  • Analytics warehouse + BI (Β§9) β€” OLTP β†’ CDC/ETL β†’ warehouse β†’ Metabase (not Power BI) β†’ the Data / Actuarial #5 track. The warehouse layer is the main not-yet-built piece this surfaces.
  • Semantic / metrics layer on the data platform (Β§9 extension) β€” a governed metrics layer (self-hosted Cube or the dbt semantic layer) over the warehouse, so one definition of each business metric (loss ratio Β· claim frequency Β· open high-value claims Β· average settlement) is consumed identically by Metabase and the Claims Copilot AI tools. The AI then queries governed metrics, not raw SQL β€” which reinforces Β§12 (structured-vs-document split) and closes the "the LLM invents its own numbers" risk. β†’ Data / Actuarial #5 (build alongside the warehouse).
  • Resilience drills (Β§21) β€” retries / DLQ / idempotency / circuit-breakers β†’ fold into each domain's NFR gate (Track B), not a standalone project.

Deliberate divergences (our stack, not the blueprint's)​

Blueprint defaultWe useWhy
KafkaNATSalready the platform backbone; lighter, sufficient here
GoldenGateDebeziumopen-source, zero licence
Power BIMetabase (+ Grafana for ops)self-hosted, no SaaS
Keycloak / Entra IDAuthentikalready the org IdP
pgvectorQdrant (pgvector available)our RAG store
Policy on OraclePolicy already modern (ktayl-policy-service #6)only Claims wraps the Oracle legacy
"Atlas Insurance Group"ktayl-solutionone fictional carrier β€” don't introduce a second brand

Maturity ladder (Β§22) β†’ our tracks: L1–L2 (core + modern platform + auth) = foundations, live; L3 (CDCβ†’events) + L5 (RAG/agent) = Claims #11; L4 (warehouse/BI + semantic layer) = Data #5; L6 (K8s/IaC/CI/obs) = live; L7 (enterprise hardening) = already the platform's standing posture (table below), applied per domain at the Track-B gate.

Level 7 β€” Enterprise hardening (Β§22 L7) β€” mostly already live​

The point where "a project becomes portfolio-level enterprise-architecture work" β€” and for us it's not future work, it's the standing posture every new domain inherits and re-proves at its NFR/security gate.

Hardening capabilityOur implementationStatus
Auditchange-records (ITIL/DORA, one per prod PR) + app audit trails + Langfuse AI tracesβœ… live
Secrets managementVault + External Secrets Operator (ESO); no secrets in Gitβœ… live
Data maskingPresidio PII masking (pre-LLM) + gateway/app DLP + default-deny egress netpolsβœ… live (per domain)
Resiliencecanary/BlueGreen Rollouts + health-gate auto-abort; retries / idempotency / DLQ in services; Longhorn replicasβœ… live / per-service
Load testingk6 in CI (smoke + load)βœ… live (extend per domain)
Backup / recoveryVelero + MinIO; kine/SQLite control-plane backup; Longhorn volume backupsβœ… live
Security testingTrivy image scan Β· cosign + SBOM Β· Gatekeeper / Polaris policy Β· CSPM IAM audit Β· SASTβœ… live
Architecture documentationDocusaurus (org + per-repo) Β· C4 Β· ADR logs Β· threat models Β· NFR registersβœ… live

Bottom line: the blueprint validates that the three-track IS is an enterprise-modernization platform. The only genuinely new backlog it surfaces is the warehouse/BI + semantic layer (#5) and the event-driven risk/fraud service (#11 post-v1) β€” everything else, including all of Level 7, is already live or already planned.


Business-operations completeness β€” the back-office layer​

A running insurer isn't just domain systems β€” it's the operational teams (Production/souscription, Claims handling, Billing/recouvrement, customer & broker servicing) doing daily work in those systems. "Complete business-ops" = the domain engines plus the operational glue that lets people actually run the business. Today only Policy Admin #6 is live, so this layer is mostly ahead of us β€” here is exactly what completes it, so it's named, not vague.

The six pieces of a complete back-office​

#PieceWhat it isStatus / home
1Domain enginesthe systems of record/lifecycle: Policy production/endorsement/renewal (#6), Claims FNOLβ†’settle (#11), Billing/dunning (#14), Distribution/servicing (#13)#6 🟒 live Β· #11 build-ready Β· #14 🟑 Β· #13 planned
2Operations Workbench (task-inbox)the cross-domain cockpit where ops agents work exceptions β€” one prioritised inbox, not per-app CRUD screens. This is the platform's own AI-native principle ("system automates the rule, humans handle the exception") made into a product.⚠️ the main NEW piece to add β€” today a principle, not a build
3Back-office workflow orchestrationlong-running processes: renewal runs, endorsement approvals, dunning cycles, claims SLAs/reserving stepsTemporal 🟒 live primitive β†’ wire per domain
4Omnichannel intakewhere work enters the back-office: email (shared mailboxes 🟒), phone/contact-center (Asterisk, backlog), chat β†’ routed to a task/ticket🟑 mailboxes live Β· call-center backlog
5Servicing self-servicebroker/customer portals that deflect back-office load (raise/track requests themselves)Distribution #13 (portal) Β· DMS #24 (docs)
6Operational reportingops KPIs: cycle times, backlogs, SLA-compliance, straight-through-processing rateGrafana (live) β†’ Data Platform #5 for cross-domain

So, what to add (in order)​

  1. Build the domain engines on the Track-A sequence (that is most of business-ops) β€” nothing new here, it's the value chain.
  2. Add the Operations Workbench as an explicit product β€” the one genuinely missing cross-cutting piece. It's the AI-native task-inbox over the domain events (NATS) + read-models; give it a board when the first two domains (e.g. Policy live + Claims) emit real tasks, so it has inputs (need-first β€” an inbox with nothing in it is pointless).
  3. Wire Temporal into each domain's long-running process as that domain is built (not a standalone project).
  4. Stand up omnichannel intake — promote the contact center (Asterisk) + mailbox→task routing from backlog once claims/servicing volume justifies it.
  5. Ops KPIs ride along each domain (Grafana now; cross-domain via #5 later).

The honest read: business-ops completeness is ~85% "build the roadmap domains" and ~15% one new cross-cutting product β€” the Operations Workbench. It is deliberately not built yet (need-first: it needs domains emitting real tasks first), but it is now named and placed so it isn't a silent gap. IT-ops (service desk) is covered separately by ITSM/GLPI #16 (design pass done) β€” don't conflate the two: #16 = supporting the IS; the Operations Workbench = running the insurance business.

Where the detail lives​