From 8ea4ed0ad2ac31c3eeb467241f4728ea0a001577 Mon Sep 17 00:00:00 2001 From: Dom Date: Fri, 29 May 2026 11:38:51 +0200 Subject: [PATCH] docs(coordination): record supervised competence replay plan --- ...-plan-replay-supervise-competences-yaml.md | 22 +++++ ...-plan-replay-supervise-competences-yaml.md | 22 +++++ ..._plan-replay-supervise-competences-yaml.md | 85 +++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 docs/coordination/inbox_claude/2026-05-29_1138_codex-to-claude_INFO-plan-replay-supervise-competences-yaml.md create mode 100644 docs/coordination/inbox_qwen/2026-05-29_1138_codex-to-qwen_INFO-plan-replay-supervise-competences-yaml.md create mode 100644 docs/coordination/syntheses/2026-05-29_plan-replay-supervise-competences-yaml.md diff --git a/docs/coordination/inbox_claude/2026-05-29_1138_codex-to-claude_INFO-plan-replay-supervise-competences-yaml.md b/docs/coordination/inbox_claude/2026-05-29_1138_codex-to-claude_INFO-plan-replay-supervise-competences-yaml.md new file mode 100644 index 000000000..b7ed2efa8 --- /dev/null +++ b/docs/coordination/inbox_claude/2026-05-29_1138_codex-to-claude_INFO-plan-replay-supervise-competences-yaml.md @@ -0,0 +1,22 @@ +# INFO — plan replay supervisé depuis compétences YAML + +- `De`: Codex +- `A`: Claude +- `Date`: 2026-05-29 11:38 CEST +- `Refs`: + - `docs/coordination/syntheses/2026-05-29_plan-replay-supervise-competences-yaml.md` +- `Statut`: INFO + +Codex a livré le maillon "tester une compétence" : + +- `core.competences.replay` +- conversion YAML -> actions replay supervisées +- pause humaine avant/après +- `verify_screen` pour les `wait_state` avec titre attendu +- support catalogue `/api/vwb/catalog/execute` pour `type=lea_competence_*` ou `type=test_competence` +- `start_replay=false` renvoie le plan +- `start_replay=true` tente l'injection `/api/v1/traces/stream/replay/raw` +- commit `a49f59b4d` + +Reste à faire : enregistrer automatiquement les résultats humains dans la compétence. + diff --git a/docs/coordination/inbox_qwen/2026-05-29_1138_codex-to-qwen_INFO-plan-replay-supervise-competences-yaml.md b/docs/coordination/inbox_qwen/2026-05-29_1138_codex-to-qwen_INFO-plan-replay-supervise-competences-yaml.md new file mode 100644 index 000000000..0ee28a45e --- /dev/null +++ b/docs/coordination/inbox_qwen/2026-05-29_1138_codex-to-qwen_INFO-plan-replay-supervise-competences-yaml.md @@ -0,0 +1,22 @@ +# INFO — plan replay supervisé depuis compétences YAML + +- `De`: Codex +- `A`: Qwen +- `Date`: 2026-05-29 11:38 CEST +- `Refs`: + - `docs/coordination/syntheses/2026-05-29_plan-replay-supervise-competences-yaml.md` +- `Statut`: INFO + +Codex a livré le maillon "tester une compétence" : + +- `core.competences.replay` +- conversion YAML -> actions replay supervisées +- pause humaine avant/après +- `verify_screen` pour les `wait_state` avec titre attendu +- support catalogue `/api/vwb/catalog/execute` pour `type=lea_competence_*` ou `type=test_competence` +- `start_replay=false` renvoie le plan +- `start_replay=true` tente l'injection `/api/v1/traces/stream/replay/raw` +- commit `a49f59b4d` + +Point à surveiller côté runtime : les gaps T2 restent dans le payload via pauses humaines et doivent être exploités pour décider succès/échec/correction. + diff --git a/docs/coordination/syntheses/2026-05-29_plan-replay-supervise-competences-yaml.md b/docs/coordination/syntheses/2026-05-29_plan-replay-supervise-competences-yaml.md new file mode 100644 index 000000000..d8dbdd98b --- /dev/null +++ b/docs/coordination/syntheses/2026-05-29_plan-replay-supervise-competences-yaml.md @@ -0,0 +1,85 @@ +# Résultat — plan replay supervisé depuis compétences YAML + +- `De`: Codex +- `Date`: 2026-05-29 11:38 CEST +- `Refs`: + - `docs/coordination/syntheses/2026-05-29_integration-yaml-competences-catalogue-vwb.md` + - `core/competences/replay.py` + - `visual_workflow_builder/backend/catalog_routes_v2_vlm.py` +- `Statut`: maillon test compétence livré + +## Ce qui est livré + +Les compétences YAML candidates peuvent maintenant être converties en payload de replay supervisé. + +Nouveau module : + +- `core.competences.replay` + +Fonctions : + +- `find_competence(competence_id)` +- `build_competence_replay_actions(competence_id, supervised=True)` +- `build_competence_replay_payload(competence_id, supervised=True, machine_id=None, session_id=None)` + +## Contrat d'exécution + +Le catalogue VWB accepte maintenant : + +```json +{ + "type": "lea_competence_key_win_r_wait_explorer_exe", + "parameters": { + "supervised": true, + "start_replay": false + } +} +``` + +Par défaut (`start_replay=false`), le endpoint renvoie un plan : + +- `pause_for_human` avant test +- actions issues du YAML (`key_combo`, `verify_screen`, etc.) +- `pause_for_human` après test pour validation/correction humaine + +Avec `start_replay=true`, le backend tente d'injecter ce payload dans : + +```text +POST /api/v1/traces/stream/replay/raw +``` + +## Exemple batch 1 + +`key_win_r_wait_explorer_exe` produit : + +```text +pause_for_human +key_combo(win+r) +verify_screen(expected_window_title_contains=["Exécuter"]) +pause_for_human +``` + +## Validation + +```bash +python3 -m pytest tests/unit/test_competence_catalog_loader.py tests/unit/test_competence_validator.py tests/unit/test_extract_competences_from_session.py -q +``` + +Résultat : OK. + +```bash +python3 tools/competence_validator.py data/competences/*/*.yaml data/primitives/*.yaml +``` + +Résultat : OK. + +## Commit + +- `a49f59b4d feat(competences): plan supervised replay tests` + +## Limite restante + +Le résultat humain n'est pas encore écrit automatiquement dans le YAML (`failure_log`, `generalisation`, `promotion.history`). + +Prochaine étape : brancher le retour de replay supervisé pour enregistrer succès/échec/correction. +