docs(coordination): propose c gamma writeback decisions

This commit is contained in:
Dom
2026-05-29 18:58:12 +02:00
parent 47377226f2
commit 05a30f2d1d
6 changed files with 345 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
# Codex - RESULTAT C-beta hardening apres revue Qwen
Date: 2026-05-29 18:55
Branche: `backup/post-demo-2026-05-19`
## Source
Revue lue:
- `docs/coordination/inbox_codex/2026-05-29_qwen-to-codex-claude_REVUE-CODE-C-ALPHA-BETA.md`
Qwen donne un ACK global C-alpha + C-beta et demande quatre durcissements avant C-gamma:
- champ `workflow_id` dans les verdicts;
- champ `step_results[]` dans les verdicts;
- test `verdict_id` reutilise pour une autre competence;
- test methode YAML non supportee -> warnings.
## Implementation
Commit:
- `47377226f feat(vwb): harden supervised verdict evidence`
Ajoute:
- `workflow_id` optionnel dans le record verdict;
- fallback `workflow_id` depuis `source.workflow_id` ou `evidence.workflow_id`;
- `step_results[]` optionnel, valide comme liste d'objets;
- `frontend_v4` envoie `workflow_id` et `step_results` depuis l'execution active quand disponibles;
- test duplicate verdict_id sur une autre competence;
- test warning pour methode YAML non supportee.
Contrat maintenu:
- aucun write-back YAML;
- aucun write DB workflow;
- `write_back_enabled=false`;
- `yaml_write=false`;
- C-gamma reste bloquee sans GO explicite Dom.
## Validations
Tests:
- `python3 -m pytest tests/unit/test_competence_verdicts.py tests/unit/test_lea_competence_verdict_api.py tests/unit/test_competence_to_vwb_preview.py tests/unit/test_supervised_popup_guard.py tests/unit/test_vwb_supervised_pause_runtime.py -q`
- resultat: 24 OK.
Suite C-beta complete:
- `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: 36 OK.
Controles:
- `py_compile` backend OK;
- `git diff --check` OK;
- `npm run build` dans `visual_workflow_builder/frontend_v4` OK.
Smoke live apres restart backend:
- frontend `http://localhost:3002` -> 200;
- backend catalogue `http://localhost:5002/api/vwb/catalog/actions` -> 200;
- POST verdict avec `workflow_id=smoke_workflow_c_beta_hardening` -> 201;
- `step_results_len=2`;
- `write_back_enabled=false`;
- `yaml_write=false`.
## Points restants avant C-gamma
Les reserves mineures restantes de Qwen ne bloquent pas C-beta:
- layout preview tous les steps sur `position_y=120`;
- mapping `click_anchor` incomplet pour certains parametres non utilises batch 1;
- lignes JSONL malformees ignorees sans log warning.
A traiter si elles deviennent utiles au test humain ou avant promotion stable.

View File

@@ -0,0 +1,120 @@
# Codex - Proposition reponses Dom Q1-Q8 avant C-gamma write-back
Date: 2026-05-29 18:56
Branche: `backup/post-demo-2026-05-19`
## Sources
Claude:
- `docs/coordination/inbox_codex/2026-05-29_1845_claude-to-codex_ACK-PATCH-C-alpha-C-beta-groupe.md`
Qwen:
- `docs/coordination/inbox_codex/2026-05-29_qwen-to-codex-claude_REVUE-CODE-C-ALPHA-BETA.md`
## Etat technique avant arbitrage Dom
C-alpha + C-beta sont ACK par Claude et Qwen.
Ajouts Qwen integres:
- commit `47377226f feat(vwb): harden supervised verdict evidence`;
- `workflow_id` dans verdict JSONL;
- `step_results[]` dans verdict JSONL;
- tests duplicate `verdict_id` autre competence;
- test warning methode YAML non supportee.
Le test humain supervise est possible maintenant sans write-back YAML.
## Recommandation Codex Q1-Q8
### Q1 - Principe write-back YAML
Recommandation: Option C.
Le journal JSONL reste la source brute append-only. Le write-back YAML se fait par commande CLI manuelle lancee par Dom, qui agrege des verdicts selectionnes vers le YAML. Pas de write-back automatique depuis le bouton `Valide`.
Raison: on garde le controle humain, on evite une mutation YAML prematuree pendant les premiers tests, et on garde l'audit trail.
### Q2 - Promotion observed -> candidate
Recommandation:
- conditions structurelles du YAML satisfaites;
- au moins 1 verdict `valid`;
- GO Dom explicite.
Note: les competences batch 1 ciblees sont deja en `candidate`, donc cette question sert surtout aux futures competences observees.
### Q3 - Promotion candidate -> stable
Recommandation:
- conserver `min_successes: 3`;
- conserver `distinct_contexts: 3`;
- `distinct_contexts` = fingerprint compose de `machine_id`, `os_locale`, `app_signature`, `screen_resolution`, `scaling`, `keyboard_layout`, et hash d'etat visuel initial/apres action quand disponible;
- aucun `invalid` non explique;
- promotion manuelle Dom au depart, pas cron automatique.
### Q4 - Regression stable/candidate
Recommandation: Option C.
Pas de degradation automatique. Si invalides repetes, on ajoute un flag `regression_suspected` et on alerte Dom. La competence stable n'est degradee qu'apres decision humaine.
### Q5 - Granularite context_signature
Champs minimaux recommandes:
- `machine_id`;
- `os_name`, `os_version`, `os_locale`;
- `keyboard_layout`;
- `screen_resolution`, `scaling`;
- `app_name`, `app_version` si disponible, `process_name`;
- `window_title_family`;
- `screen_state_initial_hash`, `screen_state_after_action_hash`;
- `frontend_source` / `runtime_source`.
Theme clair/sombre: optionnel, seulement si on constate un impact vision.
### Q6 - Securite declenchement promotion C-gamma
Recommandation:
- CLI uniquement pour C-gamma initial;
- commande explicite type `python -m tools.promote_competence_from_verdicts ...`;
- pas d'endpoint public de promotion au debut;
- si endpoint plus tard: token Dom + flag opt-in + dry-run obligatoire.
### Q7 - Audit trail promotions
Recommandation: oui, indispensable.
Ajouter `data/competences/promotions.jsonl` avec:
- `promotion_id`;
- `competence_id`;
- `from_state`, `to_state`;
- `triggered_by`;
- `evidence_verdict_ids[]`;
- `promoted_at`;
- `yaml_path`;
- `backup_path`;
- `git_commit` si commit manuel effectue.
### Q8 - Rollback YAML
Recommandation:
- atomic write via fichier temporaire puis rename;
- backup YAML timestamp obligatoire;
- validation YAML apres ecriture;
- commit git manuel ou CLI cible uniquement si Dom le demande.
Nuance importante: je ne recommande pas un commit git automatique depuis le serveur VWB, car le worktree est souvent sale et cela peut embarquer des changements hors perimetre. Si commit automatique un jour, il doit etre fait par un outil CLI qui stage explicitement les seuls fichiers YAML/promotions concernes.
## Decision demandee a Dom
Valider ou corriger cette ligne directrice:
- Q1 = write-back manuel CLI, pas bouton automatique;
- Q2 = 1 valid + structure + GO Dom;
- Q3 = 3 succes / 3 contextes distincts / 0 invalid non explique / promotion manuelle;
- Q4 = alerte regression, pas downgrade automatique;
- Q5 = contexte enrichi comme ci-dessus;
- Q6 = CLI only au depart;
- Q7 = promotions.jsonl obligatoire;
- Q8 = atomic write + backup + validation, git commit seulement controle.
Sans validation Dom, C-gamma ne doit pas demarrer.