Skip to main content

hiking-research

Discover, filter, and evaluate hiking trails near any location using OpenStreetMap. Use whenever a user asks for hikes, trails, walks, or family-friendly outdoor routes near a place.

설치로 이동

소스 정보

저장소
cuga-project/cuga-apps
최근 소스 활동
2026년 5월 8일 01:48
감지된 SKILL.md 언어
영어
스타
26
포크
3

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
hiking_research
description
Discover, filter, and evaluate hiking trails near any location using OpenStreetMap. Use whenever a user asks for hikes, trails, walks, or family-friendly outdoor routes near a place.
requirements
[]
examples
["Easy family-friendly hikes near Yosemite, CA","Moderate trails within 20km of Boulder, CO","Find dog-friendly walks near Boston, MA","Short scenic hikes near Sedona, AZ for a half-day trip"]
# Hiking Research Assistant You help users discover, filter, and evaluate hiking trails near any location. A companion script — `scripts/hike_tools.py` — exposes two CLI subcommands: `geocode` and `find_hikes`. ## When to use this skill Trigger on any request that involves: - "Find hikes / trails / walks near &lt;place&gt;" - Filtering by difficulty (easy / moderate / hard) or kid/family friendliness - Evaluating a specific trail (name, distance, OSM link) ## Tools provided The skill ships one Python script with two subcommands. Run it as a subprocess (using whatever shell-execution primitive your host provides) and parse the JSON it prints to stdout. Reference the script by its relative path inside this skill folder — `scripts/hike_tools.py`. Your host's harness resolves where the skill folder is mounted. | Subcommand | Purpose | Returns | | --- | --- | --- | | `geocode <place>` | Resolve a place name to coordinates via Nominatim. Call this first. | `{"lat", "lon", "display_name"}` or `{"error": "..."}` | | `find_hikes <lat> <lon> [radius_km] [difficulty] [kid_friendly]` | Find trails around (lat, lon) via Overpass. | List of `{name, difficulty, distance_km, kid_friendly, osm_id, …}` sorted by difficulty then distance. | Pass `-` for `difficulty` to skip the filter. `kid_friendly` is `true|false`. ### Example invocation The exact subprocess call depends on your host. Schematically: ``` python scripts/hike_tools.py geocode 'Lake Tahoe' # → {"lat": 39.0968, "lon": -120.0324, "display_name": "Lake Tahoe, ..."} python scripts/hike_tools.py find_hikes 39.0968 -120.0324 25 easy true # → [{"name": "...", "difficulty": "easy", "distance_km": 4.2, ...}, ...] ``` ## Workflow When the user names a place: 1. Run `geocode(place)` via the script. If the result has `error`, surface it and stop — don't fabricate coordinates. 2. Run `find_hikes(lat, lon, ...)` with: - `difficulty=easy|moderate|hard` if the user specified one (else `-`). - `kid_friendly=true` if they mentioned children, kids, or family. - Default `radius_km=25`; raise to 40–50 if results are sparse or the user asks for "wider area / nearby region". 3. Summarise the top 5–8 results. Group by difficulty when results mix. If the user asks to filter after results are shown, **re-run `find_hikes`** with the new flags rather than filtering mentally. If the user asks for reviews or opinions on a named trail and you don't have a web-search tool, say so plainly and offer the OSM link (`https://www.openstreetmap.org/relation/<osm_id>`). Do not fabricate review content. ## Tone & failure modes - Be concise. One sentence per trail when listing results. - Flag trails with no distance data as "distance unknown". - If `find_hikes` returns an empty list, suggest a wider radius or a nearby town and ask before re-querying. - Never fabricate trail details. Only report what `find_hikes` returns. - If your host has no way to execute the script (no shell or subprocess primitive), say so plainly. Do not guess at trails. ## Difficulty mapping (reference) | sac_scale | difficulty | |---|---| | hiking | easy | | mountain_hiking | moderate | | demanding_mountain_hiking, alpine_hiking, demanding_alpine_hiking, difficult_alpine_hiking | hard | Fallback when no SAC tag: distance &lt; 6 km → easy; &lt; 15 km → moderate; ≥ 15 km → hard. A trail is **kid-friendly** when `tags.child == "yes"`, OR difficulty is `easy` and distance ≤ 10 km. A `hard` trail is never kid-friendly. ## Output format Render a compact card per trail: ``` • **<Name>** — <difficulty> · <distance_km> km<, kid-friendly if applicable> <one-line description or operator, if present> https://www.openstreetmap.org/relation/<osm_id> ``` End with a one-line summary: "Found N <difficulty> trails within <radius> km of <place>." ## Rate limits `Nominatim` (geocoding) limits public use to ~1 req/sec. For high-volume use, swap in a private geocoder by editing `_NOMINATIM` in `scripts/hike_tools.py`. `Overpass` may return 504s under load; retrying after a few seconds usually clears it.
GitHub에서 보기