Communitygithub.com

eval-harness

Cadre d'évaluation formel pour les sessions Claude Code, implémentant les principes de développement piloté par les évaluations (EDD).

Qu'est-ce que eval-harness ?

Cette compétence fournit un cadre d'évaluation structuré pour les workflows Claude Code, basé sur les principes d'Eval-Driven Development (EDD). Elle permet de définir des critères de réussite/échec avant l'implémentation, d'exécuter des évaluations continues pendant le développement, de mesurer la fiabilité de l'agent via les métriques pass@k, et de créer des suites de tests de régression pour les changements de prompts ou d'agents. Le skill prend en charge plusieurs types d'évaluations (capacité, régression, produit) et de correcteurs (basés sur du code, des modèles LLM, des règles, ou humains). Il s'intègre dans le projet via une arborescence de fichiers dédiée dans `.claude/evals/` et propose des commandes utilitaires comme `/eval define`, `/eval check`, et `/eval report`. Des mécanismes avancés comme le capsule (journal lié par hachage) et la relecture vérifiée permettent des audits robustes, tandis que l'exécution de candidats est désactivée par défaut pour des raisons de sécurité, faute de confinement OS validé.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/eval-harness

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Compétence Eval Harness

Un cadre d'évaluation formel pour les sessions Claude Code, implémentant les principes de développement piloté par les évaluations (EDD).

Quand activer

  • Mettre en place un développement piloté par les évaluations (EDD) pour les workflows assistés par IA
  • Définir des critères de réussite/échec pour l'achèvement des tâches Claude Code
  • Mesurer la fiabilité de l'agent avec les métriques pass@k
  • Créer des suites de tests de régression pour les changements de prompts ou d'agents
  • Évaluer les performances de l'agent entre les versions de modèle

Philosophie

L'Eval-Driven Development considère les évaluations comme les "tests unitaires du développement IA" :

  • Définir le comportement attendu AVANT l'implémentation
  • Exécuter les évaluations en continu pendant le développement
  • Suivre les régressions à chaque changement
  • Utiliser les métriques pass@k pour mesurer la fiabilité

Types d'évaluations

Évaluations de capacité

Testent si Claude peut faire quelque chose qu'il ne pouvait pas faire auparavant :

[ÉVALUATION DE CAPACITÉ : nom-fonctionnalité]
Tâche : Description de ce que Claude doit accomplir
Critères de succès :
  - [ ] Critère 1
  - [ ] Critère 2
  - [ ] Critère 3
Sortie attendue : Description du résultat attendu

Évaluations de régression

S'assurent que les changements ne cassent pas les fonctionnalités existantes :

[ÉVALUATION DE RÉGRESSION : nom-fonctionnalité]
RÉFÉRENCE : SHA ou nom de point de contrôle
Tests :
  - test-existant-1 : RÉUSSI/ÉCHEC
  - test-existant-2 : RÉUSSI/ÉCHEC
  - test-existant-3 : RÉUSSI/ÉCHEC
Résultat : X/Y réussi (précédemment Y/Y)

Types de correcteurs

1. Correcteur basé sur du code

Vérifications déterministes à l'aide de code :

# Vérifier si le fichier contient le motif attendu
grep -q "export function handleAuth" src/auth.ts && echo "RÉUSSI" || echo "ÉCHEC"

# Vérifier si les tests passent
npm test -- --testPathPattern="auth" && echo "RÉUSSI" || echo "ÉCHEC"

# Vérifier si la compilation réussit
npm run build && echo "RÉUSSI" || echo "ÉCHEC"

2. Correcteur basé sur modèle

Utiliser Claude pour évaluer des sorties ouvertes :

[PROMPT DU CORRECTEUR MODÈLE]
Évaluer le changement de code suivant :
1. Résout-il le problème énoncé ?
2. Est-il bien structuré ?
3. Les cas limites sont-ils traités ?
4. La gestion des erreurs est-elle appropriée ?

Score : 1-5 (1=mauvais, 5=excellent)
Justification : [explication]

3. Correcteur humain

Marquer pour révision manuelle :

[RÉVISION HUMAINE REQUISE]
Changement : Description de ce qui a changé
Raison : Pourquoi une révision humaine est nécessaire
Niveau de risque : FAIBLE/MOYEN/ÉLEVÉ

Métriques

pass@k

"Au moins un succès en k tentatives"

  • pass@1 : Taux de succès à la première tentative
  • pass@3 : Succès en 3 tentatives
  • Cible typique : pass@3 > 90%

pass^k

"Les k essais réussissent tous"

  • Barre plus haute pour la fiabilité
  • pass^3 : 3 succès consécutifs
  • Utiliser pour les chemins critiques

Workflow d'évaluation

1. Définir (Avant de coder)

## DÉFINITION D'ÉVALUATION : fonctionnalité-xyz

### Évaluations de capacité
1. Peut créer un nouveau compte utilisateur
2. Peut valider le format de l'email
3. Peut hacher le mot de passe de manière sécurisée

### Évaluations de régression
1. La connexion existante fonctionne toujours
2. La gestion de session inchangée
3. Le flux de déconnexion intact

### Métriques de succès
- pass@3 > 90% pour les évaluations de capacité
- pass^3 = 100% pour les évaluations de régression

2. Implémenter

Écrire le code pour réussir les évaluations définies.

3. Évaluer

# Exécuter les évaluations de capacité
[Exécuter chaque évaluation de capacité, enregistrer RÉUSSI/ÉCHEC]

# Exécuter les évaluations de régression
npm test -- --testPathPattern="existant"

# Générer le rapport

4. Rapporter

RAPPORT D'ÉVALUATION : fonctionnalité-xyz
==========================================

Évaluations de capacité :
  créer-utilisateur :     RÉUSSI (pass@1)
  valider-email :        RÉUSSI (pass@2)
  hacher-mot-de-passe :  RÉUSSI (pass@1)
  Total :                3/3 réussi

Évaluations de régression :
  flux-connexion :       RÉUSSI
  gestion-session :      RÉUSSI
  flux-déconnexion :     RÉUSSI
  Total :                3/3 réussi

Métriques :
  pass@1 : 67% (2/3)
  pass@3 : 100% (3/3)

Statut : PRÊT POUR RÉVISION

Modèles d'intégration

Avant implémentation

/eval define nom-fonctionnalité

Crée un fichier de définition d'évaluation dans .claude/evals/nom-fonctionnalité.md

Pendant l'implémentation

/eval check nom-fonctionnalité

Exécute les évaluations actuelles et rapporte l'état

Après implémentation

/eval report nom-fonctionnalité

Génère un rapport d'évaluation complet

Stockage des évaluations

Stocker les évaluations dans le projet :

.claude/
  evals/
    fonctionnalité-xyz.md      # Définition d'évaluation
    fonctionnalité-xyz.log     # Historique des exécutions
    baseline.json              # Références de régression

Bonnes pratiques

  1. Définir les évaluations AVANT de coder - Oblige à réfléchir clairement aux critères de succès
  2. Exécuter les évaluations fréquemment - Détecter les régressions tôt
  3. Suivre le pass@k dans le temps - Surveiller les tendances de fiabilité
  4. Utiliser des correcteurs par code quand possible - Déterministe > probabiliste
  5. Révision humaine pour la sécurité - Ne jamais automatiser entièrement les vérifications de sécurité
  6. Garder les évaluations rapides - Les évaluations lentes ne sont pas exécutées
  7. Versionner les évaluations avec le code - Les évaluations sont des artefacts de première classe

Exemple : Ajout d'authentification

## ÉVALUATION : ajouter-authentification

### Phase 1 : Définir (10 min)
Évaluations de capacité :
- [ ] L'utilisateur peut s'inscrire avec email/mot de passe
- [ ] L'utilisateur peut se connecter avec des identifiants valides
- [ ] Les identifiants invalides sont rejetés avec une erreur appropriée
- [ ] Les sessions persistent après rechargement de page
- [ ] La déconnexion efface la session

Évaluations de régression :
- [ ] Les routes publiques restent accessibles
- [ ] Les réponses API inchangées
- [ ] Le schéma de base de données compatible

### Phase 2 : Implémenter (variable)
[Écrire le code]

### Phase 3 : Évaluer
Exécuter : /eval check ajouter-authentification

### Phase 4 : Rapporter
RAPPORT D'ÉVALUATION : ajouter-authentification
================================================
Capacité : 5/5 réussi (pass@3 : 100%)
Régression : 3/3 réussi (pass^3 : 100%)
Statut : À LIVRER

Utilitaires locaux du cadre

Les utilitaires mécaniques sont livrés dans scripts/lib/eval-harness/ :

node scripts/eval-harness.js example
  • Capsule : journal lié par hachage avec cinq lignées et vérifications d'intégrité locales.
  • Inspection : condensés de source, chemins de variantes validés et avertissements syntaxiques.
  • Relecture : outils déclarés et fixtures adressées par contenu. Les fixtures manquantes échouent en mode fermé ; SE3 et supérieur est refusé en relecture. Le mode d'enregistrement invoque l'implémentation enregistrée, donc n'enregistrer que des fonctions de confiance.
  • Reçu : vérification hors ligne des octets de capsule et d'artefact, avec vérifications nommées.
  • Préparation rétrospective : node scripts/eval-harness.js capsule group <dossier> [<dossier> ...] groupe 1 à 100 instantanés de capsule explicitement sélectionnés et vérifiés localement d'une famille de tâches par version de cadre déclarée. Les instantanés répétés comptent une fois ; les identités conflictuelles ou les capsules invalides rejettent l'ensemble du rapport. Ceci est un comptage d'enregistrements en lecture seule, sans nouveau déploiement, score ou promotion. Utiliser des capsules petites et quiescentes. Les charges utiles, arguments de dossier et identifiants bruts d'exécution/capsule sont omis, mais les étiquettes famille-tâche/version sont textuelles et les références de condensé sont liables ; les réviser avant de partager. La validation opérationnelle reste en attente.

L'exécution de candidats est désactivée sur tous les OS car aucun backend de confinement OS vérifié n'est implémenté. gate run, runGate, runVariant, le lancement direct d'enfant, et le préchargement d'effet retiré refusent avec gate.isolation_required. Aucun indicateur de confiance ou exécuteur fourni par l'appelant ne peut contourner le refus. L'exemple enregistre ce refus et inspecte la source sans l'exécuter ni la noter.

Ne pas présenter d'avertissements statiques, de reçu de capsule ou de tests utilitaires réussis comme preuve de confinement de candidat ou de promotion. Une future porte nécessite une frontière OS examinée indépendamment, un vérificateur protégé et des canaux d'audit, et un rejet de référence fatal. Voir docs/architecture/eval-harness-frameworks.md.

Évaluations produit (v1.8)

Utiliser les évaluations produit lorsque la qualité du comportement ne peut pas être capturée par les tests unitaires seuls.

Types de correcteurs

  1. Correcteur de code (assertions déterministes)
  2. Correcteur de règles (contraintes regex/schéma)
  3. Correcteur de modèle (grille LLM-en-tant-que-juge)
  4. Correcteur humain (adjudication manuelle pour les sorties ambiguës)

Guide pass@k

  • pass@1 : fiabilité directe
  • pass@3 : fiabilité pratique sous tentatives contrôlées
  • pass^3 : test de stabilité (les 3 exécutions doivent réussir)

Seuils recommandés :

  • Évaluations de capacité : pass@3 >= 0.90
  • Évaluations de régression : pass^3 = 1.00 pour les chemins critiques de version

Anti-patrons d'évaluation

  • Surapprentissage des prompts sur des exemples d'évaluation connus
  • Mesurer uniquement les sorties de chemin heureux
  • Ignorer la dérive de coût et de latence tout en poursuivant les taux de réussite
  • Autoriser des correcteurs instables dans les portes de version

Disposition minimale d'artefact d'évaluation

  • Définition .claude/evals/<fonctionnalité>.md
  • Historique .claude/evals/<fonctionnalité>.log
  • Instantané de version docs/releases/<version>/eval-summary.md

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills associés