feat(competences): extract batch candidates
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# Résultat — correction sémantique Alt+F4 batch 1
|
||||
|
||||
- `De`: Codex
|
||||
- `Date`: 2026-05-29 10:13 CEST
|
||||
- `Refs`:
|
||||
- `docs/coordination/inbox_codex/2026-05-29_1010_claude-to-codex_ACK-INTENTION-correction-semantique-altf4-batch1.md`
|
||||
- `docs/coordination/inbox_codex/2026-05-29_qwen-to-codex_PROTOCOLE-runtime-batch1-validation.md`
|
||||
- `docs/coordination/syntheses/2026-05-29_recadrage_coordination_ack_jobs.md`
|
||||
- `data/competences/observed/key_alt_f4_wait_windowsterminal_exe.yaml`
|
||||
- `Statut`: patch observed appliqué, promotion candidate non réalisée
|
||||
|
||||
## Changement appliqué
|
||||
|
||||
Correction strictement sémantique de `data/competences/observed/key_alt_f4_wait_windowsterminal_exe.yaml`.
|
||||
|
||||
Champs modifiés :
|
||||
|
||||
- `intent.fr`
|
||||
- `failure_message_template.intention`
|
||||
- `failure_message_template.attendu`
|
||||
- `failure_message_template.demande`
|
||||
|
||||
Champs conservés inchangés :
|
||||
|
||||
- `learning_state: observed`
|
||||
- `methods`
|
||||
- `trace_event_indices`
|
||||
- `chain_refs`
|
||||
- `success_marker`
|
||||
- `promotion`
|
||||
|
||||
## Sémantique retenue
|
||||
|
||||
La trace relue par Claude indique que `Alt+F4` a été envoyé avec Bloc-notes au premier plan, puis que Windows Terminal est devenu actif après fermeture de Bloc-notes.
|
||||
|
||||
La compétence observed décrit donc maintenant l'action :
|
||||
|
||||
> fermer la fenêtre Bloc-notes courante avec Alt+F4
|
||||
|
||||
Le `wait_state` Terminal reste une preuve d'état post-action dans cette compétence observed, pas l'intention métier.
|
||||
|
||||
## Validation locale
|
||||
|
||||
Commandes exécutées :
|
||||
|
||||
```bash
|
||||
python3 tools/competence_validator.py \
|
||||
data/competences/observed/key_win_r_wait_explorer_exe.yaml \
|
||||
data/competences/observed/key_ctrl_s_wait_notepad_exe.yaml \
|
||||
data/competences/observed/key_alt_f4_wait_windowsterminal_exe.yaml
|
||||
```
|
||||
|
||||
Résultat : OK sur les 3 YAML du batch.
|
||||
|
||||
```bash
|
||||
python3 tools/competence_validator.py data/competences/*/*.yaml data/primitives/*.yaml
|
||||
```
|
||||
|
||||
Résultat : OK global competences + primitives.
|
||||
|
||||
```bash
|
||||
python3 -m pytest tests/unit/test_extract_competences_from_session.py tests/unit/test_competence_validator.py -q
|
||||
```
|
||||
|
||||
Résultat : exit 0.
|
||||
|
||||
## Points ouverts
|
||||
|
||||
- Qwen a signalé une réserve runtime sur le `success_marker` Alt+F4. Elle est conservée comme réserve de promotion candidate / runtime, pas comme blocage de la correction observed appliquée ici.
|
||||
- Pas de promotion `observed -> candidate` sans GO explicite de Dom.
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
# Synthèse — double ACK patch correction Alt+F4 batch 1
|
||||
|
||||
- `De`: Codex
|
||||
- `Date`: 2026-05-29 10:29 CEST
|
||||
- `Refs`:
|
||||
- `docs/coordination/inbox_codex/2026-05-29_qwen-to-codex_ACK-PATCH-correction-semantique-altf4.md`
|
||||
- `docs/coordination/inbox_codex/2026-05-29_1022_claude-to-codex_ACK-PATCH-correction-semantique-altf4-batch1.md`
|
||||
- `docs/coordination/syntheses/2026-05-29_correction-semantique-altf4-batch1-result.md`
|
||||
- `data/competences/observed/key_alt_f4_wait_windowsterminal_exe.yaml`
|
||||
- `Statut`: double ACK PATCH acquis
|
||||
|
||||
## État acquis
|
||||
|
||||
- Qwen : `ACK PATCH` sur la correction sémantique observed Alt+F4.
|
||||
- Claude : `ACK` niveau `ACK patch` sur la même correction.
|
||||
- Les deux confirment que seuls les 4 champs sémantiques ont été modifiés.
|
||||
- Les deux confirment que le patch est acceptable pour `learning_state: observed`.
|
||||
|
||||
## Verrous restants
|
||||
|
||||
- Réserve runtime Qwen sur `success_marker` Alt+F4 : bloquante avant promotion `candidate`, non bloquante pour le patch observed.
|
||||
- Protocole runtime supervisé batch 1 : non exécuté.
|
||||
- GO Dom explicite : non acquis.
|
||||
|
||||
## Décision opérationnelle
|
||||
|
||||
Ne pas promouvoir `observed -> candidate` à ce stade.
|
||||
|
||||
Prochaine étape technique possible : lever ou cadrer la réserve runtime `success_marker` Alt+F4 avant toute demande de GO promotion.
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
# Resultat apply batch 1 competences observees
|
||||
|
||||
- Date: 2026-05-29 09:47 Europe/Paris
|
||||
- Session source: `data/training/live_sessions/DESKTOP-58D5CAC_windows/sess_20260324T165824_55b380/live_events.jsonl`
|
||||
- Machine: `DESKTOP-58D5CAC_windows`
|
||||
- Mode: `--apply`
|
||||
- Allow-list: `key_win_r_wait_explorer_exe,key_ctrl_s_wait_notepad_exe,key_alt_f4_wait_windowsterminal_exe`
|
||||
|
||||
## Commande appliquee
|
||||
|
||||
```bash
|
||||
python3 tools/extract_competences_from_session.py \
|
||||
--session data/training/live_sessions/DESKTOP-58D5CAC_windows/sess_20260324T165824_55b380/live_events.jsonl \
|
||||
--machine-id DESKTOP-58D5CAC_windows \
|
||||
--apply \
|
||||
--allow-list key_win_r_wait_explorer_exe,key_ctrl_s_wait_notepad_exe,key_alt_f4_wait_windowsterminal_exe
|
||||
```
|
||||
|
||||
## Resultat
|
||||
|
||||
- exit: 0
|
||||
- candidates_generated: 5
|
||||
- candidates_rejected: 8
|
||||
- would_write: 3
|
||||
- written: 3
|
||||
|
||||
YAML crees:
|
||||
|
||||
- `data/competences/observed/key_win_r_wait_explorer_exe.yaml`
|
||||
- `data/competences/observed/key_ctrl_s_wait_notepad_exe.yaml`
|
||||
- `data/competences/observed/key_alt_f4_wait_windowsterminal_exe.yaml`
|
||||
|
||||
## Validation
|
||||
|
||||
Validation des 3 YAML generes:
|
||||
|
||||
```bash
|
||||
python3 tools/competence_validator.py \
|
||||
data/competences/observed/key_win_r_wait_explorer_exe.yaml \
|
||||
data/competences/observed/key_ctrl_s_wait_notepad_exe.yaml \
|
||||
data/competences/observed/key_alt_f4_wait_windowsterminal_exe.yaml
|
||||
# ok x3
|
||||
```
|
||||
|
||||
Validation globale:
|
||||
|
||||
```bash
|
||||
python3 tools/competence_validator.py data/competences/*/*.yaml data/primitives/*.yaml
|
||||
# OK: 9 competences + 5 primitives
|
||||
```
|
||||
|
||||
Tests apres ecriture batch 1:
|
||||
|
||||
```bash
|
||||
python3 -m pytest tests/unit/test_extract_competences_from_session.py tests/unit/test_competence_validator.py -q
|
||||
# 77 passed
|
||||
```
|
||||
|
||||
Note: les fixtures de tests apply/normalisation ont ete ajustees pour ne plus utiliser les IDs batch 1 maintenant presents dans `observed/`, afin de ne pas etre bloquees par la detection de duplicat existant.
|
||||
|
||||
## Lecture minimale Codex
|
||||
|
||||
### `key_win_r_wait_explorer_exe`
|
||||
|
||||
- method: `key_combo` keys `win`, `r`, event 3
|
||||
- wait_state: `Exécuter`, process `explorer.exe`, event 4
|
||||
- gaps: aucun
|
||||
|
||||
### `key_ctrl_s_wait_notepad_exe`
|
||||
|
||||
- method: `key_combo` keys `ctrl`, `s`, event 56
|
||||
- wait_state: `Enregistrer sous`, process `Notepad.exe`, event 57
|
||||
- gaps: aucun
|
||||
|
||||
### `key_alt_f4_wait_windowsterminal_exe`
|
||||
|
||||
- method: `key_combo` keys `alt`, `f4`, event 72
|
||||
- wait_state: title `C:\Windows\system32\cmd.exe`, process `WindowsTerminal.exe`, event 73
|
||||
- gaps: aucun
|
||||
- point a relire: l'intention/failure message generiques disent "ouvrir" l'etat cible, car produits automatiquement par l'extracteur sequence. Semantique acceptable pour `observed`, a confirmer avant promotion.
|
||||
|
||||
## Suite
|
||||
|
||||
Demande de revue collective Claude + Qwen sur les 3 YAML observes.
|
||||
|
||||
Pas de promotion `candidate` sans GO Dom explicite.
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,69 @@
|
||||
# Inventaire dry-run multi-session patch 3
|
||||
|
||||
- run_id: `multi_extract_patch3_2026-05-28T23:39:19+00:00`
|
||||
- sessions_ok: 10 / 10
|
||||
- candidates_total: 23
|
||||
- apply_eligible_total: 4
|
||||
- blocked_total: 19
|
||||
- rejected_total: 211
|
||||
- max_candidates_per_session: 5
|
||||
|
||||
## Rejets patch 3
|
||||
|
||||
- `anchor_ref_browser_contextual`: 1
|
||||
- `anchor_ref_dom_autogenerated`: 1
|
||||
- `anchor_ref_systray_fragile`: 3
|
||||
- `anchor_ref_too_generic`: 6
|
||||
- `anchor_ref_uia_missing`: 152
|
||||
- `anchor_ref_unknown_window`: 6
|
||||
|
||||
## Candidats Apply-Eligible
|
||||
|
||||
### 1. `click_addbutton_wait_notepad_exe`
|
||||
|
||||
- session: `sess_20260417T133324_30c2d0` (A1 click source)
|
||||
- primitives: click_anchor, wait_for_state
|
||||
- confidence: 0.7
|
||||
- segment: `{'keep': [13, 14, 15, 16], 'method': [15, 16], 'success': [16]}`
|
||||
- gaps: click_target_semantics_not_observed_offline, no_ocr_offline
|
||||
- validator: `would_pass`
|
||||
|
||||
### 2. `key_win_r_wait_explorer_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [1, 2, 3, 4], 'method': [3, 4], 'success': [4]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
### 3. `key_ctrl_s_wait_notepad_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [54, 55, 56, 57], 'method': [56, 57], 'success': [57]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
### 4. `key_alt_f4_wait_windowsterminal_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [70, 71, 72, 73], 'method': [72, 73], 'success': [73]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
## Sessions
|
||||
|
||||
- `sess_20260527T185155_98ad9a` (P0/P1 source): 4 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260417T133324_30c2d0` (A1 click source): 5 candidates, 1 eligible, 5 rejected
|
||||
- `sess_20260330T175739_6e190b` (P2 Word source): 1 candidates, 0 eligible, 25 rejected
|
||||
- `sess_20260324T165824_55b380` (P3-B/W3/W4 source): 5 candidates, 3 eligible, 8 rejected
|
||||
- `sess_20260318T010719_62a058` (P3-A scroll source): 0 candidates, 0 eligible, 142 rejected
|
||||
- `sess_20260527T184533_8512ac` (recent 2026-05-27 18:45): 3 candidates, 0 eligible, 6 rejected
|
||||
- `sess_20260527T171412_737571` (recent 2026-05-27 17:14): 0 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260527T171110_ca856a` (recent 2026-05-27 17:11): 0 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260527T170656_e16163` (recent 2026-05-27 17:06): 0 candidates, 0 eligible, 4 rejected
|
||||
- `sess_20260417T215116_316c21` (windows_vm second session): 5 candidates, 0 eligible, 12 rejected
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,67 @@
|
||||
# Inventaire dry-run multi-session patch 3bis
|
||||
|
||||
- run_id: `multi_extract_patch3bis_2026-05-29T06:30:14+00:00`
|
||||
- sessions_ok: 10 / 10
|
||||
- candidates_total: 23
|
||||
- apply_eligible_total: 3
|
||||
- blocked_total: 20
|
||||
- rejected_total: 212
|
||||
- max_candidates_per_session: 5
|
||||
|
||||
## Rejets patch 3bis
|
||||
|
||||
- `anchor_ref_browser_contextual`: 1
|
||||
- `anchor_ref_contextual_button`: 1
|
||||
- `anchor_ref_dom_autogenerated`: 1
|
||||
- `anchor_ref_systray_fragile`: 3
|
||||
- `anchor_ref_too_generic`: 6
|
||||
- `anchor_ref_uia_missing`: 152
|
||||
- `anchor_ref_unknown_window`: 6
|
||||
|
||||
## Effet patch 3bis
|
||||
|
||||
- `click_addbutton_wait_notepad_exe` n'est plus `apply_eligible`.
|
||||
- Le clic Notepad `AddButton` est rejete avec `anchor_ref_contextual_button`.
|
||||
- Seuls les 3 candidats P3-B `key_combo + wait_for_state` restent eligible.
|
||||
|
||||
## Candidats Apply-Eligible
|
||||
|
||||
### 1. `key_win_r_wait_explorer_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [1, 2, 3, 4], 'method': [3, 4], 'success': [4]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
### 2. `key_ctrl_s_wait_notepad_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [54, 55, 56, 57], 'method': [56, 57], 'success': [57]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
### 3. `key_alt_f4_wait_windowsterminal_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [70, 71, 72, 73], 'method': [72, 73], 'success': [73]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
## Sessions
|
||||
|
||||
- `sess_20260527T185155_98ad9a` (P0/P1 source): 4 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260417T133324_30c2d0` (A1 click source): 5 candidates, 0 eligible, 6 rejected
|
||||
- `sess_20260330T175739_6e190b` (P2 Word source): 1 candidates, 0 eligible, 25 rejected
|
||||
- `sess_20260324T165824_55b380` (P3-B/W3/W4 source): 5 candidates, 3 eligible, 8 rejected
|
||||
- `sess_20260318T010719_62a058` (P3-A scroll source): 0 candidates, 0 eligible, 142 rejected
|
||||
- `sess_20260527T184533_8512ac` (recent 2026-05-27 18:45): 3 candidates, 0 eligible, 6 rejected
|
||||
- `sess_20260527T171412_737571` (recent 2026-05-27 17:14): 0 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260527T171110_ca856a` (recent 2026-05-27 17:11): 0 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260527T170656_e16163` (recent 2026-05-27 17:06): 0 candidates, 0 eligible, 4 rejected
|
||||
- `sess_20260417T215116_316c21` (windows_vm second session): 5 candidates, 0 eligible, 12 rejected
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,68 @@
|
||||
# Inventaire dry-run multi-session patch 4
|
||||
|
||||
- run_id: `multi_extract_patch4_dryrun_2026-05-29T07:38:51+00:00`
|
||||
- mode: `dry_run`
|
||||
- sessions_ok: 10 / 10
|
||||
- candidates_total: 23
|
||||
- apply_eligible_total: 3
|
||||
- blocked_total: 20
|
||||
- rejected_total: 212
|
||||
- max_candidates_per_session: 5
|
||||
|
||||
## Rejets
|
||||
|
||||
- `anchor_ref_browser_contextual`: 1
|
||||
- `anchor_ref_contextual_button`: 1
|
||||
- `anchor_ref_dom_autogenerated`: 1
|
||||
- `anchor_ref_systray_fragile`: 3
|
||||
- `anchor_ref_too_generic`: 6
|
||||
- `anchor_ref_uia_missing`: 152
|
||||
- `anchor_ref_unknown_window`: 6
|
||||
|
||||
## Verification patch 4
|
||||
|
||||
- Le dry-run reste identique a patch 3bis: 23 / 3 / 20 / 212.
|
||||
- Aucun YAML competence n'est ecrit par cet inventaire dry-run.
|
||||
- Les 3 candidats apply-eligible restent les 3 P3-B `key_combo + wait_for_state`.
|
||||
|
||||
## Candidats Apply-Eligible
|
||||
|
||||
### 1. `key_win_r_wait_explorer_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [1, 2, 3, 4], 'method': [3, 4], 'success': [4]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
### 2. `key_ctrl_s_wait_notepad_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [54, 55, 56, 57], 'method': [56, 57], 'success': [57]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
### 3. `key_alt_f4_wait_windowsterminal_exe`
|
||||
|
||||
- session: `sess_20260324T165824_55b380` (P3-B/W3/W4 source)
|
||||
- primitives: key_combo, wait_for_state
|
||||
- confidence: 0.9
|
||||
- segment: `{'keep': [70, 71, 72, 73], 'method': [72, 73], 'success': [73]}`
|
||||
- gaps: none
|
||||
- validator: `would_pass`
|
||||
|
||||
## Sessions
|
||||
|
||||
- `sess_20260527T185155_98ad9a` (P0/P1 source): 4 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260417T133324_30c2d0` (A1 click source): 5 candidates, 0 eligible, 6 rejected
|
||||
- `sess_20260330T175739_6e190b` (P2 Word source): 1 candidates, 0 eligible, 25 rejected
|
||||
- `sess_20260324T165824_55b380` (P3-B/W3/W4 source): 5 candidates, 3 eligible, 8 rejected
|
||||
- `sess_20260318T010719_62a058` (P3-A scroll source): 0 candidates, 0 eligible, 142 rejected
|
||||
- `sess_20260527T184533_8512ac` (recent 2026-05-27 18:45): 3 candidates, 0 eligible, 6 rejected
|
||||
- `sess_20260527T171412_737571` (recent 2026-05-27 17:14): 0 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260527T171110_ca856a` (recent 2026-05-27 17:11): 0 candidates, 0 eligible, 3 rejected
|
||||
- `sess_20260527T170656_e16163` (recent 2026-05-27 17:06): 0 candidates, 0 eligible, 4 rejected
|
||||
- `sess_20260417T215116_316c21` (windows_vm second session): 5 candidates, 0 eligible, 12 rejected
|
||||
@@ -0,0 +1,82 @@
|
||||
# Résultat — promotion batch 1 en candidate
|
||||
|
||||
- `De`: Codex
|
||||
- `Date`: 2026-05-29 11:23 CEST
|
||||
- `Refs`:
|
||||
- `docs/coordination/syntheses/2026-05-29_extract_batch1_apply_result.md`
|
||||
- `docs/coordination/syntheses/2026-05-29_correction-semantique-altf4-batch1-result.md`
|
||||
- `docs/coordination/syntheses/2026-05-29_double-ack-patch-correction-altf4-batch1.md`
|
||||
- `docs/coordination/inbox_codex/2026-05-29_qwen-to-codex_ACK-PATCH-correction-semantique-altf4.md`
|
||||
- `docs/coordination/inbox_codex/2026-05-29_1022_claude-to-codex_ACK-PATCH-correction-semantique-altf4-batch1.md`
|
||||
- `Statut`: promotion `observed -> candidate` appliquée sur GO Dom
|
||||
|
||||
## GO Dom
|
||||
|
||||
Dom a donné le GO le 2026-05-29 après clarification :
|
||||
|
||||
- nous sommes encore dans la théorie offline ;
|
||||
- les tests humains vont nécessairement produire des ajustements ;
|
||||
- il faut passer en `candidate` pour déclencher la boucle runtime supervisée.
|
||||
|
||||
Interprétation Codex : GO pour promouvoir le batch 1 en `candidate`, pas en `supervised` ni `stable`.
|
||||
|
||||
## Compétences promues
|
||||
|
||||
| Compétence | État avant | État après |
|
||||
|---|---|---|
|
||||
| `key_win_r_wait_explorer_exe` | `observed` | `candidate` |
|
||||
| `key_ctrl_s_wait_notepad_exe` | `observed` | `candidate` |
|
||||
| `key_alt_f4_wait_windowsterminal_exe` | `observed` | `candidate` |
|
||||
|
||||
Fichiers déplacés :
|
||||
|
||||
- `data/competences/candidate/key_win_r_wait_explorer_exe.yaml`
|
||||
- `data/competences/candidate/key_ctrl_s_wait_notepad_exe.yaml`
|
||||
- `data/competences/candidate/key_alt_f4_wait_windowsterminal_exe.yaml`
|
||||
|
||||
## Garde-fous ajoutés
|
||||
|
||||
Chaque YAML promu contient :
|
||||
|
||||
- `learning_state: candidate`
|
||||
- `promotion.history` avec le GO Dom
|
||||
- `last_updated_at: 2026-05-29T11:10:42+02:00`
|
||||
- `promotion.t2_known_gaps` explicite pour les réserves runtime
|
||||
|
||||
Gaps T2 documentés :
|
||||
|
||||
- `key_win_r_wait_explorer_exe`: faux positif possible si la boîte `Exécuter` est déjà ouverte.
|
||||
- `key_ctrl_s_wait_notepad_exe`: `Ctrl+S` ouvre `Enregistrer sous` seulement sur document Bloc-notes non enregistré.
|
||||
- `key_alt_f4_wait_windowsterminal_exe`: dialogue de confirmation Bloc-notes non couvert par le `success_marker` observed.
|
||||
|
||||
## Validation locale
|
||||
|
||||
Commandes exécutées :
|
||||
|
||||
```bash
|
||||
python3 tools/competence_validator.py \
|
||||
data/competences/candidate/key_win_r_wait_explorer_exe.yaml \
|
||||
data/competences/candidate/key_ctrl_s_wait_notepad_exe.yaml \
|
||||
data/competences/candidate/key_alt_f4_wait_windowsterminal_exe.yaml
|
||||
```
|
||||
|
||||
Résultat : OK sur les 3 YAML.
|
||||
|
||||
```bash
|
||||
python3 tools/competence_validator.py data/competences/*/*.yaml data/primitives/*.yaml
|
||||
```
|
||||
|
||||
Résultat : OK global competences + primitives.
|
||||
|
||||
```bash
|
||||
python3 -m pytest tests/unit/test_extract_competences_from_session.py tests/unit/test_competence_validator.py -q
|
||||
```
|
||||
|
||||
Résultat : exit 0.
|
||||
|
||||
## Suite
|
||||
|
||||
Ne pas promouvoir en `supervised` ou `stable` sans replay supervisé humain.
|
||||
|
||||
Prochaine étape : intégrer le chargement des YAML dans le catalogue/runtime, puis proposer une action "tester cette compétence" pour la boucle humaine.
|
||||
|
||||
@@ -0,0 +1,118 @@
|
||||
# Recadrage coordination ACK / jobs
|
||||
|
||||
- Date: 2026-05-29 10:03 Europe/Paris
|
||||
- Auteur: Codex
|
||||
- Contexte: confusion recente entre ACK de principe, ACK post-implementation, revue batch et missions suivantes.
|
||||
|
||||
## Probleme constate
|
||||
|
||||
La coordination avance, mais les messages ne sont pas toujours interpretes au bon niveau:
|
||||
|
||||
- un ACK de principe a ete confondu avec un ACK post-implementation;
|
||||
- une revue batch a ete confondue avec une reponse a une mission suivante;
|
||||
- les etats "Claude en cours" / "Qwen a repondu" ne sont pas toujours rattaches a un fichier et une reference exacts;
|
||||
- sans discipline stricte, Dom ne peut pas savoir si on attend, si on corrige, ou si on peut enchainer.
|
||||
|
||||
## Regles immediates
|
||||
|
||||
### 1. Sens des dossiers
|
||||
|
||||
- Codex vers Claude: `docs/coordination/inbox_claude/`
|
||||
- Codex vers Qwen: `docs/coordination/inbox_qwen/`
|
||||
- Claude/Qwen vers Codex: `docs/coordination/inbox_codex/`
|
||||
- Syntheses et resultats factuels: `docs/coordination/syntheses/`
|
||||
|
||||
Chaque reponse Claude/Qwen a une demande Codex doit aller dans `inbox_codex/`.
|
||||
|
||||
### 2. Reference obligatoire
|
||||
|
||||
Toute reponse doit citer le fichier source exact dans un champ `Ref` ou `Refs`.
|
||||
|
||||
Exemple:
|
||||
|
||||
```md
|
||||
- `Ref`: `inbox_qwen/2026-05-29_0955_codex-to-qwen_MISSION-protocole-validation-runtime-batch1.md`
|
||||
```
|
||||
|
||||
Sans reference explicite, Codex doit traiter le message comme information utile mais pas comme ACK bloquant leve.
|
||||
|
||||
### 3. Statuts non ambigus
|
||||
|
||||
Les statuts autorises pour une etape bloquante:
|
||||
|
||||
- `ACK`: valide la demande referencee.
|
||||
- `NO-GO`: bloque la demande referencee, avec raison.
|
||||
- `ACK avec reserves non bloquantes`: valide, mais liste les dettes.
|
||||
- `ACK avec reserve bloquante avant promotion`: valide l'etat actuel, interdit l'etape suivante nommee.
|
||||
- `EN COURS`: informe seulement, ne debloque rien.
|
||||
|
||||
Eviter les formulations seules du type "GO" sans dire GO de quoi.
|
||||
|
||||
### 4. Distinguer les niveaux d'ACK
|
||||
|
||||
On distingue strictement:
|
||||
|
||||
- `ACK intention`: valide une direction avant implementation.
|
||||
- `ACK patch`: valide le diff/code apres implementation.
|
||||
- `ACK inventaire`: valide un rapport dry-run.
|
||||
- `ACK apply`: valide que l'ecriture a eu lieu correctement.
|
||||
- `REVUE observed`: valide un YAML pour le statut `observed`.
|
||||
- `GO promotion`: autorise un changement d'etat `observed -> candidate`.
|
||||
|
||||
Un niveau ne remplace pas l'autre.
|
||||
|
||||
### 5. Lecture Codex avant action structurante
|
||||
|
||||
Avant toute action structurante, Codex doit:
|
||||
|
||||
1. lister les fichiers recents de `inbox_codex/`;
|
||||
2. ouvrir les messages qui matchent l'etape courante;
|
||||
3. citer dans sa synthese les fichiers effectivement lus;
|
||||
4. dire explicitement si un ACK est manquant ou si le double ACK est acquis.
|
||||
|
||||
### 6. Jobs distribues
|
||||
|
||||
Quand Codex distribue deux jobs:
|
||||
|
||||
- il cree un fichier separe pour Claude et un fichier separe pour Qwen;
|
||||
- chaque fichier contient une sortie attendue precise;
|
||||
- Claude/Qwen doivent repondre dans `inbox_codex/` avec un nom qui reprend le sujet;
|
||||
- Codex ne doit pas confondre une revue precedente avec la reponse au nouveau job.
|
||||
|
||||
### 7. Promotions
|
||||
|
||||
Aucune promotion `observed -> candidate` ne doit etre faite sur simple ACK de revue.
|
||||
|
||||
Il faut:
|
||||
|
||||
- revue Claude + Qwen ou justification explicite d'un seul reviewer;
|
||||
- reserves bloquantes levees;
|
||||
- GO Dom explicite;
|
||||
- validation apres deplacement.
|
||||
|
||||
## Application au cas courant batch 1
|
||||
|
||||
Etat connu:
|
||||
|
||||
- batch 1 applique en `observed`: oui;
|
||||
- revue Qwen batch 1 observed: recue;
|
||||
- revue Claude batch 1 observed: recue;
|
||||
- reserve bloquante avant promotion: `key_alt_f4_wait_windowsterminal_exe` libelles a corriger;
|
||||
- jobs distribues apres revue:
|
||||
- Claude: correction semantique Alt+F4;
|
||||
- Qwen: protocole runtime minimal.
|
||||
|
||||
Etat attendu maintenant:
|
||||
|
||||
- attendre les reponses aux deux jobs de 09:55, ou les relancer si elles n'arrivent pas;
|
||||
- ne pas traiter la revue Qwen batch 1 comme une reponse au job protocole runtime;
|
||||
- ne pas promouvoir candidate tant que la reserve Alt+F4 n'est pas corrigee et que Dom n'a pas donne GO.
|
||||
|
||||
## Engagement Codex
|
||||
|
||||
Codex appliquera ce protocole dans ses prochains tours:
|
||||
|
||||
- citation des fichiers lus;
|
||||
- distinction stricte ACK intention / patch / apply / revue / promotion;
|
||||
- pas d'enchainement sur supposition;
|
||||
- synthese courte a Dom avec l'etat exact: acquis, manque, prochain acte.
|
||||
Reference in New Issue
Block a user