Travel itinerary planner
[COLM'26] SkillLearnBench is the first benchmark for evaluating continual learning methods that automatically generate agent skills.
npx -y skills add cxcscmu/SkillLearnBench --skill travel-itinerary-plannerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Build a structured multi-day travel itinerary JSON from real CSV datasets. Use this skill whenever the user asks to create a travel plan, trip itinerary, or vacation schedule from a local database of cities, restaurants, accommodations, and attractions.
SKILL.md
3.6 KB, 832 tokens by cl100k_base, as published. Nobody here has run it
Travel Itinerary Planner
Purpose
Generate a valid itinerary.json from real-world CSV data files for a multi-city road trip, respecting budget, dietary, pet, and transportation constraints.
Input Requirements
Collect from user prompt:
- Origin city and destination cities
- Travel dates and duration (number of days)
- Total budget (USD)
- Party size and special needs (pets, dietary preferences)
- Transportation mode (road trip = no flights)
- Meal cuisine preferences
Dataset Locations
| Dataset | Path |
|---|---|
| City list | data/background/citySet_with_states.txt |
| Restaurants | data/restaurants/clean_restaurant_2022.csv |
| Accommodations | data/accommodations/clean_accommodations_2022.csv |
| Attractions | data/attractions/attractions.csv |
| Distances | data/googleDistanceMatrix/distance.csv |
Planning Workflow
Step 1 — Select Destination Cities
Query citySet_with_states.txt to confirm cities exist in the dataset for the target state.
Step 2 — Plan Route and Travel Days
- Look up driving distances/durations in
distance.csv(columns:origin,destination,cost,duration,distance) - Assign travel days for long drives; designate full days for city exploration
- No flights allowed if user specifies road trip
Step 3 — Select Pet-Friendly Accommodations
Filter clean_accommodations_2022.csv:
citymatches destinationhouse_rulesdoes NOT contain"No pets"minimum nights≤ number of nights planned in that city- Choose highest
review rate numberwithin budget
Accommodation cost = price × number of nights in that city.
Step 4 — Select Restaurants by Cuisine
Filter clean_restaurant_2022.csv:
Citymatches current cityCuisinescontains one of the preferred cuisines- Spread meals across preferred cuisine types across the trip
- Skip meals (
"-") on long travel days when meals aren't practical
Step 5 — Select Attractions
From attractions.csv:
Citymatches current city- Choose 2–4 per full day in city
- Format:
"Name1;Name2;Name3;"(semicolon-separated, trailing semicolon)
Step 6 — Budget Check
Total = sum(accommodation nightly rate × nights per city) + sum(meal average costs)
Target: Total ≤ budget
Transport has no explicit cost in datasets (self-driving); gas/misc covered by remaining budget.
Output JSON Structure
{
"plan": [
{
"day": 1,
"current_city": "from A to B",
"transportation": "Self-driving: from A to B",
"breakfast": "Restaurant Name, City",
"lunch": "-",
"dinner": "Restaurant Name, City",
"attraction": "-",
"accommodation": "Accommodation Name, City"
}
],
"data_sources": [
"background/citySet_with_states.txt",
"accommodations/clean_accommodations_2022.csv",
"restaurants/clean_restaurant_2022.csv",
"attractions/attractions.csv",
"googleDistanceMatrix/distance.csv"
]
}
Key Rules
- Travel days:
current_city="from A to B", skip attractions, include meals only when practical - Staying days:
current_city= city name, list attractions, full meals - Last day (return):
accommodation="-"(back home) - Always end
attractionstrings with a trailing semicolon - All data must come from the CSV files — never invent restaurants, accommodations, or attractions