Situation: someone hosts a group trip — a tour leader, retreat organizer, small-group operator, or the person who plans the family reunion. They juggle a dozen people's needs in their head or a messy spreadsheet.
The method applied: take the personal trip-curation system already running (for myself and Annemarie) and generalize it from a pair to a group. Structure the participant knowledge deliberately, and the trip plans itself around everyone at once — and keeps improving while it runs.
A group-travel host holds unstructured knowledge in their head: who's a difficult sleeper, who's vegetarian (and who of those is coeliac), who has a knee, who's been to Rome already, who quietly hates museums. It's un-queryable, forgotten between trips, and the trip is a compromise nobody chose. Every trip starts from zero. Not a planning problem — a structure problem.
1. Intake → structured participant profiles. Each participant shares via a simple form: interests, anti-interests (a real veto, not a soft preference), constraints (diet, mobility, sleep, medical highlights, budget). One structured profile per person — not prose in an inbox. 2. Collection → a better plan. The itinerary is shaped by the group aggregate: activities scored by group affinity, anti-interests filtered out, constraints honored (room list knows the light sleeper; restaurant list knows the coeliac). Exactly what plan_trip.py already does, generalized from one companion to a group. 3. Daily feedback → continuous improvement. A one-tap daily form per participant feeds back; tomorrow's plan adjusts to today's signal. The trip learns as it runs. 4. Memories → automated group album. Photos from all participants pool into a structured, day-by-day group album; a shared online photobook / trip site is generated. Shared memory as an automatic byproduct of structure.
Every loop already exists as running machinery in C:/Repos/ai/travel-curation/ + trips.duckdb:
dim_preference, fact_exclusion, derive_exclusions.py, load_preferences.py (21 scored signals, anti-prefs, 642 place-exclusions).plan_trip.py (affinity ranking, facts-only brief in-voice).map_place_annemarie, export_annemarie.py — already personalizes/exports for one companion; the use case makes it N.dim_trip_day, fact_activity, bridge_activity_photo, link_trip_photos.py.site/pages/trips/), photo web-optimization, built + HTTP-200 verified.The use case is a generalization of a proven personal system — the brand promise made concrete.