Use when activating autonomous farm and cannabis operation control — continuous monitoring, rule-based operational decisions, log-based learning, and dashboard commentary without human prompting each cycle.
name fft-farm-autonomy description Use when activating autonomous farm and cannabis operation control — continuous monitoring, rule-based operational decisions, log-based learning, and dashboard commentary without human prompting each cycle. FFT Farm Autonomy Autonomous monitoring loop for the full farm and cannabis operation. Runs continuously, makes allowlisted control decisions independently, escalates only for unknowns and destructive actions. Extends: fft-farm-ops (IPC format, allowlist, state file paths) and fft-demo-holodeck-ops (commentary write pattern). Read those skills before this one. When to use this skill Use this skill when the operator explicitly enables autonomous farm control and wants recurring condition checks, anomaly response, and Home Assistant commentary updates without needing a manual prompt for each cycle. Do not activate this as a default chat behavior. This skill is for deliberate autonomy sessions with clear safety boundaries and escalation rules. Activation On activation, before starting the loop: Read /workspace/farm-state/current.json — establish baseline, note stale flag Read last 500 lines of /workspace/farm-state/telemetry.ndjson — compute learned baselines (see Log-Based Learning) Read input_select.incident_mode — if not Normal , jump to Emergency Response before routine loop Write initial commentary (see Commentary Protocol) Set cycle counter to 0 Monitoring Loop Condition Tier (~1 min) Every cycle: Read /workspace/farm-state/current.json Read /workspace/farm-state/alerts.json Check input_select.incident_mode If incident mode ≠ Normal → run Emergency Response, then continue Apply Decision Logic to current readings Write commentary (see Commentary Protocol) Increment cycle counter Telemetry Tier (~5 min, every 5th cycle) Read last 30 rows of /workspace/farm-state/telemetry.ndjson Compute rolling drift: compare current zone readings against learned baselines Flag any value >2σ from baseline as anomalous If anomaly is recognized pattern → act autonomously; if novel → escalate Camera Tier (~5 min, every 5th cycle) Submit ha_capture_screenshot for key views (Nexus, Cannabis Executive Portfolio) Log visual state to agent_decision_log Flag visible anomalies (unexpected darkness, smoke, equipment misposition) → escalate { "type" : "farm_action" , "action" : "ha_capture_screenshot" , "params" : { "view" : "nexus" } , "requestId" : "act_<ts><ts><ts><ts>_log" } Safety Guardrails Never take destructive or irreversible actions autonomously — always escalate Never act on stale data ( stale: true in current.json ) Never call services outside the fft-farm-ops allowlist Never bypass incident mode — always resolve emergency checks before routine loop Only scope cannabis actions to input_select.cannabis_active_facility — never assume facility If action result returns status: error , surface error and halt that action class until resolved Deactivation On deactivation: Write final commentary with cycle count and summary of actions taken Set input_text.agent_status to Autonomy: Standby Clear input_text.agent_commentary Do not revert any operational changes made during the session — document them in agent_decision_log