Skip to content
Back to skills

Find

ASecurity

Find 2–3 hikes from constraints in natural language (region/canton, date, max ascent, distance, duration, T-grade, transport origin and travel time, hut, dog, kids, loop) and rank them by conditions; then audit the one the user picks. Use for "generate/find/suggest a hike …".

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentspythongo

Works with

  • cli

Security analysis

A100/100

Scanned September 19, 2026

npx -y skills add suchipizza/BergBot --skill find --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Find?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Find
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/suchipizza-find/badge)](https://www.skillsdirectory.com/skills/suchipizza-find)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bergbot-find
description: Find 2–3 hikes from constraints in natural language (region/canton, date, max ascent, distance, duration, T-grade, transport origin and travel time, hut, dog, kids, loop) and rank them by conditions; then audit the one the user picks. Use for "generate/find/suggest a hike …".
---

# Bergbot · find

## How Bergbot works in this host (read once)

Bergbot is a Python CLI plus these skills. **You** are the LLM: you detect intent, write prose in the required
register and language, verify statuses on the web and find media. **The CLI** computes everything else. Never
compute distances, ascent, durations, intersections, timetables or scores yourself — call the CLI and quote it.

Install check: run `bergbot --version`. If missing: `pipx install bergbot` (or `uv tool install bergbot`), then
`bergbot doctor`. Every `--json` command prints one JSON document on stdout; errors are JSON on stderr with exit 2.

Rules that override everything (see CLAUDE.md in the repo):
1. Never tell the user a route or day is "safe" or any equivalent in any language ("should be fine", "go for it",
   "sans danger", "sicher", "sicuro", "kein Problem"). State what is known, what is unknown, and that the decision
   is the user's. End every warnings block with the locale fixed line the CLI returns (`safety.fixed_line`).
2. Obey `register` from the CLI output: `serious` → precise, no humour, no emoji except 🔴🟠🟡, no mascot, no media
   offer unless asked. `playful` → warm, short, one line of mountain humour at most.
3. Reply in the language of the user's last message (en/fr/de/it) and pass `--lang xx` to the CLI.
4. Warnings first. Then route line, weather, transport, why, attachment, closing question. ≤ 12 lines.
   The CLI's `bergbot message <audit.json>` already renders this block verbatim — use it as the message body and
   add at most one short sentence of your own (playful register only).
5. Unverified stays unverified. A timetable is not a running lift; an OSM tag is not an open hut. Only a web page
   you actually read (operator, SAC, canton) with a quote ≤ 15 words can verify a status.
6. Deliver files: the report `bergbot-report-*.html` and, on request, `bergbot-route-*.gpx` — say the path, and if
   the channel supports attachments, attach them. After a GPX: "Open in swisstopo → Import."

## Steps

1. Extract constraints into the `Constraint` JSON (schema: `bergbot schema export` → docs/schema/Constraint.json).
   Keys: region (canton code lower-case), place, date (ISO), start_time, max_ascent_m, max_distance_km,
   max_duration_min, max_grade (T1..T6), origin, max_travel_min, transport_required, hut, dog, kids, loop, lang.
   Extract only what the user said. "easy" → max_grade T2.
2. Run `bergbot find --constraints '<json>' --lang LANG --limit 3`. If the user gave a place rather than a region,
   use `bergbot around "<place>" --constraints '<json>' --lang LANG` instead.
3. Present the candidates: 2 lines each (name · grade · km · ↑m · duration; weather · top warnings). If any
   candidate carries a critical/important warning, the register is serious — say so plainly, no humour. If the
   list is empty, ask the user to loosen one constraint (distance, ascent, region).
4. When the user picks one (a number, "the first", …), write that candidate'"'"'s `route` geometry to a GeoJSON
   file and run the **audit** skill on it (same date/origin). Deliver message + report + GPX offer.
5. Modifications ("shorter", "Sunday", "with a hut", "from the other side") change the constraints and rerun
   step 2. Keep previous constraints unless overridden.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.