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 challenge
WASSERMELONI · 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 maps

Three 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 Handbook

A 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 pipeline

A 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 dossier

112 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 Skills

Nine 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 wrapper

17 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 + MCP

Lessons 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 isolation

Built 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 2025

The 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 2025

First 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 2025

The Wassermeloni Agentic Development Environment wrapper is created

The first step toward covering the whole estate, not just its Odoo core.

8 Apr 2026

The 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 2026

The 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 2026

The 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 2026

Ticket 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 & speed

A 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 deployments

From 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