
Italian regions ban outdoor work from 12:30 to 16:00 on days rated ALTO for heat risk. A supervisor still has to plan the other hours, prove the ban was kept, and brief the crew. On ERA5 (June to August 2026, five sites), 59 to 66% of heat-restricted working hours fall outside the ban window. Turno plans those hours. How it works. ECMWF's 10-member open-data ensemble gives WBGT for every member and hour (Liljegren, thermofeel). Fixed NIOSH limits set 60, 45, 30, 15 or 0 minutes of work per hour, planned on the hottest member. Hours where members are 30 minutes of work apart go to the supervisor with the reason. The supervisor confirms the Worklimate rating; until then the ban is assumed. Output: a day strip, a bilingual crew briefing, a compliance log. On AMD. AMD Token Factory (AMD Radeon Cloud) runs the ordinance reader: MinerU2.5-Pro reads each region's signed PDF and DeepSeek-V4-Flash proposes every rule field with a verbatim quote. Code accepts a field only if the quote is in the document and contains the value. DeepSeek-V4-Flash also explains each hand-off. Off AMD: Gemma 4 writes the crew briefing through Google's Gemini API, and the forecast is ECMWF open data. No GPU instance was available, so the planned Aurora run on an MI300X did not happen. Pre-registered results: settings chosen on June dates; July and August (10 dates, 5 sites) untouched. One day ahead, a single ECMWF forecast over-planned work in 6.6% of heat-restricted hours; Turno in 1.1%, handing 3.0 to 17.0% of working hours to the supervisor. The reader accepted 0 wrong fields across two runs, and a live Lombardia re-read verified 7 of 7. Limits. Truth is ERA5 (0.25 degrees); there is no thermometer on site. ECMWF open data is 3-hourly. The number check proves every number came from the plan; it does not prove each sentence is right. Not tried with a real crew; no substitute for the employer's risk assessment. Live app: turno.aashanjaved.com. Code (MIT): github.com/Aashan47/turno
18 Oct 2026

Most agent pipelines let the author sign off their own work. Ask an agent whether its code is correct and it will tell you yes, so the interesting failure is not a bad answer, it is an unchecked one. Fail Closed divides four seats by authority rather than job title. The Scribe writes the acceptance ledger before any code exists. The Builder is the only seat that may write implementation code and may never say its own work is correct. The Auditor clones at the revision named in a handoff, runs the check there, quotes the output, and throws the clone away. The Registrar opens the gate and owns the refusal ledger. Exactly one owner per power, and no seat holds two. The separation is enforced, not requested: each seat is created with a runtime tool policy, so the Auditor does not decline to write code, the tool is not there to call. policy.txt in the repository is that command's real output. A failing verdict, an unevidenced verdict, and a claim with no verdict at all are all refusals and are treated identically. On every failure the Auditor re-runs the graded suite at the same commit, so whether the refusal mattered is two recorded runs rather than an opinion. It shipped stage 1 and stage 2 of the Tablekeeper track from a single dispatch. The room export holds 8,292 messages, exactly one of them from a human, with tool calls split 25.9, 25.2, 24.6 and 24.4 percent across the four seats. FACTORY.md reports what went wrong. Bash cannot be denied, so tool policy alone does not enforce the separation. A human found two controls painted the colour of the surface behind them, which every DOM-level check had passed. And the Registrar's own closing finding is that the gate has not yet been shown to pay for itself.
6 Oct 2026