{"wiki":{"id":2646,"slug":"sh-s1","entity_type":"droid","entity_id":"sh-s1","title":"Shipper","prose_md":"## About\n\nShipper protects [[agt_015]]’s code by committing and pushing local changes to its remote repository every hour. This keeps backups current and makes restoration easier.\n\nEach run checks for changes, exports induction documents, rejects Python files with syntax errors, creates a timestamped commit, and pushes outstanding commits. It reports failures through [[governance]], but never pulls, merges, resolves conflicts, or repairs complex push problems.\n\nShipper has a unique name, although it belongs to the reusable worker family: 30 worker droids run across several agents. It is pure software and makes no Claude calls.","namesake_json":"{\"engine\": \"software\", \"model\": null, \"claude_purpose\": null, \"family\": \"worker\", \"family_size\": 30, \"is_unique\": true}","profile_pic_path":"","source_hash":"8966f5fd5223b0a780858c6a70efbc09818192c7489bd2eccc60e44a7350f808","status":"active","last_generated_at":"2026-08-04 01:38:25","created_at":"2026-08-01 14:35:30","updated_at":"2026-08-04 01:38:25"},"facts":{"id":"sh-s1","name":"Shipper","machine_name":"SH-S1","owner":"agt_015","function":"Pushes unpushed commits to GitHub","process_type":"scheduled","schedule":"Hourly","process_name":"shipper","avatar_color":"#22c55e","created_for":"Hagrid keeps Carol's data and code safe through daily backups. A critical part of this is ensuring the running codebase is always pushed to GitHub as a secondary copy — so if the local environment fails, the code can be recovered.","purpose":"Shipper helps Hagrid by automatically committing and pushing every code change to GitHub each hour. This way, no local changes get lost, and the codebase is always current on the remote — making backups more complete and easier to restore.","duties":"- Checks for uncommitted file changes every hour\n- Automatically commits them with a timestamped message\n- Exports and commits induction documents before pushing\n- Pushes all commits to the GitHub remote\n- Reports push failures to the governance system","constraints":"- Only pushes; does not pull or merge\n- Rejects commits if Python files have syntax errors\n- Requires working network and GitHub authentication\n- Does not resolve merge conflicts or complex push failures","status":"running","gender":"female","archetype":"worker","building_block":"backup_off_site","service_override":null,"enabled":1,"task_key":"backup.git_ship","model_free":0},"page":{"type":"droid","page_class":"main","class_label":"Main page","kind_label":"Droid","kind_gloss":"","listed":true}}