Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ni1o1/claude-skill-transbigdata --skill transbigdata-metrolinegit clone --depth 1 https://github.com/ni1o1/claude-skill-transbigdataWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ni1o1/claude-skill-transbigdata/transbigdata-metroline)<a href="https://agentmods.dev/skills/ni1o1/claude-skill-transbigdata/transbigdata-metroline"><img src="https://agentmods.dev/badge/skills/ni1o1/claude-skill-transbigdata/transbigdata-metroline/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ni1o1/claude-skill-transbigdata/transbigdata-metroline"><img src="https://agentmods.dev/badge/skills/ni1o1/claude-skill-transbigdata/transbigdata-metroline.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00050 | $0.01602 |
| Opus 5 | $0.00025 | $0.00801 |
| Sonnet 5 | $0.00010 | $0.00320 |
| Haiku 4.5 | $0.00005 | $0.00160 |
Grade A, and why
transbigdata-metroline scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 199 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TransBigData 公交地铁网络指南
安装
pip install transbigdata networkx geopandas
地铁网络建模
1. 构建网络 - metro_network()
import transbigdata as tbd
import geopandas as gpd
# 加载线路和站点数据
line = gpd.read_file('metro_lines.shp') # 需包含 linename, speed, stoptime
stop = gpd.read_file('metro_stops.shp')
# 构建网络图
G = tbd.metro_network(
line,
stop,
transfertime=5 # 换乘时间(分钟)
)
数据要求:
line: 包含linename(线路名)、speed(运行速度)、stoptime(停站时间)stop: 站点位置数据
2. 最短路径查询 - get_shortest_path()
path = tbd.get_shortest_path(
G,
stop,
ostation='福田', # 起点站名
dstation='罗湖' # 终点站名
)
# 返回: 站点名列表
3. K 条最短路径 - get_k_shortest_paths()
paths = tbd.get_k_shortest_paths(
G,
stop,
ostation='福田',
dstation='罗湖',
k=3 # 前3条最短路径
)
4. 路径耗时计算 - get_path_traveltime()
travel_time = tbd.get_path_traveltime(G, path) # 返回分钟
5. 线路分割 - split_subwayline()
将地铁线路按站点分割为线段。
line_segments = tbd.split_subwayline(line, stop)
公交 GPS 数据处理
6. 到站信息识别 - busgps_arriveinfo()
从公交 GPS 轨迹识别到站/离站时间。
arrive_info = tbd.busgps_arriveinfo(
bus_gps_data,
line, # 公交线路 GeoDataFrame
stop, # 公交站点 GeoDataFrame
col=['VehicleNum', 'GPSTime', 'Lng', 'Lat'],
stopbuffer=200, # 站点缓冲区半径(米)
mintime=300 # 最小停留时间(秒)
)
7. 单程时间计算 - busgps_onewaytime()
oneway_time = tbd.busgps_onewaytime(
arrive_info,
start='起点站',
end='终点站',
col=['VehicleNum', 'StopName', 'ArriveTime', 'LeaveTime']
)
完整示例:地铁网络分析
import pandas as pd
import geopandas as gpd
import transbigdata as tbd
from shapely.geometry import Point
# 1. 准备数据
# 线路数据
line_data = gpd.GeoDataFrame({
'linename': ['1号线', '1号线', '2号线', '2号线'],
'speed': [60, 60, 55, 55], # km/h
'stoptime': [0.5, 0.5, 0.5, 0.5] # 分钟
})
# 站点数据
stop_data = gpd.GeoDataFrame({
'stopname': ['A站', 'B站', 'C站', 'D站'],
'linename': ['1号线', '1号线,2号线', '2号线', '1号线'],
'geometry': [Point(114.0, 22.5), Point(114.05, 22.52),
Point(114.1, 22.55), Point(114.08, 22.48)]
}, crs='EPSG:4326')
# 2. 构建网络
G = tbd.metro_network(line_data, stop_data, transfertime=5)
# 3. 查询最短路径
path = tbd.get_shortest_path(G, stop_data, ostation='A站', dstation='C站')
print(f"最短路径: {' → '.join(path)}")
# 4. 计算耗时
time = tbd.get_path_traveltime(G, path)
print(f"预计耗时: {time:.1f} 分钟")
# 5. 查询多条路径
paths = tbd.get_k_shortest_paths(G, stop_data, ostation='A站', dstation='C站', k=3)
for i, p in enumerate(paths, 1):
t = tbd.get_path_traveltime(G, p)
print(f"方案{i}: {' → '.join(p)},耗时 {t:.1f} 分钟")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 199 lines · 50 tokens per session scan A c60df7066b86
transbigdata-metroline is a skill published in the GitHub repository ni1o1/claude-skill-transbigdata (4 stars, last pushed 7mo ago), licensed MIT. It adds 50 tokens to every session and 1,602 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
insight-error-page
Write or audit an insight-kind error page for the Next.js dev overlay. Use when creating a new errors/ .mdx page, auditing an existing one, or checking that a page matches the framework fix cards. Covers page structure, title alignment, FixCard cards with Copy prompt button, code snippets, terminology verification…