DEV Community

Michel Faure  profile picture

Michel Faure

Director at L'Atelier Palissy, an art ceramic school in Paris. Coding our ERP from scratch with Claude Code. Writing about what I learn here. Art history background, business school refusenik.

Location Paris, France Joined Joined on  Personal website https://github.com/michelfaure/rembrandt-samples
Les 12 outils que j'utilise pour piloter Claude Code en production : gardés, jetés, contestés

Les 12 outils que j'utilise pour piloter Claude Code en production : gardés, jetés, contestés

Comments
7 min read

Want to connect with Michel Faure ?

Create an account to connect with Michel Faure . You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Quand `await mutation()` ment : le destructure `{ error }` qui sauve ton week-end

Quand `await mutation()` ment : le destructure `{ error }` qui sauve ton week-end

Comments
6 min read
Pourquoi ton agent sur-équipe ta demande la plus simple (et les 3 prompts qui l'arrêtent)

Pourquoi ton agent sur-équipe ta demande la plus simple (et les 3 prompts qui l'arrêtent)

Comments
3 min read
Pourquoi j'ai cessé de lire mon propre backlog.md (et ce que je lis à la place)

Pourquoi j'ai cessé de lire mon propre backlog.md (et ce que je lis à la place)

Comments
4 min read
Ce que 74 ADR en 70 jours achètent vraiment à un dev solo (pas d'embauche, pas de client, juste le fichier)

Ce que 74 ADR en 70 jours achètent vraiment à un dev solo (pas d'embauche, pas de client, juste le fichier)

Comments
6 min read
When `await mutation()` lies: the `{ error }` destructuring that saves your weekend

When `await mutation()` lies: the `{ error }` destructuring that saves your weekend

2
Comments 2
5 min read
La requête PostgREST qui trie en silence par `ctid` : une semaine Supabase, distillée

La requête PostgREST qui trie en silence par `ctid` : une semaine Supabase, distillée

Comments
7 min read
3 incidents Supabase, une seule racine : SECURITY DEFINER hérite de EXECUTE TO PUBLIC

3 incidents Supabase, une seule racine : SECURITY DEFINER hérite de EXECUTE TO PUBLIC

Comments
7 min read
The Counterpart Doctrine: a seven-axis spec for working with an AI coding agent

The Counterpart Doctrine: a seven-axis spec for working with an AI coding agent

Comments
7 min read
RLS recursion infinite loop: why I gave up policies and bet everything on a JWT custom claims hook

RLS recursion infinite loop: why I gave up policies and bet everything on a JWT custom claims hook

Comments 2
5 min read
The PostgREST query that silently ORDER BY ctid: a Supabase week, distilled

The PostgREST query that silently ORDER BY ctid: a Supabase week, distilled

Comments
6 min read
Why your agent over-engineers your simplest request (and the 3 prompts that stop it)

Why your agent over-engineers your simplest request (and the 3 prompts that stop it)

Comments
3 min read
60 jours avec Claude Code sur un ERP en production : le bilan honnête, sans hype, chiffres bruts

60 jours avec Claude Code sur un ERP en production : le bilan honnête, sans hype, chiffres bruts

Comments
12 min read
60 jours sous Live/Snapshot/Cache : trois sauvetages, une trahison, et ce que j'ai changé

60 jours sous Live/Snapshot/Cache : trois sauvetages, une trahison, et ce que j'ai changé

Comments
7 min read
Live, Snapshot, Cache: revisiting the 3-way decision after 60 days of running it

Live, Snapshot, Cache: revisiting the 3-way decision after 60 days of running it

1
Comments
6 min read
The 12 tools I use to pilot Claude Code in production: kept, dropped, contested

The 12 tools I use to pilot Claude Code in production: kept, dropped, contested

Comments
6 min read
3 Supabase security incidents, one shared root cause: SECURITY DEFINER inherits EXECUTE TO PUBLIC

3 Supabase security incidents, one shared root cause: SECURITY DEFINER inherits EXECUTE TO PUBLIC

Comments
6 min read
What 74 ADRs in 70 days actually buy a solo dev (no hire, no clients, just the file)

What 74 ADRs in 70 days actually buy a solo dev (no hire, no clients, just the file)

Comments
5 min read
60 days with Claude Code on a production ERP: the honest balance (no hype, raw numbers)

60 days with Claude Code on a production ERP: the honest balance (no hype, raw numbers)

Comments
10 min read
Why I stopped reading my own backlog.md (and what I read instead)

Why I stopped reading my own backlog.md (and what I read instead)

Comments
3 min read
Quick Win Card #04 — Le test contrat de 15 lignes qui déverrouille les refacto de schéma sans peur

Quick Win Card #04 — Le test contrat de 15 lignes qui déverrouille les refacto de schéma sans peur

Comments
4 min read
Quick Win Card #04 — The 15-line contract test that unlocks fearless schema refactors

Quick Win Card #04 — The 15-line contract test that unlocks fearless schema refactors

Comments
4 min read
Quick Win Card #03 — Ton sub-agent n'a jamais lu ton MEMORY.md (l'en-tête de brief en 5 lignes qui répare ça)

Quick Win Card #03 — Ton sub-agent n'a jamais lu ton MEMORY.md (l'en-tête de brief en 5 lignes qui répare ça)

Comments
4 min read
Quick Win Card #03 — Your sub-agent never read your MEMORY.md (the 5-line brief header that fixes it)

Quick Win Card #03 — Your sub-agent never read your MEMORY.md (the 5-line brief header that fixes it)

Comments 3
4 min read
Le SDK Stripe nous a menti en 9 millisecondes : 4 tests pour confondre un bug d'environnement avant de le patcher

Le SDK Stripe nous a menti en 9 millisecondes : 4 tests pour confondre un bug d'environnement avant de le patcher

Comments
7 min read
The 4-test protocol that isolated a 9 ms Stripe SDK crash on Next 16

The 4-test protocol that isolated a 9 ms Stripe SDK crash on Next 16

Comments
6 min read
Quand on vous signale 1 bug, il y en a toujours plus (le grep qui a démonté mes hypothèses)

Quand on vous signale 1 bug, il y en a toujours plus (le grep qui a démonté mes hypothèses)

Comments
3 min read
When a user reports 1 bug, there are always more (the grep that broke my assumptions)

When a user reports 1 bug, there are always more (the grep that broke my assumptions)

Comments
3 min read
Après 5 commits sans vous, votre agent a quitté la boucle : l'idée du méta-hook

Après 5 commits sans vous, votre agent a quitté la boucle : l'idée du méta-hook

Comments
3 min read
After 5 commits without you, your agent has left the loop: the meta-hook idea

After 5 commits without you, your agent has left the loop: the meta-hook idea

Comments 1
3 min read
Pourquoi votre sub-agent ne charge pas la même mémoire que vous (et comment il pousse sur main dans votre dos)

Pourquoi votre sub-agent ne charge pas la même mémoire que vous (et comment il pousse sur main dans votre dos)

Comments
4 min read
Why your sub-agent doesn't load the same memory as you (and how it commits to main behind your back)

Why your sub-agent doesn't load the same memory as you (and how it commits to main behind your back)

Comments
3 min read
Pourquoi ton DELETE bulk sur Supabase est faux avant même de tourner (drift en 30 min)

Pourquoi ton DELETE bulk sur Supabase est faux avant même de tourner (drift en 30 min)

1
Comments
3 min read
Why your bulk DELETE on Supabase is wrong before you run it (count drift in 30 min)

Why your bulk DELETE on Supabase is wrong before you run it (count drift in 30 min)

1
Comments
3 min read
Une ligne dans CLAUDE.md qui casse le réflexe over-engineering de Claude

Une ligne dans CLAUDE.md qui casse le réflexe over-engineering de Claude

Comments
3 min read
One line in CLAUDE.md that breaks Claude's over-engineering reflex

One line in CLAUDE.md that breaks Claude's over-engineering reflex

Comments
3 min read
Quick Win Card #02 — Ton compteur de lignes ment après 30 minutes (le hook qui refuse les DELETE bulk périmés)

Quick Win Card #02 — Ton compteur de lignes ment après 30 minutes (le hook qui refuse les DELETE bulk périmés)

Comments
4 min read
Quick Win Card #02 — Your row count lies after 30 minutes (the hook that refuses stale bulk DELETE)

Quick Win Card #02 — Your row count lies after 30 minutes (the hook that refuses stale bulk DELETE)

Comments
3 min read
Une journée avec `/challenger` : 4 bugs, 4 hypothèses réfutées avant le fix

Une journée avec `/challenger` : 4 bugs, 4 hypothèses réfutées avant le fix

Comments
7 min read
A day in the life of `/challenger`: 4 bugs, 4 hypotheses falsified before the fix

A day in the life of `/challenger`: 4 bugs, 4 hypotheses falsified before the fix

Comments
6 min read
Why your AI shouldn't decide alone: the 3-options pattern

Why your AI shouldn't decide alone: the 3-options pattern

Comments
3 min read
Pourquoi votre IA ne devrait pas trancher seule un audit ou une permission

Pourquoi votre IA ne devrait pas trancher seule un audit ou une permission

Comments
3 min read
Quick Win Card #01 — Ton backlog.md t'a menti (la cure en 30 secondes)

Quick Win Card #01 — Ton backlog.md t'a menti (la cure en 30 secondes)

Comments
3 min read
Quick Win Card #01 — Your backlog.md lied to you (a 30-second cure)

Quick Win Card #01 — Your backlog.md lied to you (a 30-second cure)

Comments
3 min read
Deux IA d'accord = une source : la règle qui m'a évité un pipeline bâti sur du vide

Deux IA d'accord = une source : la règle qui m'a évité un pipeline bâti sur du vide

Comments
6 min read
Two AI reviews agreeing is not two reviews: how I learned to test claims before adopting them

Two AI reviews agreeing is not two reviews: how I learned to test claims before adopting them

Comments
5 min read
Three weeks after I said CLAUDE.md writes itself, it added 4 more rules without me

Three weeks after I said CLAUDE.md writes itself, it added 4 more rules without me

Comments
7 min read
Trois semaines après avoir dit que mon CLAUDE.md s'écrivait tout seul, il a ajouté 4 règles sans moi

Trois semaines après avoir dit que mon CLAUDE.md s'écrivait tout seul, il a ajouté 4 règles sans moi

Comments
8 min read
Pourquoi « build vert » sans la sortie brute n'a aucune valeur de preuve

Pourquoi « build vert » sans la sortie brute n'a aucune valeur de preuve

Comments
6 min read
Why 'green build' without the raw output has zero evidentiary value

Why 'green build' without the raw output has zero evidentiary value

Comments
5 min read
Pourquoi ta requête Supabase s'arrête à exactement 1000 lignes (et ne te le dit jamais)

Pourquoi ta requête Supabase s'arrête à exactement 1000 lignes (et ne te le dit jamais)

Comments
3 min read
Why your Supabase query stops at exactly 1000 rows (and never tells you)

Why your Supabase query stops at exactly 1000 rows (and never tells you)

Comments
2 min read
Forcez Claude Code à vous contredire : 14 règles, install en 1 commande

Forcez Claude Code à vous contredire : 14 règles, install en 1 commande

Comments
7 min read
Make Claude Code disagree with you: a 14-rule counterpart toolkit (install in 1 command)

Make Claude Code disagree with you: a 14-rule counterpart toolkit (install in 1 command)

Comments
6 min read
La règle du jour-jeté-à-la-poubelle : lis le code avant de laisser ton IA en écrire

La règle du jour-jeté-à-la-poubelle : lis le code avant de laisser ton IA en écrire

Comments
3 min read
The 1-day-thrown-away rule: read the code before letting your AI write new code

The 1-day-thrown-away rule: read the code before letting your AI write new code

Comments
2 min read
Pourquoi ton audit DB trouve toujours plus que ton inventaire ne disait

Pourquoi ton audit DB trouve toujours plus que ton inventaire ne disait

Comments
3 min read
Why your DB audit always finds more than your inventory says

Why your DB audit always finds more than your inventory says

Comments 4
3 min read
Cinq modes de défaillance silencieuse, codifiés après 35 jours d'ERP en solo

Cinq modes de défaillance silencieuse, codifiés après 35 jours d'ERP en solo

Comments
6 min read
Five silent failure modes I codified after 35 effective days of solo ERP coding

Five silent failure modes I codified after 35 effective days of solo ERP coding

Comments
6 min read
loading...