Naia
· Luke Yang

Comprendre le Harnessing à travers le partage de cas d'AX de Nextain x Onmam.com

harness-engineeringonmamcase-studyAIAXAI Trasformation

Ce billet de blog est basé sur une présentation sur l'« ingénierie de harnais » donnée le 2 mai 2026, lors de la guilde Dabakodan Daolab Vibe Coding.

Nextain est une entreprise qui développe et soutient des technologies d'AX pour les entreprises possédant des produits logiciels. Nous avons repris l'exploitation du système du portail des églises coréennes, Onmam.com, et travaillons sur son AX. Nous avons procédé à la migration du système hérité de l'ancien centre IDC, mis en place un environnement permettant le développement et l'exploitation basés sur des agents pour le projet, et travaillons sur la stabilisation et l'amélioration des fonctionnalités. Étant un système hérité ancien, il y a eu des essais et des erreurs, et nous avons intégré cela dans l'expérience et la technologie de l'entreprise en appliquant naia-business-adk à Onmam.com. Cette expérience a été partagée lors de l'événement comme un cas illustrant l'ingénierie de harnais.

hero-en.webp

Le message clé de cet article "Il est plus important de créer un environnement où l'IA ne commet pas d'erreurs que de bien utiliser l'IA."


1. D'abord, présentation de notre service

Onmam.com — Plateforme de gestion d'églises utilisée par 13 876 églises à travers le pays

www.onmam.com      ← Recherche d'églises, portail membres
home.onmam.com     ← Application de canal (contenu/paiement)
{nom_eglise}.onmam.com ← Page d'accueil de l'église individuelle

Infrastructure : Ancien serveur IDC → Migration complète vers GCP (Google Cloud) terminée en avril 2026 BD : Données de 13 876 églises × Cloud SQL


2. Commençons par un incident

"Un jour d'avril 2026"

11h00. Soudain, l'ensemble du service Onmam.com ne répond plus.
Utilisateurs : "Pourquoi le site ne fonctionne-t-il pas ?"

En traçant la cause — le code de consultation de la liste des tableaux d'affichage dans un fichier nommé Board.php.

-- Requête problématique (simplifiée)
SELECT * FROM boards
JOIN (
  SELECT bbs_id, COUNT(*) FROM all_boards GROUP BY bbs_id  -- ← C'est le problème
) AS summary ON boards.id = summary.bbs_id
WHERE church_id = ?

Cette seule requête effectuait un scan complet de toutes les données des 13 876 églises à chaque fois. Lorsque le trafic a afflué, 145 requêtes de 600 à 800 secondes se sont exécutées simultanément → le serveur a été complètement paralysé.

Quel est le rapport avec l'IA ?

Ce code a probablement été écrit pour la première fois par un développeur humain. Mais aujourd'hui, les développeurs écrivent ce genre de code avec l'IA.

Le problème est que — l'IA ne sait pas "comment ce code fonctionne dans un environnement de 13 876 églises". L'IA se concentre sur l'implémentation de la fonctionnalité demandée et ignore le contexte de notre service.

C'est pourquoi les développeurs ont commencé à se poser la question : "Comment empêcher l'IA de coder sans connaître notre service ?"


3. Ingénierie de harnais — Explication en 30 secondes

De même qu'un cheval a besoin de rênes et d'un harnais pour être dirigé,
un agent IA a également besoin de contraintes, de guides et de mécanismes de validation.

Agent = Modèle + Harnais

Harnais = Concevoir l'environnement complet dans lequel l'IA travaille

Ce n'est pas simplement "poser de bonnes questions à l'IA". Concevoir un système qui empêche structurellement l'IA de commettre la même erreur lorsqu'elle en fait une.


4. Les harnais réellement créés chez Onmam.com

[Harnais #1] AGENTS.md — La "carte de notre service" pour l'IA

alpha-adk/
├── CLAUDE.md        ← Fichier que l'IA doit impérativement lire au début de chaque session
├── AGENTS.md        ← Liste des règles du projet
└── .agents/
    └── context/
        └── agents-rules.json  ← Règles d'exploitation spécifiques

L'IA doit impérativement lire ces fichiers avant de toucher au code d'Onmam.com. Ils contiennent les informations suivantes :

  • "Les tests et les modifications de code ne sont effectués que dans l'environnement alpha"
  • "home.onmam.com est une application de canal distincte, et non un portail"
  • "Le modèle de table dérivée GROUP BY dans Board.php est strictement interdit"

Cette panne dont nous parlions ? Maintenant, si l'IA tente de créer le même modèle, elle s'arrête en voyant cette règle.


[Harnais #2] Hooks — Les "dispositifs de sécurité" qui s'activent avant et après les actions de l'IA

Voici les hooks actuellement actifs dans cet espace de travail :

Juste avant l'exécution d'une commande Bash par l'IA →
  ✓ pr-guard.js          : Bloque la fusion de PR sans revue
  ✓ commit-guard.js      : Bloque les commits enfreignant les règles
  ✓ deploy-guard.js      : Bloque le déploiement sur le serveur de production sans approbation
  ✓ git-push-guard.js    : Bloque les git push non approuvés
  ✓ destructive-git-guard.js : Bloque les commandes destructrices comme git reset --hard

Juste avant la modification d'un fichier par l'IA →
  ✓ prod-gateway-guard.js : Empêche l'utilisation de clés API de production dans les fichiers d'environnement de développement
  ✓ design-doc-guard.js   : Bloque la modification non autorisée de documents de conception

Juste après la modification d'un fichier par l'IA →
  ✓ cascade-check.js      : Vérifie les fichiers affectés en cascade par le fichier modifié

Exemple de fonctionnement réel de deploy-guard.js :

L'IA tente d'exécuter une commande de déploiement en production :
  $ gcloud run deploy onmam-web ...

→ [Harnais] Commande de déploiement en production bloquée : gcloud run deploy
  Projet : onmam-web
  Le déploiement en production nécessite une approbation préalable.
  Méthode d'approbation : Ajouter un élément d'approbation dans .claude/deploy/approvals.json
  L'IA n'exécute pas directement le déploiement en production.

Même si l'IA tente par erreur, ou trop activement, de déployer quelque chose sur le serveur de production, elle est physiquement bloquée.


[Harnais #3] Environnement Alpha — Le terrain de jeu dédié à l'expérimentation de l'IA

Production    : www.onmam.com         ← Utilisé par les églises réelles
Staging       : staging.onmampick.org ← Vérification finale avant déploiement
Alpha         : luke-*-alpha.onmampick.org ← Espace de travail avec l'IA

Règle : Tout travail avec l'IA se fait uniquement en alpha.

Pourquoi est-ce important — Ce qui s'est réellement passé le 29 avril 2026 :

L'IA a confondu home.onmam.com avec l'application portal et a écrit une configuration vhost incorrecte. Comme c'était l'environnement alpha → aucun impact sur le service réel. Cette erreur a été enregistrée dans AGENTS.md → l'IA ne commettra plus la même erreur.

L'essence du harnais est là : Si une erreur se produit → elle est enregistrée dans le harnais → la prochaine fois, cette erreur devient structurellement impossible.


[Harnais #4] Skills — Nos "outils personnalisés" pour l'IA

skills/
├── email/          ← Envoi d'e-mails (inclut destinataires, règles SMTP)
├── sms/            ← Envoi de SMS
├── web-monitoring/ ← Surveillance de l'état du service
└── service-management/ ← Commandes d'exploitation du service

Si l'IA dit "envoie un e-mail" — elle lit ce fichier de compétence et sait automatiquement à qui, dans quel format et via quel SMTP l'envoyer. Il n'est pas nécessaire de demander à chaque fois "quelle est l'adresse e-mail du destinataire ?".


5. Pourquoi les développeurs s'y intéressent-ils ?

"Problèmes de l'ère du développement sans IA"

Dépendance aux compétences individuelles des développeurs → la qualité diminue si un senior quitte l'équipe
Nécessite une revue de code → une personne doit vérifier manuellement

"Problèmes des équipes avec IA mais sans harnais"

L'IA génère rapidement du code mais → ne connaît pas le contexte de notre service
Répète les mêmes erreurs → l'IA crée les bugs et les humains les corrigent
L'IA peut accéder directement au serveur de production → on ne sait jamais quand un incident peut se produire

"Équipe avec IA + harnais"

L'IA code en connaissant nos règles → génération contextuelle
En cas d'erreur, enregistrement dans le harnais → prévention structurelle de la même erreur
Accès à la production approuvé par un humain → autonomie sécurisée

Pour reprendre l'expression de Toss :

"Le harnais élève le niveau de productivité de l'ensemble de l'organisation. Ne dépend pas des compétences individuelles, tous les membres de l'équipe produisent des résultats d'un certain niveau ou plus."


6. Résumé — Ce que je veux transmettre aux non-développeurs

À l'ère de l'IA, la définition de "bien faire" est en train de changer.

Avant : Un développeur qui code bien Maintenant : Un développeur qui conçoit bien l'environnement dans lequel l'IA code

Le cœur de cette conception d'environnement est l'ingénierie de harnais.

Et ce n'est pas seulement une histoire de développeurs.

Harnais que les non-développeurs peuvent créer :
  → Écrire clairement les règles métier dans des documents
  → Définir pour l'IA "ce qui est autorisé et ce qui ne l'est pas"
  → Enregistrer "pourquoi l'IA a commis une erreur" lorsqu'elle en fait une

= C'est le début de l'ingénierie de harnais elle-même

Structure du harnais Onmam.com en un coup d'œil

alpha-adk/
├── CLAUDE.md                    ← [Guide] Lecture obligatoire au début de la session IA
├── AGENTS.md                    ← [Guide] Règles du projet (SoT)
├── .agents/context/
│   └── agents-rules.json        ← [Guide] Règles d'exploitation spécifiques
├── .claude/
│   ├── hooks/
│   │   ├── deploy-guard.js      ← [Capteur] Blocage du déploiement en production
│   │   ├── prod-gateway-guard.js← [Capteur] Blocage des clés API de production
│   │   ├── commit-guard.js      ← [Capteur] Validation des règles de commit
│   │   ├── pr-guard.js          ← [Capteur] Approbation forcée des PR
│   │   ├── session-inject.js    ← [Capteur] Injection de contexte à chaque session
│   │   └── cascade-check.js     ← [Capteur] Vérification des impacts en cascade après modification
│   └── settings.json            ← [Permission] Paramètres d'exécution des hooks
├── skills/
│   ├── email/                   ← [Outil] Compétence d'envoi d'e-mails
│   ├── web-monitoring/          ← [Outil] Surveillance du service
│   └── service-management/      ← [Outil] Commandes d'exploitation du service
└── data-private/memory/         ← [Boucle de rétroaction] Enregistrement des erreurs → Prévention des récidives
    ├── project_onmam_incidents.md    ← Enregistrement du modèle d'incident Board.php
    ├── project_onmam_app_structure.md← Enregistrement de l'erreur home≠portal
    └── feedback_alpha_only.md        ← Enregistrement des règles spécifiques à l'alpha

Harnais = L'ensemble de ces fichiers Tous sont commités dans le dépôt Git. Tout le contexte de l'équipe s'accumule sous forme de code !

Popular Posts

CC BY-NC-SA 4.0This post is licensed under CC BY-NC-SA 4.0.

Commentaires

Vous pouvez commenter sans vous connecter

...