Overview

Date: 2026-05-11

Time: 15:38

Overview

This is an FTL2 AI-loop rule that ensures a Linode cloud instance named "arcade" exists with a specific configuration. It follows the observe-condition-action pattern: it observes the current state of the Linode instance, checks whether it matches the desired spec, and provisions or corrects it if not. This is part of the catbeez-arcade deployment infrastructure.

Usage Patterns

This rule is not called directly — it's loaded by the FTL2 AI reconciliation loop, which evaluates it periodically. The three-part structure is the standard AI-loop rule contract:


# The reconciliation loop calls these in order:
state = await run_observations(rule.observe)
if await rule.condition(state):
    await rule.action(ftl)

API and Configuration

| Parameter | Value | Purpose |

|-----------|-------|---------|

| label | "arcade" | Linode instance name |

| type | "g6-nanode-1" | Linode plan (1 CPU, 1GB RAM, cheapest tier) |

| region | "us-east" | Datacenter location |

| image | "private/37121878" | Custom private disk image to deploy |

| state | "present" | Ensure instance exists |

| SSH wait | port 22, 300s timeout | Blocks until instance is reachable |

Key Behaviors

Relationships