$What "AI-augmented" actually means in practice
Most people using AI for engineering work today are doing one of two things:
- Conversational copilot. Open Claude or ChatGPT in a tab, ask questions, paste code back and forth. Useful but unstructured. The AI has no memory of your project beyond what you paste each time.
- IDE autocomplete. Cursor / Windsurf / Copilot suggesting completions inline. Good for boilerplate. The AI sees the current file but not the project's domain rules.
Both work. Neither is what I mean by AI-augmented engineering. The practice I run treats Claude Code as a production tool with the same discipline a team would apply to a CI pipeline or a database migration system: version-controlled context, durable institutional memory, safety rails, and a test suite that catches when the AI gets it wrong.
The 7-month Odoo 18 multi-marketplace engagement that produced the case study referenced on the homepage closed at a pace that traditional consulting estimates at 18-24 months. The compression is real, and it's not because I'm faster than a senior engineer. It's because the practice handles the work that usually slows engineering teams down (re-learning the domain every Monday, fearing risky changes, not knowing what's safe to touch).
$The six load-bearing components
1. Project knowledge vault
Every project gets a knowledge/ directory at the repo root, version-controlled, organized by topic. It contains:
- Domain decisions. Why each major architectural call was made, with date and reasoning. Architectural Decision Records (ADRs).
- Hard rules. Patterns that have caused real production incidents, documented as never-do rules with the incident date and what broke.
- Runbooks. Step-by-step procedures for operational tasks (deploys, migrations, recovery flows).
- Domain glossary. Project-specific terminology with definitions. Critical for any AI session, because the AI has to know that "FBM" means Fulfilled-By-Merchant in this codebase, not anything else.
- Session logs. Daily/substantive session notes with what was tried, what worked, what didn't.
The vault isn't documentation for new humans. It's context for AI sessions. Claude Code reads the relevant files at session start, so each new session begins with full project context, not the cold-start "what is this codebase?" exploration that wastes the first 15 minutes of every traditional AI-pair-programming session.
On the prior engagement: ~75 markdown files at handoff. Reading the right subset before starting any non-trivial task is the single biggest velocity unlock.
2. Persistent memory across sessions
Claude Code's session memory is short. Without intervention, every new session starts blank. The persistent-memory pattern is:
- A
~/.claude/projects/<project>/memory/MEMORY.mdfile (or equivalent) that holds durable cross-session learnings. - An indexed structure: each memory entry has a topic, a date, and a short summary.
- A discipline of promoting durable findings from session logs into MEMORY.md when they recur.
The auto-memory feature in modern Claude Code does most of this automatically. The discipline is to actually read the memory at session start, and to curate it so it doesn't become a junk drawer.
The transferable lesson: AI sessions without persistent memory degrade to the same mistakes every Monday morning. With persistent memory, the AI converges on the project's actual idioms within hours of starting, not weeks.
3. Module-lock hooks for parallel sessions
I often run multiple AI sessions in parallel. One analyzing data, one writing tests, one shipping a refactor. Without coordination, they conflict: two sessions both edit the same file, the second commit either fails or overwrites the first.
Module-lock hooks solve this. Each session claims an exclusive lock on the modules it's editing. Other sessions see the lock and route around it (picking a different module to work on, or waiting). The locks live in a .locks/ directory checked into git, with timestamps and session IDs.
The pattern is roughly:
# Before editing a module, acquire the lock.
$ ./scripts/lock acquire fl_marketplaces_amazon
acquired lock on fl_marketplaces_amazon (session=david-2026-05-31-1014)
# Make edits, run tests, commit.
$ git commit -am "amazon: fix lead-time wipe"
# Release on completion.
$ ./scripts/lock release fl_marketplaces_amazon
For solo work this looks like ceremony. For two or more parallel sessions (whether multiple humans or multiple Claude accounts), it's the difference between productive parallelism and an hour spent untangling merge conflicts.
4. Watchdog snapshots before risky changes
Before any change that touches production-shaped data (a migration, a bulk update, a schema change), the watchdog takes a snapshot. The snapshot captures:
- Counts of records in affected tables.
- Hashes of representative rows.
- The current state of any auto-computed fields that might be invalidated.
- The Odoo version and module-state vector.
After the change, the watchdog diffs current state against the snapshot. Significant deviations get flagged before the change is considered done.
On the prior engagement, the watchdog caught the image-derivative cascade in real-time. When 34,488 ir_attachment records disappeared in a 5-minute window, the diff exploded and the alert fired. Without the watchdog, the cascade would have been discovered hours later when customer pages started showing missing thumbnails.
The snapshot-then-diff pattern is what makes risky AI-driven changes safe. The AI can be wrong. The watchdog catches it before it ages into a real outage.
5. Hard rules tied to real incidents
Every time the engagement hits a non-obvious failure mode, the failure becomes a hard rule. The format is:
# Hard rule
2025-11-14: Don't bypass Odoo ORM for image bytes unless re-firing
the derivative-compute chain in the same transaction.
Incident: PIL bulk-update of 2,847 images via direct SQL bypassed
ir_attachment. Catalog thumbnails went blank for 3.5 hours before
recovery script finished. Root cause: derivative-compute chain
didn't re-fire because nothing accessed the records.
Fix: bulk-insert PIL output directly to ir_attachment (see
runbook 0014: image-pipeline-recovery.md).
On the prior engagement: 28 documented hard rules at handoff. Each one tied to a specific production incident with date, what failed, and what the right pattern is. The AI reads the rules at session start. New incidents become new rules. The set grows.
The transferable insight: every senior engineer has a list like this in their head. Most teams don't write it down. Writing it down (and indexing it for AI sessions) is what compounds. The AI doesn't re-learn the same mistakes the previous engineer learned the hard way.
6. Test suite as a safety net for AI changes
A small test suite is worse than useless for AI-augmented work. The AI can confidently write code that passes 5 superficial tests while breaking the production path. A real test suite (covering security regressions, order lifecycle, business rules, integration paths, and data integrity) catches the breakage before it ships.
On the prior engagement: 143-method test suite across six categories at handoff. Specifically:
- Security regressions: tests that fail if a known security flaw reopens.
- Order lifecycle: tests that walk an order from created through paid, fulfilled, shipped, delivered, refunded. Every state transition.
- Business rules: tests that fail if domain invariants break (e.g., "MTO products must have qty=999 on the marketplace listing").
- Integration paths: tests against mock SP-API / eBay / Walmart endpoints exercising the publish + reconcile flows.
- Data integrity: tests that fail if Odoo records get into impossible states.
- Manufacturing / domain-specific: tests for the client's specific business logic.
The AI runs the suite before claiming work is done. If the suite fails, the work continues. The suite is the bar; "looks good to me" is not the bar.
$The compounding effect
Any one of these components alone is helpful but limited. The compounding effect comes from running all six together:
- The knowledge vault gives the AI cold-start domain context.
- Persistent memory keeps it from re-learning that context every session.
- Module-lock hooks let multiple sessions work in parallel without stepping on each other.
- Watchdog snapshots catch when something goes wrong at the data level.
- Hard rules prevent re-learning by re-failing.
- Test suite catches when the AI confidently ships something subtly broken.
With all six in place, a new session can pick up serious work within minutes of starting. Without them, every session is cold-start, and the AI is one bad suggestion away from a production incident with no safety net.
$What this enables commercially
The practice stack is the load-bearing reason the Odoo + Marketplace Reconciliation Audit audit can be priced at $1,500-$2,500 for 3 business days. Without it:
- Domain learning per audit = 1-2 days. With the vault: 30 minutes.
- Generating findings = manual investigation, ~6 hours per finding. With Claude + the vault: ~90 minutes per finding.
- Report drafting = 4-6 hours of writing. With the deliverable template + structured findings: ~90 minutes of writing + 60 minutes of review.
- Total audit time without the practice: 5-7 business days at $175-225/hour = $7,000-$12,600. The market won't pay that for "find what's broken."
- Total audit time with the practice: 3 business days at the same hourly rate = $4,200-$5,400 of actual operator time, sold at a margin to land at $1,500-$2,500 fixed-fee.
The same compounding applies to longer engagements. The 7-month engagement that produced the case study would have been a 14-18 month engagement without the practice, at correspondingly higher cost. The discipline isn't theater. It's the load-bearing reason an AI-augmented senior engineer can take on enterprise work at solo-consultant pricing.
$What to NOT do
A few patterns that look like AI-augmented engineering but aren't:
- AI in production without any of the six components. The AI will ship something subtly broken eventually. Without the watchdog or the test suite, you find out at customer-impact time.
- AI for boilerplate generation only. Treating Claude as autocomplete leaves the entire AI-augmented win on the table. The value is in the durable institutional memory + safety rails, not in faster typing.
- AI for "ideation" without a real test environment. Generating designs, plans, or "thoughts" without ever shipping anything to a real Odoo instance produces output that looks plausible but breaks on contact with reality.
- AI-generated dashboards instead of AI-augmented work. A common failure mode: the team builds elaborate dashboards tracking the work they could have done. The dashboard is yak-shaving. The work is the work.
$The transferable lesson
AI-augmented engineering with discipline beats both "no AI" and "AI without rules." The knowledge vault + memory + module-lock + watchdog + hard rules + test suite is what makes AI in production safe, and what compresses calendar time to a fraction of what traditional consulting estimates require.
If you're running Odoo and you've been wondering whether AI can do real engineering work on your platform without breaking everything: the answer is yes, but only with this kind of practice in place. Without it, the AI is one bad suggestion away from a production incident with no safety net. With it, you can audit, modernize, and ship at the pace this practice produces.