skill:oracle-assess
Answer this question about chain 1 over blocks 26051649 to 26051947 (closing hash 0x779cb990e9009ba1a8a15dab55a041bae0bb21454f81029131c14574d918c1b7), exactly as .imd/reads/oracle.json pins it: What air temperature, in whole degrees Celsius, did the last routine METAR for KMHT (Manchester-Boston Regional Airport, Manchester, New Hampshire) 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 KMHT (New Hampshire) 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 archived KMHT report at 16:53Z was `... 18/06 ...`, so the answer is **18°C**. I recorded the raw report and source in [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The [Iowa Environmental Mesonet archive query](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=KMHT&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=23&tz=Etc%2FUTC&format=onlycomma&latlon=no&elev=no&missing=M&trace=T&direct=no&report_type=3) returned the report. The checker printed `ok`.
The archived KMHT report was issued at 16:53Z and reports `18/06`, so the answer is **18°C**. I recorded the raw report and Iowa Environmental Mesonet source in [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The checker printed `ok`. This is panel evidence: the observation is off-chain; the pinned block range is copied into the answer as the request’s timestamp context.
Created [artifacts/answer.json](/home/imd-worker/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with the answer **18°C** and the archived METAR text. The checker prints `ok`.
The last routine KMHT METAR at or before 17:00 UTC was the `231653Z` report. Its body reads `18/06`, so the air temperature was **18°C**. [Aviation Weather Center archived METAR](https://aviationweather.gov/api/data/metar?ids=KMHT&format=raw&date=2026-09-23T17%3A00%3A00Z&hours=2) I wrote [artifacts/answer.json](/Users/zhuminquan/.identitymd-2/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker printed `ok`.
Created [artifacts/answer.json](/home/identitymd7/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with the answer **18°C**, from the 16:53Z report’s `18/06` group. The raw report and Aviation Weather Center API source are recorded in the file. The required checker printed `ok`.
Wrote [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with the answer **18°C**, from the 16:53Z METAR’s `18/06` group. The notes cite the Iowa Environmental Mesonet archive and Aviation Weather Center API and include the raw report. The requested checker printed `ok`.
The last routine KMHT METAR at or before 17:00 UTC was issued at 16:53Z. Its body reports `18/06`, so the air temperature was **18°C**. I wrote [artifacts/answer.json](/Users/hhyy/.lobster_wallets/identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with the archived report and source. The required checker printed `ok`.
`artifacts/answer.json` is complete, and the required checker prints `ok`. Both the [Iowa Environmental Mesonet archive](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=MHT&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=23&tz=UTC&format=comma&latlon=no&elev=no&missing=empty&trace=T&direct=yes) and [Aviation Weather Center API](https://aviationweather.gov/api/data/metar?ids=KMHT&format=raw&date=2026-09-23T17%3A00%3A00Z&hours=1) report the latest routine METAR before the cutoff at 16:53Z, with temperature group `18/06`. The answer is **18 °C**.
Completed [artifacts/answer.json](/home/imdworker/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). Answer: 18 °C. The provided checker returns `ok`.
Created [artifacts/answer.json](/home/identitymd6/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with the reported temperature, raw METAR, and Aviation Weather API source. The checker prints `ok`.
Created [artifacts/answer.json](/home/identitymd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer `18` and the raw METAR in its notes. The checker printed `ok`.
Created [artifacts/answer.json](/home/bc/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer `18`, from the `18/06` group in the archived 16:53Z KMHT METAR. The checker prints `ok`.
Answer: 18°C. Created [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with the Ogimet raw METAR evidence. Validation passed: `ok`.
Created [artifacts/answer.json](/home/seat15/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer **18°C**, based on the archived 16:53Z KMHT METAR’s `18/06` group. The required checker printed `ok`.
Created [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer `18` °C and the archived KMHT METAR evidence. Validation passed: `check-answer.mjs` printed `ok`.
The answer is **18°C**, from the KMHT routine METAR observed at 231653Z: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061`. I wrote [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The [answer checker](https://aviationweather.gov/api/data/metar?ids=KMHT&format=raw&date=20260923_1700&hours=3) printed `ok`.
Recorded the answer as **18°C** from the 16:53Z KMHT routine METAR in [artifacts/answer.json](/home/identitymd4/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker printed `ok`.
Wrote [artifacts/answer.json](/root/.identitymd-722/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer **18°C**. The archived report was `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` from the [Aviation Weather Center METAR API](https://aviationweather.gov/api/data/metar?ids=KMHT&format=raw&hours=72). Checker result: `ok`.
Wrote [artifacts/answer.json](/home/worker/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer **18 °C**. The Aviation Weather Center report was `METAR KMHT 231653Z ... 18/06 ...`; the checker printed `ok`.
The reported air temperature is **18°C**, from the `18/06` group in the 16:53Z KMHT METAR: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061`. I saved the answer and raw report notes in [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The source is the [Aviation Weather Center METAR API](https://aviationweather.gov/api/data/metar?ids=KMHT&format=raw&hours=48). The required checker printed `ok`.
The last routine KMHT METAR at or before 17:00 UTC was the `231653Z` report. Its body reads `18/06`, so the answer is **18 °C**. [Iowa Environmental Mesonet archive](https://mesonet3.agron.iastate.edu/cgi-bin/request/asos.py?station=MHT&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=24&tz=Etc%2FUTC&format=onlycomma&latlon=no&elev=no&missing=M&trace=T&direct=no&report_type=3&report_type=4) I wrote [artifacts/answer.json](/Users/zhuminquan/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker returned `ok`.
- Recorded **18°C** from the `18/06` temperature/dew-point group in the 16:53Z METAR in `artifacts/answer.json:1`. - The required checker prints `ok`.
The last routine KMHT METAR at or before 17:00 UTC was observed at 16:53Z. Its body reports `18/06`, so the air temperature was **18°C**. [NOAA/NWS Aviation Weather Center raw METAR query](https://aviationweather.gov/api/data/metar?ids=KMHT&format=raw&date=2026-09-23T17%3A00%3A00Z&hours=2) Wrote [artifacts/answer.json](/Users/hyperstition/.identitymd/work/ac6b2c07-2ebc-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The requested checker returned `ok`.
Wrote [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer **18°C**, from the 16:53Z KMHT METAR’s `18/06` group in the Iowa Environmental Mesonet archive. The checker printed `ok`.
Created [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer `18`. Validation passed: `check-answer.mjs` printed `ok`.
Created `artifacts/answer.json` with answer `18` and archived IEM METAR evidence. Validation passed: `check-answer.mjs` printed `ok`.
Wrote [artifacts/answer.json](/home/identitymd3/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with **18°C**, from the archived 16:53Z report `... 18/06 ...` in the [Iowa Environmental Mesonet ASOS archive](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=MHT&data=all&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=23&tz=Etc%2FUTC&format=comma&latlon=no&elev=no&missing=empty&trace=T&direct=no&report_type=1,2). The required checker printed `ok`.
Checker prints `ok`. Answer: KMHT's 231653Z routine METAR (`18/06`) reported **18°C**, sourced from the aviationweather.gov Data API raw archive, written to `artifacts/answer.json`.
Recorded **18°C** from the 23 September 2026 16:53Z KMHT METAR in the Aviation Weather API archive. The raw report and source URL are in [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker printed `ok`.
Wrote [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer **18 °C**, based on KMHT’s 231653Z METAR in the Iowa Environmental Mesonet archive. The checker printed `ok`.
Completed [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). Answer: 18 °C. The supplied checker reports `ok`.
The KMHT routine METAR at 16:53Z reported `18/06`, so the answer is **18°C**. The raw report and Iowa Environmental Mesonet archive URL are in [answer.json](/home/imd-worker/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker passed: `ok`.
Recorded **18°C** from the `18/06` group in the 16:53Z routine METAR archived by the [Iowa Environmental Mesonet](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=KMHT&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=24&tz=Etc%2FUTC&format=onlycomma&latlon=no&elev=no&missing=M&trace=T&direct=no&report_type=3&report_type=4). Saved the answer in [artifacts/answer.json](/home/worker/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The checker reports `ok`.
Recorded **18°C** from the IEM archive’s KMHT report at 231653Z. The raw report and source are in [answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker printed `ok`.
The archived METAR reports **18°C**: `METAR KMHT 231653Z ... 18/06 ...`. The answer file passed the checker (`ok`): [artifacts/answer.json](/home/ubuntu/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json).
Checker prints "ok". The last routine METAR at/before 17:00 UTC (231653Z) reported temperature/dew-point group "18/06" → answer 18°C, from the IEM ASOS archive; written to artifacts/answer.json.
Created [artifacts/answer.json](/home/seat/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with answer `18` °C and quoted METAR evidence. Validator result: `ok`.
Checker prints `ok`. The last routine METAR for KMHT at/before 17:00 UTC on 2026-09-23 was `231653Z ... 18/06`, reporting 18°C — written to `artifacts/answer.json`.
The last routine KMHT METAR at or before 17:00 UTC was observed at 16:53 UTC. Its body reports `18/06`, so the air temperature was **18°C**. I wrote [artifacts/answer.json](/home/imd/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) using the [Iowa Environmental Mesonet ASOS archive](https://mesonet.agron.iastate.edu/cgi-bin/request/asos.py?station=MHT&data=metar&year1=2026&month1=9&day1=23&year2=2026&month2=9&day2=24&tz=Etc%2FUTC&format=onlycomma&latlon=no&elev=no&missing=empty&trace=T&direct=no&report_type=3). The checker printed `ok`.
Checker prints "ok". Answer: 18°C, from the KMHT METAR 231653Z ("18/06") pulled from the IEM ASOS archive — the last routine METAR at or before 1700Z.
The answer is **18°C**. The Aviation Weather Center archive’s latest routine report by 17:00 UTC was at 1653Z: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061`. I used the `18` from the body temperature/dew-point group. [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) is written, and the required checker prints `ok`.
Completed [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). Answer: 18 °C. Validation passed: `ok`.
Checker prints `ok`. Answer: KMHT's 1653Z METAR (last routine report before 17:00 UTC) reported 18/06, i.e. 18°C, sourced from the IEM ASOS archive. `artifacts/answer.json` is written and validated.
Wrote [artifacts/answer.json](/home/imd2/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json) with **18 °C** from the 1653Z report’s `18/06` group. The checker printed `ok`.
The reported temperature is **18°C**. The IEM archive’s 16:53Z report contains `18/06`; the raw METAR and archive query are in [artifacts/answer.json](/home/identitymd5/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). The required checker passed: `ok`.
Checker prints `ok`. Answer: 18°C, sourced from aviationweather.gov's raw METAR text for KMHT 231653Z (18/06), the last routine METAR at or before 231700Z. `artifacts/answer.json` is written and validated.
Completed [artifacts/answer.json](/root/.identitymd/work/ac6b2c07-eb2c-4b34-891e-6b47676f7dc9/3d471bc8-5f02-45d6-8595-2a7e3c90e619/artifacts/answer.json). Answer: `18` °C. Validation passed: `ok`.
Checker prints `ok`. Answer: 18°C, from the KMHT METAR `231653Z ... 18/06 ...` (IEM ASOS archive), the last routine METAR at or before 1700Z. `artifacts/answer.json` is written and validated.
Checker prints "ok". Answer: 18°C, from the KMHT 231653Z METAR (`18/06`), sourced from the IEM ASOS archive — written to `artifacts/answer.json`.
Checker passes. The last routine METAR for KMHT at or before 17:00Z on 23 Sep 2026 was `METAR KMHT 231653Z ... 18/06 ...` (from aviationweather.gov's Data API), giving a temperature of **18°C**. Written to `artifacts/answer.json`, which now passes `check-answer.mjs`.
Checker prints `ok` and no stray files are tracked (artifacts/ is untracked output). Answer: METAR KMHT 231653Z reported 18/06 → 18°C, sourced from IEM ASOS archive.
Checker prints `ok`. Answer: 18°C, sourced from aviationweather.gov's raw METAR history — `METAR KMHT 231653Z ... 18/06 ...` is the last routine METAR at/before 1700Z on 23 Sep 2026.
Checker prints `ok`. The METAR KMHT 231653Z reported temperature 18°C (from the "18/06" group), sourced from the IEM ASOS archive; `artifacts/answer.json` is written with answer `"18"` and a panel recipe citing that source.
Checker passes. Answer: 18°C from the 231653Z KMHT METAR (IEM ASOS archive), written to `artifacts/answer.json`.
Checker prints `ok`. The answer is **18°C**, from METAR `KMHT 231653Z ... 18/06 ...` (IEM ASOS archive), the last routine METAR at/before 17:00 UTC on 2026-09-23. `artifacts/answer.json` is written.
The answer is 18 °C, and `artifacts/answer.json` passes `check-answer.mjs` (it prints `ok`). The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 is the 231653Z report from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` Its temperature/dew-point group is 18/06. The next report, 231753Z, is after 17:00 UTC. The recipe kind is `panel`, with the source named as the aviationweather.gov data API. The checker rejected the window until I put its keys in the order `oracle.json` uses (`toBlock` before `fromBlock`). That is fixed. I read one source only. I did not cross-check against Iowa Environmental Mesonet or Ogimet.
The answer is 18 °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 is the 1653Z report, from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` Its temperature/dew-point group reads 18/06, so the temperature is 18. The next report, 231753Z, falls after the cutoff. The recipe is kind `panel` with that source named, and the notes quote the raw report. The checker rejected the first draft because the `window` keys were in the wrong order. I reordered them to match `.imd/reads/oracle.json` exactly. I read only the one source and did not cross-check it against a second archive.
Checker prints `ok`. The last routine METAR for KMHT at or before 231700Z was 231653Z reporting `18/06`, giving an answer of **18°C**, written to `artifacts/answer.json`.
The answer is 18 °C, and `artifacts/answer.json` passes `check-answer.mjs` (it printed `ok`). The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 was issued at 1653Z. I read it from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` Its temperature/dew-point group is `18/06`. The recipe kind is `panel` with that source, and the raw report is quoted in `notes`. The checker first rejected the `window` object because its keys were in a different order from `oracle.json`. I reordered them to `toBlock`, `fromBlock`, `toBlockHash` to match.
The answer is 18 °C, and `artifacts/answer.json` is written; `check-answer.mjs` prints `ok` for it. The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 was issued at 16:53Z. The raw report is: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group in the body reads 18/06, so the temperature is 18. I found this report in both the aviationweather.gov data API and the Iowa Environmental Mesonet ASOS archive, and the two agree. The recipe kind is `panel`, with the Iowa Environmental Mesonet request URL as its source. The first version of the file failed the checker because the `window` keys were in a different order from the brief. I reordered them to match `.imd/reads/oracle.json` exactly.
The answer is 18 °C, and `artifacts/answer.json` is written; the checker prints `ok` for it. The first run of the checker failed because the window keys were in the wrong order, and I fixed that. The last routine METAR at or before 17:00 UTC on 23 September was issued at 1653Z: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group reads 18/06, so the temperature is 18. The source is the aviationweather.gov data API. I read only that one source. The recipe kind is `panel`, and the raw report is quoted in `notes`.
I wrote `artifacts/answer.json` with the answer **18** °C, and `check-answer.mjs` prints `ok` for it. The first checker run failed because the window keys were in the wrong order. I fixed the order and it passed. The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 was issued at 16:53 UTC. I read it from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group is `18/06`, so the temperature is 18. That matches the tenths in the T-group (`T0178` is 17.8 °C). The recipe is `panel`, with the API query URL as its source. I did not run a second source. The raw report and source name are also in `notes`.
The answer is 18 °C, and `artifacts/answer.json` is written; `check-answer.mjs` prints `ok` for it. The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 was the 231653Z report. I read it from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group is `18/06`, so the temperature is 18. The next report, 231753Z, falls after 17:00 UTC, so it doesn't count. The recipe kind is `panel`, with that API URL as the source. The raw report is quoted in `notes`, and `definitions` states the reading rule and the report chosen. The first write of the file failed the checker because the window keys were in the wrong order. I reordered them to match `oracle.json` and the check passed.
The answer is 18 °C, and `check-answer.mjs` prints ok for `artifacts/answer.json`. The report is the 1653Z METAR from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` It is the latest METAR at or before 231700Z; the next one is 231753Z. The temperature/dew-point group in the body reads 18/06, so the temperature is 18. I only read the one source, not a second archive. The file uses recipe kind `panel` with that API URL as the source, and the request id, chain and window are copied from `oracle.json`.
The answer is 18 °C, and `artifacts/answer.json` is written; the checker prints `ok`. The last routine METAR for KMHT at or before 231700Z was issued at 231653Z: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group in the body reads 18/06, so the air temperature is 18 °C. I read it from the aviationweather.gov data API, which lists it as a METAR rather than a SPECI. I used only that one source. The recipe kind is `panel`, with the API URL as its source. The first checker run rejected the window because the keys were in a different order than in `oracle.json`. I reordered them and the second run passed.
The answer is 18 °C, and `artifacts/answer.json` passes `check-answer.mjs` (it printed `ok`). The source is the Iowa Environmental Mesonet ASOS archive for station MHT. The last routine METAR at or before 17:00 UTC on 23 September 2026 is the 1653Z report: `KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group is 18/06, so the answer is 18. The next report, 1753Z, is after the cutoff. The first check failed because the window keys were in the wrong order. I reordered them to match `oracle.json`, and the check then passed.
The answer is 18 °C. `artifacts/answer.json` is written and the checker prints `ok`. The source is the aviationweather.gov data API. The last routine METAR at or before 17:00 UTC on 23 September is the 231653Z report; the next one is 231753Z, which is after the cutoff. The raw report reads: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group is 18/06, so the temperature is 18. The recipe is kind `panel` with that API as its source. The window is copied exactly from `.imd/reads/oracle.json`. The checker rejected my first write because the `window` keys were in the wrong order. I fixed that, and the second run passed.
The answer is 18 °C, and `check-answer.mjs` prints ok for `artifacts/answer.json`. The last routine METAR at or before 17:00 UTC is the 231653Z report from aviationweather.gov, which reads: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The temperature/dew-point group is 18/06, so the temperature is 18. The next report in the list is 231753Z, which is after the cutoff. I saw no SPECI between them. I used a single source for this, the aviationweather.gov data API, and the recipe is `panel` with that source. The window and request id are copied from `oracle.json`. The first check failed because I had the window keys in the wrong order; I reordered them.
I wrote `artifacts/answer.json` with an answer of 18, and `check-answer.mjs` prints ok for it. The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 is the 1653Z report, read from the aviationweather.gov data API: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` Its temperature/dew-point group is 18/06, so the air temperature is 18 °C. The recipe kind is "panel" and names that source. I did not cross-check against a second archive. The checker first rejected the file because it requires the window keys in the order `toBlock`, `fromBlock`, `toBlockHash`. I reordered them and it passed.
The last routine METAR for KMHT at or before 17:00 UTC on 23 September 2026 reported 18 °C. I wrote that to `artifacts/answer.json`, and `check-answer.mjs` prints `ok` for it. The source is the aviationweather.gov data API. The raw report is: `METAR KMHT 231653Z 09008G16KT 050V130 10SM SCT042 BKN050 18/06 A3058 RMK A02 SLP369 T01780061` The next report, 231753Z, is after the cutoff, so 231653Z is the right one. The answer comes from the `18/06` group in the body of the report. The first check failed because the `window` keys were in a different order from the order in `oracle.json`. I reordered them to match.
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.