Case study / Legacy modernization & digital transformation
Three days from empty harness to live Odoo commit
Aleph Engineering joined the Odoo development at Wassermeloni in October 2025, continuing an existing collaboration between the two companies — as an outsourced development partner, not to rewrite their legacy estate, but to keep shipping inside it, immediately. We didn't modernize the stack first. We built the harness that let us start working in it, and measured how fast that actually happened.
Discuss a similar challengeWASSERMELONI · ODOO ERP3 days: empty harness to live Odoo commit.Outsourced development partner since October 2025.
3 daysfrom the harness's first commit to the first real commit inside Wassermeloni's Odoo customization
17repositories — Odoo core, the customer portal, and the existing team's own tooling — unified under one operable harness
272handbook pages built to reconcile Confluence documentation that had drifted out of date
112/112knowledge gaps across Odoo, RoR, and infrastructure answered in one handover session
The estate we inherited
A legacy estate, and a version Odoo won't upgrade
Wassermeloni runs two systems that had each accumulated their own kind of history: Odoo 16 Enterprise on the operations side — its own tracked customization history dates to 2023, and it's now a version Odoo itself no longer supports for upgrade — and a Ruby on Rails 6.1 / Angular 12 customer portal, live since 2015, wired into GoCardless, Twilio, SendGrid, and Keycloak. The existing team had documented a good part of both in Confluence. Years of hand-offs had left it contradictory in places and outdated in others — and none of it was written with an AI agent as a reader.
The first honest artifact we produced wasn't a fix. It was a diary of where the portal's onboarding wiki — solid documentation that simply hadn't kept pace with a growing environment — had drifted from what a fresh checkout actually needed.
23bring-up gaps logged against the portal's existing onboarding wiki
7were blocking — a fresh checkout genuinely could not reach a working state
6,853 / 174RSpec examples run vs. failures on a first clean portal checkout
Small details had drifted the way they do in any actively-developed system: three files each named a different Ruby version as canonical, and no single documented path to a local login without a live Keycloak connection. Ordinary wear from years of real feature work, not oversight — and exactly the kind of terrain every legacy engagement starts from, whether it says so up front or not.
THE REFRAMEThe harness was the point, not a rewrite.Legacy modernization is usually framed as a rewrite. What actually de-risks it is being able to onboard, understand, and safely change what's already there — the part of the job Aleph was actually brought in to do.
The knowledge layer
Context engineering
Code mapsThree independent onboarding maps
Claude Sonnet 4.5, Gemini 3, and GPT-5.1-codex-max each produced a full map of the stack independently — architecture, integrations, drift risks — so no single model's blind spot became the team's blind spot.
Wassermeloni HandbookA 272-page handbook, published
A Docusaurus site covering architecture, module interrelations, operations, and migration runbooks — reconciling years of Confluence documentation that had gone contradictory and out of date, into one account an agent could actually operate from.
Context-engineering pipelineA real intake process for institutional knowledge
Legacy documents, module inventories, and version audits move through a curate → register → sync pipeline into a catalog agents actually consult, instead of piling up unread in a shared drive.
Handover grillbook dossier112 ambiguities, each cited and closed
An auto-generated interview of 112 questions, each pointing at a real contradiction across the docs, built to capture what engineers leaving the existing team still knew before they left — all 112 answered in one structured session, turning tribal knowledge into an auditable record instead of letting it walk out the door.
The capability layer
Harness engineering
Odoo Agent SkillsNine versioned, registry-tracked skills
DB restore, test-DB lifecycle, fixture building, bug verification, UAT evidence, production hotfixing — codified once, adapted for Claude, Gemini, and OpenClaw, instead of re-learned by every new pair of hands.
Repository wrapper17 repos, one bootstrap
Odoo core, the customer portal, and the handbook unified behind one clone and one set of manifests, incorporating the existing team's own secrets-management and shared-tooling conventions rather than replacing them.
Shared memory + MCPLessons that survive the session
A credential-free Atlassian MCP wired at repo scope, plus a persistent cross-agent memory file, so operational gotchas get written down once and never re-discovered the hard way twice.
Engagement isolationBuilt to run alongside other clients, safely
Per-project desktop launchers scope credentials, config homes, and browser profiles per engagement — a harness built for a consultancy running several client environments at once, not just one project.
How it scaled
From an Odoo-only sandbox to the whole estate
The harness didn't start as a company-wide wrapper. It started narrow, proved itself on the hardest part of the stack, and only then absorbed everything else.
7 Oct 2025The Odoo Agentic Development Environment is born
A harness scoped to Odoo alone — the narrowest possible slice of the estate, built to prove the pattern before betting the whole engagement on it.
10 Oct 2025First commit lands in the real Odoo customization
Three days after the harness exists, real work begins directly in Wassermeloni's legacy Odoo module repo — not a demo environment, the actual production customization.
25 Nov 2025The Wassermeloni Agentic Development Environment wrapper is created
The first step toward covering the whole estate, not just its Odoo core.
8 Apr 2026The Wassermeloni Handbook goes live
253 of its eventual 272 pages are authored in the opening weeks — the knowledge layer formalized and published, not left as scattered notes.
6 Aug 2026The handover grillbook dossier is generated
Triggered by an important developer leaving the team — 112 knowledge gaps surfaced and closed in a single structured pass, rather than letting that knowledge leave with them.
25–26 Aug 2026The scaling moment
The wrapper pulls the portal and the team's existing shared tooling into the same harness the Odoo work already lived in — growing from an Odoo-only environment to 17 submodules under one umbrella.
Aug – Sep 2026Ticket velocity climbs
67% of all tracked ticket commits in the legacy repo land in these two months alone — the harness running at full speed, fully oiled.
Behind the ticket-velocity jump
Two concrete pieces of work
CI reliability & speedA pipeline that stopped fighting back
Moved E2E off a self-hosted runner onto Bitbucket Cloud, parallelized the backend spec suite, and baked gems and the Angular build into the CI image instead of reinstalling them on every run.
Per-branch review deploymentsFrom one shared queue to parallel reviews
Every PR used to funnel into a single shared staging deployment, so only one branch could be reviewed at a time. A new compose-based setup gives each branch its own isolated app and Redis, sharing Postgres and Elasticsearch — enough for 6–8 branches reviewed at once, sized against real capacity numbers measured on the production host with Muri.
What we're confident about
What's proven, and what's our best estimate
Here's what we're sure of, and what we're not.
The hard numbers
Repository, page, question, and commit counts come straight from our own records — exact dates and counts, nothing rounded or guessed.
Worth a caveat
The jump in commits in Aug–Sep is real, but it overlaps with the CI and per-branch review deployment work described above — so we're not saying every month looks like that one.
No exact number for this one
We don't have a clean “before” period on this same project to say precisely how many weeks of ramp-up time this saved. The 23-gap story is the closest real example we have of how much confusion a new person used to run into.
Your legacy estate
Need a partner who can move this fast inside your legacy stack?
We build the knowledge layer and the capability layer first — the part that lets an outsourced team see, trust, and safely change what's already there, from day one instead of month three.
Talk to us