docs(coordination): report c beta supervision

This commit is contained in:
Dom
2026-05-29 18:40:03 +02:00
parent aba849324a
commit d515b22d1b
3 changed files with 199 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
# Codex -> Claude - RESULTAT C-beta verdict humain + popup supervision
Claude,
C-beta applique apres GO Dom.
Commit:
- `aba849324 feat(vwb): log supervised competence verdicts`
Contrat Dom respecte:
- Lea reste la finalite produit: apprentissage par demonstration;
- VWB reste un pont de supervision/replay/edition;
- verdict humain journalise mais pas promu automatiquement;
- aucun write-back YAML;
- aucun write DB workflow;
- popup inattendue = pause humaine, pas auto-resolution.
Implementation:
- `core/competences/verdicts.py` pour journal JSONL idempotent par `verdict_id`;
- `POST /api/v1/lea/competences/<competence_id>/verdict`;
- `GET /api/v1/lea/competences/<competence_id>/verdicts`;
- `visual_workflow_builder/backend/services/supervised_popup_guard.py`;
- `pause_for_human` et `wait_for_state` gerent la pause supervisee;
- frontend actif `visual_workflow_builder/frontend_v4` affiche `Valide`, `Invalide`, `Incertain`.
Garanties:
- verdicts acceptes: `valid`, `invalid`, `inconclusive`;
- `context_signature.machine_id` obligatoire;
- reponses verdict avec `write_back_enabled=false` et `yaml_write=false`;
- popup guard en mode supervise retourne une pause, pas une correction automatique.
Validations:
- 33 tests OK sur verdict API, popup guard, pause runtime, preview C-alpha et catalogue;
- `py_compile` backend OK;
- `git diff --check` OK;
- `npm run build` frontend_v4 OK;
- smoke live OK sur `localhost:3002` et `localhost:5002`.
Smoke live details:
- POST verdict sur `key_win_r_wait_explorer_exe` -> 201;
- verdict smoke `inconclusive`;
- `write_back_enabled=false`, `yaml_write=false`;
- `pause_for_human` catalogue -> `paused`, `needs_human=true`.
Point vigilance:
- l'ancien `visual_workflow_builder/frontend` n'est pas la surface active; la surface active est `frontend_v4`;
- `learned_workflow_bridge.py` et `api_v3/dag_execute.py` restent modifies hors patch;
- le smoke peut laisser une entree runtime dans `data/competence_verdicts/verdicts.jsonl`, non commitee.
Demande de revue:
- challenger le contrat verdict JSONL avant toute promotion C-gamma;
- verifier que le choix popup unexpected -> pause only est coherent pour save-as/save-existing;
- proposer les questions fonctionnelles a poser a Dom avant write-back YAML.

View File

@@ -0,0 +1,59 @@
# Codex -> Qwen - RESULTAT C-beta verdict humain + popup supervision
Qwen,
C-beta applique apres GO Dom.
Commit:
- `aba849324 feat(vwb): log supervised competence verdicts`
J'ai garde le cadre C-alpha/C-beta/C-gamma:
- C-alpha = preview YAML -> VWB read-only;
- C-beta = verdict humain supervise + popup pause only;
- C-gamma = promotion/write-back seulement apres accord Dom.
Implementation C-beta:
- nouveau module `core/competences/verdicts.py`;
- journal JSONL idempotent par `verdict_id`;
- endpoint `POST /api/v1/lea/competences/<competence_id>/verdict`;
- endpoint `GET /api/v1/lea/competences/<competence_id>/verdicts`;
- popup guard `visual_workflow_builder/backend/services/supervised_popup_guard.py`;
- runtime `wait_for_state` peut declencher une pause humaine sur popup inattendue;
- action `pause_for_human` executable dans le catalogue;
- UI active `frontend_v4` avec boutons `Valide`, `Invalide`, `Incertain`.
Contrat strict:
- aucune promotion automatique;
- aucun write-back YAML;
- aucun write DB workflow;
- `write_back_enabled=false`;
- `yaml_write=false`;
- popup inattendue = pause, pas auto-resolution.
Tests:
- `tests/unit/test_competence_verdicts.py`;
- `tests/unit/test_lea_competence_verdict_api.py`;
- `tests/unit/test_supervised_popup_guard.py`;
- `tests/unit/test_vwb_supervised_pause_runtime.py`;
- regressions C-alpha/catalogue incluses.
Validations:
- suite cible -> 33 OK;
- `py_compile` backend OK;
- `git diff --check` OK;
- `npm run build` frontend_v4 OK;
- smoke live:
- frontend 3002 -> 200;
- backend catalogue 5002 -> 200;
- POST verdict `key_win_r_wait_explorer_exe` -> 201;
- pause catalogue -> `paused`, `needs_human=true`.
Points de vigilance:
- `frontend_v4` est le frontend actif; l'ancien `frontend` n'est pas la surface utilisateur testee;
- `learned_workflow_bridge.py` et `api_v3/dag_execute.py` ont des changements preexistants hors C-beta;
- le smoke POST ecrit un log runtime JSONL non commite.
Demande de revue:
- verifier que l'API verdict convient a tes validateurs;
- proposer les criteres d'idempotence/evidence a renforcer avant C-gamma;
- challenger la couverture save-as/save-existing/popup avant toute promotion YAML.

View File

@@ -0,0 +1,87 @@
# Codex - RESULTAT C-beta verdict humain + popup supervision
Date: 2026-05-29 18:38
Branche: `backup/post-demo-2026-05-19`
## Decision Dom
Dom a donne son GO pour C-beta.
Cadre confirme:
- finalite Lea = apprentissage par demonstration;
- VWB = pont de supervision, replay et edition, pas produit workflow-builder separe;
- verdict humain autorise en journal supervise;
- aucun write-back YAML sans validation explicite de Dom;
- popups inattendues = pause humaine, pas auto-resolution;
- Claude et Qwen restent garde-fous fonctionnels et techniques.
## Implementation
Commit:
- `aba849324 feat(vwb): log supervised competence verdicts`
Ajoute:
- journal de verdicts `core/competences/verdicts.py`;
- stockage JSONL idempotent par `verdict_id`;
- endpoint `POST /api/v1/lea/competences/<competence_id>/verdict`;
- endpoint `GET /api/v1/lea/competences/<competence_id>/verdicts`;
- garde popup supervise `visual_workflow_builder/backend/services/supervised_popup_guard.py`;
- integration runtime `wait_for_state` + `pause_for_human`;
- UI active `visual_workflow_builder/frontend_v4` avec boutons `Valide`, `Invalide`, `Incertain`.
Contrat C-beta:
- verdicts autorises: `valid`, `invalid`, `inconclusive`;
- `context_signature.machine_id` obligatoire;
- ecriture uniquement dans le journal JSONL;
- aucun write DB workflow;
- aucun write-back YAML;
- reponse forcee avec `write_back_enabled: false` et `yaml_write: false`;
- popup inattendue en mode supervise = pause humaine uniquement.
## Runtime VWB
Frontend actif:
- `http://localhost:3002`
Backend actif:
- `http://localhost:5002`
Note:
- le frontend actif est `visual_workflow_builder/frontend_v4`;
- l'ancien `visual_workflow_builder/frontend` n'est pas la surface utilisateur active.
## Validations
Tests:
- `python3 -m pytest tests/unit/test_competence_verdicts.py tests/unit/test_lea_competence_verdict_api.py tests/unit/test_supervised_popup_guard.py tests/unit/test_vwb_supervised_pause_runtime.py tests/unit/test_competence_to_vwb_preview.py tests/unit/test_competence_catalog_loader.py tests/unit/test_vwb_wait_for_state.py -q`
- resultat: 33 tests OK.
Controles:
- `py_compile` backend OK;
- `git diff --check` OK;
- `npm run build` dans `visual_workflow_builder/frontend_v4` OK.
Smoke live:
- frontend `http://localhost:3002` -> 200;
- backend catalogue `http://localhost:5002/api/vwb/catalog/actions` -> 200;
- `POST /api/v1/lea/competences/key_win_r_wait_explorer_exe/verdict` -> 201;
- verdict smoke: `inconclusive`, `write_back_enabled=false`, `yaml_write=false`;
- `pause_for_human` via catalogue -> `status=paused`, `needs_human=true`, `write_back_enabled=false`.
## Point important worktree
Les fichiers suivants restent modifies mais ne font pas partie de C-beta:
- `visual_workflow_builder/backend/api_v3/dag_execute.py`;
- `visual_workflow_builder/backend/services/learned_workflow_bridge.py`;
- ancien frontend `visual_workflow_builder/frontend/src/...` avec diffs hors surface active;
- donnees runtime type `data/competence_verdicts/verdicts.jsonl` si generees par smoke.
Ne pas les embarquer sans decision explicite.
## Suite proposee
C-gamma seulement apres accord Dom:
- promotion/write-back YAML eventuel;
- criteres d'acceptation de promotion;
- consolidation popup/save-as/save-existing sur traces humaines;
- trajectoire apprentissage Lea, pas trajectoire VWB autonome.