/product:evalsTester 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.
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éunionMode 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.
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èleRejeu 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.
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
$ mkdir -p ~/.claude/skills/product:evals && \
curl -sSL https://letape-dapres.fr/api/skills/product-evals/raw \
-o ~/.claude/skills/product:evals/SKILL.mdPuis 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
product:evalsReadWriteGrep[la cible à évaluer : prompt, skill, ou agent]Le skill en entier
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:
evals/<target>.md: the set of cases (step 2) plus the grid (step 3). This is the reusable, versioned asset.- 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
/product:to-issuesTransforme un PRD validé en une série de tickets prêts à coder. Découpe le projet en petites tranches livrables une par une, te fait valider la liste, puis crée les tickets dans le bon ordre dans ton outil de suivi.
/product:prd-writeRédige un PRD complet à partir de zéro en te guidant par questions : problème, personas, solution, mesures de succès, user stories. Sort un document prêt à publier ou un brouillon.
/product:prd-reviewRelit un PRD comme un responsable produit : analyse ce qui manque, ajoute du contexte concurrentiel et des données d'usage, pèse les risques, et prépare les questions à poser en réunion. Rend un verdict tranché.