Agent skill

Geospatial Routing Data

by Raidriar7170 in Raidriar7170/hermes-skilleval

Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction.

MITAuto-check passedData & Analytics

Install Geospatial Routing Data

skills CLI
$ npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Raidriar7170/hermes-skilleval geospatial-routing-data --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Raidriar7170/hermes-skilleval.git skills-src && mkdir -p .claude/skills && cp -r skills-src/artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data .claude/skills/geospatial-routing-data && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
geospatial-routing-data
GitHub stars
125
Used in
1 other repo
Token cost
~1.5k tokens
SKILL.md length
313 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction.

  • Reporting tasks involve latitude/longitude
  • SKILL.md covers Parse Data Safely, Coordinate Validation, Great-Circle Distance and Build Routing Nodes, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Distance metrics

What it does

Geospatial Routing Data is an agent skill from Raidriar7170/hermes-skilleval. Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction. Use when optimization or reporting tasks involve latitude/longitude, station IDs, depots, distance metrics, vehicle routes, or validating travel distance from reported paths.

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Data & Analytics, covering Geospatial analysis. The repository describes itself as: Verification-gated skill routing and self-improvement harness for Hermes-style agent skills. The licence is MIT.

When your agent uses it

  • Reporting tasks involve latitude/longitude
  • Distance metrics
  • Validating travel distance from reported paths

Example prompts

  • “/geospatial-routing-data”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 8f6a21e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Geospatial Routing Data loads about 1.5k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 313 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~94
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Raidriar7170/hermes-skilleval at commit 8f6a21e, republished under its MIT licence (© Raidriar7170). 313 words, ~1,470 tokens.

Download SKILL.mdSave it as .claude/skills/geospatial-routing-data/SKILL.md (or your agent's skills folder).
name
geospatial-routing-data
description
Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction. Use when optimization or reporting tasks involve latitude/longitude, station IDs, depots, distance metrics, vehicle routes, or validating travel distance from reported paths.

Geospatial Routing Data

Use this skill before building a routing model or validating a routing report that contains coordinates, depots, station IDs, and route sequences.

The main risk is mixing user-facing IDs with internal array indices or using a different distance metric from the task.

Parse Data Safely

Load structured data with a parser and build explicit mappings:

python
import json
from pathlib import Path

data = json.loads(Path("/root/data.json").read_text())
stations_data = data["stations"]

station_ids = [int(s["id"]) for s in stations_data]
if len(station_ids) != len(set(station_ids)):
    raise ValueError("duplicate station ids")

id_to_idx = {sid: idx for idx, sid in enumerate(station_ids)}
idx_to_id = {idx: sid for sid, idx in id_to_idx.items()}

Use internal indices in optimization variables. Use original station IDs in final reports.

Coordinate Validation

Check coordinates before building distances:

python
def parse_location(record, label):
    lat = float(record["latitude"])
    lon = float(record["longitude"])
    if not (-90.0 <= lat <= 90.0):
        raise ValueError(f"{label} latitude out of range: {lat}")
    if not (-180.0 <= lon <= 180.0):
        raise ValueError(f"{label} longitude out of range: {lon}")
    return {"latitude": lat, "longitude": lon}

depot = parse_location(data["depot"], "depot")
station_locations = [parse_location(s, f"station {s['id']}") for s in stations_data]

Latitude and longitude are degrees. Convert to radians only inside the distance function.

Great-Circle Distance

Match the task's declared distance metric. If the task specifies an Earth radius, use that exact value.

For great-circle miles with Earth radius 3960.0, use:

python
import math

def great_circle_miles(a, b, radius=3960.0):
    lat1 = float(a["latitude"])
    lon1 = float(a["longitude"])
    lat2 = float(b["latitude"])
    lon2 = float(b["longitude"])

    deg_to_rad = math.pi / 180.0
    phi1 = (90.0 - lat1) * deg_to_rad
    phi2 = (90.0 - lat2) * deg_to_rad
    theta1 = lon1 * deg_to_rad
    theta2 = lon2 * deg_to_rad

    cos_arc = (
        math.sin(phi1) * math.sin(phi2) * math.cos(theta1 - theta2)
        + math.cos(phi1) * math.cos(phi2)
    )
    cos_arc = max(-1.0, min(1.0, cos_arc))
    return math.acos(cos_arc) * radius

Clamp cos_arc into [-1, 1] to avoid floating-point domain errors.

Do not mix:

  • Euclidean distance on degrees;
  • haversine with a different Earth radius;
  • miles and meters;
  • rounded distances inside the optimization objective.

Build Routing Nodes

Use separate depot labels when the route output must show a start and end depot:

python
START = "depot_start"
END = "depot_end"

stations = range(len(stations_data))
from_nodes = [START, *stations]
to_nodes = [*stations, END]

def node_location(node):
    if node in (START, END):
        return depot
    return station_locations[int(node)]

Build distances over the same arc set used by the optimization model:

python
distances = {}
for i in from_nodes:
    for j in to_nodes:
        if i == j:
            continue
        if i == START and j == END:
            continue  # omit if vehicles must visit at least one station
        distances[i, j] = great_circle_miles(node_location(i), node_location(j))

If direct depot-to-depot travel is allowed, keep the (START, END) arc.

Convert Routes Between IDs and Indices

Optimization route using internal indices:

python
route_nodes = [START, 3, 7, 2, END]

Report route using original station IDs:

python
report_route = [
    node if isinstance(node, str) else idx_to_id[int(node)]
    for node in route_nodes
]

Parse a reported route back to internal indices:

python
def parse_report_route(route):
    if route[0] != START or route[-1] != END:
        raise ValueError("route must start at depot_start and end at depot_end")

    parsed = [START]
    for raw in route[1:-1]:
        sid = int(raw)
        if sid not in id_to_idx:
            raise ValueError(f"unknown station id {sid}")
        parsed.append(id_to_idx[sid])
    parsed.append(END)
    return parsed

Never assume station IDs are 0..n-1.

Reconstruct Route Distance

Recompute reported travel distance from route sequences:

python
def pairwise(items):
    return list(zip(items, items[1:]))

def route_distance_internal(route_nodes):
    total = 0.0
    for i, j in pairwise(route_nodes):
        total += distances[i, j]
    return total

def route_distance_reported_ids(route):
    internal = parse_report_route(route)
    return route_distance_internal(internal)

For multiple vehicles:

python
travel_distance = sum(
    route_distance_reported_ids(vehicle["route"])
    for vehicle in report["vehicles"]
)

Compare with tolerance, not exact string equality:

python
def assert_close(actual, expected, tol=1e-6):
    if abs(actual - expected) > max(tol, tol * max(1.0, abs(expected))):
        raise AssertionError(f"{actual} != {expected}")

Route Data Checks

Before trusting a route:

  • first node is the start depot label;
  • last node is the end depot label;
  • every non-depot node is a known station ID;
  • route has at least one station if vehicles cannot stay at the depot;
  • station sequence length equals the stop list length;
  • no repeated station within a route when per-vehicle no-repeat is required;
  • distance is recomputed from coordinates, not copied from model output.

© Raidriar7170, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data of Raidriar7170/hermes-skilleval.

Open the folder on GitHubat commit 8f6a21e

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in Raidriar7170/hermes-skilleval, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Geospatial Routing Data next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Geospatial Routing Data compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Geospatial Routing Data this skillRaidriar7170/hermes-skilleval1251 repos~1.5kAutomated safety check: PassMIT
Antv L7antvis/L74.1k—~1.4kAutomated safety check: PassMIT
Geo SleuthOldcircle/geo-sleuth1.3k—~6.1kAutomated safety check: PassMIT
Portaljs Add Geodatopian/portaljs2.4k1 repos~1.7kAutomated safety check: PassMIT
Thematic Mapzzhonglei/GeoCode-Release187—~3.1kAutomated safety check: PassMIT
Rs Paper Pipelinethinson/RS-PaperClaw227—~319Automated safety check: PassMIT

Similar skills

  • Antv L7

    antvis/L7

    Comprehensive guide for AntV L7 geospatial visualization library.

    4.1k GitHub stars~1.4k tokensUpdated 29 days ago
    Data & AnalyticsAuto-check passed
  • Geo Sleuth

    Oldcircle/geo-sleuth

    Geolocate or chronolocate a photo with tool-verified reasoning (where was this taken / when was it taken / photo geolocation / geo-guessing).

    1.3k GitHub stars~6.1k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Portaljs Add Geo

    datopian/portaljs

    Auto-ingest a geospatial file (GeoJSON, Shapefile, GeoPackage, KML/KMZ, FlatGeobuf, CSV-with-geometry) into a PortalJS portal on the user's own machine, with no server.

    2.4k GitHub starsUsed in 1 repo~1.7k tokens
    Data & AnalyticsAuto-check passed
  • Thematic Map

    zzhonglei/GeoCode-Release

    Create well-designed maps that follow standard cartographic conventions.

    187 GitHub stars~3.1k tokensUpdated 4 days ago
    Data & AnalyticsAuto-check passed
  • Rs Paper Pipeline

    thinson/RS-PaperClaw

    A skill your agent uses when operating or maintaining the RS-PaperClaw pipeline that fetches remote-sensing arXiv papers, creates per-paper issues, builds daily digests, reconciles issue sets, and…

    227 GitHub stars~319 tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Remote Sensing Research Radar

    limi124/remote-sensing-research-radar

    Track, retrieve, screen, and synthesize research frontiers for geospatial AI, remote sensing big data, and transferable computer vision methods.

    142 GitHub stars~1.3k tokensUpdated 5 mo ago
    Data & AnalyticsAuto-check passed

More from Raidriar7170/hermes-skilleval

All 8 skills in this repo
  • Senior Data Scientist

    Raidriar7170/hermes-skilleval

    World-class data science skill for statistical modeling, experimentation, causal inference, and advanced analytics.

    125 GitHub starsUsed in 6 repos~1.4k tokens
    Auto-check passed
  • Dialogue Graph

    Raidriar7170/hermes-skilleval

    A library for building, validating, visualizing, and serializing dialogue graphs.

    125 GitHub starsUsed in 1 repo~597 tokens
    Auto-check passed
  • Logistics Rules To Optimization

    Raidriar7170/hermes-skilleval

    Translate logistics and operations rules into optimization variables and constraints.

    125 GitHub starsUsed in 1 repo~2.8k tokens
    Auto-check passed
  • Routing Subtour Elimination

    Raidriar7170/hermes-skilleval

    Subtour-elimination methods for TSP, VRP, pickup/dropoff routing, and routing MIPs with binary arc variables.

    125 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check passed
  • Scip Opt

    Raidriar7170/hermes-skilleval

    SCIP optimization with PySCIPOpt. An agent skill from Raidriar7170/hermes-skilleval.

    125 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • DOCX

    Raidriar7170/hermes-skilleval

    Word document manipulation with python-docx - handling split placeholders, headers/footers, nested tables

    125 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed

Questions about Geospatial Routing Data

What does Geospatial Routing Data do?

Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction. Geospatial Routing Data is an agent skill from Raidriar7170/hermes-skilleval. Geospatial routing data handling for depot and station coordinates, route node IDs, internal index mappings, great-circle distance matrices, and route-distance reconstruction.

When should I use Geospatial Routing Data?

Geospatial Routing Data fits situations like: reporting tasks involve latitude/longitude; distance metrics; validating travel distance from reported paths.

How do I install Geospatial Routing Data in Claude Code?

Run `npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a claude-code`. Or copy the skill folder (artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data in Raidriar7170/hermes-skilleval) into .claude/skills/geospatial-routing-data in your project. Claude Code loads it when a task matches its description.

How do I install Geospatial Routing Data in Codex?

Run `npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a codex`. Or copy the skill folder (artifacts/v0.3/skillsbench-pilot/v0.3-stage2-input-package-candidate-20260701T010000Z/candidate-data/skill-sources/skillsbench__geospatial-routing-data in Raidriar7170/hermes-skilleval) into .agents/skills/geospatial-routing-data in your project. Codex loads it when a task matches its description.

Can I use Geospatial Routing Data in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Raidriar7170/hermes-skilleval --skill geospatial-routing-data -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/geospatial-routing-data, .gemini/skills/geospatial-routing-data, .github/skills/geospatial-routing-data and .opencode/skills/geospatial-routing-data in your project.

What does Geospatial Routing Data need to run?

SKILL.md names no scripts, command-line tools or credentials: Geospatial Routing Data is instructions for the agent only. Our summary lists: Python 3.

Does Geospatial Routing Data access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Geospatial Routing Data safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Geospatial Routing Data use?

Geospatial Routing Data is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Geospatial Routing Data use?

About 1.5k tokens (SKILL.md is roughly 5.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Geospatial Routing Data?

Skills that share tags, products or a category with Geospatial Routing Data: Antv L7 (antvis/L7, 4.1k stars), Geo Sleuth (Oldcircle/geo-sleuth, 1.3k stars), Portaljs Add Geo (datopian/portaljs, 2.4k stars) and Thematic Map (zzhonglei/GeoCode-Release, 187 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Geospatial Routing Data?

Raidriar7170 (a GitHub user) maintains it in Raidriar7170/hermes-skilleval, which has 125 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on September 26, 2026.

Source: Raidriar7170/hermes-skilleval on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.