$npx -y skills add dreamiurg/claude-mountaineering-skills --skill route-researcherResearch mountain routes and generate comprehensive route beta reports for North American peaks, aggregating weather forecasts, avalanche conditions, daylight windows, trip reports, and access info from PeakBagger, SummitPost, WTA, AllTrails, and regional avalanche centers. Use w
| 1 | # Route Researcher |
| 2 | |
| 3 | Research mountain peaks across North America and generate comprehensive route beta reports combining data from multiple sources including PeakBagger, SummitPost, WTA, AllTrails, weather forecasts, avalanche conditions, and trip reports. |
| 4 | |
| 5 | **Data Sources:** This skill aggregates information from specialized mountaineering websites (PeakBagger, SummitPost, Washington Trails Association, AllTrails, The Mountaineers, and regional avalanche centers). The quality of the generated report depends on the availability of information on these sources. If your target peak lacks coverage on these websites, the report may contain limited details. The skill works best for well-documented peaks in North America. |
| 6 | |
| 7 | ## When to Use This Skill |
| 8 | |
| 9 | Use this skill when the user requests: |
| 10 | |
| 11 | - Research on a specific mountain peak |
| 12 | - Route beta or climbing information |
| 13 | - Trip planning information for peaks |
| 14 | - Current conditions for mountaineering objectives |
| 15 | |
| 16 | Examples: |
| 17 | |
| 18 | - "Research Mt Baker" |
| 19 | - "I'm planning to climb Sahale Peak next month, can you research the route?" |
| 20 | - "Generate route beta for Forbidden Peak" |
| 21 | |
| 22 | ## Progress Checklist |
| 23 | |
| 24 | Research Progress: |
| 25 | |
| 26 | - [ ] Phase 1: Peak Identification (peak validated, ID obtained) |
| 27 | - [ ] Phase 2: Peak Information Retrieval (coordinates and details obtained) |
| 28 | - [ ] Phase 3: Data Gathering (parallel execution) |
| 29 | - [ ] Phase 3a: Python conditions fetch (weather, air quality, daylight, avalanche, peakbagger stats/ascents) |
| 30 | - [ ] Phase 3b: Researcher agents (3 in parallel - web sources + trip reports) |
| 31 | - [ ] Phase 3c: Results aggregated |
| 32 | - [ ] Phase 3d: Access/permits (inline WebSearch) |
| 33 | - [ ] Phase 4: Route Analysis (synthesize route, crux, hazards) |
| 34 | - [ ] Phase 5: Report Generation (Report Writer agent) |
| 35 | - [ ] Phase 6: Report Review & Validation (Report Reviewer agent) |
| 36 | - [ ] Phase 7: Completion (user notified, next steps provided) |
| 37 | |
| 38 | ## Orchestration Workflow |
| 39 | |
| 40 | ### Phase 1: Peak Identification |
| 41 | |
| 42 | **Goal:** Identify and validate the specific peak to research. |
| 43 | |
| 44 | 1. **Extract Peak Name** from user message |
| 45 | - Look for peak names, mountain names, or climbing objectives |
| 46 | - Common patterns: "Mt Baker", "Mount Rainier", "Sahale Peak", etc. |
| 47 | |
| 48 | 2. **Search PeakBagger** using peakbagger-cli: |
| 49 | |
| 50 | ```bash |
| 51 | uvx --with patchright --from "git+https://github.com/dreamiurg/peakbagger-cli.git@v1.10.0" peakbagger peak search "{peak_name}" --format json |
| 52 | ``` |
| 53 | |
| 54 | - Parse JSON output to extract peak matches |
| 55 | - Each result includes: peak_id, name, elevation (feet/meters), location, url |
| 56 | |
| 57 | 3. **Handle Multiple Matches:** |
| 58 | - If **multiple peaks** found: Use AskUserQuestion to present options |
| 59 | - For each option, show: peak name, elevation, location, AND PeakBagger URL |
| 60 | - Format each option description as: "[Peak Name] ([Elevation], [Location]) - [PeakBagger URL]" |
| 61 | - This allows user to click through and verify the correct peak |
| 62 | - Let user select the correct peak |
| 63 | - Provide "Other" option if none match |
| 64 | |
| 65 | - If **single match** found: Confirm with user |
| 66 | - Present confirmation message with peak details and PeakBagger link |
| 67 | - Show: "Found: [Peak Name] ([Elevation], [Location])" |
| 68 | - Include PeakBagger URL in the message so user can verify: "[PeakBagger URL]" |
| 69 | - Use AskUserQuestion: "Is this the correct peak? You can verify at [PeakBagger URL]" |
| 70 | |
| 71 | - If **no matches** found: |
| 72 | - Try peak name variations systematically (see "Peak Name Variations" section): |
| 73 | - **Word order reversal:** "Mountain Pratt" → "Pratt Mountain" |
| 74 | - **Title variations:** Mt/Mount, St/Saint |
| 75 | - **Add location:** Include state or range name |
| 76 | - **Remove titles:** Try just the core name |
| 77 | - Run multiple searches in parallel with different variations |
| 78 | - Combine results and present best matches to user |
| 79 | - If still no results, use AskUserQuestion to ask for: |
| 80 | - A different peak name variation |
| 81 | - Direct PeakBagger peak ID or URL |
| 82 | - General PeakBagger search |
| 83 | |
| 84 | 4. **Extract Peak ID:** |
| 85 | - From search results JSON, extract the `peak_id` field |
| 86 | - Store for use in subsequent peakbagger-cli commands |
| 87 | - Also store the PeakBagger URL for reference links |
| 88 | |
| 89 | ### Phase 2: Peak Information Retrieval |
| 90 | |
| 91 | **Goal:** Get detailed peak information and coordinates needed for location-based data gathering. |
| 92 | |
| 93 | This phase must complete before Phase 3, as coordinates are required for weather, daylight, and avalanche data. |
| 94 | |
| 95 | Retrieve detailed peak information using the peak ID from Phase 1: |
| 96 | |
| 97 | ```bash |
| 98 | uvx --with patchright --from "git+https:// |