Overview

Date: 2026-05-11

Time: 15:36

Overview

This is an FTL2 AI-loop rule that ensures the catbeez-arcade Python wheel and associated game files (HTML, JS, WASM) are uploaded and installed in a Python 3.13 uv-managed virtualenv on the arcade host. It follows the observe/condition/action pattern used by FTL2's reconciliation loop.

Usage Patterns

This rule is not called directly — it's picked up by the FTL2 AI reconciliation loop. The loop evaluates observe to gather state, runs condition() to decide if action is needed, then calls action() if the condition is true.

The rule targets a single host "arcade" and uses three module types via ftl["arcade"]:


await ftl["arcade"].shell(cmd="...")    # Run shell commands
await ftl["arcade"].copy(src=..., dest=..., owner=..., group=...)  # Upload files
await ftl["arcade"].file(path=..., state="directory", owner=..., group=...)  # Ensure directory exists

API and Configuration

Key Behaviors

Relationships