Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Les fondamentaux du harness engineering

Les fondamentaux du harness engineering

Slides de la présentation donnée au live de la communauté AI Driven Dev :

Jeremy Desvaux de Marigny présente les fondamentaux du harness engineering et comment construire son propre harness pour apprendre à l’IA à vraiment coder comme vous.

Dans les équipes qu’il forme, il retrouve le même réflexe : on ouvre le chat, on tape un prompt, puis on réagit à ce que l’IA propose.

On ne guide pas son exécution, on la subit. Est-ce vraiment ça, utiliser l’IA pour développer ?

Adopter l’outil ne suffit pas à adopter une méthode.

Dans ce live, il expliquera à quoi sert chaque pilier et comment les articuler pour construire votre propre harness.

L’objectif : mieux guider le travail de l’IA et profiter davantage de la puissance de ces outils.

Avatar for Jeremy Desvaux de Marigny

Jeremy Desvaux de Marigny

October 14, 2026

More Decks by Jeremy Desvaux de Marigny

Other Decks in Technology

Transcript

  1. Les fondamentaux du harness engineering Apprenez à votre IA à

    vraiment coder comme vous Jeremy Desvaux de Marigny AI-Driven Dev community · Harness engineering 01 / 55
  2. QUI JE SUIS Jeremy Desvaux de Marigny Directeur technique externalisé

    LINKEDIN J'aide les équipes web à produire plus efficacement. Je les forme à l'ingénierie appuyée par l'IA. jeremydesvaux AI-Driven Dev community · Harness engineering 02 / 55
  3. ACTE 1 · INTRODUCTION De la hype à la frustration

    LA HYPE Ça va remplacer les développeurs. Un gain de temps fou. LE RÉFLEXE On installe un outil. On paye une licence. ET LÀ On ouvre le chat. On prompt. On attend la réponse. La frustration arrive. AI-Driven Dev community · Harness engineering 04 / 55
  4. ACTE 1 · INTRODUCTION Les frustrations » i. o m

    e m m o c s a p e d o c e n a Ç « « Elle ignore l'architecture. » « Dès que c'est complexe, ça casse. » « Plus lente que moi. » AI-Driven Dev community · Harness engineering « Elle réécrit au lieu de refac torer. » de. » n a m e d je e u q e c s a p it fa e « Elle n « Je me répète à chaque ch at. » « Jamais le même résultat. » 05 / 55
  5. POSTULAT Ce n'est pas l'outil le problème. Alors, d'où vient

    la frustration ? AI-Driven Dev community · Harness engineering 06 / 55
  6. ACTE 2 · COMPRÉHENSION DE L'OUTIL Toi et l'outil TOI

    L'OUTIL Face au chat AI-Driven Dev community · Harness engineering 08 / 55
  7. ACTE 2 · COMPRÉHENSION DE L'OUTIL Les parties prenantes LE

    PROJET Tes fichiers, ton repo TOI L'OUTIL Face au chat LE LLM Le modèle HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 09 / 55
  8. ACTE 2 · COMPRÉHENSION DE L'OUTIL Tu tapes un prompt

    LE PROJET Tes fichiers, ton repo TOI Face au chat Ton prompt L'OUTIL LE LLM Le modèle HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 10 / 55
  9. ACTE 2 · COMPRÉHENSION DE L'OUTIL L'outil scanne le projet

    LE PROJET Tes fichiers, ton repo Scan TOI L'OUTIL Face au chat LE LLM Le modèle HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 11 / 55
  10. ACTE 2 · COMPRÉHENSION DE L'OUTIL L'outil scanne le harness

    LE PROJET Tes fichiers, ton repo TOI L'OUTIL LE LLM Face au chat Le modèle Scan HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 12 / 55
  11. ACTE 2 · COMPRÉHENSION DE L'OUTIL Tout ça rentre dans

    la fenêtre de contexte LE PROJET Tes fichiers, ton repo FENÊTRE DE CONTEXTE Ce que le LLM voit. Rien d'autre. Prompt système Prompt utilisateur TOI L'OUTIL Face au chat Données du projet Données du harness HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 13 / 55
  12. ACTE 2 · COMPRÉHENSION DE L'OUTIL Le LLM répond à

    l'outil LE PROJET Tes fichiers, ton repo TOI L'OUTIL Face au chat Réponse LE LLM Le modèle HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 14 / 55
  13. ACTE 2 · COMPRÉHENSION DE L'OUTIL L'outil te répond LE

    PROJET Tes fichiers, ton repo TOI Face au chat Réponse L'OUTIL LE LLM Le modèle HARNESS AGENTS.md, rules… AI-Driven Dev community · Harness engineering 15 / 55
  14. ACTE 2 · COMPRÉHENSION DE L'OUTIL Les causes de frictions

    LE PROJET Tes fichiers, ton repo TOI L'OUTIL Face au chat Codebase inconsistante Design patterns absents Legacy vs new code LE LLM Le modèle Mauvaise technique de prompt Posture réactive HARNESS Données d'entraînement Taille de la context window Modèle probabiliste, pas omniscient Pas de mémoire AGENTS.md, rules… Harness vide Aucune instruction pour l'IA AI-Driven Dev community · Harness engineering 16 / 55
  15. ACTE 2 · COMPRÉHENSION DE L'OUTIL Observations 01 Être un

    pilote réactif, ce n'est pas piloter. On subit les choix de l'IA. 02 L'état d'un projet ne suffit pas à garantir constance et pérennité quand l'IA produit. 03 Sans ta direction, l'IA suit sa propre voie : celle qui lui semble le plus probable. 04 Le LLM n'est pas omniscient, il est probabiliste. AI-Driven Dev community · Harness engineering 17 / 55
  16. ACTE 3 · LE HARNESS Le mot « harness »

    HARNAIS Ça guide. Et ça retient. CE N'EST PAS Une pile de consignes dans le chat. C'EST Un système autour du modèle, robuste, en lequel on peut avoir confiance. SHIFT On devient l'ingénieur du système qui génère le code. AI-Driven Dev community · Harness engineering 19 / 55
  17. ACTE 3 · LE HARNESS Six piliers AGENTS.MD RULES Les

    informations essentielles. Lu en premier. Interdits et standards. (Dos et Don'ts) COMMANDS SKILLS Procédures que tu déclenches. Playbooks lus à la demande. AGENTS HOOKS Spécialistes avec un périmètre. Automatismes déclenchés automatiquement. AI-Driven Dev community · Harness engineering 20 / 55
  18. ACTE 3 · AGENTS.MD AGENTS.md Un markdown à la racine,

    qui contient les informations essentielles du projet. CHAQUE SESSION Chargé et lu à chaque nouveau chat. MÉMOIRE Cette lecture, c'est sa mémoire. ATTENTION Trop long, ou trop contextuel, ça se retourne contre toi. TRAME TYPE ## Résumé du projet ## Stack technique ## Architecture ## Commandes DONC Savoir toujours utile. Rien de contextuel. AI-Driven Dev community · Harness engineering 21 / 55
  19. ACTE 3 · AGENTS.MD · UN SITE BEDROCK /AGENTS.md POURQUOI

    ## Résumé du projet L'agent a les infos clés de ton projet. Site vitrine pour une école supérieure. Le projet contient différents métiers (formations, écoles, campus). … ## Stack technique WordPress, architecture Bedrock, PHP 8.3, Composer, DDEV. Front : @wordpress/scripts. Qualité : WPCS. Tests : PHPUnit via composer test. … ## Architecture Architecture Bedrock Organisation des dossiers : - web/ ... … ## Commandes ddev wp … … AI-Driven Dev community · Harness engineering Plus d'erreur de stack ou de version. Plus d'erreur de placement. Il respecte ton organisation. Il sait comment interagir avec ton serveur. 22 / 55
  20. ACTE 3 · AGENTS.MD · TAKEAWAY Ton agent oublie une

    info clé ? Tu te répètes? Tu dois lui réexpliquer encore et encore des éléments ? À FAIRE Mets à jour ton AGENTS.md. AI-Driven Dev community · Harness engineering 23 / 55
  21. ACTE 3 · RULES Rules Des fichiers de contraintes, Do's

    and Don'ts. TOUJOURS LÀ Chargées à chaque tour. Ou limitées à un glob. CONTENU Directions techniques, standards, interdits, « jamais ça ». DONC Moins de liberté. Plus de prévisibilité. AI-Driven Dev community · Harness engineering DEUX PORTÉES ALWAYS-ON Tout le repo, tout le temps. PAR GLOB ex focus sur *.php ou */wpcontent/themes/montheme/*css. 24 / 55
  22. ACTE 3 · RULES · DOSSIER Un fichier par contrainte

    Elles vivent dans .<outil>/rules/. Une rule, un markdown. .<outil>/ └──rules/ ├──sortie.md ├──wpcs.md ├──caps-nonce.md └──secrets.md AI-Driven Dev community · Harness engineering 25 / 55
  23. ACTE 3 · RULES · SORTIE .<outil>/rules/sortie.md POURQUOI --description: Échapper

    toute sortie PHP globs: "**/*.php" alwaysApply: false --- Le front matter fixe la portée. Ici : les .php seulement. ## Sortie Le corps pose l'interdit. Pas une suggestion : une contrainte. N'echo jamais une donnée brute. - Texte : esc_html() - Attribut : esc_attr() - URL : esc_url() … AI-Driven Dev community · Harness engineering 26 / 55
  24. ACTE 3 · RULES · TAKEAWAY Ton agent ne respecte

    pas tes conventions ? À FAIRE Crée une rule dédiée pour enforcer. AI-Driven Dev community · Harness engineering 27 / 55
  25. ACTE 3 · COMMANDS Commands Automatisation des actions courantes. Transformation

    d'un prompt en procédure déclarée, que tu lances avec un slash. Unification de l'expérience pour toute l'équipe. TU DÉCLENCHES Tu tapes /commit. L'agent charge le fichier et exécute la procédure. CONTENU Une procédure claire. Même geste, même ordre. DONC Plus de prompt réinventé à chaque fois. AI-Driven Dev community · Harness engineering TRAME TYPE ## Goal ## Rules ## Context ## Role ## Procedure ## Examples 28 / 55
  26. ACTE 3 · COMMANDS · DOSSIER Un fichier par procédure

    Elles vivent dans .<outil>/commands/. Une command, un markdown. .<outil>/ └──commands/ ├──brainstorm.md ├──clarify.md ├──plan.md ├──implement.md ├──review.md ├──commit.md └──create-pr.md AI-Driven Dev community · Harness engineering 29 / 55
  27. ACTE 3 · COMMANDS · COMMIT .<outil>/commands/commit.md POURQUOI --description: Préparer

    et exécuter les commits du workspace --- Le front matter décrit la command. ## Goal Ce que la commande doit produire. Automatiser la préparation et l'exécution des commits. Atomiques, conformes Jira, et sûrs. … ## Rules Jamais de commande Git destructive. Jamais réécrire l'historique sans demande explicite. Jamais committer sur main, master, develop. … ## Procedure 1. Inspecter l'état du dépôt 2. Grouper par plus petit souci cohérent 3. Traiter les fichiers unstaged avec soin : pertinents → dans le bon groupe AI-Driven Dev community · Harness engineering hors-sujet → laisser de côté doute → demander avant d'inclure Les interdits. Toujours. L'ordre. Context, Role, Examples suivent. 30 / 55
  28. ACTE 3 · COMMANDS En voie de dépréciation La méthode

    reste valide. Tu la réalises avec une skill. Claude À l'initiative du changement COMMANDE commands/commit.md AI-Driven Dev community · Harness engineering Copilot Support arrêté → DEVIENT Les autres En tolérance SKILL skills/commit/SKILL.md 31 / 55
  29. ACTE 3 · COMMANDS · TAKEAWAY Tu fais souvent les

    mêmes tâches ? À FAIRE EN SKILLS MAINTENANT Crée une /commande pour automatiser. AI-Driven Dev community · Harness engineering 32 / 55
  30. ACTE 3 · SKILLS Skills Un playbook qui forme ton

    agent à une tâche spécifique. CONTENU C'est un dossier qui contient un fichier SKILL.md, mais aussi des sous-dossiers et fichiers complémentaires (templates, documentation, scripts…). TRAME TYPE CHARGEMENT ## Context Explicite via slash command, et implicite via matching context. DONC Plus riche qu'une rule. Plus rare qu'une command. AI-Driven Dev community · Harness engineering ## Goal ## Rules ## Role ## Procedure ## Examples 33 / 55
  31. ACTE 3 · SKILLS · DOSSIER Un dossier par skill

    Elles vivent dans .<outil>/skills/. Une skill, un dossier. Pas un fichier. .<outil>/ └──skills/ ├──creating-a-new-custom-posttype/ ├──SKILL.md obligatoire et sensible à la casse ├──assets/ images, templates └──cpt-template.php ├──references/ docs complémentaires └──scripts/ exécutables par l'agent ├──create-block/ └──create-taxonomy/ AI-Driven Dev community · Harness engineering 34 / 55
  32. ACTE 3 · SKILLS · CUSTOM POST TYPE .<outil>/skills/creating-a-new-custom-posttype/SKILL.md POURQUOI

    --name: creating-a-new-custom-posttype description: Crée une classe CPT WonderWP (key, labels, args, i18n) --- Le front matter déclenche le match. ## Goal Ce que la skill doit produire. Créer une classe CPT WonderWP (AbstractCustomPostType) dans includes/PostTypes : key, labels, args, i18n. … ## Rules Collecter les infos avant de créer le CPT. Obligatoire : nom, key, labels, plugin. Si seul le nom : extrapoler, confirmer. Optionnel : description, visibilité, caps, REST. … ## Workflow 1. Déterminer le dossier plugin 2. Créer includes/PostTypes si besoin 3. Classe : camelCase + PostType extends AbstractCustomPostType AI-Driven Dev community · Harness engineering HasCustomTypeDefinitions + HasLabels … Refléter ce qui est collecté vs manquant. L'ordre. Context, Role, Examples suivent. 35 / 55
  33. ACTE 3 · SKILLS · TAKEAWAY Tu veux former ton

    agent à appréhender un concept complet comme toi ? À FAIRE Crée une skill dédiée. AI-Driven Dev community · Harness engineering 36 / 55
  34. ACTE 3 · AGENTS Agents La plupart du temps, tu

    n'as pas besoin d'agents. Trois vrais intérêts à comprendre avant de te lancer. FENÊTRE Orchestrable, exécutable dans sa propre context window. Donc parallélisable. DOMAINES Organise les compétences du harness. Un agent, un périmètre. BOUCLE Autonomie agentique sur la résolution de tâches. AI-Driven Dev community · Harness engineering TRAME TYPE ## Metadata ## Personality ## Constraints ## Context ## Entry ## Behavior ## Exit 37 / 55
  35. ACTE 3 · AGENTS · DOSSIER Un fichier par agent

    Ils vivent dans .<outil>/agents/. Un agent, un markdown. .<outil>/ └──agents/ ├──backend-developer.md ├──block-editor.md ├──ops.md ├──theme-developer.md └──version-control.md AI-Driven Dev community · Harness engineering 38 / 55
  36. ACTE 3 · AGENTS · CLAIRE .<outil>/agents/claire.md POURQUOI --name: claire

    description: Clarifie une demande jusqu'à zéro ambiguïté --- Metadata — name, description, color, model. ## Personality Identity line — name, role, goal. You are Claire, a relentless Product Owner. You aim at ultra-clear specs via Socratic questions. … ## Rules Une seule mission — clarifier, rien d'autre. 3–5 questions max par round. Tranchantes. Jamais d'hypothèse. Ambigu → demander. … ## Instruction steps 1. Checklist : What · Who · Why · How 2. Une à deux questions par trou 3. Réintégrer, re-évaluer AI-Driven Dev community · Harness engineering 4. Boucler jusqu'à zéro ambiguïté … Constraints — best practices & métier. Behavior → Exit : la demande réécrite, nette. 39 / 55
  37. ACTE 3 · AGENTS · BACKEND .<outil>/agents/backend-developer.md POURQUOI --name: wonderwp-backend

    description: Spécialiste backend WordPress (CPT, hooks, WP-CLI…) --- Metadata — name, description, color, model. ## Domain Specialization Un domaine. Un périmètre fermé. CPT, taxonomies, hooks, plugins, repositories, WP-CLI. Pas de blocs. Pas de thème. Backend only. … ## Available Skills creating-a-new-plugin creating-a-new-custom-posttype creating-a-new-taxonomy creating-a-new-hook creating-custom-fields Context — pointe vers les skills du domaine. … AI-Driven Dev community · Harness engineering 40 / 55
  38. ACTE 3 · AGENTS · TAKEAWAY Suite à l'avènement des

    skills, les agents deviennent des moyens vers l'orchestration À FAIRE Regroupe tes skills dans des agents spécialisés d'un domaine métier. AI-Driven Dev community · Harness engineering 41 / 55
  39. ACTE 3 · HOOKS Hooks Scripts accrochés à la boucle

    agent. Pas le LLM qui décide, c'est l'outil qui déclenche au runtime. TU CONFIGURES Un écouteur d'événement (JavaScript) + un script (shell). DÉCLENCHEMENT Automatique par l'outil, sur une liste d'événements prédéfinis. DONC Garde-fous déterministes — même pressé. AI-Driven Dev community · Harness engineering ÉVÉNEMENTS COURANTS sessionStart beforeShell beforeRead afterEdit stop 42 / 55
  40. ACTE 3 · HOOKS · DOSSIER Un script par garde

    Elles vivent dans .<outil>/hooks/. Un JSON pour déclarer, un script par garde. .<outil>/ └──hooks/ ├──hooks.json ├──block-rm-outside.sh └──protect-env.sh AI-Driven Dev community · Harness engineering 43 / 55
  41. ACTE 3 · HOOKS · .ENV .<outil>/hooks/hooks.json POURQUOI { beforeRead

    — avant que le secret entre dans le contexte. } "hooks": { "beforeRead": [ { "command": ".&lt;outil&gt;/hooks/protect-env.sh" } ] } .<outil>/hooks/protect-env.sh lire le chemin demandé si .env ou .env.* → refuser la lecture sinon → OK AI-Driven Dev community · Harness engineering .env — credentials hors de portée de l'agent. Déterministe — une rule « ne lis pas .env » peut être oubliée. 44 / 55
  42. ACTE 3 · HOOKS · HORS WORKSPACE .<outil>/hooks/hooks.json POURQUOI {

    beforeShell — avant que la commande parte. } "hooks": { "beforeShell": [ { "command": ".&lt;outil&gt;/hooks/block-rm-outside.sh" } ] } .<outil>/hooks/block-rm-outside.sh lire la commande prévue si rm / rmdir hors workspace → bloquer sinon → laisser passer AI-Driven Dev community · Harness engineering Hors workspace — l'agent ne casse pas le disque voisin. Bloquer — pas un « s'il te plaît n'efface pas » dans une rule. 45 / 55
  43. ACTE 3 · HOOKS · TAKEAWAY Ton outil fait parfois

    des actions néfastes ou en oublie ? À FAIRE Ajoute un hook pour automatiser les vérifications du processus. AI-Driven Dev community · Harness engineering 46 / 55
  44. ACTE 3 · LES PILIERS Deux jobs DONNER UN CAP

    AGENTS.MD SKILLS AGENTS COMMANDS Les infos essentielles. Playbooks à la demande. Un spécialiste dédié. Procédures déclenchées. CADRER RULES Interdits et standards. (Do's and Don'ts) AI-Driven Dev community · Harness engineering HOOKS Automatismes. Pas le LLM. 47 / 55
  45. ACTE 3 · SYNTHÈSE Un harness peut devenir conséquent On

    est en train d'architecturer le système qui produit le code. AGENTS.md .<outil>/ ├── rules/ ├──sortie.md ├──wpcs.md ├──caps-nonce.md ├──secrets.md └──…/ └── commands/ ├──commit.md ├──clarify.md ├──create-pr.md ├──review.md └──…/ AI-Driven Dev community · Harness engineering ├── skills/ ├──creating-a-new-custom-posttype/ └──SKILL.md ├──create-block/ ├──create-taxonomy/ └──…/ ├── agents/ ├──backend-developer.md ├──block-editor.md ├──version-control.md └──…/ └── hooks/ ├──hooks.json ├──block-rm-outside.sh ├──protect-env.sh └──…/ 48 / 55
  46. ACTE 4 · ROADMAP 01 · CARTE Je ne laisse

    pas mon IA dans le flou. À FAIRE Je lui donne les infos essentielles dans AGENTS.md. AI-Driven Dev community · Harness engineering 50 / 55
  47. ACTE 4 · ROADMAP 02 · POSTURE Je ne fais

    plus. Je fais faire. À FAIRE Je crée mes premières skills pour bien déléguer. AI-Driven Dev community · Harness engineering 51 / 55
  48. ACTE 4 · ROADMAP 03 · SURVEILLANCE Autonomie, sous surveillance.

    À FAIRE Un écart : j'ajuste et je cadre avec mes premières rules. AI-Driven Dev community · Harness engineering 52 / 55
  49. ACTE 4 · ROADMAP 04 · PROCESS Je processise le

    flow agentique. À FAIRE Je systématise les commandes méthodologiques. (/plan, /implement, /review /commit /pr etc.) AI-Driven Dev community · Harness engineering 53 / 55
  50. ACTE 4 · ROADMAP 05 · ORCHESTRATION Je construis maintenant

    un système. À FAIRE Organisation des métiers avec agents dédiés. Et hooks pour que le système ne puisse plus se tromper. AI-Driven Dev community · Harness engineering 54 / 55
  51. Merci Conclusion : On passe de l'outil à la méthode

    systémique et agnostique. Questions ? LINKEDIN jeremydesvaux AI-Driven Dev community · Harness engineering · Jeremy Desvaux de Marigny 55 / 55