Claude AI

The Challenge
A Legacy System That Had Outlived Its Time
Javra's Leave Management System (LMS) — the HR backbone used by employees across Nepal, the Netherlands, and Portugal — was build on OpenEdge ABL, a 1990s enterprise platform with steep licensing costs, a shrinking developer pool, and a UI that hadn't meaningfully changed since 2011.
Every year, licensing renewal came around and the question was the same: pay again, or migrate? The answer was always 'pay again' — because migrating a complex, multi-country HR system with 15+ years of accumulated business rules felt impossibly risky and expensive.
The legacy system contained 27 database tables, 98 business rules spread across ~70 procedure files, and a thick-client admin app with a jQuery web portal from 2011. Four core problems made the status quo unsustainable:
High OpenEdge licensing costs renewed annually with no reduction in sight
Scarce developer talent — OpenEdge/ABL specialists are nearly impossible to hire
No mobile support — employees were forced to use desktop browsers only
GDPR compliance gaps increasingly difficult to address on legacy infrastructure
"This isn't a greenfield build. It's replacing a running production system that all employees depend on daily. Getting a single rule wrong means someone's leave balance is incorrect."
Not a Chatbot — an AI Coding Agent
Claude Code is Anthropic's AI coding agent that runs directly in your terminal. It reads files, writes code, runs commands, and executes tests — guided by project-level configuration. It is fundamentally different from a chat assistant.
Not a chatbot — it operates directly on the codebase, running real commands in the terminal
Configurable — project instructions, rules, hooks, skills, and agents define its behaviour
Persistent memory — remembers decisions and conventions across sessions
1 developer + Claude Code built this entire system in 9 days with 137 commits
Spec-Driven Development — Writing Specs Before Code
Instead of coding first and documenting later, Javra wrote specifications first and used them as the contract between human decisions and AI implementation. Every line of code traces back to a spec section. No orphan code. No undocumented behaviour.
Product spec (product.md, 250 lines) — what and why, 73 requirements across 14 areas
System spec (system.md, 2,250 lines) — full architecture, schemas, algorithms
Legacy spec (legacy.md, 700 lines) — reverse-engineered from source code and live databases
Task plan (tasks.md) — ordered implementation tasks mapped to spec sections
Design spec (design.md) — visual patterns, tokens, accessibility rules
Total spec surface: ~3,200 lines. Management can read product.md and know exactly what is being built.
"Claude Code reads the specs before writing any code. The specs are the interface between human judgment and AI execution."
The Automated Development Loop
For each of the 52 implementation tasks, Claude ran a complete, automated quality loop: write code, run tests, lint, review, and fix — before marking the task complete:

HOW THE AI WAS CONFIGURED
The Bootstrap Sequence — Teaching the AI the Project
The Claude Code configuration was not written all at once. It evolved over the first six days as patterns emerged and corrections were made:
Day 1: Specs first — wrote product.md, system.md, legacy.md from stakeholder interviews and legacy DB exploration
Day 1: Scaffold — CLAUDE.md with commands and ports; first rules for structure, database, and TypeScript
Day 2: Discovery agent — built to extract legacy business rules; ran against each domain before coding
Day 2–3: First CRUD cycle — built Employees manually, noticed the repeating 16-file pattern across the stack
Day 3: Skills emerge — codified CRUD into /crud-scaffold; created /task-prep and /task-review workflows
Day 4+: Rules from corrections — every time Claude Code was corrected, the correction became a permanent rule file
The result: 11 rule files, 7 specialized reviewer agents, 5 reusable skills, and 8 automated hooks — all version-controlled alongside the code. The AI configuration gets smarter over time through a self-learning loop: each correction in one session becomes a known pattern in the next.
PHASE 1: LEGACY EXTRACTION
Deep Legacy Extraction — In Days, Not Months
The biggest risk in any migration is missing business rules buried in legacy code. The old LMS had 98 business rules spread across ~70 procedure files, with logic dispatched through a framework event system and country-specific branches buried deep in conditionals.
Claude's discovery agent connected directly to the legacy OpenEdge database, read every line of the relevant procedures, traced framework event handlers, anotated every branch by country, and cross-referenced code understanding against actual data dumps. Artifacts were saved per domain for persistence across sessions.
What would have taken a senior developer 4–6 weeks of careful archaeology took days. The artifacts were not summaries — they were annotated function-level extractions with branches, edge cases, and test scenarios that fed directly into the task checklists.


WHAT WAS DELIVERED
A Full-Featured, Multi-Country HR Platform
The new LMS is not a simplified rewrite — it is a full-fidelity migration with a modern foundation, serving all four user personas across three countries.

Multi-Country Business Logic — All in One Codebase
Nepal — Nepali calendar, mid-July fiscal year start, monthly leave accrual (0.5 days/month)
Netherlands — Statutory vs. non-statutory leave expiry rules, GDPR compliance built in
Portugal — Country-specific leave types, holiday calendars, and eligibility rules
PROJECT PROGRESS
Five Milestones — 40 Features Delivered
The project is structured into five milestones. Three are complete, one is in progress, and the final data migration milestone is pending external readiness.

TECHNICAL FOUNDATION
Built to Last — Modern Stack, Zero Proprietary Licensing
The new system uses a modern, widely-supported stack that any TypeScript developer can maintain — no proprietary runtimes, no expensive licenses, no platform lock-in beyond Azure which the client already uses.


QUALITY ASSURANCE
Quality Was Non-Negotiable
One concern with AI-generated code is quality drift — code that works today but becomes unmaintainable tomorrow. Javra addressed this directly by encoding quality constraints into Claude's workflow itself.
Spec traceability on every file — every implementation file has a @spec comment linking it to the product or system spec section. Code and requirements stay in sync.
Automated drift detection — a custom hook checks before every task completion that API docs match routes, schemas match types, and environment variables are documented.
Three-tier test coverage — unit tests for business logic, integration tests against a real PostgreSQL database, and Playwright E2E tests for user-facing flows.
Security enforced at both layers — authorization at the service layer (backend enforcement) and UI layer (UX). Self-approval prevention, ownership scoping, and role delegation all verified by tests.
Independent code review agents — after implementation, separate reviewer agents checked for bugs, security issues, and logic errors with no shared context from the implementing agent.
BUSINESS CASE
The Numbers That Matter to a Business
Here is the business case in plain terms — comparing the legacy OpenEdge system against the new TypeScript stack on every dimension that affects cost, risk, and maintainability.

A system of this complexity — multi-country HR logic, approval workflows, balance engines, attendance tracking, reporting — would traditionally require a team of 4–5 engineers and 12–18 months. With Claude Code, a leaner team delivered 40 complete, tested features across three milestones in a fraction of that time.
WHAT MAKES THIS DIFFERENT
Traditional Migration vs Spec-Driven + AI Agent
This approach differs from traditional migration in every phase — from how knowledge is captured, to how code is written, to how quality is enforced.

HUMAN-AI COLLABORATION
The Human-AI Division of Labor
The human makes all architectural and business decisions. The AI executes with high fidelity. The specs are the interface between human judgment and AI execution.
Human decides: what to build, how to structure it, which business rules to preserve, design direction
AI executes: writes code, runs tests, catches drift, applies patterns consistently across all files
Human reviews: task-review output, milestone-review findings, all design choices
AI remembers: project conventions, past decisions, patterns — across sessions via persistent memory
RISK MITIGATION
How Risk Was Managed
Migration risk was addressed systematically at every layer — not left to hope or manual review.
Business rule fidelity — every legacy rule has a spec reference, a checklist item, and a test
Data migration — planned parallel run (M5) to verify before cutover; legacy system stays available for rollback
Security — defence-in-depth enforced by rules; every action checked independently at backend and frontend layers
Knowledge retention — all decisions live in specs and rules, not in anyone's head
Quality — 76 test files, automated drift checks, specialized review agents for each layer
Zero downtime — parallel run period means both systems run simultaneously before cutover.
WHAT THIS MEANS FOR YOU
A Repeatable AI-Assisted Delivery Process
Javra is not just using AI as a productivity tool. We have built a repeatable AI-assisted delivery process — with structured discovery, spec-driven implementation, automated quality gates, and persistent project memory that carries context across sessions.
This process works for:
Legacy migrations — extract buried business rules, modernize the stack, keep every rule. Reduce migration risk dramatically.
Greenfield products — go from spec to working, tested software faster than traditional development. No shortcuts on quality.
Long-running systems — quality gates and spec traceability keep the codebase maintainable as it grows over years.
Cost reduction — eliminate proprietary licensing, shrink the team needed, cut delivery timelines without cutting corners.
If your organization is running on aging technology — whether OpenEdge, Oracle Forms, legacy Java, or a custom framework — and you've been putting off migration because it felt too risky or expensive, the calculus has changed.
AI-assisted development with Claude Code makes complex migrations achievable at a cost and timeline that was previously impossible.

LET'S TALK
Contact Javra
Javra has been building software for over two decades. We now combine that engineering experience with the newest generation of AI tooling to deliver projects that are faster, higher quality, and less expensive to maintain.
If you have a legacy system you've been living with longer than you should — or a new product you want to build right the first time — we'd like to hear about it.
Visit us at javra.com to start the conversation.
Javra Software · Engineering solutions that last · javra.com · Published June 2026
Share Blog

Building the future of intelligent automation with AI agents that think, act, and deliver real business results.
Life at Javra
Products
Our Solutions
Others
Netherlands
+31 (0)345 515 930
Head Office
Portugal
+351 213 011 414
Nearshore Office
Nepal
+977-01-5408782
Offshore Office
Copyright © 2026 Javra Software | All Rights Reserved


