feat(competences): extract batch candidates
This commit is contained in:
149
data/competences/observed/open_application_via_run.yaml
Normal file
149
data/competences/observed/open_application_via_run.yaml
Normal 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"
|
||||
118
data/competences/observed/saisir_requete_recherche.yaml
Normal file
118
data/competences/observed/saisir_requete_recherche.yaml
Normal 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"
|
||||
118
data/competences/observed/scroll_down_pdf_edge.yaml
Normal file
118
data/competences/observed/scroll_down_pdf_edge.yaml
Normal 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"
|
||||
Reference in New Issue
Block a user