{"id":"catbeez-publish-games-requires-existing-state-file","text":"The publish-games script reads an existing state file to extract host connection info — the state file must already exist from a prior provisioning run.","truth_value":"IN","source":"entries/2026/05/11/deployments-catbeez-publish-games.md","source_url":"","source_hash":"","justifications":[],"dependents":[],"metadata":{"example":"# From catbeez-arcade/publish-games.py — reads host IP from prior deploy state\nasync with automation(state_file=cfg[\"state_file\"]) as ftl:\n    with open(cfg[\"state_file\"]) as f:\n        state = json.load(f)\n    host_info = state[\"hosts\"][cfg[\"hostname\"]]\n    ftl.add_host(hostname=cfg[\"hostname\"], ansible_host=host_info[\"ansible_host\"],\n                 ansible_user=\"admin\", ansible_become=True)"},"explanation":{"steps":[{"node":"catbeez-publish-games-requires-existing-state-file","truth_value":"IN","reason":"premise"}]}}