irrigationSchedule shapes · initial ASI presets · rollback triggers · cross-room risk synthesis · staged rollout sequencing across all 11 rooms · plan-only (no fields will be written until Cian approves)irrigationControllers: [] in spa_get_room_config. AUTOMAIT cannot fire on any room until an AUTOMAIT-capable controller (Growlink, Modbus, or AROYA-supported integration) is provisioned and linked. Sensor coverage is otherwise complete: every flower room has 4 ter15 substrate probes (one per zone), 1 h421/ee894 climate stack, plus a DRIP-calibrated ter15 and a DRAIN-calibrated ter15. The cultivation telemetry side is ready; the actuation side is not. Until a controller is wired, the readiness floor for the facility is NEEDS-WORK for every room.
AUTOMAIT is a closed-loop crop-steering engine. To run safely it needs four things per room: (a) actuation — a wired controller endpoint AROYA can push setpoints to; (b) sensing — substrate VWC + EC + drip + drain telemetry of trustworthy quality and uptime; (c) configuration — a recipe linked to the HG plus an irrigationSchedule defining P0–P3 windows, shot sizing, drain triggers, and guardrails; (d) intent — a documented steering goal (generative vs vegetative, target dryback, EC stack trajectory) so the controller knows what success looks like.
| Tier | Definition | Implication |
|---|---|---|
| READY | Sensors online + controller wired + measured FC + recipe linked + intent documented | Can flip AUTOMAIT this cycle with a shadow-run gate |
| PARTIAL | Sensors + controller wired but missing recipe assignment or documented intent | 1–2 prerequisite items needed before bring-up |
| NEEDS-WORK | Missing controller OR missing substrate sensors OR room empty between cycles | Multi-week prerequisite work — controller procurement / sensor reliability fix / cycle wait |
| OUT-OF-SCOPE | Veg/prop/dry/cure rooms not in the flower automation scope | Defer to a later wave or skip |
lightsBuffer_P0_min sets the delay; additionalDrybackTarget_pp adds extra dryback before first shot. Deeper for generative phases.shotPct_of_FC, shotIntervalMin, and drainTrigger control sizing/cadence/termination.vwcMaintenanceFloor_pct sets the top-up trigger.lightsBuffer_P3_min sets pre-lights-off hold; targetDryback_absPp is the overnight dryback target; minVwc_safetyFloor_pct is the hard stop.Every room's spa_get_room_config was pulled sequentially (SPA config is not parallel-safe per feedback_spa-config-not-parallel-safe.md). Cells reading "no" or "—" reflect actual API state, not gaps in pulling. Field-capacity values are the measured 14-day peak VWC from the baseline audit; no fieldCapacity ceiling is currently configured at the room level anywhere on the facility.
| Room | Room ID | Active HG | Substrate VWC sensors | Controller wired | Recipe linked | Measured FC | Intent documented | Tier | Missing items |
|---|---|---|---|---|---|---|---|---|---|
| Room 1 (21 LED) | 18740 | 155042 Mid Flower | 2/2 zones (ter15) | No | No | 69.2% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent |
| Room 2 (99 LED) · COCO 1.5gal | 18741 | 155044 Mid Flower entry | 4/4 zones (ter15) | No | No | 74.6% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent, P1 shot regime fix |
| Room 3 (42 LED) | 18742 | 153819 Ripening | 4/4 zones (ter15) | No | No | 64.2% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent, climate fix |
| Room 4 (16 lights) | 18743 | — | 2/2 zones | No | n/a | — | No | NEEDS-WORK | Controller, no active HG (Cycle N+2) |
| Room 5 (24 lights) · COCO 1.5gal | 18757 | 155043 Mid Flower | 2/2 zones (ter15) | No | No | 75.6% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent, emitter walkdown for channeling |
| Room 6 (75 lights) | 18758 | — | 4/4 zones | No | n/a | — | No | NEEDS-WORK | Controller, no active HG, 2 silent h421 climate sensors (per mesh audit) |
| veg room | 18759 | — | 4/4 zones | No | n/a | — | No | OUT-OF-SCOPE | Veg-phase — defer until flower automation proven |
| Room 8 (49 lights) | 18760 | — | 4/4 zones | No | n/a | — | No | NEEDS-WORK | Controller, no active HG (Cycle N+2) |
| Room 9 (27 lights) · BENCHMARK | 18761 | 153820 Ripening | 4/4 zones (ter15) | No | No | 70.9% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent (but otherwise the cleanest room — first AUTOMAIT bring-up) |
| Room 10 (27 lights) | 18762 | 153822 Ripening | 4/4 zones (ter15) | No | No | 63.8% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent, ripening-intent decision |
| Room 11 (31 lights) | 18763 | 153824 Ripening | 4/4 zones (ter15)* | No | No | 70.7% | No | NEEDS-WORK | Controller, recipe, FC ceiling, intent, CO₂ supplementation fix; * SPA bridge detached during R11 pull — re-verify device count |
Hardware coverage column reads "4/4 zones" or "2/2 zones" — every active flower room has one ter15 substrate probe per defined zone, plus a DRIP-calibrated and DRAIN-calibrated ter15 (drip/drain instrumentation is per-room, single emitter position). Drip volume data isn't exposed via public_api for this facility — count_irrigation_events returns 0 for every room (known SDK gap). Shot counts in §5 are inferred from VWC step-up signatures in the baseline audit.
For each active flower room, "current strategy" is reconstructed from analyze_drip_drain (14-day window 2026-06-10 → 2026-06-24), the baseline audit's VWC/EC numbers, and the drip/drain calibration positions. Shot counts are derived from VWC step-up signatures because drip_volume events aren't exposed via public_api on this facility. AUTOMAIT-mismatch flags are the operational gaps that must be closed before each room's irrigation regime maps cleanly to a closed-loop schedule.
dfi:zone:76390 returned vs 311h of climate metrics → drip flow meter offline ~8 of 14 days. Daily drip peak (when active) ≈ 369 mL, daily drain peak ≈ 14 mL — drain ratio ~3.7% at the metered position (essentially no drain when measured). Functional shot count from VWC 30.2 pp swing: ~6–8 medium shots/day, appropriate for ripening. EC stack: drip 6.0 → mean pore EC 4.7 (zones 3.28–7.43, spread suggests uneven feed) → drain 1.77 (room-aggregate -4.23 mS leach). Steering intent inferred: vegetatively-leaning despite ripening phase (high feed, big leach). Wrong-direction for finishing — ripening wants substrate EC restacked 6.0–8.0 and longer P3 drydown. AUTOMAIT mismatch: (a) drip flow meter must be brought back online; (b) cultivator must reduce shot frequency and tighten P1 termination; (c) only 1 of 4 zones has drip/drain instrumentation; (d) cold-canopy climate (VPD 0.99, soil 70.7°F per baseline) limits transpiration — irrigation isn't the rate-limiter, climate is.pore_ec_drip:zone:room_18763 = 3.64 mean, drain EC 1.79 = -1.85 leach. Functional shot count from VWC 30 pp swing: ~6–8 shots/day, ripening-appropriate. EC stack: drip 3.64 → mean pore EC 5.07 (across 4 zones 2.81–7.98 — again 5.2 mS spread, uneven feed) → drain 1.79. Substrate holding +1.43 mS above drip — modest stack, lower than R9 benchmark but directionally correct for ripening. Steering intent inferred: generative-leaning ripening, executing reasonably. AUTOMAIT mismatch: (a) drip flow meter must be repaired before AUTOMAIT enable — current drip volume = 0 mL is a hardware failure not an irrigation choice; (b) zone-to-zone pore EC spread (2.81–7.98) indicates per-zone feed delivery is uneven — AUTOMAIT cannot compensate for upstream emitter inconsistency; (c) CO₂ 996 ppm is starving photosynthesis (per baseline) — irrigation isn't the rate-limiter, CO₂ is.For every active flower room: assumed steering goal (to verify with head grower), a proposed irrigationSchedule JSON shape anchored on the room's measured field capacity, an initial ASI preset, a rollback trigger, and per-room risks. All VWC numbers use minVwc = FC × (1 − target_prop_dryback). Substrate-aware: COCO bag rooms cap target dryback below 30 pp (Cal/Mg lockout risk because coco CEC binds divalent cations preferentially as the bag dries). ASI direction verified: all presets pick GEN 3–5 (neutral to mildly generative); no recommendation steps toward GEN 6+ (which would be vegetative).
Hold the existing clean ripening signature (36.3 pp dryback, +1.81 mS substrate stack, drain releasing salt cleanly). Default recommendation: do NOT enable AUTOMAIT mid-cohort on R9 — finish the current cycle manually, then bring AUTOMAIT up on Day 1 of the next flip when the substrate is fresh. If cultivator wants to enable now anyway, the schedule below mirrors current behavior. To verify with head grower before implementation.
irrigationScheduleFC 70.9%, target 36 pp absolute dryback → safety floor 32% VWC (1 pp below current trough 34.6%).
{
"phaseType": "FLOWER",
"phaseName": "Late Ripening - Benchmark mirror",
"p0": {
"lightsBuffer_P0_min": 180,
"additionalDrybackTarget_pp": 4
},
"p1": {
"shotPct_of_FC": 2.5,
"shotIntervalMin": 45,
"drainTrigger": "first_drain"
},
"p2": {
"enabled": false,
"shotPct_of_FC": 0,
"vwcMaintenanceFloor_pct": 0
},
"p3": {
"lightsBuffer_P3_min": 240,
"targetDryback_absPp": 36,
"minVwc_safetyFloor_pct": 32.0
},
"guardrails": {
"soil_moist_target_max_pct": 72.0,
"maxEcpw_mS": 8.5,
"drainGoal_pctOfDrip": 10.0
}
}
GEN 4 — only if cultivator forces an in-cycle enable. The room is performing at target; neutral-to-slightly-generative preserves the existing shape. Default remains: leave manual through July-13 harvest, then bring AUTOMAIT up on Day 1 of Cycle N+1.
If VWC trough drops below 30% (root viability floor) OR substrate EC climbs above 9.5 mS within 24h of enabling AUTOMAIT, revert to manual recipe (set HG irrigationSchedule: null) and notify head grower.
Continue the existing generative bias visible in the 35.9 pp dryback signature but moderate it as the room transitions from Mid Flower into Bulking over the next 14 days — target 18–22 pp dryback to protect bulking turgor. To verify with head grower before implementation.
irrigationScheduleFC 69.2%, target 20 pp absolute dryback → minVwc floor 49.2% (currently overshooting at 33.3% trough).
{
"phaseType": "FLOWER",
"phaseName": "Mid Flower - Bulking transition",
"p0": {
"lightsBuffer_P0_min": 90,
"additionalDrybackTarget_pp": 3
},
"p1": {
"shotPct_of_FC": 2.0,
"shotIntervalMin": 30,
"drainTrigger": "first_drain"
},
"p2": {
"enabled": true,
"shotPct_of_FC": 1.5,
"vwcMaintenanceFloor_pct": 55.0
},
"p3": {
"lightsBuffer_P3_min": 180,
"targetDryback_absPp": 20,
"minVwc_safetyFloor_pct": 45.0
},
"guardrails": {
"soil_moist_target_max_pct": 70.0,
"maxEcpw_mS": 6.5,
"drainGoal_pctOfDrip": 15.0
}
}
GEN 4 — room already shows generative shape (deep dryback, gentle EC stack). A neutral-to-slightly-generative preset moderates the swing as bulking begins rather than pushing it deeper.
If VWC trough drops below 42% (Ca uptake floor in soilless) OR substrate EC climbs above 7.0 mS within 24h, revert to manual and notify head grower.
Hold the existing ripening dryback shape (30 pp) and lean modestly more generative to drive metabolite finish over the last 19 days, while addressing the cold-canopy signature (VPD 0.99, soil 70.7°F) suppressing transpiration. To verify with head grower before implementation.
irrigationScheduleFC 64.2%, target 32 pp absolute dryback → minVwc floor 32.2% (currently 34% trough is close to target).
{
"phaseType": "FLOWER",
"phaseName": "Late Ripening",
"p0": {
"lightsBuffer_P0_min": 150,
"additionalDrybackTarget_pp": 4
},
"p1": {
"shotPct_of_FC": 2.5,
"shotIntervalMin": 45,
"drainTrigger": "first_drain"
},
"p2": {
"enabled": false,
"shotPct_of_FC": 0,
"vwcMaintenanceFloor_pct": 0
},
"p3": {
"lightsBuffer_P3_min": 240,
"targetDryback_absPp": 32,
"minVwc_safetyFloor_pct": 30.0
},
"guardrails": {
"soil_moist_target_max_pct": 65.0,
"maxEcpw_mS": 8.0,
"drainGoal_pctOfDrip": 10.0
}
}
GEN 3 — room is already in clean ripening shape; stepping toward GEN 3 (more aggressive than neutral GEN 5) deepens dryback modestly without forcing a swing AUTOMAIT can't deliver if canopy stays cold.
If VWC trough drops below 28% (root viability floor for soilless ripening) OR substrate EC climbs above 9.0 mS within 24h, revert to manual and notify head grower.
Diagnose the drip-vs-drain EC inversion (drip 1.54 / drain 5.36 — drain HEAVIER than feed, indicating massive substrate EC dump out OR stale drain pan) before enabling AUTOMAIT. The 28 pp dryback shape is acceptable for ripening but the EC signature suggests either feed-tank labeling error, line crossover, or stale drain pan reading. To verify with head grower before implementation.
irrigationScheduleFC 63.8%, target 30 pp absolute dryback → minVwc floor 33.8% (currently 35.6% trough is close to target).
{
"phaseType": "FLOWER",
"phaseName": "Late Ripening - Pending EC diagnosis",
"p0": {
"lightsBuffer_P0_min": 150,
"additionalDrybackTarget_pp": 3
},
"p1": {
"shotPct_of_FC": 2.5,
"shotIntervalMin": 45,
"drainTrigger": "first_drain"
},
"p2": {
"enabled": false,
"shotPct_of_FC": 0,
"vwcMaintenanceFloor_pct": 0
},
"p3": {
"lightsBuffer_P3_min": 210,
"targetDryback_absPp": 30,
"minVwc_safetyFloor_pct": 32.0
},
"guardrails": {
"soil_moist_target_max_pct": 65.0,
"maxEcpw_mS": 7.5,
"drainGoal_pctOfDrip": 10.0
}
}
GEN 4 — slight generative bias to deepen dryback the small amount needed to hit ripening target, but ONLY AFTER drip EC anomaly is resolved. Do not enable until feed line is verified.
If VWC trough drops below 30% OR if drain EC > drip EC by more than 2.0 mS persists for 12h after enable (confirming inversion is real, not sensor glitch), revert to manual.
Mirror the R9 benchmark — this room has the right dryback shape (30 pp) and a clean EC stack-up signature; the bottleneck is CO₂ starvation (996 ppm) suppressing photosynthesis, not irrigation. Use AUTOMAIT only to hold what's working while CO₂ supplementation is fixed. To verify with head grower before implementation.
irrigationScheduleFC 70.7%, target 32 pp absolute dryback → minVwc floor 38.7% (currently 40.7% trough is just inside target).
{
"phaseType": "FLOWER",
"phaseName": "Late Ripening",
"p0": {
"lightsBuffer_P0_min": 150,
"additionalDrybackTarget_pp": 3
},
"p1": {
"shotPct_of_FC": 2.5,
"shotIntervalMin": 45,
"drainTrigger": "first_drain"
},
"p2": {
"enabled": false,
"shotPct_of_FC": 0,
"vwcMaintenanceFloor_pct": 0
},
"p3": {
"lightsBuffer_P3_min": 210,
"targetDryback_absPp": 32,
"minVwc_safetyFloor_pct": 36.0
},
"guardrails": {
"soil_moist_target_max_pct": 71.0,
"maxEcpw_mS": 8.0,
"drainGoal_pctOfDrip": 12.0
}
}
GEN 4 — slight generative bias to nudge dryback from 30 pp toward 32 pp; the existing shape is healthy and only needs preservation, not aggression.
If VWC trough drops below 34% (root viability floor) OR substrate EC climbs above 9.0 mS within 24h, revert to manual.
Eliminate the channeling/leaching signature (-3.08 EC stack) and rebuild root-zone EC by switching to many small shots that wet the bag uniformly, while capping dryback below the Cal/Mg lockout threshold for coco. To verify with head grower before implementation.
irrigationScheduleFC 74.6%, target 18 pp dryback (coco-capped) → minVwc floor 56.6% (currently 37.6% trough is FAR too deep for coco — Cal/Mg lockout risk).
{
"phaseType": "FLOWER",
"phaseName": "Mid Flower - Bulking transition (COCO)",
"p0": {
"lightsBuffer_P0_min": 60,
"additionalDrybackTarget_pp": 2
},
"p1": {
"shotPct_of_FC": 1.5,
"shotIntervalMin": 20,
"drainTrigger": "shots:8"
},
"p2": {
"enabled": true,
"shotPct_of_FC": 1.0,
"vwcMaintenanceFloor_pct": 62.0
},
"p3": {
"lightsBuffer_P3_min": 120,
"targetDryback_absPp": 18,
"minVwc_safetyFloor_pct": 54.0
},
"guardrails": {
"soil_moist_target_max_pct": 76.0,
"maxEcpw_mS": 5.5,
"drainGoal_pctOfDrip": 20.0
}
}
GEN 5 (neutral) — coco bag is already channeling and leaching at this dryback depth; a generative preset would deepen the swing and worsen Cal/Mg lockout. Neutral lets AUTOMAIT rebuild the substrate EC stack with small frequent shots first.
If VWC trough drops below 52% (Cal/Mg lockout floor in 1.5gal coco) OR drain EC drops below drip EC by more than 4.0 mS within 24h (worsening leach), revert to manual IMMEDIATELY and notify head grower.
Stop the catastrophic 53 pp dryback swing that is almost certainly driven by physical channeling, restore even bag saturation with small frequent shots, and cap dryback well inside the coco safe range. To verify with head grower before implementation.
irrigationScheduleFC 75.6%, target 15 pp dryback (coco-capped, channeling-aware) → minVwc floor 60.6% (currently 22.4% trough is critical).
{
"phaseType": "FLOWER",
"phaseName": "Mid Flower - Recovery (COCO)",
"p0": {
"lightsBuffer_P0_min": 45,
"additionalDrybackTarget_pp": 1
},
"p1": {
"shotPct_of_FC": 1.0,
"shotIntervalMin": 15,
"drainTrigger": "shots:10"
},
"p2": {
"enabled": true,
"shotPct_of_FC": 1.0,
"vwcMaintenanceFloor_pct": 65.0
},
"p3": {
"lightsBuffer_P3_min": 90,
"targetDryback_absPp": 15,
"minVwc_safetyFloor_pct": 58.0
},
"guardrails": {
"soil_moist_target_max_pct": 78.0,
"maxEcpw_mS": 5.5,
"drainGoal_pctOfDrip": 25.0
}
}
GEN 5 (neutral) — this room MUST NOT receive a generative preset until channeling is mechanically diagnosed and fixed; neutral lets AUTOMAIT establish even saturation as the baseline.
If VWC trough drops below 55% (severe Cal/Mg lockout zone for coco) OR a single AUTOMAIT P1 phase fails to drive drain at the configured shot count within 24h (confirming channeling persists), revert to manual IMMEDIATELY and notify head grower.
| Phase | Room(s) | When | Prerequisites | Success criteria | Advance gate | Rollback trigger |
|---|---|---|---|---|---|---|
| 0 | All 7 active rooms (cultivator-side only) | Now → next 7 days | None — pre-AUTOMAIT | R2 P1 shot count multiplied (smaller shots, more of them) · R5 emitter flow uniformity within ±10% post-walkdown · R10 ripening intent decision logged in AROYA journal · R3 VPD reaches 1.15+ via temperature lift · R11 CO₂ reaches 1100+ ppm during photoperiod | All 5 cultivator-side fixes verified by Cian on site | N/A — no AUTOMAIT firing yet |
| 1 | R9 (id 18761) — benchmark first | Cycle N+1, Day 1 after July-13 flip | Controller wired and verified · Steering intent documented in journal · Recipe assigned · R9 sensor uptime ≥99% over prior 14d · R9 substrate EC baseline ≤ 6.0 mS at flip | First P1 fires within 90s of lights-on · P1→P2 closes on first measurable drain (≥2% of shot volume) · trough VWC within 3 pp of recipe target · overnight dryback within 5 pp of recipe target · no Cal/Mg leaf symptoms by Day 7 | 7 consecutive days of clean fires, no manual overrides | Any single day with >2 mis-fires OR substrate EC drift >1.5 mS from target OR drain EC delta < -2.0 mS → revert R9 to manual, hold all subsequent phases |
| 2 | R1 (id 18740) | Cycle N+1, Week 2 after R9 gate passed | R9 gate passed · R1 sensor uptime ≥99% · R1 recipe assigned (SOILLESS, generative early-flower bias given current 36 pp dryback indicates room runs hot) · feed EC corrected to ≥2.8 mS | Same as R9 + feed EC correction verified within first 3 P1 cycles | 7 consecutive clean days, R1 substrate EC trajectory matches recipe intent | Same as R9 |
| 3 | R3 → R10 → R11 (staggered, 48h between each) | Cycle N+1, Weeks 3–4 | R9 + R1 both holding clean · R3 climate fix verified (VPD ≥1.15, soil ≥72°F) · R11 CO₂ fix verified (≥1100 ppm during photoperiod) · R10 intent decision implemented in recipe · drip/drain meters restored on all three | Per room: R9 gates plus the room-specific fix is stable under AUTOMAIT control (controller doesn't fight climate setpoint) | Each room must hold 5 clean days before next room enables | Any one of R3/R10/R11 fails → halt remaining SOILLESS bring-ups, hold COCO indefinitely |
| 4 | R2 then R5 (COCO — sequential, 7 days apart) | Cycle N+1, Weeks 5–6 | ALL SOILLESS rooms holding clean for 14+ days · coco-specific recipe authored and reviewed · R2 P1 shot regime proven manually for full prior cycle · R5 emitter uniformity verified post-walkdown · drain EC delta ≥ -1.0 mS (not -3.08) at flip | Trough VWC within 2 pp of coco recipe target (tighter than SOILLESS) · drain EC delta stays ≥ -1.5 mS · no leaf-tip burn · no interveinal chlorosis by Day 14 | R2 holds 7 clean days before R5 enables; R5 holds 7 clean days before phase closes | Any drain EC delta < -2.5 mS OR visible Cal/Mg symptom → revert to manual, defer COCO AUTOMAIT another full cycle |
| 5 | R4, R6, R8, veg room | Cycle N+2 as HGs are assigned | Room 6 silent h421s resolved + 14d uptime verified BEFORE any HG flips into R6 · each room follows R9-pattern bring-up (Day 1 of new HG, not mid-cycle) | Same as R9 baseline | Same as Phase 1 | Same as Phase 1 |
Blockers Cian needs to resolve with HK Cassandra before any AUTOMAIT field gets written to the AROYA portal. Ranked by urgency.
irrigationControllers: [] on every room. AUTOMAIT cannot fire on any room until a Growlink/Modbus/AROYA-supported controller is wired and linked. Procurement + install + commissioning is the long-pole — Phase 1 cannot start until at least R9's controller is online. Action: confirm with HK Cassandra what's purchased and when it lands; if nothing is on order, raise it as the gating step.reference_irrigation-phase-targets.md.reference_aroya-asi-slider-direction.md — GEN 1 = MOST aggressive, step DOWN for deeper dryback.feedback_automait-audit-methodology.md — measured FC anchor, absolute pp first, customer goal as evaluation lens.count_irrigation_events returns 0 for every room — drip_volume event-deltable series isn't exposed for this facility via public_api. Known AROYA SDK gap, not a facility hardware issue. Shot counts in §4 derived from VWC step-up signatures (baseline audit) rather than direct event counting.spa_get_target_ranges returns empty for facility 4576 — no per-room or per-HG guardrails configured anywhere. Either a permissions issue or genuinely empty. Either way, AUTOMAIT enablement will require authoring fresh target ranges from the proposed schedules in §5.For each of the 11 rooms, Agent 1 (parallel sub-agent) called mcp__aroya__spa_get_room_config(facility=4576, room=<id>, window=30) strictly sequentially (per feedback_spa-config-not-parallel-safe.md) and extracted: substrate VWC sensor count from devices[] (ter15 modelKey, calibrationType NONE counted as substrate); controller wiring from room.irrigationControllers list; light schedule from currentLightSchedule; substrate type from substrateConfig / substrateType; target ranges from target_ranges response field; recipe assignment cross-checked against spa_get_recipes (facility-level) and HG phases_json[].recipe linkage. Tier assignment used the table in §2.
For each active flower room, Agent 3 (parallel sub-agent) built the proposed irrigationSchedule from: (a) measured FC from baseline audit 14-day peak VWC; (b) target absolute pp dryback per phase per substrate (SOILLESS ripening 25–35 pp, mid-flower bulking 12–18 pp; COCO bag capped at 12–18 pp regardless of phase due to Cal/Mg lockout physics); (c) minVwc = FC × (1 − target_prop_dryback). ASI presets verified against reference_aroya-asi-slider-direction.md — pre-publish grep on Agent 3's output confirmed no "step up", "ASI 7", "ASI 8", or "ASI 9" framings (inverted-direction signatures).
Sequence prioritizes: (1) cultivator-side fixes before any AUTOMAIT firing (Phase 0); (2) SOILLESS before COCO (substrate physics — coco's high CEC + low forgiveness makes channeling/leaching the highest-cost failure mode); (3) cleanest signature first (R9 benchmark before R1 before R3/R10/R11); (4) one room per phase with verification gates between rooms (per Cian's "agronomic mistakes compound" framing); (5) all May-10 cohort deferred to Cycle N+1 to avoid mid-cohort transpiration-shift risk on 4 sister rooms 19 days from a coordinated harvest.
No AUTOMAIT field will be written to the AROYA portal as part of this report. Per the request: Cian approves the plan, then implements room-by-room with the gates in §6.2 between each phase. Every proposed irrigationSchedule JSON in §5 is a draft for review, not a payload.