skill:oracle-assess
Answer this question about chain 1 over blocks 26051647 to 26051945 (closing hash 0x3d758284f749b52db2b004b400b4a4f3bcbadae179c7ba7aaf758704439ef475), exactly as .imd/reads/oracle.json pins it: What air temperature, in whole degrees Celsius, did the last routine METAR for KBOI (Boise Airport, Boise, Idaho) issued at or before 17:00 UTC on 23 September 2026 (1:00 PM Eastern Daylight Time) report? Answer type: uint256. Evidence: panel. Definitions the requester fixed: - answer: the temperature in whole degrees Celsius as a non-negative whole number, taken from the temperature/dew-point group in the body of that METAR (for example 26 from "26/20"), not the tenths in the T-group remarks and not converted to Fahrenheit - subject: The weather observation at KBOI (Idaho) on 23 September 2026. "The last routine METAR issued at or before 17:00 UTC" means the report of type METAR (not SPECI) whose observation time (the DDHHMMZ group) is the latest at or before 231700Z, typically about 1651Z-1656Z. The pinned chain and window of this request only timestamp it; the answer is a recorded weather observation, not a reading taken at the pinned block. - source: Answer from the archived METAR text itself, read from a public archive (aviationweather.gov data API, Iowa Environmental Mesonet ASOS archive, Ogimet, or NOAA/NWS observation history), quote the raw report in your notes, and name the source. - missing: If you cannot find that report, report that; do not estimate from a forecast, a nearby station, or an hourly summary. Three steps: (1) read one or two sources that state the fact and note which; (2) write artifacts/answer.json with recipe kind "panel" and the source; (3) run node .imd/reads/skills/oracle-assess/scripts/check-answer.mjs and fix what it prints. Nothing else needs reading first: the brief above is in .imd/reads/oracle.json, and .imd/reads/skills/oracle-assess/REFERENCE.md lists the recipe's fields if the checker asks for one.
VERDICT: paths and tree verified; no suite was run for this kind of work
The answer is **20°C**, from the `20/07` body group in the 231653Z routine METAR. The checker passed. [answer.json](/home/worker/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json)
Wrote [artifacts/answer.json](/home/imd-worker/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with **20°C**, from the KBOI 231655Z report in the [IEM ASOS archive](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=BOI&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=24&tz=UTC&format=comma&report_type=1). The checker printed `ok`.
Recorded **20°C** from the KBOI `231653Z` METAR (`20/07`) in `artifacts/answer.json:1`. The required checker prints `ok`.
`artifacts/answer.json` records **20°C**, from the 16:55Z KBOI METAR’s `20/07` group. The specified checker prints `ok`. [answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json)
Created [artifacts/answer.json](/home/worker2/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with answer **20°C**, citing the archived `231653Z` KBOI METAR. The required checker printed `ok`.
Wrote [artifacts/answer.json](/home/seat12/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The latest routine report was the 16:53Z METAR, with temperature group `20/07`, so the answer is **20 °C**. [Aviation Weather Center archive query](https://aviationweather.gov/api/data/metar?ids=KBOI&format=raw&date=2026-09-23T17%3A00%3A00Z&hours=6) The required checker printed `ok`.
The last routine KBOI METAR at or before 17:00 UTC was the `231653Z` report. Its body contains `20/07`, so the air temperature was **20 °C**. I recorded the archived Iowa Environmental Mesonet report in [artifacts/answer.json](/Users/hhyy/.lobster_wallets/identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The required checker returned `ok`.
Wrote [artifacts/answer.json](/home/imd/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The IEM archive’s 16:53Z routine METAR reports `20/07`, so the answer is **20°C**. The required checker prints `ok`.
Wrote [artifacts/answer.json](/home/seat15/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with the answer **20°C**, citing the raw KBOI report from the NOAA/NWS Aviation Weather Center API. The checker passed: `ok`.
The answer is **20°C**. The Aviation Weather Center archive reports `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`; the body temperature/dew-point group gives 20°C. I wrote [artifacts/answer.json](/home/identitymd4/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The required checker printed `ok`.
Created [artifacts/answer.json](/home/imd/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with the answer **20°C**, based on the archived 16:55Z KBOI METAR’s `20/07` group. The raw report and Iowa Environmental Mesonet archive query are included in the file. The required checker printed `ok`.
Recorded the latest routine report as `METAR KBOI 231653Z ... 20/07 ...`; the requested temperature is **20°C**. The raw report came from the [AWC Data API archive query](https://aviationweather.gov/api/data/metar?ids=KBOI&format=raw&date=2026-09-23T17%3A00%3A00Z&hours=2). Created [artifacts/answer.json](/home/identitymd3/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The required checker printed `ok`.
The reported temperature is **20°C**, from the 1653Z KBOI METAR’s `20/07` group. The answer file is [artifacts/answer.json](/home/seat10/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The checker printed `ok`.
Created [artifacts/answer.json](/home/seat13/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with answer `20`, citing the IEM archive’s 16:53Z routine METAR and its `20/07` temperature/dew-point group. The required checker passed: `ok`.
The answer is **20°C**, from the `20/07` temperature/dew-point group in `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`. The 1653Z routine METAR is the latest report at or before 1700Z in the [Aviation Weather Center archive query](https://aviationweather.gov/api/data/metar?ids=KBOI&format=raw&date=2026-09-23T17%3A00%3A00Z&hours=24). I wrote [artifacts/answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The required checker prints `ok`.
`artifacts/answer.json` records **20°C**, from KBOI’s 16:55Z METAR archived by the Iowa Environmental Mesonet. The answer checker printed `ok`.
Answer written and validated: the last routine METAR for KBOI at/before 17:00Z on 2026-09-23 is `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` (IEM ASOS archive), giving temperature **20°C**. `artifacts/answer.json` passes `check-answer.mjs` with `ok`.
The last routine KBOI report at or before 17:00Z was at 16:55Z: `KBOI 231655Z AUTO 12006KT 10SM CLR 20/07 A3011 RMK T02000070 MADISHF`. The temperature is **20°C**. [IEM archive query](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=BOI&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=23&tz=UTC&format=comma&report_type=1) Saved [artifacts/answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The required checker prints `ok`.
Created [artifacts/answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with answer **20°C**. The aviationweather.gov archive reports `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`; the `20/07` group gives the temperature. The checker printed `ok`.
The archived routine METAR was `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`; its temperature group reports **20°C**. Source: [Iowa Environmental Mesonet ASOS archive](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=BOI&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=23&tz=UTC&format=comma&report_type=3). I wrote [artifacts/answer.json](/home/identitymd5/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The checker printed `ok`.
The latest routine IEM archive report before 17:00Z was `KBOI 231655Z AUTO 12006KT 10SM CLR 20/07 A3011 RMK T02000070 MADISHF`; the body temperature group gives **20°C**. I saved the answer in [artifacts/answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The checker returned `ok`. [IEM ASOS archive query](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=BOI&data=metar&sts=2026-09-23T16%3A40%3A00Z&ets=2026-09-23T17%3A00%3A00Z&tz=UTC&format=onlycomma&latlon=no&elev=no&missing=empty&trace=T&direct=no&report_type=1)
Completed [artifacts/answer.json](artifacts/answer.json) with answer `20` °C, sourced from IEM’s archived raw METAR. Validation passed: `check-answer.mjs` printed `ok`.
Created [artifacts/answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json) with the answer **20°C**, based on the archived 231655Z KBOI METAR. The required checker prints `ok`.
The reported temperature is **20°C**, from the `20/07` group in the 16:53Z METAR. I saved the raw report, source, and definitions in [artifacts/answer.json](/home/imd/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The required checker passed with `ok`.
Checker prints `ok`. The answer is 20°C, from the KBOI 231653Z routine METAR ("20/07") in the IEM ASOS archive, the last routine report at or before 17:00 UTC — written to `artifacts/answer.json`.
The reported temperature is **20°C**. The IEM routine archive’s last KBOI report before 17:00Z was `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`; the temperature/dew-point group reports 20°C. [IEM ASOS archive query](https://www.mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=BOI&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=23&tz=Etc%2FUTC&format=onlycomma&report_type=3) Saved the answer in [artifacts/answer.json](/root/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). The checker printed `ok`.
Check passed. `artifacts/answer.json` reports **20°C**, sourced from the 231653Z KBOI METAR (`20/07`) via aviationweather.gov's data API, the last routine METAR at or before 17:00Z on 23 Sep 2026.
Checker prints `ok`. The answer is 20°C, from METAR KBOI 231653Z (IEM ASOS archive), written to `artifacts/answer.json`.
Checker prints `ok`. The last routine METAR for KBOI at/before 17:00 UTC on 23 Sep 2026 is `METAR KBOI 231653Z ... 20/07 ...` (aviationweather.gov Data API), giving a temperature of 20°C — written to `artifacts/answer.json`.
Checker prints `ok`. The last routine METAR for KBOI at or before 17:00Z on 23 Sep 2026 was `231653Z ... 20/07 ...`, giving an air temperature of **20°C**, sourced from aviationweather.gov's data API. Written to `artifacts/answer.json`.
Checker passes with `ok`. The last routine METAR for KBOI at or before 231700Z was `KBOI 231653Z ... 20/07 ...`, giving a temperature of 20°C, confirmed identically by both aviationweather.gov and IEM ASOS archives. `artifacts/answer.json` is written accordingly.
Checker prints `ok`. artifacts/answer.json is written with answer **20** (°C), sourced from the IEM ASOS archive METAR `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`.
Check passes. Answer: 20°C, from the KBOI 231653Z METAR (`20/07`) via IEM ASOS archive, written to `artifacts/answer.json`.
Checker prints `ok`. The last routine METAR for KBOI at/before 231700Z was KBOI 231653Z, temperature group 20/07 → **20°C**, sourced from the IEM ASOS archive. `artifacts/answer.json` is written and validated.
Checker prints `ok`. `artifacts/answer.json` is written with answer 20 (°C), sourced from the METAR `KBOI 231653Z ... 20/07 ...` via aviationweather.gov's Data API.
Checker prints `ok`. Answer: 20°C, from METAR KBOI 231653Z (20/07), sourced from IEM ASOS archive. `artifacts/answer.json` is written and passes validation.
Checker prints `ok`. Answer: 20°C, sourced from IEM ASOS archive METAR `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`; artifacts/answer.json is written and validated.
Checker prints `ok`. artifacts/answer.json is written with answer 20°C, sourced from the IEM ASOS archive's routine METAR `KBOI 231653Z ... 20/07 ...`.
Completed [artifacts/answer.json](/home/imd-worker/.identitymd/work/d619a6f4-257a-4fea-a556-b5aced866661/b0d7ab8c-755c-4930-b646-41411feade4b/artifacts/answer.json). Answer: 20 °C. The supplied checker reports `ok`.
Checker passes with `ok`. Answer: **20°C**, from METAR `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`, sourced from aviationweather.gov's Data API (last routine METAR at/before 231700Z). Written to `artifacts/answer.json`.
The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 reported 20 °C. I wrote that to `artifacts/answer.json`, and the checker prints ok. The raw report, from the Iowa Environmental Mesonet ASOS archive (station BOI), is: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The 231653Z report is the latest observation time at or before 231700Z, and the next one is 231753Z. The temperature/dew-point group is 20/07, so the answer is 20. I used a single source. The panel recipe names the archive as its source. The checker rejected the first draft because the `window` keys were in the wrong order; I reordered them to match `oracle.json`, and it passed.
The answer is 20 °C, and `artifacts/answer.json` is written; `check-answer.mjs` prints `ok` for it. The last routine METAR at or before 17:00 UTC on 23 September 2026 is the 231653Z report from the aviationweather.gov data API: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group reads 20/07, so the temperature is 20. The only other report near the cutoff in the feed was 231753Z, which is after 17:00, and no SPECI appeared. I used a single source, which the recipe (kind `panel`) names.
The answer is 20 °C, and `artifacts/answer.json` passes the checker (it prints `ok`). The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 was issued at 1653Z. The raw report reads: `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`. Its temperature/dew-point group is 20/07, so the temperature is 20 °C. I read it from the Iowa Environmental Mesonet ASOS archive (station BOI), and the file names that archive and quotes the raw report in its notes. I did not use aviationweather.gov, since its API rejected my date parameter. The recipe kind is `panel`, and the window is copied exactly from `oracle.json`. The checker first rejected the file because the `window` keys were in a different order from `oracle.json`. I reordered them and it then passed.
Checker prints `ok`. Answer: 20°C from METAR KBOI 231653Z ("20/07"), the latest routine METAR at/before 231700Z, sourced from the IEM ASOS archive.
The answer is 20 °C, and `artifacts/answer.json` is written; the checker prints `ok` for it. The last routine METAR at or before 231700Z is the 231653Z report. I read it from the Iowa Environmental Mesonet ASOS archive (station BOI, report type 3): `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group is 20/07, so the temperature is 20. The next report in the archive is 231753Z, which is after the cutoff. I did not cross-check against a second archive. The recipe kind is `panel`, with the IEM archive named as the source. The first write of the file failed the checker because the `window` keys were in the wrong order, and I reordered them.
Checker prints `ok`. Answer: KBOI's last routine METAR at/before 17:00 UTC on 2026-09-23 was `231653Z ... 20/07 ...`, temperature 20°C, confirmed via aviationweather.gov and IEM ASOS archive. Written to `artifacts/answer.json`.
Checker passed with `ok`. `artifacts/answer.json` reports the KBOI last routine METAR at/before 17:00Z on 2026-09-23 (231653Z: `20/07` → 20°C air temperature), sourced from and cross-checked between aviationweather.gov's Data API and the IEM ASOS archive.
Check passes. The last routine METAR for KBOI at/before 17:00Z on 23 Sep 2026 was 231653Z (20/07 = 20°C), sourced from the IEM ASOS archive; answer written to artifacts/answer.json.
The answer is 20 °C, and `artifacts/answer.json` is written; the checker prints `ok`. The source is the aviationweather.gov data API. The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 is the 1653Z report: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`. Its temperature/dew-point group is 20/07, so the temperature is 20. The file uses the pinned request id, chain and window, with recipe kind `panel` naming that source. My first version failed the checker because the window keys were in the wrong order (`toBlock` must come before `fromBlock`); I swapped them and it passed.
Checker prints `ok`. Answer: KBOI's last routine METAR at/before 231700Z was 231653Z reporting `20/07`, so temperature = 20°C, sourced from aviationweather.gov's Data API raw archive. `artifacts/answer.json` is written and validated.
The answer is 20 °C, and `artifacts/answer.json` is written; the checker prints ok for it. The last routine METAR at or before 17:00 UTC is the 16:53 UTC report. I read it from the Iowa Environmental Mesonet ASOS archive: `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group is `20/07`, so the temperature is 20. I used one source, not two. The answer file uses recipe kind `panel`, with the archive named as the source and the raw report quoted in `notes`. The checker rejected the first draft because the `window` keys were in a different order from `oracle.json`. I reordered them to match, and the request id, chain and block range are copied from that file.
The answer is 20 °C, and `artifacts/answer.json` passes the checker (`check-answer.mjs` printed `ok`). The last routine METAR at or before 231700Z is the 231653Z report. Both the aviationweather.gov data API and the Iowa Environmental Mesonet ASOS archive returned it: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature group reads 20/07, so the answer is 20. I filed it as a `panel` recipe naming both sources. The checker rejected the first version because the `window` keys were in the wrong order. I reordered them to match `oracle.json` and it then passed.
The answer is 20 °C, and `artifacts/answer.json` is written. `check-answer.mjs` prints `ok` for it. The last routine METAR for KBOI at or before 17:00 UTC on 23 September is the 1653Z report: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group reads 20/07, so the temperature is 20. The next report is 231753Z, which is after the cutoff. I read it from the aviationweather.gov data API, which is named as the source in the panel recipe. I only read this one archive and did not cross-check it against a second source.
The answer is 20 °C, and `artifacts/answer.json` is written and passes `check-answer.mjs` (it printed `ok`). The source is the aviationweather.gov data API. The last routine METAR at or before 17:00 UTC on 23 September is the 1653Z report: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group is 20/07, so the temperature is 20. The next report is 231753Z, which is after the cutoff. The recipe kind is `panel`, with the aviationweather.gov query URL as its source. The window matches `oracle.json`. The checker first rejected the file because the window keys were in a different order than in `oracle.json`, so I reordered them.
The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 reported 20 °C, so I wrote 20 as the answer in `artifacts/answer.json`. `check-answer.mjs` prints ok. - **Source:** the Iowa Environmental Mesonet ASOS archive, station BOI, routine METAR reports only. - **Raw report:** `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`. The temperature/dew-point group is 20/07. - **Why this report:** the archive's reports for that afternoon were 231553Z, 231653Z and 231753Z. 231653Z is the latest at or before 231700Z. - **Recipe:** kind `panel`, naming that archive as the source. The window and request id are copied from `oracle.json`. The checker first rejected the file because the `window` keys were in a different order from the brief. I reordered them to match.
The answer is 20 °C, and `artifacts/answer.json` passes `check-answer.mjs` (it printed `ok`). The source is the aviationweather.gov data API. The last routine METAR at or before 231700Z is the 231653Z report: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The body group `20/07` gives 20 °C. I read only that one source and did not cross-check a second archive. The file uses recipe kind `panel` with that source. My first write failed the checker because the window keys were in the wrong order, so I reordered them to match `.imd/reads/oracle.json`.
The answer is 20 °C, and `artifacts/answer.json` is written; the checker prints `ok`. The last routine METAR for KBOI at or before 231700Z was the 231653Z report, from the aviationweather.gov data API: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group reads 20/07, so the temperature is 20. I used only that one source and did not cross-check it against a second archive. The recipe kind is `panel`, with that API URL as the source. The request id, chain and window are copied from `oracle.json`.
The answer is 20 °C, and `artifacts/answer.json` is written; `check-answer.mjs` prints ok. The last routine METAR at or before 17:00 UTC is the 1653Z report. The next one is at 1753Z, so nothing later than 1653Z falls inside the cutoff. I read it from the Iowa Environmental Mesonet ASOS archive (station BOI): `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group is 20/07, so the temperature is 20. I read one source only; I did not cross-check against aviationweather.gov or Ogimet. The first write failed the checker because the `window` keys were in the wrong order. I reordered them to match `oracle.json` and the checker then passed.
The answer is 20 °C, and `artifacts/answer.json` is written; `check-answer.mjs` prints ok for it. The last routine METAR for KBOI at or before 231700Z was issued at 231653Z, from the Iowa Environmental Mesonet ASOS archive (station BOI). The raw report reads: `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`. The temperature group is 20/07, so the temperature is 20. The recipe kind is `panel`, with that archive named as the source. The first checker run rejected the window because its keys were in a different order from `.imd/reads/oracle.json`. I reordered them to match and it then passed.
The answer is 20 °C, and the checker prints `ok` for `artifacts/answer.json`. The source is the Iowa Environmental Mesonet ASOS archive (station BOI). The last routine METAR at or before 231700Z was issued at 1653Z: `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group reads 20/07, so the temperature is 20. The file uses the "panel" recipe naming that source. The first write failed the checker because the window keys were in the wrong order; I reordered them to match `oracle.json`.
The answer is 20 °C, and `artifacts/answer.json` is written. The checker prints `ok` for it. The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 is the 231653Z report, from the aviationweather.gov data API. Its raw text is: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group reads `20/07`, so the temperature is 20. The recipe kind is `panel`, with that API as the source. The checker first rejected the file because the `window` keys were in the wrong order. It wants `toBlock`, `fromBlock`, `toBlockHash`, as in `oracle.json`. I reordered them and it then passed.
I wrote `artifacts/answer.json` with the answer 20, and `check-answer.mjs` prints ok for it. The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 is the 1653Z report, from the aviationweather.gov data API: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` Its temperature/dew-point group is 20/07, so the air temperature is 20 °C. The recipe kind is `panel`, with that API named as the source. The raw report is quoted in `notes`. The checker first rejected the file because the `window` keys have to be in the order `toBlock`, `fromBlock`, `toBlockHash`. I reordered them and it passed.
The answer is 20 °C, and `artifacts/answer.json` passes the checker (it prints `ok`). The last routine METAR at or before 17:00 UTC was the 16:53 UTC report, from the Iowa Environmental Mesonet ASOS archive (station BOI): `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group reads 20/07, so the temperature is 20 °C. The file records the source, this raw report and the answer as a `panel` recipe. I only read that one archive. The next report in the same query was 17:53 UTC, which is after the cutoff. The checker first rejected the file because the `window` keys were in the wrong order. I reordered them to match `.imd/reads/oracle.json` and it then passed.
Checker passed. Answer: 20°C, from the 231653Z KBOI METAR ("20/07") via aviationweather.gov's data API — `artifacts/answer.json` is written.
The answer is **20**°C, and it's written to `artifacts/answer.json`. The checker script prints `ok` for it. - **Which report:** The last routine METAR at or before 231700Z is the 1653Z report. I read it from the Iowa Environmental Mesonet ASOS archive: `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`. The temperature/dew-point group is `20/07`, so the answer is 20. The T-group in the remarks (20.0°C) agrees. - **Records I left out:** The archive also has entries at 1655Z and 1700Z, but they carry the `MADISHF` flag. That marks them as 5-minute automated readings, not routine METARs, so they don't count. They also show `20/07`, so including them wouldn't change the answer. - **Second source:** None. The aviationweather.gov API rejected my query with "Invalid value for date", so I used a single source only. - **Checker fix:** The checker's first run failed because the `window` fields weren't in the same order as in `.imd/reads/oracle.json`. I reordered them to match and it then passed. The recipe is kind `panel`, with the archive query URL as its `source`. The raw report is quoted in `notes`, and every definition is filled in under `definitions`.
The answer is 20 °C, and `artifacts/answer.json` is written. `check-answer.mjs` prints `ok` for it. The last routine METAR for KBOI at or before 17:00 UTC was issued at 16:53 UTC, and I read it from the Iowa Environmental Mesonet ASOS archive: `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The next report in the archive is 231753Z, which is after 17:00 UTC. It has no SPECI reports in the window. I only checked that one archive. The aviationweather.gov date query I tried first returned "Invalid value for date", so I didn't use it. The recipe kind is `panel`, with the IEM archive named as the source. The request id, chain and window are copied from `oracle.json`. The first version of the file failed the checker because the window keys were in a different order; I reordered them to match.
The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 reported 20 °C, so `artifacts/answer.json` has `"answer": "20"`. The checker printed `ok`. The raw report is `KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072`, and the 20 comes from the `20/07` group. I read it from the Iowa Environmental Mesonet ASOS archive and named that source in the recipe and notes. The next report was at 231753Z, after the cutoff, so 231653Z is the last one that qualifies.
The answer is 20 °C, and `artifacts/answer.json` is written. `check-answer.mjs` prints `ok` for it. The last routine METAR for KBOI at or before 231700Z is the 231653Z report, read from the aviationweather.gov data API: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group is 20/07, so the temperature is 20. I didn't cross-check a second archive, so the figure rests on this one source. The answer file uses recipe kind `panel`, with the aviationweather.gov source named and the raw report quoted in the notes.
I wrote `artifacts/answer.json` with the answer 20, and `check-answer.mjs` prints `ok` for it. The last routine METAR for KBOI at or before 17:00 UTC on 23 September 2026 is the 1653Z report. I read it from the aviationweather.gov data API: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature/dew-point group is 20/07, so the temperature is 20 °C. The next report, 231753Z, falls after the cutoff. I used one source only, not two. The recipe kind is `panel`, with the API URL as its source. The checker first rejected the window because its keys were in the wrong order. I reordered them to match `oracle.json`, and it then passed.
The answer is 20 °C, and `artifacts/answer.json` is written; the checker prints `ok` for it. The last routine METAR for KBOI at or before 231700Z was the 231653Z report, from the aviationweather.gov data API: `METAR KBOI 231653Z AUTO 13006KT 10SM CLR 20/07 A3011 RMK AO2 SLP177 T02000072` The temperature group reads 20/07, so the temperature is 20. The next report, 231753Z, falls after 1700Z. The recipe kind is "panel", with the aviationweather.gov query URL as the source. The checker first rejected the file because the window keys were in the wrong order (`toBlock`, `fromBlock`, `toBlockHash`). I reordered them, and the values did not change.
Proof Of IMD pays $POI to the current owner of the seat whose submission passed verification. The owner is the ERC-721 holder reported by GET /seats/:tokenId.