hike
Skill24 starsChanged 2 months agoMITView on GitHub
Build a hike brief with a real topographic map, the traced route from OpenStreetMap, trailhead coordinates, and verified conditions. Use whenever Alex asks for a hike, a trail, a walk, "somewhere to explore", or asks about a trail he's already on. Never recommend a trail without running this.
In this repository27 other files it gives its agents.
- persona.example/AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agentsSkill
- cloudflareSkill
- deep-researchSkill
- fishingSkill
- frontend-designSkill
- generationSkill
- gifgrepSkill
- historySkill
- image-genSkill
- instant-shareSkill
- iterative-designSkill
- kitchenSkill
- printingSkill
- radaromega-proSkill
- radaromegaSkill
- remindersSkill
- skycamSkill
- summarizeSkill
- compare-optionsSkill
- research-trioSkill
- teamsSkill
- trading-loopSkill
- videoSkill
- voice-memoSkill
- web-design-guidelinesSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 86
Write a spec JSON (shape documented at the top of build_brief.py), then:
- Distinctive: line 116
Sources: - every one dated, with what was read.
- Distinctive: line 127
No emojis anywhere in the output.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Hike
One trail, one brief: topo map with the actual route drawn on it, trailhead coordinates, mile-by-mile of how the scenery changes, and closures checked against the land manager rather than a blog.
Hard rules
- Never draw a route you did not resolve.
trail_geometry.pyreturnstraced: falsewhen it cannot find real geometry. That is a fine outcome. The map then shows the OSM trail network with the trailhead pinned and says so in the legend. A confident wrong line on a topo map gets somebody lost. - Never state a coordinate you have not seen in a source this turn. Two independent agreeing sources or don't publish the decimal. Address plus "I didn't get a verified pin" beats a plausible-looking wrong one.
- Check the land manager for closures before recommending. AllTrails comments lag by years. The Conservancy / DCNR / sanctuary page is the truth. Tucquan Glen's parking has been shut indefinitely while every listicle still sends people there.
- Lead with how the scenery changes. Alex and Sam have a running joke about biome changes and he actively dislikes trails that look the same the whole way (he named the Enola Low Grade). A trail that shifts from creek bottom to ridge to overlook is the product. Say where each shift happens.
- Always give coordinates and a route link. Standing request as of 2026-08-02. Decimal degrees, five places, plus a mapping link.
Pipeline
1. research web_search + the land manager's own page
2. geometry scripts/trail_geometry.py -> route.geojson
3. map scripts/render_map.py -> map.png
4. brief scripts/build_brief.py -> index.html
5. deliver instant-share, or send_attachment for the PNG alone1. Research
Get these before writing anything. Distance and gain from a route source (AllTrails, HikingProject, Gaia), then the land manager page for status:
- Lancaster Conservancy lancasterconservancy.org/preserves/
<slug>/ - PA state parks pa.gov -> DCNR -> find-a-park ->
<park>-> hiking - Hawk Mountain hawkmountain.org (private, charges a trail fee)
- National Park Service nps.gov/
<code>
Note the parking situation explicitly. It is the thing that ruins a drive.
2. Geometry
python3 scripts/trail_geometry.py \
--name "Conestoga Trail" --lat 39.84066 --lon -76.31640 \
--radius-km 6 --out route.geojsonPrints a JSON summary. traced: true means a path was resolved.
--name should be the blazed route name, not the local loop name. Waymarked
Trails indexes OSM route relations, so "Conestoga Trail" resolves and returns
the whole 63 mile system; --radius-km then clips it to the part near your
trailhead. For a park loop with no route relation ("Boone Trail"), it falls
through to Overpass, which is slow and 504s often. If both miss, continue with
traced: false and be honest in the caption.
3. Map
python3 scripts/render_map.py \
--lat 39.84066 --lon -76.31640 --label "Kellys Run and the Pinnacle" \
--route route.geojson --out map.pngOpenTopoMap basemap plus the Waymarked Trails hiking overlay, screenshotted with headless Chrome at 2x. No keys, no cost. Output is about 3200x2200 and several megabytes; downscale before sending over iMessage:
python3 -c "from PIL import Image; im=Image.open('map.png'); \
im.convert('RGB').resize((im.width//2, im.height//2)).save('map_send.jpg', quality=88)"4. Brief
Write a spec JSON (shape documented at the top of build_brief.py), then:
python3 scripts/build_brief.py --spec hike.json --map map.png --out $ARTIFACT/index.htmlThe map is base64-inlined on purpose. instant-share's server gates every
request on ?key=, so a sibling <img src="map.png"> would 403 and ship a
brief with a hole in it.
5. Deliver
For a full brief use the instant-share skill: create_artifact.sh, write
index.html, share.sh, and wait for "Verified working" before sending a URL.
For a quick answer, send_attachment the downscaled map and put the
coordinates in the message text.
What goes in the brief
The template has fixed sections. Fill all of them or drop them from the spec.
- At a glance - distance, shape (loop / out and back / point to point), climb, honest time, terrain, drive time from home, fee if any.
- The map - the render. Caption says traced or not traced, and from where.
- What changes along the way - the point of the whole thing. Numbered legs in walking order, each naming the transition: field to gorge, gorge to ridge, ridge to overlook. Name real features, not "beautiful scenery".
- Getting there - trailhead decimal coordinates, street address, route link, parking capacity, restrooms, second-car needs.
- Warnings - closures, fees, water crossings, whether feet get wet.
- Sources - every one dated, with what was read.
Notes that have already cost time
- Alex cannot shuttle two cars by default. Offer a single-car version of any point-to-point (usually an out and back to the good part) or he can't do it.
- He does 10 mile days. "Long" means 8+ for him, not 4.
- Overpass mirrors were all 504 or dead on 2026-08-02. Waymarked Trails answered in under a second for the same data. Try tier 1 first, always.
- Waymarked Trails serves EPSG:3857 metres, not lat/lon. The converter is in
trail_geometry.py; don't hand-roll it again. - No emojis anywhere in the output. Alex's standing rule on UI.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

