{"wiki":{"id":1056,"slug":"fm-s1","entity_type":"droid","entity_id":"fm-s1","title":"Foreman","prose_md":"## About\n\nForeman keeps the pipeline healthy by watching for dead or unresponsive background processes. When a task’s process hangs or stops progressing within its timeout window, Foreman marks it as failed and immediately notifies [[agt_001]] so he can diagnose and trigger recovery. This lets [[agt_020]] focus on strategic decisions instead of combing through process logs himself.\n\nEvery two minutes, Foreman checks every running pipeline task, relying on live process signals and database state rather than any AI reasoning. It also scans for orphaned tasks left over from a restart, ensuring nothing slips through the cracks. All findings are logged into the [[activity-tracker]], and problems are routed to [[agt_001]] without directly alerting leadership—first-level triage stays with engineering.\n\nForeman is one of 14 watcher droids used across several agents, including [[agt_001]], [[agt_010]], [[agt_011]], [[agt_015]], [[agt_016]], [[agt_023]], and [[agt_025]]. It belongs to the standard watcher family, so it’s not a one-off. Although the registry notes it does not use AI, the system detection flag indicates it calls Claude (model unspecified)—likely for alert communication, though the exact purpose remains unconfirmed.","namesake_json":"{\"engine\": \"claude\", \"model\": null, \"claude_purpose\": \"unconfirmed (registry constraints state no AI)\", \"family\": \"watcher\", \"family_size\": 14, \"is_unique\": false}","profile_pic_path":"avatars/droid/fm-s1.png","source_hash":"071bbc3429e258418d722c018e4988e3a0d5db4cdffb9185fe5dace1eb40b72c","status":"active","last_generated_at":"2026-07-27 03:32:59","created_at":"2026-07-27 03:32:40","updated_at":"2026-08-08 03:26:29"},"facts":{"id":"fm-s1","name":"Foreman","machine_name":"FM-S1","owner":"agt_020","function":"Pipeline supervisor — detects dead processes, triggers recovery","process_type":"scheduled","schedule":"Continuous","process_name":"foreman","avatar_color":"#06b6d4","created_for":"Merlin must keep the build pipeline running smoothly and react to problems quickly. FM-S1 specifically watches continuously for processes that have stopped working or gotten stuck.","purpose":"FM-S1 automatically detects when pipeline tasks stop working — when their background processes die or hang. When found, FM-S1 marks the task as failed and alerts Albus (the systems engineer) for recovery. This prevents problems from hiding and lets Merlin focus on deciding how to replan rather than manually hunting for broken processes.","duties":"- Every 2 minutes, checks whether all running pipeline tasks still have live, responsive processes\n- Marks a task as failed if its process is dead or hasn't progressed within that droid type's timeout window\n- On service startup, scans for tasks left orphaned from the previous restart\n- Logs all findings to the activity record","constraints":"- Only watches pipeline execution tasks — does not monitor background services like metrics collection or cost tracking\n- Does not directly alert leadership; routes problems to Albus first so he can diagnose and decide the next step\n- Does not make decisions about replanning a failed task or what recovery should look like\n- Does not use Claude or any AI; relies only on system process checks and the database","status":"retired","gender":"female","archetype":"watcher","building_block":"monitor","service_override":null,"enabled":0,"task_key":null,"model_free":0},"page":{"type":"droid","page_class":"main","class_label":"Main page","kind_label":"Droid","kind_gloss":"","listed":true}}