feat(competences): extract batch candidates

This commit is contained in:
Dom
2026-05-29 11:25:00 +02:00
parent 4ba426c205
commit e8a0fb0e42
60 changed files with 18176 additions and 0 deletions

View File

@@ -0,0 +1,149 @@
schema_version: 1
id: open_application_via_run
name: Ouvrir une application via Executer
version: 1
learning_state: observed
intent:
fr: ouvrir une application Windows via la boite Executer
parameters:
app_name: notepad
expected_process_name: Notepad.exe
preconditions:
- id: windows_session_active
kind: heartbeat_present
max_age_ms: 3000
- id: no_blocking_system_dialog
kind: not_window_title_matches
pattern: "^(UAC|Windows Security|SmartScreen).*"
methods_execution: sequence
methods:
- id: step_1_open_run_dialog
kind: key_combo
primitive_ref: key_combo
parameters:
keys: ["win", "r"]
keys: ["win", "r"]
observed: true
trace_source: live_events.jsonl
trace_event_indices: [3]
description: "Ouvre la boite Executer avec Win+R"
- id: step_2_type_app_name
kind: text_input
primitive_ref: text_input_focused
parameters:
text: "notepad"
concat_rule: concat_in_order
observed: true
trace_source: live_events.jsonl
trace_event_indices: [6, 7, 9, 10, 11]
concat_rule: "join(text_input fragments in segment)"
reconstructed_text: "notepad"
description: "Saisit le nom de l'application dans la boite Executer"
- id: step_3_validate_with_enter
kind: key_combo
primitive_ref: key_combo
parameters:
keys: ["enter"]
keys: ["enter"]
observed: false
allowed_runtime_substitution: true
note: "Trace humaine #13 = mouse_click sur OK. Runtime = key_combo([enter]) equivalent semantique."
description: "Valide la boite Executer au runtime"
success_marker:
mode: any_of
timeout_ms: 5000
markers:
- kind: active_process_name_is
value: Notepad.exe
supervised_requires:
- kind: active_process_name_is
value: Notepad.exe
evidence_state: observed_offline
required_for: replay_verified
failure_message_template:
intention: ouvrir l'application demandee via la boite Executer
attendu: voir la fenetre principale de l'application attendue au premier plan
vu: "{observed_human_state}"
demande: confirmer que l'application est installee sur ce poste, ou m'indiquer un autre moyen de l'ouvrir
chain_refs:
source_session: sess_20260324T165824_55b380
machine_id: DESKTOP-58D5CAC_windows
streaming_session_path: data/training/live_sessions/streaming_sessions/sess_20260324T165824_55b380.json
live_events_path: data/training/live_sessions/DESKTOP-58D5CAC_windows/sess_20260324T165824_55b380/live_events.jsonl
cleaned_segment:
status: documented_offline
keep_event_indices: [3, 4, 6, 7, 9, 10, 11, 16]
method_event_indices: [3, 6, 7, 9, 10, 11]
success_event_indices: [16]
excluded_event_indices: [5, 8, 12, 13, 14, 15]
stop_before_event_index: 17
stop_before:
- heartbeat_post_notepad_focus
- later_session_activity
ignored_between_method_and_success:
- action_result_open_run_dialog
- heartbeat_without_window_metadata
- human_mouse_click_ok_replaced_by_enter_runtime
- program_manager_transit_focus
- generic_action_result
notes:
- "Event #3 ouvre la boite Executer via Win+R."
- "Events #6/#7/#9/#10/#11 reconstruisent exactement 'notepad'."
- "Event #13 est un mouse_click humain sur OK sans anchor_ref; il est exclu de la methode runtime."
- "Au runtime, key_combo([enter]) remplace le mouse_click humain pour valider la boite Executer."
- "Event #16 prouve le succes par focus_change vers Notepad.exe."
workflow_pipeline_id: null
graph_node_id: null
faiss_state_signatures: []
target_memory_keys: []
dashboard_knowledge_visible: false
promotion:
candidate_requires:
- cleaned_segment_validated
- method_trace_present
- success_marker_defined
- failure_message_template_valid
- primitive_ref_satisfied
- methods_sequence_valid
supervised_requires:
- replay_verified_once
- success_marker_matched_after_action
- human_validation
stable_requires:
min_successes: 3
distinct_contexts: 3
max_unexplained_failures: 0
t2_known_gaps:
- id: enter_action_not_in_trace
description: "Le mouse_click #13 valide la boite Executer; aucun key_combo([enter]) n'est dans la trace."
impact: "Au runtime, Lea emet key_combo([enter]) sans preuve directe dans cette trace humaine."
proposed_resolution: "Au replay supervise, utiliser active_process_name_is=Notepad.exe comme preuve de validation."
acted_by: Dom
acted_at: "2026-05-28T12:45:00+02:00"
- id: mouse_click_replaced_by_keyboard_at_runtime
description: "La methode runtime diverge de la trace humaine: mouse_click remplace par key_combo([enter])."
impact: "La validation T2 doit confirmer que key_combo([enter]) est equivalent fonctionnel dans la boite Executer."
proposed_resolution: "Verifier au replay supervise sur plusieurs applications Windows simples."
acted_by: Dom
acted_at: "2026-05-28T12:45:00+02:00"
generalisation:
seen_contexts: []
method_success_rate: {}
variance_log: []
failure_log: []
created_at: "2026-05-28T12:45:00+02:00"
last_updated_at: "2026-05-28T12:45:00+02:00"

View File

@@ -0,0 +1,118 @@
schema_version: 1
id: saisir_requete_recherche
name: Saisir une requete dans la recherche Windows
version: 1
learning_state: observed
intent:
fr: saisir du texte dans le champ de recherche Windows
parameters:
query_text: "test lea apprentissage"
preconditions:
- id: open_windows_search_satisfied
kind: competence_required
competence: open_windows_search
state: observed
- id: search_field_active
kind: active_window
any_of:
- title_in: ["Rechercher", "Search"]
- process_active: SearchHost.exe
methods:
- id: text_input_concat
kind: text_input
primitive_ref: text_input_focused
parameters:
text: "test lea apprentissage"
concat_rule: concat_in_order
description: "Saisie texte par fragments dans le champ Rechercher"
observed: true
trace_source: live_events.jsonl
# Les text_input atomises sont concatenes pour former le texte complet
concat_rule: "join(all text_input events in segment)"
reconstructed_text: "test lea apprentissage"
# Note: event #12 "pprentissage" n'est PAS un mot complet
# Il complete event #10 "a" pour former "apprentissage"
success_marker:
mode: all_of
timeout_ms: 5000
markers:
- kind: active_window_title_in
values: ["Rechercher", "Search"]
- kind: active_process_name_is
value: SearchHost.exe
- kind: text_input_reconstructed_equals
value: "test lea apprentissage"
evidence_source: trace_text_input_concat
supervised_requires:
- kind: ocr_contains
text: "test lea apprentissage"
region_hint: search_field
evidence_state: hypothesis_offline
required_for: supervised_or_replay_verified
failure_message_template:
intention: saisir du texte dans la recherche Windows
attendu: voir le texte saisi apparaitre dans le champ Rechercher
vu: "{observed_human_state}"
demande: saisir le texte attendu dans le champ Rechercher puis me rendre la main
chain_refs:
source_session: sess_20260527T185155_98ad9a
machine_id: DESKTOP-58D5CAC_windows
streaming_session_path: data/training/live_sessions/streaming_sessions/sess_20260527T185155_98ad9a.json
live_events_path: data/training/live_sessions/DESKTOP-58D5CAC_windows/sess_20260527T185155_98ad9a/live_events.jsonl
cleaned_segment:
status: documented_offline
keep_event_indices: [5, 6, 7, 8, 9, 10, 11, 12, 13]
method_event_indices: [5, 6, 8, 9, 10, 12]
success_event_indices: [7, 11, 13]
excluded_event_indices: []
stop_before_event_index: 14
stop_before:
- mouse_click_systray
- explorer_overflow_window
- pythonw_unknown_focus
ignored_after_success: []
notes:
- "Events #5/#6 sont exclus du P0 (open_windows_search) car ils appartiennent a la saisie P1 apres Win+S."
- "P1 commence a #5, la premiere saisie apres l'ouverture de la recherche"
- "Event #7 heartbeat post-action P0, confirme que SearchHost.exe est actif pendant la saisie"
- "Event #12 'pprentissage' complete #10 'a' pour former 'apprentissage'"
- "Texte reconstruit: 'test lea apprentissage' (22 chars)"
workflow_pipeline_id: null
graph_node_id: null
faiss_state_signatures: []
target_memory_keys: []
dashboard_knowledge_visible: false
promotion:
candidate_requires:
- cleaned_segment_validated
- method_trace_present
- success_marker_defined
- failure_message_template_valid
- competence_dependency_satisfied
supervised_requires:
- replay_verified_once
- success_marker_matched_after_action
- ocr_or_replay_verified_text
- human_validation
stable_requires:
min_successes: 3
distinct_contexts: 3
max_unexplained_failures: 0
generalisation:
seen_contexts: []
method_success_rate: {}
variance_log: []
failure_log: []
created_at: "2026-05-27T18:51:55+02:00"
last_updated_at: "2026-05-28T08:13:52+02:00"

View File

@@ -0,0 +1,118 @@
schema_version: 1
id: scroll_down_pdf_edge
name: Scroller vers le bas dans un PDF Edge
version: 1
learning_state: observed
intent:
fr: faire defiler un document PDF vers le bas dans Microsoft Edge
parameters: {}
preconditions:
- id: edge_pdf_active
kind: active_window
any_of:
- process_active: msedge.exe
methods:
- id: scroll_down_mouse
kind: scroll
primitive_ref: scroll_view
parameters:
direction: down
amount: 9
unit: lines
description: "Scroll vers le bas via molette souris dans un PDF Edge"
observed: true
trace_source: live_events.jsonl
trace_event_indices: [129, 130, 131, 133, 134, 135, 137, 138, 139]
success_marker:
mode: all_of
timeout_ms: 5000
markers:
- kind: active_process_name_is
value: msedge.exe
supervised_requires:
- kind: ocr_contains
text: "contenu different apres scroll"
region_hint: document_body
evidence_state: hypothesis_offline
required_for: supervised_or_replay_verified
failure_message_template:
intention: faire defiler le PDF vers le bas
attendu: le contenu visible doit changer apres le defilement
vu: "{observed_human_state}"
demande: indiquer si le document PDF actif peut defiler vers le bas
chain_refs:
source_session: sess_20260318T010719_62a058
machine_id: DESKTOP-58D5CAC_windows
streaming_session_path: data/training/live_sessions/streaming_sessions/sess_20260318T010719_62a058.json
live_events_path: data/training/live_sessions/DESKTOP-58D5CAC_windows/sess_20260318T010719_62a058/live_events.jsonl
cleaned_segment:
status: documented_offline
keep_event_indices: [126, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140]
method_event_indices: [129, 130, 131, 133, 134, 135, 137, 138, 139]
success_event_indices: [140]
excluded_event_indices: [127, 128]
stop_before_event_index: 141
stop_before:
- subsequent_scroll_bursts
- heartbeat_without_window_metadata_later_in_session
ignored_between_method_and_success: []
notes:
- "Event #126 focus vers msedge.exe avec le PDF RapportS1 actif."
- "Events #129/#130/#131/#133/#134/#135/#137/#138/#139 sont des mouse_scroll dans msedge.exe."
- "Tous les events de methode ont delta [0, -1], ce qui prouve direction=down pour cette trace."
- "Events #132 et #136 sont des heartbeats sans metadonnees fenetre au milieu du burst."
- "Events #127/#128 sont un clic de positionnement et son action_result avant le burst scroll; ils sont exclus."
- "Event #140 est le premier mouse_scroll post-methode avec msedge.exe encore actif; il prouve la continuite active, pas le changement de contenu."
workflow_pipeline_id: null
graph_node_id: null
faiss_state_signatures: []
target_memory_keys: []
dashboard_knowledge_visible: false
promotion:
candidate_requires:
- cleaned_segment_validated
- method_trace_present
- success_marker_defined
- failure_message_template_valid
- primitive_ref_satisfied
- scroll_trace_validated
supervised_requires:
- replay_verified_once
- success_marker_matched_after_action
- ocr_or_replay_verified_scroll_effect
- human_validation
stable_requires:
min_successes: 3
distinct_contexts: 3
max_unexplained_failures: 0
t2_known_gaps:
- id: scroll_effect_not_observed_offline
description: "La trace prouve les mouse_scroll et la fenetre active, mais pas le changement visuel du contenu PDF."
impact: "Le niveau T2 doit verifier que le viewport ou le texte visible change apres le scroll."
proposed_resolution: "Ajouter OCR runtime, screenshot diff ou marker visuel avant promotion supervised."
acted_by: Dom
acted_at: "2026-05-28T14:20:00+02:00"
- id: no_ocr_offline
description: "Aucune preuve OCR avant/apres scroll n'est disponible dans cette validation offline."
impact: "Le success_marker offline reste une preuve de continuite active, pas une preuve de contenu different."
proposed_resolution: "Verifier par OCR ou replay supervise avant promotion supervised."
acted_by: Dom
acted_at: "2026-05-28T14:20:00+02:00"
generalisation:
seen_contexts: []
method_success_rate: {}
variance_log: []
failure_log: []
created_at: "2026-05-28T14:20:00+02:00"
last_updated_at: "2026-05-28T14:20:00+02:00"