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). Utilisez-le lorsqu'un workflow Claude Code nécessite une évaluation formelle avant d'être approuvé ou modifié.

Qu'est-ce que eval-harness ?

Ce skill implémente un cadre d'évaluation structuré pour les sessions Claude Code, suivant les principes d'Eval-Driven Development (EDD). Il permet de définir des critères de réussite/échec avant l'implémentation, puis de valider le travail de l'agent de manière automatisée ou semi-automatisée. Le système supporte trois types d'évaluations : les évaluations de capacité (vérifier qu'une nouvelle fonctionnalité fonctionne), les évaluations de régression (s'assurer que les changements n'altèrent pas les fonctionnalités existantes), et les évaluations de produit (pour des critères qualitatifs). Les résultats sont mesurés via les métriques pass@k (au moins un succès en k tentatives) et pass^k (k succès consécutifs). Le skill intègre également des utilitaires locaux (hash-linked capsules, vérification d'intégrité, rejeu contrôlé) et propose des bonnes pratiques pour éviter les pièges courants comme le surapprentissage des prompts ou l'ignorance des dérives de coût. Il est conçu pour fonctionner avec Claude Code et utilise des fichiers Markdown pour stocker les définitions d'évaluation et l'historique des runs.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/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

Skill Eval Harness

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

Quand l'activer

  • Mise en place du développement piloté par les évaluations (EDD) pour les workflows assistés par IA
  • Définition des critères de réussite/échec pour l'achèvement de tâches Claude Code
  • Mesure de la fiabilité de l'agent avec les métriques pass@k
  • Création de suites de tests de régression pour les modifications de prompts ou d'agents
  • Évaluation comparative des performances de l'agent entre versions de modèles

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 accomplir 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
Résultat attendu : 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 : SUCCÈS/ÉCHEC
  - test-existant-2 : SUCCÈS/ÉCHEC
  - test-existant-3 : SUCCÈS/ÉCHEC
Résultat : X/Y réussis (auparavant Y/Y)

Types de correcteurs

1. Correcteur basé sur le code

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

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

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

# Vérifier si la construction réussit
npm run build && echo "SUCCÈS" || echo "ÉCHEC"

2. Correcteur basé sur un modèle

Utiliser Claude pour évaluer les résultats ouverts :

[PROMPT DU CORRECTEUR MODÈLE]
Évaluez la modification de code suivante :
1. Résout-elle le problème énoncé ?
2. Est-elle bien structurée ?
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]
Modification : 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 dès la première tentative
  • pass@3 : Succès en 3 tentatives maximum
  • Objectif typique : pass@3 > 90 %

pass^k

"Les k tentatives réussissent toutes"

  • 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 le codage)

## 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 des sessions 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 SUCCÈS/ÉCHEC]

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

# Générer le rapport

4. Rapporter

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

Évaluations de capacité :
  créer-utilisateur :     SUCCÈS (pass@1)
  valider-email :         SUCCÈS (pass@2)
  hacher-mot-de-passe :   SUCCÈS (pass@1)
  Total :                 3/3 réussis

Évaluations de régression :
  flux-connexion :        SUCCÈS
  gestion-session :       SUCCÈS
  flux-déconnexion :      SUCCÈS
  Total :                 3/3 réussis

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

Statut : PRÊT POUR RÉVISION

Modèles d'intégration

Pré-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

Post-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 d'évaluation
    baseline.json              # Références pour les régressions

Bonnes pratiques

  1. Définir les évaluations AVANT le codage - Force une réflexion claire sur les critères de succès
  2. Exécuter les évaluations fréquemment - Détecter les régressions tôt
  3. Suivre pass@k dans le temps - Surveiller les tendances de fiabilité
  4. Utiliser des correcteurs basés sur le code quand c'est 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 sont toujours 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éussis (pass@3 : 100 %)
Régression : 3/3 réussis (pass^3 : 100 %)
Statut : PRÊT À LIVRER

Utilitaires du cadre local

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

node scripts/eval-harness.js exemple
  • 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.
  • Rejeu : outils déclarés et accessoires adressés par contenu. Les accessoires manquants échouent en mode sécurité ; SE3 et supérieur sont refusés en rejeu. Le mode enregistrement invoque l'implémentation enregistrée, donc n'enregistrez 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 de 1 à 100 instantanés de capsule locaux explicitement sélectionnés et vérifiés d'une même famille de tâches par version de harness déclarée. Les instantanés répétés comptent une seule fois ; les identités conflictuelles ou les capsules invalides rejettent le rapport entier. Il s'agit d'un comptage de relevés en lecture seule, sans nouveau déploiement, score ou promotion. Utilisez des capsules petites et au repos. Les charges utiles, les arguments de dossier et les 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 ; révisez-les avant de les partager. La validation opérationnelle reste en attente.

L'exécution de candidat 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 présentez pas d'avertissements statiques, de reçu de capsule ou de tests utilitaires réussis comme preuve de confinement ou de promotion de candidat. Une future passerelle nécessite une frontière OS révisée indépendamment, des canaux de vérification et d'audit protégés, et un rejet fatal de référence. Voir docs/architecture/eval-harness-frameworks.md.

Évaluations de produit (v1.8)

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

Types de correcteurs

  1. Correcteur basé sur le code (assertions déterministes)
  2. Correcteur basé sur des règles (contraintes regex/schéma)
  3. Correcteur basé sur un modèle (grille LLM-en-tant-que-juge)
  4. Correcteur humain (arbitrage manuel 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 en version

Anti-patrons d'évaluation

  • Surapprentissage des prompts sur des exemples d'évaluation connus
  • Mesure uniquement des sorties de scénarios heureux
  • Ignorer la dérive des coûts et de la latence en poursuivant les taux de réussite
  • Autoriser des correcteurs instables dans les passerelles de version

Structure minimale d'artefact d'évaluation

  • .claude/evals/<fonctionnalité>.md définition
  • .claude/evals/<fonctionnalité>.log historique des exécutions
  • docs/releases/<version>/eval-summary.md instantané de version

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/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

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.

Skills associés