plan-tour-route
について
このスキルは、位置情報のジオコーディング、移動時間を最小化する経由地の順序付け、時間・距離マトリクスの計算を通じて、複数地点を巡るツアー経路の計画と最適化を行います。OpenStreetMapデータを活用して、推定の車両・徒歩移動時間を含む旅程を生成し、経路上の興味深い地点を発見します。複数の目的地を訪問する順序を最適化したり、交通手段を比較したりする必要がある場合、ロードトリップやウォーキングツアーにご活用ください。
クイックインストール
Claude Code
推奨npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/plan-tour-routeこのコマンドをClaude Codeにコピー&ペーストしてスキルをインストールします
ドキュメント
Tourroute planen
Planen and optimize a multi-stop tour route with time estimates, distance calculations, and points of interest along the way.
Wann verwenden
- Planning a road trip or walking tour with multiple destinations
- Optimizing visit order to minimize total travel time or distance
- Discovering restaurants, viewpoints, or cultural sites along a route
- Generating a day-by-day itinerary with realistic time budgets
- Comparing driving vs. walking vs. public transport options
Eingaben
- Erforderlich: Auflisten of waypoints (place names, addresses, or coordinates)
- Erforderlich: Travel mode (driving, walking, cycling, public transport)
- Optional: Starten and end points (if different from first/last waypoint)
- Optional: Time constraints (departure time, must-arrive-by, opening hours)
- Optional: POI categories to discover (food, viewpoints, museums, fuel)
- Optional: Preferred route type (fastest, shortest, scenic)
Vorgehensweise
Schritt 1: Definieren Waypoints
Sammeln and structure all stops the tour must include.
Waypoint Schema:
┌──────────┬────────────────────────────────────────────┐
│ Field │ Description │
├──────────┼────────────────────────────────────────────┤
│ name │ Human-readable label for the stop │
│ address │ Street address or place name │
│ lat/lon │ Coordinates (if known; otherwise geocode) │
│ duration │ Time to spend at this stop (minutes) │
│ priority │ Must-visit vs. nice-to-have │
│ hours │ Opening/closing times (if applicable) │
│ notes │ Parking, accessibility, booking required │
└──────────┴────────────────────────────────────────────┘
Trennen fixed-order waypoints (e.g., hotel at start and end) from reorderable waypoints.
Erwartet: A structured list of all waypoints with at minimum a name and either an address or coordinates for each.
Bei Fehler: If a waypoint is ambiguous (e.g., "the castle"), use WebSuchen to resolve it to a specific location. If coordinates are needed but only a name ist verfuegbar, defer to Step 2 for geocoding.
Schritt 2: Geocode and Validate
Konvertieren all waypoints to latitude/longitude coordinates and verify they are reachable.
Geocoding Sources (in preference order):
1. Nominatim (OpenStreetMap) - free, no key required
https://nominatim.openstreetmap.org/search?q=QUERY&format=json
2. Overpass API - for POI-type queries
https://overpass-api.de/api/interpreter
3. Manual coordinates from mapping services
Fuer jede waypoint:
- Query the geocoding service with the address or place name
- Verifizieren the returned coordinates are in the expected region
- Pruefen, dass multiple results are disambiguated (pick the correct one)
- Speichern coordinates alongside the original waypoint data
Erwartet: Every waypoint has valid latitude/longitude coordinates, and all points fall innerhalb a plausible geographic region (no outliers on wrong continents).
Bei Fehler: If geocoding returns no results, try alternative spellings, add region/country qualifiers, or search for nearby landmarks. If a waypoint is in a remote area with poor OSM coverage, use WebSuchen to find coordinates from travel blogs or tourism sites.
Schritt 3: Optimieren Route Order
Bestimmen the visit sequence that minimizes total travel time or distance.
Optimization Strategies:
┌─────────────────────┬────────────────────────────────────────┐
│ Strategy │ When to use │
├─────────────────────┼────────────────────────────────────────┤
│ Fixed order │ Stops must be visited in given sequence│
│ Nearest neighbor │ Quick approximation for 5-15 stops │
│ TSP solver │ Optimal ordering for any number │
│ Time-window aware │ Stops have opening hours constraints │
│ Cluster-then-route │ Stops span multiple days/regions │
└─────────────────────┴────────────────────────────────────────┘
For the nearest-neighbor heuristic:
- Starten at the designated origin
- From the current position, select the unvisited waypoint closest by travel time
- Move to that waypoint and mark it visited
- Wiederholen until all waypoints are visited
- Zurueckgeben to the designated end point (if round trip)
For multi-day tours, cluster waypoints by geographic proximity first, then optimize innerhalb each day.
Erwartet: An ordered sequence of waypoints that produces a route ohne excessive backtracking. Total distance sollte innerhalb 20% of the theoretical optimum for fewer than 10 stops.
Bei Fehler: If the nearest-neighbor result has obvious backtracking (later stops are closer to earlier ones), try reversing the route or use a 2-opt improvement: swap pairs of edges and keep the swap if it shortens the route. For time-window constraints, verify that arrival times at each stop fall innerhalb opening hours.
Schritt 4: Berechnen Times and Distances
Berechnen travel time and distance fuer jede leg of the route.
Time Estimation Methods:
┌──────────────┬────────────┬────────────────────────────────┐
│ Mode │ Avg Speed │ Notes │
├──────────────┼────────────┼────────────────────────────────┤
│ Highway │ 100 km/h │ Varies by country/road type │
│ Rural road │ 60 km/h │ Add 20% for winding roads │
│ City driving │ 30 km/h │ Add time for parking │
│ Walking │ 4.5 km/h │ Flat terrain; reduce for hills │
│ Cycling │ 15 km/h │ Touring pace with luggage │
│ Hiking │ 3-4 km/h │ Use Munter formula for accuracy│
└──────────────┴────────────┴────────────────────────────────┘
Fuer jede consecutive pair of waypoints:
- Berechnen straight-line (haversine) distance as a baseline
- Anwenden a detour factor (1.3 for roads, 1.4 for urban, 1.2 for highways)
- Schaetzen travel time from adjusted distance and mode speed
- Hinzufuegen buffer time: 10% for driving, 15% for public transport
- Sum leg times plus dwell times at each stop for total tour duration
Erwartet: A time/distance matrix for all legs, with a running cumulative time that accounts for both travel and dwell time at each stop. Total tour duration sollte realistic (not exceeding available daylight for walking tours).
Bei Fehler: If estimated times seem unrealistic (e.g., 2 hours for a 10 km city drive), check whether the detour factor is appropriate. For mountain roads, increase the detour factor to 1.6-2.0. For public transport, use WebSuchen to check actual timetables anstatt estimating.
Schritt 5: Generieren Itinerary with POIs
Compile the optimized route into a complete itinerary with discovered points of interest.
POI Discovery (Overpass API query pattern):
[out:json];
(
node["tourism"="viewpoint"](around:RADIUS,LAT,LON);
node["amenity"="restaurant"](around:RADIUS,LAT,LON);
node["amenity"="cafe"](around:RADIUS,LAT,LON);
);
out body;
Recommended search radius:
- Along route corridor: 500 m for walking, 2 km for driving
- At waypoints: 1 km radius
Erstellen the itinerary document:
- Header with tour name, dates, total distance, total time
- Fuer jede day (if multi-day):
- Day summary (start, end, total km, total hours)
- Fuer jede leg: departure time, travel mode, distance, duration
- Fuer jede stop: arrival time, dwell time, description, POIs nearby
- Logistics section: parking, fuel stops, rest areas, emergency contacts
- Abbilden reference (link to route on OpenStreetAbbilden or export as GPX)
Erwartet: A complete, time-budgeted itinerary document with realistic schedules, POI suggestions at each stop, and practical logistics information.
Bei Fehler: If POI queries return too many results, filter by rating or relevance. If the itinerary exceeds available time, mark lower-priority stops as optional or split into additional days. If no POIs are found in remote areas, note this and suggest the traveler research locally on arrival.
Validierung
- All waypoints are geocoded with valid coordinates
- Route order minimizes backtracking (no obvious inefficiencies)
- Travel times are realistic for the chosen mode
- Dwell times at each stop are accounted for
- Total tour duration fits innerhalb the available time window
- POIs are relevant and located near the route
- Opening hours of time-sensitive stops are respected
- Itinerary includes practical logistics (parking, fuel, rest stops)
Haeufige Stolperfallen
- Ignoring opening hours: Optimizing purely by distance can route you to a museum nach it closes. Always check time-window constraints for attractions.
- Underestimating urban travel: City driving and parking can double the expected time. Hinzufuegen generous buffers for urban stops.
- Over-packing the itinerary: Filling every minute leaves no room for delays or spontaneous discoveries. Erstellen in 30-60 minutes of slack per half-day.
- Straight-line distance fallacy: Haversine distance severely underestimates actual road distance, besonders in mountainous or coastal terrain. Always apply a detour factor.
- Forgetting return logistics: One-way routes need plans for returning rental cars, catching trains, or arranging pickup.
- Seasonal road closures: Mountain passes, ferries, and scenic routes kann closed seasonally. Verifizieren access dates vor routing.
Verwandte Skills
create-spatial-visualization— render the planned route on an interactive mapgenerate-tour-report— compile the itinerary into a formatted Quarto reportplan-hiking-tour— specialized planning for hiking segments innerhalb a tourassess-trail-conditions— check conditions for any walking/hiking legs
GitHub リポジトリ
関連スキル
content-collections
メタこのスキルは、Content Collections(Markdown/MDXファイルを型安全なデータコレクションに変換するTypeScriptファーストのツール)の本番環境でテストされた設定を提供します。Zodバリデーションによる型安全性を実現し、ブログ、ドキュメントサイト、コンテンツ重視のVite + Reactアプリケーション構築時にご利用ください。Viteプラグインの設定、MDXコンパイルから、デプロイ最適化、スキーマバリデーションまで、すべてを網羅しています。
polymarket
メタこのスキルは、開発者がPolymarket予測市場プラットフォームを活用したアプリケーション構築を可能にします。API統合による取引や市場データの取得に加え、WebSocketを介したリアルタイムデータストリーミングにより、ライブ取引や市場活動を監視できます。取引戦略の実装や、ライブ市場更新を処理するツールの作成にご利用ください。
creating-opencode-plugins
メタこのスキルは、開発者がコマンド、ファイル、LSP操作など25種類以上のイベントタイプにフックするOpenCodeプラグインを作成することを支援します。JavaScript/TypeScriptモジュール向けに、プラグイン構造、イベントAPI仕様、および実装パターンを提供します。カスタムイベント駆動ロジックでOpenCode AIアシスタントのライフサイクルをインターセプト、監視、または拡張する必要がある場合にご利用ください。
sglang
メタSGLangは、高性能なLLMサービングフレームワークであり、RadixAttentionプレフィックスキャッシュを活用したJSON、正規表現、エージェントワークフロー向けの高速で構造化された生成を特長とします。特にプレフィックスが繰り返されるタスクにおいて、大幅に高速な推論を実現し、複雑な構造化出力やマルチターン対話に最適です。制約付きデコードが必要な場合や、広範なプレフィックス共有を伴うアプリケーションを構築する場合は、vLLMなどの代替案ではなくSGLangを選択してください。
