01 AutoFarm Architecture Overview
This document defines the current documented architecture boundary for AutoFarm.
The active repository scope is a simulator and zone-data workflow, not a field deployment stack.
Decision Summary
The repository currently centers on four connected parts:
- public-data bootstrap for provisional zone state,
- simulator state and execution flow,
- planning and scoring over zone-level state,
- persistence and evaluation around simulator runs.
Current Repo Truth
As of the current repository state:
zone_state_bootstrapis the active processed dataset used to seed simulator state,- the bootstrap is built from public soil, weather, and elevation sources,
- the simulator provides an interactive Streamlit interface plus programmatic evaluation hooks,
- snapshots and event history are persisted for interactive sessions,
- the repository does not document field-deployment behavior or treatment execution.
System Context
flowchart LR
subgraph Inputs
Boundary["Field Boundary / Scenario Setup"]
PublicData["Public Soil / Weather / Elevation Data"]
Operator["Operator Input"]
end
subgraph Core
Bootstrap["Zone-State Bootstrap"]
State["Simulator State"]
Score["Scoring / Planning"]
Execute["Step Execution"]
Persist["Session Persistence"]
end
subgraph Outputs
UI["Streamlit Simulator"]
Reports["Evaluation / Run Artifacts"]
end
Boundary --> Bootstrap
PublicData --> Bootstrap
Bootstrap --> State
Operator --> Score
State --> Score
Score --> Execute
Execute --> State
Execute --> Persist
State --> UI
Persist --> UI
Persist --> Reports
Design Rules
- zone data should enter the simulator through explicit processed artifacts,
- planning should operate on zone-level state instead of ad hoc UI state,
- execution should advance in discrete steps so state transitions remain easy to inspect,
- persistence should preserve enough context to resume or audit a session,
- documentation should describe only the currently supported simulator and data-bootstrap surface.
Primary Source Files
scripts/build_zone_state_bootstrap.pyscripts/run_public_data_pipeline.pyautofarm/adapters/zone_state.pyautofarm/planning/scoring.pyautofarm/planning/policy.pyautofarm/sim/engine.pyautofarm/sim/session_persistence.pyapps/simulator.py