-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtasks.json
More file actions
283 lines (283 loc) · 15.5 KB
/
Copy pathtasks.json
File metadata and controls
283 lines (283 loc) · 15.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
{
"schema_version": 1,
"purpose": "Evaluate whether agents can use odh as a clean Open Data Hub data-access CLI without requiring the CLI to encode local reasoning.",
"tasks": [
{
"id": "dataset-guide-discovery-first",
"prompt": "Before querying Open Data Hub for EV charging availability, show the discovery and verification path an agent should follow.",
"expected_command_path": [
"odh datasets guide \"ev charging availability\" --format json",
"odh mobility origins --station-type EChargingStation --limit 1000 --json",
"odh mobility datatypes --station-type EChargingStation --limit 1000 --json",
"odh diagnostics ev-charging --fresh-within 24h"
],
"pass_criteria": [
"Uses datasets guide before guessing station types, origins, or datatypes.",
"Carries the guide's caveats into the answer.",
"Treats the guide as a starting path rather than proof that fresh measurement rows exist.",
"Runs or recommends verification commands before making current-availability claims."
],
"common_failures": [
"Skips dataset/source discovery and guesses an origin.",
"Treats a catalog match as evidence of fresh open measurements.",
"Asks the user to provide upstream vocabulary that can be discovered."
]
},
{
"id": "traffic-badia-road-closed",
"prompt": "Why is the road closed in Badia today?",
"expected_command_path": [
"odh traffic zones --json",
"odh traffic categories --json",
"odh traffic search badia --today --zone-id 6 --json",
"odh traffic search gadertal --today --zone-id 6 --include-stale --json"
],
"pass_criteria": [
"Uses traffic zones or equivalent knowledge to scope the broad ODH zone when appropriate.",
"Uses traffic search for the place text instead of expecting a hardcoded Badia alias.",
"Mentions when ODH returns no current literal Badia match.",
"Does not present stale open-ended ODH rows as confirmed current closures.",
"States the ODH PROVINCE_BZ source and caveat for public traffic bulletins."
],
"common_failures": [
"Invents a closure reason from stale rows.",
"Assumes Badia must be a CLI area alias.",
"Uses raw mobility events first and gets lost in noisy output.",
"Omits stale-data warnings."
]
},
{
"id": "traffic-unterland-ueberetsch-roadworks",
"prompt": "Are there any roadblocks, road works, or road events today in Unterland and Ueberetsch?",
"expected_command_path": [
"odh traffic categories --json",
"odh traffic today --area ueberetsch-unterland --json",
"odh traffic today --area ueberetsch-unterland --type roadworks --json",
"odh traffic today --area ueberetsch-unterland --type closure --json"
],
"pass_criteria": [
"Uses the opinionated traffic layer rather than raw PROVINCE_BZ events.",
"Deduplicates through CLI output instead of manually counting raw duplicates.",
"Separates roadworks, closures, events, and traffic notices when needed.",
"Mentions stale or source warnings from the output."
],
"common_failures": [
"Reports duplicated raw rows as separate events.",
"Ignores the traffic layer and parses a huge raw event response.",
"Overstates ODH as the complete official live traffic bulletin."
]
},
{
"id": "traffic-a22-available-data",
"prompt": "What A22 traffic data does Open Data Hub expose, and can I use it as live traffic?",
"expected_command_path": [
"odh datasets search a22",
"odh mobility origins --station-type TrafficSensor",
"odh mobility datatypes --station-type TrafficSensor --origin A22 --limit 1000 --json",
"odh a22 status --limit 10",
"odh a22 status --limit 10 --json --raw"
],
"pass_criteria": [
"Discovers A22 as a Mobility origin before querying origin-specific data.",
"Lists or summarizes TrafficSensor data types for A22.",
"Uses odh a22 status for event-feed versus forecast semantics.",
"Uses default table output for a brief answer or --json --raw when raw upstream rows are required.",
"Does not infer live incidents from TrafficForecast rows alone."
],
"common_failures": [
"Treats TrafficForecast as current live traffic.",
"Skips origin discovery and assumes the origin name.",
"Reads an empty A22 event feed as evidence that the motorway is clear."
]
},
{
"id": "transit-auer-brenner-delay-probability",
"prompt": "Can you go into past data and estimate the probability that the Saturday train from Auer around 14:05 to Brenner is delayed, and by how many minutes?",
"expected_command_path": [
"odh gtfs datasets --json",
"odh transit stops search auer",
"odh transit stops search brenner",
"odh transit trip --from auer --to brenner --date 2026-05-16 --time 14:05 --mode train",
"odh transit trip --from auer --to brenner --date 2026-05-16 --time 14:05 --mode train --json",
"odh transit delay-stats --from auer --to brenner --time 14:05 --weekday saturday"
],
"pass_criteria": [
"Uses transit commands before raw GTFS endpoints.",
"Reports that historical delay probability is unsupported without an archived GTFS-RT history.",
"Does not infer probabilities from one live GTFS-RT response.",
"Can still provide the static timetable/direct-trip limitation if relevant."
],
"common_failures": [
"Invents historical delay probabilities.",
"Confuses static GTFS schedules with historical realtime delay observations.",
"Promises a route planner when only direct static trip matching is implemented."
]
},
{
"id": "transit-stop-id-disambiguation",
"prompt": "Find a Merano to Bolzano train without mixing the main train station with bus bays or other similarly named stops.",
"expected_command_path": [
"odh transit stops search merano --limit 10",
"odh transit stops search bolzano --limit 10",
"odh transit trip --from-stop-id <merano-stop-id> --to-stop-id <bolzano-stop-id> --date 2026-05-16 --time 13:00 --mode train"
],
"pass_criteria": [
"Uses stop search to discover GTFS stop IDs before querying the trip.",
"Uses --from-stop-id and --to-stop-id when name-based matching is ambiguous.",
"Reports if only direct static GTFS matches are supported.",
"Does not mix train-station platform IDs with bus bay results unless the selected IDs show that."
],
"common_failures": [
"Runs broad --from merano --to bolzano and ignores ambiguity warnings.",
"Chooses a bus bay because the station name matched many stops.",
"Uses broad name matching when the user asked to avoid similarly named stops."
]
},
{
"id": "transit-static-journey-with-transfers",
"prompt": "Plan a public transport route from Merano Maia Bassa to Fontanefredde, Bivio Trodena around 16:40 using only public transport.",
"expected_command_path": [
"odh transit stops search \"Merano Maia Bassa\" --limit 10",
"odh transit stops search \"Fontanefredde Bivio Trodena\" --limit 10",
"odh transit journey --from-stop-id <origin-stop-id-or-parent> --to-stop-id <destination-stop-id> --date <date> --time 16:40 --max-transfers 3",
"odh transit journey --from-stop-id <origin-stop-id-or-parent> --to-stop-id <destination-stop-id> --date <date> --time 16:40 --max-transfers 3 --with-realtime --json"
],
"pass_criteria": [
"Uses transit journey rather than manually stitching only direct trip commands.",
"Uses stop search and stop IDs or parent station IDs for ambiguous stop names.",
"Reports the returned legs, transfers, departure time, and arrival time.",
"Uses --with-realtime for current same-day questions when live delay or transfer-risk context matters.",
"States that routing is based on static GTFS and realtime is only an annotation, not live rerouting."
],
"common_failures": [
"Stops after transit trip reports no direct match.",
"Manually invents a transfer chain without using the journey command.",
"Presents GTFS-RT annotations as full live delay-aware routing.",
"Mixes nearby bus bays or platforms without checking stop IDs."
]
},
{
"id": "mobility-parking-discovery",
"prompt": "Find parking data in Open Data Hub and show how an agent should discover stations and available measurements.",
"expected_command_path": [
"odh datasets search parking",
"odh mobility types --kind station",
"odh mobility origins --station-type ParkingStation",
"odh mobility stations --station-type ParkingStation --limit 5",
"odh mobility datatypes --station-type ParkingStation --limit 1000"
],
"pass_criteria": [
"Starts with dataset or station-type discovery.",
"Uses mobility origins or station metadata before assuming a provider.",
"Distinguishes station metadata from latest measurements.",
"Keeps output machine-readable when parsing."
],
"common_failures": [
"Assumes a provider origin without checking.",
"Confuses station list output with occupancy measurements.",
"Uses generic odh call when curated discovery commands are available."
]
},
{
"id": "mobility-latest-fresh-availability",
"prompt": "Show current EV charging availability without returning old inactive charging stations first.",
"expected_command_path": [
"odh mobility origins --station-type EChargingStation --limit 1000",
"odh mobility datatypes --station-type EChargingStation --origin ALPERIA --limit 1000",
"odh diagnostics ev-charging --origin ALPERIA --fresh-within 24h --request-limit 10000 --limit 10",
"odh mobility latest --station-type EChargingStation --data-type number-available --origin ALPERIA --active --fresh-within 24h --sort newest --request-limit 1000 --limit 10 --format table"
],
"pass_criteria": [
"Uses mobility origin and datatype discovery before assuming a provider.",
"Uses diagnostics to decide whether current EV availability is reliable enough to report.",
"Uses --active, --fresh-within, and --sort newest for availability questions.",
"Reports warnings if local filters hid stale or inactive rows.",
"Does not present 2015-2017 inactive stations as current availability."
],
"common_failures": [
"Runs raw mobility latest and accepts stale upstream ordering.",
"Omits freshness filtering for a current-availability question.",
"Treats filtered-zero output as proof that the whole upstream has no data without considering request-limit warnings."
]
},
{
"id": "parking-forecast-data-quality",
"prompt": "Can you show current Merano parking and the 60 minute forecast if the forecast is reliable?",
"expected_command_path": [
"odh mobility origins --station-type ParkingStation --limit 1000",
"odh diagnostics parking-forecasts --origin \"Municipality Merano\" --fresh-within 2h --forecast-minutes 60 --request-limit 10000 --limit 10",
"odh mobility latest --station-type ParkingStation --data-type free --origin \"Municipality Merano\" --active --fresh-within 2h --sort newest --request-limit 10000 --limit 10 --format table"
],
"pass_criteria": [
"Uses diagnostics before reporting the forecast as reliable.",
"Reports current occupancy when fresh current rows exist.",
"Omits or caveats forecast values when the diagnostic verdict is current_only.",
"Does not report stale forecast rows as a live 60 minute prediction."
],
"common_failures": [
"Shows stale parking-forecast-60 values without checking freshness.",
"Treats missing fresh forecast rows as zero forecast availability.",
"Drops the current occupancy even when only the forecast is stale."
]
},
{
"id": "tourism-events-data-quality",
"prompt": "Find events near Merano today and say whether the location and active-date data is reliable.",
"expected_command_path": [
"odh diagnostics tourism-events --date <today> --limit 20",
"odh call tourism /v1/EventShort --param pagenumber=1 --param pagesize=20 --param onlyactive=true"
],
"pass_criteria": [
"Uses diagnostics to inspect ActiveToday, local date status, and GPS availability.",
"Mentions when upstream onlyactive=true returns rows that local checks mark as inactive, future, or expired.",
"Avoids precise radius claims for rows with missing GpsInfo.",
"Keeps Tourism event caveats separate from Mobility traffic-event caveats."
],
"common_failures": [
"Assumes onlyactive=true means every row is active today.",
"Claims nearby events from records without GPS.",
"Uses the traffic layer for Tourism events."
]
},
{
"id": "transit-pin-to-kaltenbrunn-static-caveat",
"prompt": "From a location near Sinich/Merano, how do I get to Kaltenbrunn/Fontanefredde, Truden by public transport only?",
"expected_command_path": [
"odh transit stops search \"Merano Maia Bassa\" --json",
"odh transit stops search \"Fontanefredde\" --json",
"odh transit journey --from-stop-id <maia_bassa_parent_or_stop_id> --to-stop-id <fontanefredde_stop_id> --date <today> --time <now> --max-transfers 3 --with-realtime --json"
],
"pass_criteria": [
"Uses stop search to resolve exact GTFS stop IDs instead of relying only on ambiguous place names.",
"Uses transit journey for transfer planning instead of direct trip lookup.",
"Mentions that routing is static GTFS with optional current GTFS-RT annotations, not full live rerouting.",
"Does not invent walking legs beyond what the user location and stop search support."
],
"common_failures": [
"Uses a direct-trip command and misses required transfers.",
"Treats missing GTFS-RT matches as proof that service is on time.",
"Routes from central Merano without acknowledging the user started near Sinich/Maia Bassa."
]
},
{
"id": "a22-past-local-incident-caveat",
"prompt": "There was an A22 incident near Neumarkt/Pfatten yesterday around 11:00. Can you check why the CLI did not find it?",
"expected_command_path": [
"odh a22 status --json",
"odh mobility datatypes --station-type TrafficSensor --origin A22 --json",
"odh traffic search neumarkt --today --include-stale --json"
],
"pass_criteria": [
"Uses A22 status to inspect the A22 event and forecast feeds and recognizes that neither is live incident evidence.",
"Explains that current ODH/A22 feeds may not retain yesterday's local incident history.",
"Does not add a historical reconstruction feature just to answer one missed incident.",
"Suggests dated official/external archives only as a separate source, not as ODH CLI truth."
],
"common_failures": [
"Backfills a reason from current forecast data.",
"Claims the CLI can answer historical A22 incident questions from live feeds.",
"Proposes a broad scraper or archive collector without evidence that this belongs in the clean CLI."
]
}
]
}