Skip to content
Back to skills

Eval Lab

ASecurity

> Version : 0.1.0 — 16/05/2026 > Ancrage : TricorderKit v0.8 — Phase 5 active > Statut : Implémenté — prod_ready ---

  • 32 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythongobashsqlsecurity

Works with

  • cli

Security analysis

A100/100

Pro scans all 16 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add GeekFamilyCorp/TricorderKit --skill eval-lab --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Eval Lab?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Eval Lab
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/geekfamilycorp-eval-lab/badge)](https://www.skillsdirectory.com/skills/geekfamilycorp-eval-lab)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# eval-lab — Skill Non-Régression & Validation Qualité
> Version : 0.1.0 — 16/05/2026
> Ancrage : TricorderKit v0.8 — Phase 5 active
> Statut : Implémenté — prod_ready

---

## 🎯 Rôle & déclencheurs

`eval-lab` est le **gardien de contrat** de l'écosystème TricorderKit. Il valide que :
1. Chaque skill produit un output conforme à `skill_output.schema.json` v1.0.0
2. Aucune régression silencieuse n'est introduite lors d'une modification de skill
3. Les baselines de référence sont persistées et comparées automatiquement

### Déclencheurs
- Commande : `/tk:eval <skill_name>` ou `/tk:eval --all`
- Avant tout merge ou push impliquant un skill
- Après modification d'un SKILL.md ou d'un script de skill
- Batch nocturne (workflow Temporal `skill_eval`) — Phase 3

### Ce qu'il N'EST PAS
- ❌ Un test runner généraliste (pytest fait ça — eval-lab teste les contrats d'output)
- ❌ Un linter de code (QualityGuard fait ça)
- ❌ Un validateur de sécurité (security-audit-cli)

---

## ⚙️ Architecture

```
plugins/eval-lab/
├── SKILL.md                  ← Ce fichier
├── README.md
├── manifest.yml              ← Compatible cli-forge
├── eval_runner.py            ← CLI principale (Typer)
├── schema_validator.py       ← Validation JSON vs skill_output.schema.json
├── regression_checker.py     ← Comparaison output courant vs baseline
├── baseline_store.py         ← Persistance SQLite des baselines
├── report_generator.py       ← Rapport Markdown + JSON
└── tests/
    ├── __init__.py
    ├── conftest.py
    ├── test_schema_validator.py
    ├── test_regression_checker.py
    └── test_eval_runner.py
```

---

## 🔄 Pipeline d'évaluation

```text
1. collect_output(skill_name, input_fixture)
   → Exécute le skill avec une fixture d'entrée standardisée
   → Capture stdout JSON

2. validate_schema(output)
   → Valide contre skill_output.schema.json v1.0.0
   → Échoue si champ obligatoire manquant ou type incorrect

3. check_regression(skill_name, output)
   → Charge baseline depuis SQLite (baseline_store)
   → Compare champs critiques : status, output.summary structure, tokens_used plausibilité
   → Détecte : champs disparus, types changés, valeurs aberrantes

4. update_baseline(skill_name, output)  [si --update-baseline]
   → Persiste l'output courant comme nouvelle baseline

5. generate_report(results)
   → Markdown : tableau récap + détails erreurs
   → JSON : conforme skill_output.schema.json pour chaînage
```

---

## 📤 Output Contract

```json
{
  "status": "success|partial|error|dry_run",
  "skill_name": "eval-lab",
  "skill_version": "0.1.0",
  "timestamp": "...",
  "output": {
    "summary": "Eval 3/3 skills — 2 OK, 1 régression détectée (tk-boot: champ tokens_used.total absent)",
    "data": {
      "skills_evaluated": 3,
      "passed": 2,
      "failed": 1,
      "regressions": [
        {
          "skill": "tk-boot",
          "field": "tokens_used.total",
          "expected": "integer",
          "got": null,
          "severity": "CRITICAL"
        }
      ],
      "schema_violations": [],
      "baseline_updated": false
    },
    "files_created": ["reports/eval_report_2026-05-16.md"],
    "next_steps": ["Corriger tk-boot : ajouter tokens_used.total", "Relancer eval tk-boot"]
  }
}
```

---

## 🚀 Commandes CLI

```bash
# Eval un skill spécifique
python plugins/eval-lab/eval_runner.py eval tk-orchestrator

# Eval tous les skills du registry
python plugins/eval-lab/eval_runner.py eval --all

# Dry-run (simulation sans exécution)
python plugins/eval-lab/eval_runner.py --dry-run eval tk-boot

# Mettre à jour la baseline après correction
python plugins/eval-lab/eval_runner.py eval tk-boot --update-baseline

# Rapport seul (sans re-run)
python plugins/eval-lab/eval_runner.py report --skill tk-orchestrator

# Validation schema seule (input depuis stdin)
echo '{"status":"success",...}' | python plugins/eval-lab/eval_runner.py validate-schema
```

---

## 🛡️ Niveaux de sévérité régression

| Niveau | Critères | Comportement |
|---|---|---|
| CRITICAL | Champ obligatoire disparu, type changé | Bloquer merge — exit code 2 |
| HIGH | Valeur aberrante (score négatif, timestamp futur) | Warning + log |
| MEDIUM | Champ optionnel disparu | Warning |
| LOW | Changement de contenu attendu | Info |

---

## 📊 Notes de fiabilité

| Élément | Niveau | Commentaire |
|---|---|---|
| Schema validation | ✅ Confirmé | `jsonschema` v4 — même lib que test_schema_compliance.py |
| Baseline SQLite | ✅ Confirmé | Pattern éprouvé (QualityGuard error_memory) |
| Regression check | 🟡 Probable | Comparaison structurelle, pas sémantique |
| Intégration CI | 🟠 À vérifier | Exit codes à tester en environnement Windows |

---

*eval-lab v0.1.0 — 16/05/2026 — TricorderKit v0.8*

Files in this skill

  • .claude-plugin/plugin.json490 B
  • SKILL.md4.8 KB
  • baseline_store.py7.3 KB
  • eval_runner.py14.7 KB
  • evaluators.py10.4 KB
  • fixtures/eval-lab.json643 B
  • manifest.yml1.8 KB
  • regression_checker.py7.2 KB
  • report_generator.py9.5 KB
  • requirements.txt178 B
  • schema_validator.py5.7 KB
  • tests/conftest.py3.5 KB
  • tests/test_eval_runner.py7.1 KB
  • tests/test_evaluators.py5.1 KB
  • tests/test_regression_checker.py6.4 KB
  • tests/test_schema_validator.py4.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.