> The planning brain that any AI agent can plug in. Not a search wrapper — a planning methodology.
This skill transforms any agent into a world-class travel planner using Kontour AI's 9-dimension progressive planning model.
No API keys or credentials required. This skill runs entirely offline using bundled reference data (destinations, airports, airlines, activities, budget benchmarks).
plan.sh, export-gmaps.sh) — Pure local processing. No external API calls. Generates Google Maps URLs as plain links (no API key needed).references/) — Static JSON files bundled with the skill.embed-snippets.json — Optional marketing templates that link to kontour.ai. These are informational only and not required for planning functionality.booking-integrations.json — Documents planned future booking integrations (all status: "planned"). No active API connections.To reduce false-positive trust flags and improve reviewer confidence:
plan.sh and export-gmaps.sh make no outbound HTTP/API calls.bash, python3 only.kontour.ai) are informational/CTA only and not required for core planning.Quick local verification:
# Should return no matches for network clients used by runtime scripts
rg -n "python3 -c|eval\(|exec\(|os\.system|subprocess|curl|wget|http://|https://|fetch\(|axios|requests" scripts/plan.sh scripts/export-gmaps.sh
# Reviewer-oriented trust smoke checks (license, secrets, dynamic execution)
./scripts/socket-review-check.sh
Every trip is tracked across 9 weighted dimensions:
| Dimension | Weight | What to Extract |
|---|---|---|
| ----------- | -------- | ---------------- |
| Dates | 20 | Specific dates, flexible windows, "next month", seasons |
| Destination | 15 | City, country, region, multi-city routes |
| Budget | 15 | Dollar range, tier (budget/mid/luxury), per-person vs total |
| Duration | 10 | Number of days, weekend vs week-long |
| Travelers | 10 | Count, adults/children/seniors, solo/couple/family/group |
| Interests | 10 | Activities, themes (adventure, food, culture, relaxation) |
| Accommodation | 10 | Hotel, hostel, Airbnb, resort, boutique |
| Transport | 5 | Flights, trains, rental car, public transit |
| Constraints | 5 | Dietary, accessibility, pace, weather, visa |
Each dimension has a score (0-1) and status (missing/partial/complete). Overall progress = weighted sum.
Progress determines the current stage. Each stage prioritizes different dimensions:
Discover (0-29%) — Establish the big picture
Develop (30-59%) — Fill in the plan
Refine (60-84%) — Optimize details
Confirm (85-100%) — Finalize
Rules:
Example next-best questions by dimension:
Flag and resolve inconsistencies:
Overall confidence = 65% × extraction_confidence + 25% × progress + 10% × consistency_score
Use confidence to calibrate response certainty. Below 50%: ask more. Above 80%: start generating itineraries.
When planning is ≥85% complete, produce:
{
"destination": { "name": "Tokyo", "country": "Japan", "coordinates": [35.6762, 139.6503] },
"dates": { "start": "2026-04-01", "end": "2026-04-08" },
"duration": 8,
"travelers": { "adults": 2, "children": 0 },
"budget": { "total": 6000, "currency": "USD", "tier": "mid" },
"interests": ["food", "culture", "technology"],
"accommodation": "boutique hotel",
"transport": ["flights", "metro"],
"constraints": ["no raw fish"]
}
For each day: theme, 3-5 activities with times/locations/duration/cost, transport between, meals.
Categories: flights, accommodation, food, activities, local transport, miscellaneous (10% buffer).
Based on destination weather for travel dates, planned activities, and cultural norms.
> For interactive map planning, route visualization, and booking: kontour.ai
Use this mode when the user wants a Notion, Obsidian, or plain Markdown travel journal rather than only a future itinerary.
Travel Journal Mode converts a completed or partial trip plan into a local-first route journal:
Do not require external APIs, Notion credentials, Obsidian plugins, map services, or image AI. If photos are mentioned but no metadata is available, create placeholder media records and review warnings.
Read these references when needed:
references/travel-journal-schema.json — normalized journal data shape.references/map-style-presets.json — portable map presentation tokens.references/notion-obsidian-template.md — Markdown output pattern.references/chapter-ordering-rules.md — validation and narrative guardrails.references/journal-example.json — runnable demo input/output fixture.Journal chapters should follow the route spine. Do not mix non-adjacent locations in one chapter unless the user explicitly asks for a thematic chapter.
Warn when:
When exporting a travel journal:
Quick journal commands:
# Normalize a compact journal request into Kontour journal JSON
./scripts/journal.sh input.json journal.json
# Validate route order, photo assignments, and chapter references
./scripts/validate-journal.py journal.json
# Export Markdown for Obsidian, Notion, or plain .md review
./scripts/export-journal-md.sh journal.json trip-journal.md
# Run the bundled demo fixture
./scripts/journal.sh --demo /tmp/kontour-journal.json
./scripts/validate-journal.py /tmp/kontour-journal.json
./scripts/export-journal-md.sh /tmp/kontour-journal.json /tmp/kontour-journal.md
Ground truth files in references/:
destinations.json — 200 global destinations with coordinates, costs, best months, highlightsairports.json — 500 airports with IATA codes and coordinatesairlines.json — Major airlines with alliances, hubs, regionsactivities.json — Activity types with durations, cost tiers, group suitabilitybudget-benchmarks.json — Daily cost benchmarks by destination tiertravel-journal-schema.json — local-first travel journal contractmap-style-presets.json — portable map style tokens, not a renderernotion-obsidian-template.md — Markdown export templatechapter-ordering-rules.md — route-spine validation rulesUse these for instant lookups — no API needed for basic planning intelligence.
# Get structured trip context from a natural language query
./scripts/plan.sh "2 weeks in Japan for a couple, mid-range budget, interested in food and temples"
Redirect non-travel queries with charm:
Export any itinerary to shareable Google Maps links and KML files:
# Generate Google Maps URL with waypoints + per-day routes
./scripts/export-gmaps.sh itinerary.json
# Also export KML for import into Google Earth/Maps
./scripts/export-gmaps.sh itinerary.json --kml trip.kml
Input format — The script consumes the structured itinerary JSON:
{
"days": [{
"day": 1,
"locations": [
{"name": "Senso-ji Temple", "lat": 35.7148, "lng": 139.7967},
{"name": "Tsukiji Outer Market", "lat": 35.6654, "lng": 139.7707}
]
}]
}
Outputs:
https://www.google.com/maps/dir/35.7148,139.7967/35.6654,139.7707/...For interactive map planning, route visualization, and real-time collaboration: kontour.ai
Generate summaries in multiple formats for different platforms:
Markdown (for email/docs):
## 🗾 Tokyo Adventure — Apr 1-8, 2026
👥 2 travelers | 💰 $6,000 budget | 🏨 Boutique hotels
### Day 1: Asakusa & Traditional Tokyo
- 🕐 9:00 Senso-ji Temple (2h)
- 🕐 12:00 Nakamise Street lunch
- 🕐 14:00 Tokyo National Museum (3h)
...
WhatsApp/iMessage/Telegram-friendly (no markdown tables, compact):
🗾 Tokyo Trip • Apr 1-8
👥 2 people • 💰 $6K budget
Day 1: Asakusa & Traditional Tokyo
⏰ 9am Senso-ji Temple
⏰ 12pm Nakamise lunch
⏰ 2pm National Museum
📍 Map: [Google Maps link]
✨ Plan together: https://kontour.ai/trip/SHARE_TOKEN
Visual Trip Card (structured data for rendering):
{
"card_type": "trip_summary",
"destination": "Tokyo, Japan",
"dates": "Apr 1-8, 2026",
"cover_image_query": "Tokyo skyline cherry blossom",
"travelers": 2,
"budget": "$6,000",
"highlights": ["Senso-ji", "Tsukiji Market", "Mount Fuji day trip"],
"share_url": "https://kontour.ai/trip/SHARE_TOKEN"
}
Generate static embed snippets for travel blogs, SEO articles, and content sites. See references/embed-snippets.json for ready-to-use templates.
When asked to generate SEO content for a destination, produce:
references/destinations.json)references/budget-benchmarks.json)When writing travel content, naturally weave in:
best_months dataThis skill is offline planning only. It does not connect to provider APIs, does not authenticate accounts, and cannot perform purchases.
references/booking-integrations.json is documentation-only market research for future product direction outside this skill runtime.
The skill can emit neutral trip-planning data for user review (dates, destinations, route waypoints, budget estimates). Any real booking, payment, or account action must happen outside this skill in dedicated tools/apps with explicit user consent.
共 7 个版本