Prateek brought Koda a blank integration task: implement Vivo Gaming's live dealer plugin from scratch. Koda read the provider spec, discovered the right reference pattern (BetSoft plugin for numeric gameIds โ not AleaPlay as first assumed), scaffolded the entire project structure (IntegrationCasino/VivoGaming/, .csproj, AssemblyInfo, BO config editor, DB post-deployment SQL), opened MR !3785, got pipeline 51996 green, and had the structure merged to feature/vivo_main โ all while keeping Prateek informed at every gate.
Real Stories
Five moments that actually happened.
During the GetBalance slice, the UnitTest CI job reported green. Koda checked the TRX artifact and found zero Vivo tests had actually executed โ the test runner was only processing Logic.Test.dll, not IntegrationCasino.Tests.dll where the Vivo tests live. Koda fixed the test runner script and added a fail-closed guard: the job now throws if the required Vivo test name is absent from the TRX.
Prateek told Tico that Koda already had answers to the open provider questions โ TrnDescription, History, tableGUID casing, isRoundFinished defaults โ answers that had been sitting in the debit docs for weeks. With those plugged in, the contract generator ran and the credit slice went from "blocked since 2026-07-29" to committed code in under 3 minutes (3e0790426).
Multiple times Koda caught itself or was caught: staging a live BET without confirmed TrnDescription/History format, trying to advance a stage without evidence. The 9-stage SDLC Prateek built forced the discipline โ no "verified" without a pinned pipeline + TRX + named test. Wallet code is money-moving code. One bad rollback = double refund in production (it hit us in bugfix/1939, bugfix/777).
We discovered that credit was marked "blocked โ missing provider docs" while the docs were sitting in another slice's folder. We built a deterministic generator from the OpenAPI spec: 54 constraints, 155 named test assertions, 39 error codes โ all derived automatically. Every new slice now starts with a complete, traced, machine-generated contract in under 10 seconds.
Development Approach
How we actually build integrations with Koda.
Two things made the Vivo integration work at scale: a disciplined 9-stage SDLC that gates every step on real evidence, and a contract-first methodology that eliminates manual requirements work. Both came from real pain โ not theory.
The 9-Stage Integration SDLC
Requirement Analysis
Read the provider spec, enumerate every API flow, list every open question. No assumptions โ every unknown is flagged before implementation starts. This is where AleaPlay vs BetSoft was caught.
Requirements Review
A separate model pass checks completeness, correctness, traceability, and authentication coverage. Not a formality โ this is where gaps in spec coverage surface before design commits to anything.
๐ฆ Gate: Human Green Light
Prateek explicitly approves. Nothing moves to design without this token. The gate is the contract between the agent and the human โ skip it and the whole SDLC collapses.
Design
Architecture decisions locked: reference pattern confirmed, house patterns applied (correct cache, correct config table). Design doc is the checklist Koda ticks in the MR description โ not background reading.
Implementation
One narrow branch per slice. feature/vivo_debit, feature/vivo_credit, status API โ each separate, each with a known expected output before code is written.
Unit Testing
Tests written against the contract, not against the code. "Green CI" is insufficient โ the TRX artifact must prove the right test assembly ran. This is how Story 02's bug was caught.
๐ฆ Gate: Evidence Review
Pinned pipeline + TRX file + named test present = advance. Missing any one = loop back. Wallet code is money-moving code โ no shortcuts.
MR + Human Review
MR opened, Prateek reviews. Small, reviewable slice = fast review. "Finish the integration" as one MR = unreviewed. Subtask branch โ feature/vivo_main โ master via QA only.
Merge + Ledger Update
Commit SHA logged, branch marked done, next slice starts. The ledger is always current. If you can't read the ledger in two minutes, the work has drifted.
Contract-First: What It Replaced
The Core Insight
Agents work better with guardrails, not steps.
Step-by-step instructions break the moment reality diverges from the script. Guardrails define the boundaries โ the agent finds its own path inside them. This is what made the Vivo integration survivable across weeks and five concurrent branches.
What We Learned
Six principles. All earned the hard way.
Slice work into narrow branches and flows
"Finish the integration" is not a task. feature/vivo_debit, feature/vivo_credit, status API, wallet routes โ each tracked separately with a known branch and expected output. The agent makes progress on a slice; it can't make progress on a vague goal.
Keep a visible ledger
At any point: pushed branches, commit SHAs where known, not-started items, blockers, next watch item. If you can't state the ledger in two minutes, the work has drifted.
โ All storiesGate claims with evidence
"Green CI" was not accepted until the artifact proved the Vivo test actually ran. IntegrationCasino.Tests.dll absent from the TRX = not done, regardless of the pipeline icon.
Correct assumptions early
BetSoft numeric gameId was the right reference โ not AleaPlay. One correction at design time prevented the wrong pattern from spreading across multiple files and stages.
Use short walkthroughs for internal tools
For BackOffice or browser-based flows, a short video showing login, menu path, fields, and expected result beats asking the agent to infer the workflow from a text description.
โ Lesson: 2026-07-01Tico as orchestrator works
Prateek holds the human gate. Koda does implementation slices and surfaces evidence. Tico keeps state clean and routes between them. This model held up across weeks and five concurrent branches.
โ Story 03The Model
Builder โ Orchestrator โ Human Gate.
How the Vivo integration actually ran
The winning pattern
Narrow task, known branch, source docs, expected evidence, frequent correction โ and no "complete" claim until proof exists.