agentleFS
ludodelotludodelot/travel-planner-skill/SKILL.md

travel-planner

Skill0 starsChanged 25 days agoMITView on GitHub

Plan, compare, verify and prepare trips end to end. Use when the user wants to choose where to go, check real prices today, fit a trip around work and public holidays, pick hostels or hotels and transport, build a walking itinerary (photo and video friendly), prepare a ready-to-buy checklist with browser tabs opened for them, check entry requirements, or export the plan to a calendar with map links. Covers live price verification, search efficiency, browser purchase mode, calendar export and how to present results.

21 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 8 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Look for a traveler profile (the user's notes, project memory or a file based on templates/traveler-profile.md).

    line 12
  2. Very specific:

    Check which tools are connected (references/setup-and-mcps.md) and tell the user once what you can and cannot do (browser tabs, calendar, …

    line 14
  3. Distinctive:

    Do not store secrets: No booking references, PINs, card data, passport numbers or phone numbers in notes, repos or calendar events.

    line 23
  4. Very specific:

    Run the tests with python3 -I -m unittest discover -s tests.

    line 62

“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Travel Planner

A Claude Code skill for planning trips with an AI agent. It is built from real planning sessions, so it is opinionated about what to verify, what to ask and what never to do without the traveler.

First run: know the traveler

  1. Look for a traveler profile (the user's notes, project memory or a file based on templates/traveler-profile.md). Read it before asking anything.
  2. If there is none, ask for the essentials in one short message (home airport, nationality for entry rules, budget style, pace, interests, deal-breakers, work pattern and holidays, places already visited) and offer to save the profile in the user's own notes. Do not save it in a shared repository.
  3. Check which tools are connected (references/setup-and-mcps.md) and tell the user once what you can and cannot do (browser tabs, calendar, drafts).

Core rules

  1. Verify live, never quote stale prices. Label every number verified, from-price or estimate and say when it was checked. See references/price-verification.md.
  2. Fit the trip to the real calendar first. Work days, remote days, public holidays (national, regional, municipal) and bridges decide which trips cost vacation days. Use scripts/free_trip.py. See references/constraints-and-calendar.md.
  3. Check entry requirements before any ticket. See references/entry-requirements.md.
  4. Never pay, submit, send or accept for the traveler. Prepare, open the right pages, fill forms only with explicit confirmation, and leave consent and the final button to them. See references/safety-and-consent.md.
  5. Recommend, do not survey. Lead with the choice and the reason, show a small table, flag what is unverified, end with the next action. See references/results-format.md.
  6. Do not store secrets. No booking references, PINs, card data, passport numbers or phone numbers in notes, repos or calendar events.

Workflow

PhaseWhat to doReference
1. ClarifyDates or windows, budget, travelers, pace, interests, constraints, places visited, deal-breakersreferences/workflow.md
2. ConstraintsWork schedule, remote days, holidays, bridges, fixed bookingsreferences/constraints-and-calendar.md
3. SearchParallel, deterministic, cheap searches first; deep research only for the shortlistreferences/search-efficiency.md, references/tools-and-mcps.md, references/destination-research.md
4. VerifyLive prices, date variants, baggage, cancellation, notices, entry rulesreferences/price-verification.md, references/entry-requirements.md
5. DecideTwo or three options with trade-offs and a clear pickreferences/results-format.md, references/budget.md
6. Prepare purchaseOrdered checklist with direct links; open ready-to-buy tabs; one-screen pre-pay reviewtemplates/pre-pay-review.md, references/browser-purchase-tabs.md, references/transport.md, references/accommodation.md, templates/purchase-checklist.md
7. ItineraryWalking-friendly, light-aware, with rain plan and verified hoursreferences/itinerary-design.md, scripts/sun.py
8. ExportCalendar events with local times and map links, or an .ics filereferences/calendar-export.md, scripts/ics.py
9. RecordUpdate the trip note, lessons and pending itemstemplates/trip-note.md
10. After the tripActuals vs. plan, lessons, travel log, content, anonymized case studyreferences/post-trip.md

Scripts (standard library only, tested)

ScriptUse it to
scripts/links.pyBuild Google Flights, Booking, Hostelworld and Maps links; a "go now" directions link needs no origin
scripts/free_trip.pyCount how many vacation days a trip costs given weekends, holidays and remote days
scripts/sun.pySunrise, sunset and civil twilight for any place and date, with no network
scripts/ics.pyWrite an .ics file from itinerary events when no calendar connection exists (cli.py ics events.json --out trip.ics)
scripts/price_log.pyLog every price with its label, source and time; list stale prices and how much a price moved (cli.py price add/show/stale)
scripts/compare.pyRank options by effective cost per day (vacation days, transit hours, new country, refundability), with raw numbers in the table
scripts/holidays.py + data/holidays/Public-holiday data per region and year, with sources, a checked date, a confidence note and levels (national, region, city)
scripts/cli.pyOne command for all of the above, so you can run it without writing code

Examples:

python3 -I scripts/cli.py free-trip 2026-11-07 2026-11-10 --remote 1,4 --region ES-MD-2026 --back-home-to-work
python3 -I scripts/cli.py sun 55.9533 -3.1883 2026-11-08 --tz Europe/London
python3 -I scripts/cli.py booking "San Sebastián" 2026-10-31 2026-11-02 --hostels --sort-price
python3 -I scripts/cli.py maps "Edinburgh Airport" --mode transit

Run the tests with python3 -I -m unittest discover -s tests. Check behavior with evals/scenarios.md.

Browser mode in one paragraph

List the user's tabs, open new tabs for each task, navigate with deterministic URLs, read the page text and extract only price, times and conditions, stop at checkout, fill forms only with confirmed values and stop before consent and submit, then report a table of tab -> what to do. Full playbook: references/browser-purchase-tabs.md.

Definition of done for a trip plan

  • Constraints mapped and vacation cost known.
  • Prices verified today, labeled, with a shifted-date alternative checked.
  • Entry requirements confirmed with an official source.
  • Purchase checklist ordered, with direct links and what is refundable.
  • Unverified items listed with how to check them.
  • Calendar or .ics prepared if the user wants it, with notifications off.
  • Pending items dated, and no secrets stored.

Quick-start prompts

  • "Plan a long weekend in November for under 300 EUR; I like photography and walking."
  • "Is this trip really free given my work schedule and holidays?" (use free_trip.py)
  • "Open the tabs so I can buy this."
  • "Put the itinerary in my calendar with map links."
  • "What events can I go to near my trip?" (references/events-and-networking.md)

When data is missing or blocked

Say so explicitly and give the nearest verified alternative and the exact manual step. Typical cases: a booking site that ignores dates, a ticket page with only a waiting list, a script blocked by the browser, a page that needs login.

Files

SKILL.md                 this file
references/              one topic per file (workflow, search, tools, price, constraints,
                         entry, accommodation, transport, itinerary, calendar, results,
                         safety, events, budget, browser tabs, setup, destination research,
                         post-trip, lessons)
templates/               trip note, purchase checklist, pre-pay review, calendar event, itinerary prompt, traveler profile
scripts/                 cli, links, free_trip, holidays, sun, ics, compare, price_log (standard library only)
data/holidays/           public-holiday files per region and year
tests/                   unit tests for the scripts
examples/                anonymized case studies
evals/                   scenarios to check an agent follows the skill
install.sh               copy the skill into ~/.claude/skills/travel-planner

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.