Compétence Rapport de Traitement par Lots
Générer des rapports d'analyse complets pour les traitements par lots terminés.
Fonctionnalités
- Analyse des manifestes - Compter les succès, les échecs, les achèvements partiels
- Décomposition temporelle - Analyse de latence par étape, identification des goulots d'étranglement
- Motifs d'échec - Catégoriser et résumer les modes de défaillance
- Métriques de qualité - Échantillonner les sorties pour l'évaluation de la qualité
- Rapport Markdown - Résumé lisible par un humain
- Intégration boîte de réception des agents - Envoi automatique à la boîte de réception du projet
Démarrage Rapide
cd .pi/skills/batch-report
# Générer un rapport pour un lot de type extracteur (détection automatique du format)
uv run python report.py analyze /chemin/vers/sortie/lot
# Générer et envoyer à la boîte de réception des agents
uv run python report.py analyze /chemin/vers/sortie/lot --send-to extracteur
# Afficher uniquement les statistiques récapitulatives
uv run python report.py summary /chemin/vers/sortie/lot
# Analyser un fichier d'état autonome
uv run python report.py state /chemin/vers/.batch_state.json
# Sortie JSON pour redirection
uv run python report.py summary /chemin/vers/sortie --json | jq .success_rate
Commandes
analyze - Rapport d'analyse complet
uv run python report.py analyze /chemin/vers/sortie \
--output rapport.md \
--send-to extracteur \
--priority haute
Options :
| Option | Court | Description |
|---|---|---|
--output | -o | Chemin du fichier de sortie (défaut : stdout) |
--send-to | -s | Envoyer le rapport à un projet de la boîte de réception des agents |
--priority | -p | Priorité pour la boîte de réception des agents (faible/normale/haute/critique) |
--sample | -n | Nombre d'échantillons à inclure (défaut : 5) |
--format | -f | Format du lot : extractor, youtube, generic, auto (défaut : auto) |
--json | -j | Sortie au format JSON pour redirection vers d'autres outils |
summary - Statistiques rapides uniquement
uv run python report.py summary /chemin/vers/sortie
uv run python report.py summary /chemin/vers/sortie --json
Sortie :
Lot : run-2025-12-18_144426-2eb428c
Total : 230 | Succès : 180 | Échecs : 35 | Partiel : 15
Taux de succès : 78.3%
Temps moyen : 4.2 min | Plus lent : 09_section_summarizer (45%)
Sortie JSON :
{
"batch": "run-2025-12-18_144426-2eb428c",
"format": "extractor",
"total": 230,
"successful": 180,
"partial": 15,
"failed": 35,
"success_rate": 78.3,
"avg_time_min": 4.2
}
state - Analyser des fichiers d'état autonomes
uv run python report.py state /chemin/vers/.batch_state.json
uv run python report.py state /chemin/vers/.batch_state.json --json
Fonctionne avec n'importe quel fichier .batch_state.json provenant de tout traitement par lots.
failures - Lister les échecs avec leurs causes
uv run python report.py failures /chemin/vers/sortie
uv run python report.py failures /chemin/vers/sortie --json
Format du Rapport
# Rapport du Lot : run-2025-12-18_144426-2eb428c
## Résumé
- **Nombre total d'éléments :** 230
- **Réussis :** 180 (78.3%)
- **Échoués :** 35 (15.2%)
- **Partiels :** 15 (6.5%)
## Analyse temporelle
| Étape | Moy (s) | Max (s) | % du Total |
|-------|---------|---------|------------|
| 09_section_summarizer | 120.5 | 341.0 | 45.2% |
| 05_table_extractor | 65.3 | 105.0 | 24.5% |
...
## Motifs d'échec
| Motif | Nombre | Exemple |
|-------|--------|---------|
| text_content vide | 12 | 047ca6ef... |
| CUDA OOM | 5 | 9497a4e5... |
...
## Recommandations
1. Envisager le mode --text-only pour l'extraction de connaissances
2. Ajouter un seuil de confiance pour les tableaux avant VLM
...
Visualisation
Après avoir généré des rapports (surtout avec --json), proposer de visualiser via /create-figure :
# Diagramme en cascade temporelle par étape du pipeline
create-figure metrics --input batch.json --output timing.png --type hbar --title "Temps par étape"
# Distribution succès/échec
create-figure metrics --input batch.json --output results.png --type pie --title "Résultats du lot"
# Répartition des motifs d'échec
create-figure metrics --input batch.json --output failures.png --type bar --title "Motifs d'échec"
Quand proposer : Après avoir présenté l'analyse du lot, demander : « Voulez-vous que je visualise la répartition temporelle ? »
Formats de Lots Supportés
Le paramètre --format accepte : extractor, youtube, generic, ou auto (défaut).
Logique de détection automatique :
- Si
*/manifest.jsonet*/timings_summary.jsonexistent →extractor - Si
.batch_state.jsoncontient « transcript » dans la description →youtube - Si
.batch_state.jsonexiste →generic
Lots de type extracteur
Attend :
*/manifest.json- Manifestes par élément*/timings_summary.json- Données temporelles*/14_report_generator/json_output/final_report.json- Métriques de qualitéfailed_urls.txt- Liste des éléments en échec
Lots de transcriptions YouTube
Attend :
.batch_state.json- Fichier d'état avec description liée aux transcriptions
Lots génériques
Attend :
.batch_state.json- Fichier d'état avec nombres de réussites/échecs- Fichiers
*.logpour analyse des échecs (optionnel)
Intégration avec la boîte de réception des agents
# Envoyer le rapport comme bogue
uv run python report.py analyze /chemin/vers/sortie \
--send-to extracteur \
--priority haute
# Message envoyé : extracteur_abc123
Dépendances
dependencies = [
"typer",
"rich",
]