/product:evals

Tester la fiabilité

L'article dit pourquoi et quoi mesurer. Ce Skill donne la méthode reproductible. Pas de dataset géant, pas de jargon ML : un test que tu montes en vingt minutes et que tu rejoues en deux. Il déroule 6 temps : (1) cadrer la sortie à évaluer et écrire la définition de « bon » en critères vérifiables (le même principe qu'une règle de CLAUDE.md), (2) monter 5 à 10 cas représentatifs mêlant cas normaux et cas limites, stockés en tableau markdown versionnable, (3) une grille de 3 à 5 critères binaires ou notés sur 5, chacun objectivement vérifiable, (4) lancer la cible sur chaque cas et capturer les sorties brutes, (5) noter en LLM-as-judge (Claude note contre la grille) ou en auto-check, et sortir un scorecard = score global plus liste des échecs avec le cas fautif, (6) sauver ce résultat comme baseline datée, à re-tester après tout changement de prompt ou de modèle.

Produit·Intermédiaire·4 min d'installation·Mis à jour le 12 juillet 2026·122 lignes
GitHub

Pour qui, et quand

Le PM ou founder qui pilote une feature IA et valide encore au feeling, sur l'exemple qu'il a sous les yeux. C'est le réflexe qui vient juste après avoir lu l'article evals pour PM : passer du « ça a l'air mieux » à un chiffre. Peu utile si ta sortie n'a pas d'enjeu de fiabilité, ou si tu as déjà un jeu de tests que tu rejoues à chaque changement.

En situation

/product:evals mon prompt de résumé de réunion

Mode guidé : le Skill cadre la sortie, te fait écrire la définition de « bon » en critères vérifiables, puis monte le jeu de cas et la grille avant de noter.

Résultat type
On teste la fiabilité de ton prompt de résumé.

D'abord, « bon » veut dire quoi, en critères vérifiables ?
Proposition : 5 puces max, chacune reprend une décision réelle,
aucune invention. Tu valides ou tu ajustes ?

Ensuite je te propose un jeu de 6 cas :
- 3 normaux (réunion standard, réunion courte, réunion à 2 sujets)
- 3 limites (aucune décision, notes très longues, ton confus)

Grille (3 critères) :
1. Aucune invention        binaire
2. Format respecté         binaire
3. Couverture des décisions /5

Je stocke tout dans evals/resume-reunion.md (versionnable),
puis je lance ton prompt sur les 6 cas et je note.
/product:evals avant de changer de modèle

Rejeu contre baseline : le Skill relance le jeu existant sur la nouvelle cible et compare au scorecard de référence pour mesurer la régression avant de basculer.

Résultat type
Baseline trouvée : evals/resume-reunion.md (6 cas, scorecard du 05/07).

Je rejoue le jeu sur le nouveau modèle et je compare.

# Scorecard — resume-reunion — 12/07

Score global : 5/6 critères passés (83 %) contre 6/6 avant.

Échecs :
| Cas                    | Critère raté   | Détail                        |
|------------------------|----------------|-------------------------------|
| #4 Aucune décision     | Aucune invention | a inventé une action de suivi |

Verdict : régression sur 1 cas limite. Ne bascule pas encore,
corrige le prompt sur ce cas puis rejoue.

Installer

Une ligne, un terminal
$ mkdir -p ~/.claude/skills/product:evals && \
  curl -sSL https://letape-dapres.fr/api/skills/product-evals/raw \
       -o ~/.claude/skills/product:evals/SKILL.md

Puis redémarre Claude Code. Test avec /product:evals.

Besoin d'installer Claude Code d'abord ? Voir la fiche Claude Code · Télécharger le .md brut

Configuration

Nom
product:evals
Catégorie
Produit
Outils autorisés
ReadWriteGrep
Arguments
[la cible à évaluer : prompt, skill, ou agent]

Le skill en entier

Pourquoi le skill est en anglais ? Les LLM sont entraînés majoritairement sur de l'anglais. Un prompt système en anglais donne des résultats plus fiables, même quand l'assistant te répond en français. Ce que le skill produit sort dans ta langue ; seules les instructions restent en anglais, par choix de performance.

Product Evals

You have a prompt, a skill or an agent that produces an output. You want to know if it holds up before you build on it. This skill builds a reproducible evaluation set: a handful of cases, a grid of checkable criteria, a dated scorecard. You replay it after every prompt or model change to know if things improved or regressed.

No ML jargon. No giant dataset. A test you can stand up in twenty minutes and replay in two.

What this is not: scoring the quality of a one-off piece of content (that is mktg-expert-panel). Here you test the reliability of a target that produces, not a single output.

When to use

  • You tweaked a prompt, it looks better on your usual example, and you want proof it did not break the other cases.
  • You are about to switch models and want to catch regressions before they hit users.
  • A teammate says their prompt change is clean, a support ticket says otherwise, and you need a number to settle it.

For the why and the what behind evals, point the user to Les evals pour un PM (the reasoning). This skill is the reproducible method.

Input

The target to evaluate, passed as an argument: a prompt, a skill file, an agent. If none is given, ask what to evaluate and where the target lives.

Workflow

1. Frame

Decide which output you are evaluating. A meeting summary, a ticket classification, an announcement copy, a feedback triage. One target at a time.

Then write the definition of "good" as checkable criteria. Not "the summary is clear" but "the summary fits in 5 bullets, each one maps to a real decision from the meeting, nothing invented". Same principle as a context file: a useful rule is one you can verify objectively. If you cannot say when a criterion is met or not, it is not ready.

Write that definition in one sentence before moving on. It frames everything else.

2. Build the set

Gather 5 to 10 representative cases. The mix matters more than the count:

  • Normal cases: the inputs the target will see 80% of the time.
  • Edge cases: empty input, very long input, ambiguous tone, a known trap, whatever broke once before.

Store the set as a markdown table, in the vault or repo next to the target. Markdown because it versions, it reads fine in six months, and it survives any tool. You reuse this file on every re-test, you do not rewrite it.

# Case Input Type
1 Standard meeting (text or a link) normal
2 Meeting with no decision ... edge
3 Very long notes ... edge

3. Grid

Write 3 to 5 criteria, one per line. Each one binary (yes/no) or scored out of 5. Each objectively checkable: two people reading the same output must score it the same way.

Criterion Type Passes if
No invention binary every bullet maps to a fact in the input
Format respected binary 5 bullets max, one decision per bullet
Coverage /5 5 = every decision present

If a criterion needs a taste judgment, reword it until it is checkable, or drop it.

4. Run

Run the target on every case in the set. Capture the raw output, untouched. One row per case. This is the mechanical part: you are not judging yet, you are collecting.

5. Score

Two options depending on the target:

  • LLM-as-judge: Claude reads each output and scores it against the grid, criterion by criterion. Useful when criteria need reading (invention, coverage, tone). Give it the exact grid and ask for one score per criterion plus a one-line justification.
  • Auto-check: when a criterion is mechanical (length, format, presence of a keyword), verify it with a rule, not a judgment.

Produce a scorecard: an overall score (share of criteria passed across all cases), then the list of failures with the offending case and the missed criterion. The failures are what you care about. The overall score says "it holds or not", the failure list says "here is where it breaks".

6. Baseline

Save that scorecard as a dated reference. It is your comparison point.

Every time you change the prompt, the model or the skill, you replay the same set and compare to the baseline. Score goes up, you keep. It goes down, you roll back. This is the exit criterion of your iteration loop made measurable: instead of "looks better", you have a number.

Set a light ritual: replay the set on Friday, or before any release. An eval you never replay is worthless.

Output

Two files, next to the evaluated target:

  1. evals/<target>.md: the set of cases (step 2) plus the grid (step 3). This is the reusable, versioned asset.
  2. A dated markdown scorecard, appended to the same file or in evals/<target>-scorecard-YYYY-MM-DD.md: overall score plus failure list. One per run, to keep the history.

Scorecard structure:

# Scorecard — <target> — YYYY-MM-DD

Target tested: <prompt / skill / agent + version or model>
Set: evals/<target>.md (N cases)

## Overall score

X / Y criteria passed (Z%)

## Failures

| Case | Missed criterion | Detail |
|------|------------------|--------|
| #2 Meeting with no decision | No invention | invented a follow-up action |

## Verdict

[Reliable / Reliable with reserves / Needs rework]

Rules

  • Write the set, grid and scorecard in the user's language; keep this skill's own instructions in English.
  • No ML jargon toward the user. No "dataset", "ground truth", "F1 score". Talk about cases, criteria, score.
  • A non-checkable criterion does not enter the grid. Reword or drop it.
  • Never touch an output before scoring it. You test the target as it is.
  • The set and grid are versioned files, not throwaway. The scorecard is dated, never overwritten.
  • 5 to 10 cases. If you want more, the target does too many things: split it.
  • Always include at least two edge cases. An eval that only tests the happy path proves nothing.
  • Stop and ask when the call is the user's (which output, which criteria, judge vs auto-check). Do not guess.

Version publique. 122 lignes. Copie-la dans ~/.claude/skills/product:evals/SKILL.md pour l'installer.

Skills voisins

Lire l'article lié
Publié le 12 juillet 2026

Newsletter · L’AI.ssentiel

Chaque vendredi,un signal IA qui compte.

Un outil à tester, un workflow à copier, une lecture qui remue. Pas de spam, désinscription en un clic.

↳ Reçois la prochaine édition

Hebdomadaire · sans engagement