More and more people ask me how I work with AI. Instead of repeating myself, I document everything here: my method, my config files, my projects, and the details of what I'm building — session by session.
My method comes down to a handful of .md files I drop into Claude's "Project Instructions." A main CLAUDE.md that defines my tone, my rules, and my context; extension files loaded on demand (strategy, dev…); and a dedicated file for each brand's DNA.
The guiding principle: Compound Engineering. Every time Claude gets my style wrong, I add a rule. The system improves with use — and all future work benefits from it.
Alongside the journal, I publish clear guides on AI and the tools I use: what it is, what it's for, what it changes. Written for busy merchants and decision-makers, but readable at any level — three reading depths on every page.
The first one lays the groundwork: generative AI and "LLMs", jargon-free, covering the major players and — most importantly — what they can't do.
Guide 01 · May 31, 2026What is AI, and what's an "LLM"?Generative AI explained for fast decisions: what it does, who builds it (OpenAI, Anthropic, Google, Mistral…), and its limits.Read →
What I'm building
Projects
It all fits together: one method (Claude + context files) applied to one territory — high-end audio/video retail and the tools that power it. Dev (Cobra) feeds the stores, the stores feed the community (HiFi Lovers), and the personal lab is where I experiment.
Nothing clearly separated the invoice is out, the customer has paid and the goods are delivered. Three independent badges (Invoicing / Payment / Delivery) replace the merged status: color coding, deposit rate shown, automatic switch from remaining-to-collect to remaining-to-deliver, delivered lines greyed out. Transposed from the existing supplier module; two latent calculation bugs fixed along the way.
A synthesis across 5 sessions: Cobra's internal app hub goes, in a few weeks, from a few isolated critical apps to a genuine small standardized ecosystem — identical header everywhere, shared Odoo connection, refresh on a common cron. Two incidents (an overwritten version, a cron missing its env vars) caught within minutes thanks to the backup/compare discipline before every deploy.
The Odoo pricing model was stacked and fragile: an auto-computed web pricelist, overlapping lists, a hard-coded 20% VAT, margin dropping to 0 the moment a product went out of stock. A single cobra_price field becomes THE source of truth via a _price_compute override — cost and margin recomputed, Omnibus-compliant strikethrough prices, immediate Shopify sync. 6 modules touched, ~7,300 products migrated, with real post-deploy follow-up (a display bug fixed the same day, 492 promo products re-pushed).
After a Cobra change to an Odoo module, the integrator (Irokoo) came back with 6 technical points (security, reliability, consistency). Each evaluated individually: 3 fixed as recommended, 2 with an explicit trade-off (keeping the chatter visibility Hugo cared about, while neutralizing the risk another way), 1 deliberately declined. An unreported bug caught and fixed along the way. Deployed in an isolated Git worktree so as not to interfere with another job in progress.
The most direct build-vs-buy case of the period: a spec for a competitive price-tracking dashboard (ABC scoring, rules engine, price history), estimated at 3-4 weeks of dev, sent to the integrator in March 2026 — left at to-be-validated-before-development, never started. The most technical brick (price import/matching via Wiser) was already running in production; the control layer was missing. Built in-house with Claude Code, in a few days, on our internal app hub.
A statement from a large supplier (GDD) showed a significant unpaid balance, spread across dozens of invoices — and didn't always account for the latest payments on the Odoo side, creating a double-payment risk. Systematic reconciliation of supplier statement / Odoo / bank statement on each new statement, six payment batches tracked one by one to actual bank confirmation: €200,059.33 settled in 6 transfers, two discrepancies (−€60, +€18) flagged to the supplier for correction.
The monthly sales-performance page existed but stayed passive — a table to consult at month-end. Reworked into a daily tool: merging three sources into a single Charge app (monthly perf, actionable follow-up, operational load), ranking vs prior-year target live from Odoo, Shopify revenue separated from individual revenue, 1,817 dormant quotes cancelled in bulk, dark/light checked everywhere. In testing before switching to production.
We created the 36 Davis variants by hand, in a Python script. Rather than starting over for every new brand, we formalized the method: a conversational AI agent on the Cobra dashboard that reads any source file and creates or updates Odoo products with no technical step.
Preparing the integration of a new speaker brand (Davis, Krypton + Ariane ranges) into Odoo 18: a clean extraction of the supplier price list into 11 models / 36 variants, and a Claude Code brief — read-only first, create only after a green light. Nothing created in the database yet — deliberately.
Bootstrapping then shipping the HF-OS technical foundation (Next.js 16 + Payload 3, Scaleway PostgreSQL, Render hosting), with admin login via Google SSO restricted to an allow-list. No business collections yet — just the deployed shell.
Odoo↔Shopify links broke when a product was recreated with variants (orphaned history). After a script rescue (Focal Bathys MG), we made it a feature: a LINK/RELINK wizard in cobra_shopify — SKU matching, atomic swap, no script.
The connector reflected neither archiving nor re-listing of a product. 3 bugs fixed in cobra_shopify + a cleanup script (~590 stale records purged, 2 still-purchasable products made unavailable).
The context files for the Cobra dev Claude project were outdated. Factual update from the repo, split of CLAUDE-dev (generic core vs Cobra extension) and a CLAUDE-* naming convention. PR #385 to preprod.
I document all of this in public, and I love talking about it. If you're building with Claude, if any of these projects intrigues you, or if you just want to compare approaches — reach out, let's chat.