What to build
Simulate a prescription map driving a sprayer/spreader with bounded actuation and auditable application records.
Acceptance criteria
- Implement rate/flow or mass calibration, speed compensation, exclusion zones, empty-tank and stuck-valve detection. Owned simulation is implemented; physical qualification remains open below.
- Require explicit implement authority, emergency shutoff and a test mode that cannot energize hardware. The simulation requires a separate scoped lease and keeps physical outputs inhibited.
- Record material, coverage, overlaps, drift/weather constraints and local operational requirements before any physical trial.
Implemented software profile
Commit bd4d8cd adds both inert-water spraying and inert-granule spreading on the actual owned ground sensor/estimator/mission/authority/watchdog runtime:
- Explicit SI prescriptions, pulse/catch and independent scale calibration, speed compensation, simple concave field/exclusion/zone polygons, exact prescribed support, inventory sufficiency and shared mission energy/endurance planning.
- A seven-channel plant retaining the four ground channels plus primary metering, independent master isolation and energy. Finite response, actual inventory/discharge, delayed quantized pulses/scale/encoders and a measured-flow ledger remain separate from model truth.
- Separate visit/configuration/material/reference leases, explicit grant and apply selections, dry defaults, weather/footprint guards, emergency/guard/authority/lease/instrument/empty/flow/closure latches. Zero-dose zones remain deliberately off.
- Calibrated independent settling tails, actual initial and final plant probes, no host observations after loss, preserved residual emission and explicit unverified double-barrier failure. New scenario faults cannot begin after an earlier terminal stop.
- Exact finite-kernel coverage, missed support, distinct-pass overlap and conserved treatable/excluded/outside/in-flight material. This is a declared uniform deposition model, not measured field dose or validated drift.
- Bounded unsigned source replay with actual mission/controller decisions, sensor counters, same-epoch truth joins and canonical shutdown/residual accounting. Private exclusive datasets retain original source, report, cells, measured ledger, independent truth and material/calibration/weather/local declarations with final hashed completion manifests.
- Native Stacks
application:plan,application:simulate,application:process,application:replay, standalone CLI and the stx/applicationevidence workspace. The existing native-contributed completed-artifact and async CLI helpers are reused.
Read application semantics and limits, ADR 22 and both implement examples.
Validation evidence
- 580 Bun tests / 54,036 assertions, 13 Python bridge tests, clean lint and app/runtime/view typechecks. Roadmap/parity checks pass while explicitly retaining incomplete upstream parity.
- The compiled CLI passes outside the checkout: all 28 metered material/scenario cases, three dry-mode gates, source processing, exact tail replay, 16 exported-file hashes, long closure, zero-dose and low-inventory premature-fault rejection/audit.
- Real browser checks cover dry defaults, explicit metered grants, numeric playback synchronization and rejection, no fresh host data in the tail, actual failed closure/positive flow, source dose cells, 320/375 pixel layouts with no horizontal overflow, and an empty error console.
- Independent Standards and Spec reviews pass after public regressions corrected inherited configuration hooks, calibrated tail duration, zero-dose handling, shutdown/truth joins and late fault injection.
- Exact-head CI passed, including Linux standalone application commands and both neutral-only Pico 2 cross-builds.
Remaining qualification
Keep this issue open for full operational and physical acceptance:
- Measured material/batch-specific catch/scale and distribution/swath calibration, response/closure limits, delivered dose/overlap and drift/weather evidence.
- Physical independent isolation, emergency/guard/lease behavior, board/transport integration and bench/HIL/vehicle campaigns.
- Actual jurisdiction, operator, material/product and local operating requirements before any physical trial. Current records explicitly remain unqualified, jurisdiction is unspecified, and physicalTrialEligible is false.
- Broader implement/vehicle deposition profiles and uncertainty informed by measured hardware/field evidence. The current profile is a ground-based uniform finite-kernel model.
Blocked by
- #10 Mission engine: run and resume an owned waypoint mission
- #11 Navigation: avoid an obstacle and land at a selected site
- #8 Hardware adapters: command and verify the first camera or payload
- #13 Ground vehicles: execute a rover logistics or mowing route
Scope and evidence
The owned inert-material simulation is implemented. Physical implement, field and operational qualification remain open. Preserve explicit operator authority and report simulator, bench, HIL and vehicle evidence separately. The owned implementation must remain replaceable behind the shared driver and mission contracts.