CLAUDE

AGENTS.md - AI Assistant Context

This file contains preferences and requirements for AI assistants helping with travel planning for the Summer 2026 trip.

Preferences

The trip starts on June 11 and ends at July 4. We are mainly traveling with train (Interail). We are travelling to Italy and stopping along they way. Start and endpoint is Stockholm, Sweden. One traveller can only walk about 500 m so local travel need to include taxi, e-scooters, public transport, car rental etc.

Transport

Destinations

Interests

Research

Region Deep Dives

Saved Articles

Budget

Tooling for agents

Source of truth

calendar/itinerary.py is the single source of truth for the day-by-day plan. The build pipeline derives two outputs from it:

  1. calendar/italy-2026.ics — subscribed in Apple Calendar via a secret gist
  2. Itinerary.md — auto-generated human-readable page on the website

Do NOT hand-edit Itinerary.md — it is overwritten on every build. Edit calendar/itinerary.py instead.

Website (Cloudflare Pages)

Calendar (Apple Calendar subscription)

Stop hook

.claude/settings.json wires a Stop hook that runs .claude/hooks/site-sync.sh after every assistant turn. The script:

  1. Runs calendar/sync.sh → updates Apple Calendar gist if itinerary changed
  2. Runs bin/rake build publish → regenerates Itinerary.md, rebuilds HTML, deploys to Cloudflare Pages if changed

Idempotent and silent on no-op (exit 0). On failure: exits 2 with a structured recovery guide written to stderr, which Claude Code injects back into the conversation for the next agent.

Timetable lookups

Use the eu-rail-timetable project skill to query live 2026 train timetables across SE/DK/DE/AT/IT (db-rest HAFAS proxy). Covers SJ, Nightjet, ICE, Trenitalia. Italo not covered.