Skip to content
Back to skills

Audit

ASecurity

Audit a hiking route file (GPX/KML/GeoJSON) for a date — closures, weather, wind, fire, zones, shooting, transport, lifts, huts — and deliver a warnings-first message plus a self-contained HTML report and GPX. Use whenever the user attaches or names a route file, or asks "is this hike good on <date>".

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

Works with

  • cli

Security analysis

A100/100

Scanned September 19, 2026

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

Installs into .claude/skills of the current project.

Are you the author of Audit?

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

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

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-audit
description: Audit a hiking route file (GPX/KML/GeoJSON) for a date — closures, weather, wind, fire, zones, shooting, transport, lifts, huts — and deliver a warnings-first message plus a self-contained HTML report and GPX. Use whenever the user attaches or names a route file, or asks "is this hike good on <date>".
---

# Bergbot · audit

## 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. Determine `DATE` (ISO; default tomorrow), `START` (HH:MM, default 09:00), `ORIGIN` (transport origin if the user
   mentioned one) and `LANG`.
2. Run `bergbot audit <file> --date DATE --start START --lang LANG --out audit.json`. Read `audit.json`.
3. Web verification (parallel, ≤ 90 s total): for each warning of type `lift_unverified`, `hut_unverified` or
   `shooting_zone`, the warning'"'"'s `params.web_verification` holds the queries, preferred sources and rules. Search,
   read the page, and record a result with the `WebVerification` shape (result verified|unverified|conflicting,
   url, quoted_span ≤ 15 words, page_ts). Never mark verified without a URL and a quote. Do not verify more than
   4 items; leave the rest unverified.
4. Optional: if you obtained verified results, edit `audit.json`: for a lift/hut set the amenity `status`
   (open/closed) + `verification: "verified"` + append an Evidence (class A, source = URL, retrieved_ts now,
   original_span = quote) and drop or upgrade the matching warning (closed lift → type `lift_closed`, severity
   important). Keep everything else untouched.
5. Run `bergbot render audit.json --lang LANG --out bergbot-report-<slug>.html` and
   `bergbot message audit.json --lang LANG --report-filename bergbot-report-<slug>.html --json`.
6. Send the `message.text` verbatim (≤ 12 lines). Register is in the JSON. Attach/point to the report. Offer GPX.
7. Follow-ups: "gpx" → `bergbot export audit.json --format gpx`; questions → answer from `audit.json` first
   (amenities, transport, warnings, evidence), then general knowledge; safety questions → serious register,
   known / unknown / fixed line. Emergency ("someone fell") → only: call 1414 (Rega) or 112, share position,
   stay put, keep the line free.

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.