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 znlgis/opengis-skills --skill geometry-api-netgit clone --depth 1 https://github.com/znlgis/opengis-skillsWrote 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/znlgis/opengis-skills/geometry-api-net)<a href="https://agentmods.dev/skills/znlgis/opengis-skills/geometry-api-net"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/geometry-api-net/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/znlgis/opengis-skills/geometry-api-net"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/geometry-api-net.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00053 | $0.03119 |
| Opus 5 | $0.00026 | $0.01559 |
| Sonnet 5 | $0.00011 | $0.00624 |
| Haiku 4.5 | $0.00005 | $0.00312 |
Grade A, and why
geometry-api-net 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 7d 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 — 339 lines — stays where its author put it; the contents beside it link to each section on GitHub.
项目地址: https://github.com/znlgis/geometry-api-net
官方文档: https://github.com/znlgis/geometry-api-net/wiki
注意: 原 Esri 仓库(github.com/Esri/geometry-api-net)已不再维护(404)。此分支由 znlgis 社区维护,已重命名为 OpenGIS.Esri.Geometry。
许可证: LGPL-2.1
本文件旨在帮助 AI 快速理解并使用 geometry-api-net 库进行空间几何开发。
概述
这是一个 .NET Standard 2.0 的空间几何计算库,提供 6 种几何类型、25+ 空间运算算子和 4 种序列化格式。
- 核心包:
Esri.Geometry.Core - JSON 扩展包:
Esri.Geometry.Json - 许可证: LGPL-2.1-only
快速开始
dotnet add package Esri.Geometry.Core
dotnet add package Esri.Geometry.Json # 可选,System.Text.Json 支持
命名空间
| 命名空间 | 用途 |
|---|---|
OpenGIS.Esri.Geometry.Core |
核心入口,GeometryEngine 便捷 API |
OpenGIS.Esri.Geometry.Core.Geometries |
几何类型(Point, Polygon 等) |
OpenGIS.Esri.Geometry.Core.Operators |
空间运算算子 |
OpenGIS.Esri.Geometry.Core.SpatialReference |
空间参考 / 坐标系统 |
OpenGIS.Esri.Geometry.Core.IO |
序列化(WKT, WKB, GeoJSON, EsriJson) |
OpenGIS.Esri.Geometry.Json.Converters |
System.Text.Json 转换器 |
几何类型体系与两种 API 风格的完整说明见 reference/geometry-types.md
序列化格式
WKT(Well-Known Text)
using OpenGIS.Esri.Geometry.Core.IO;
// 导出
string wkt = WktExportOperator.ExportToWkt(geometry);
// "POINT (10.5 20.7)"
// "POINT Z (10.5 20.7 30.1)"
// "LINESTRING (0 0, 10 0, 10 10)"
// "POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))"
// "MULTIPOINT ((1 2), (3 4))"
// 导入
Geometry geometry = WktImportOperator.ImportFromWkt("POINT (10.5 20.7)");
WKB(Well-Known Binary)
// 导出(默认小端序)
byte[] wkb = WkbExportOperator.ExportToWkb(geometry);
byte[] wkb = WkbExportOperator.ExportToWkb(geometry, bigEndian: true);
// 导入(自动检测字节序)
Geometry geometry = WkbImportOperator.ImportFromWkb(wkbBytes);
GeoJSON
// 导出
string geoJson = GeoJsonExportOperator.ExportToGeoJson(geometry);
// {"type":"Point","coordinates":[10.5,20.7]}
// 导入
Geometry geometry = GeoJsonImportOperator.ImportFromGeoJson(geoJsonString);
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 7d ago Changed · -235 lines 5ed434f9452a
- 10d ago First seen · 574 lines · 53 tokens per session scan A ea46b699ded5
geometry-api-net is a skill published in the GitHub repository znlgis/opengis-skills (60 stars, last pushed yesterday), licensed MIT. It adds 53 tokens to every session and 3,119 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-30.
Other skills, from other repositories
worker-services
Build long-running .NET background services with BackgroundService, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and daemons. USE FOR: background services; scheduled workers; hosted services; worker extraction; graceful shutdown, health checks, and service hosting…
aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET. USE FOR: working on ASP.NET Core apps, services, or middleware; changing auth, routing, configuration, hosting, or deployment behavior; deciding…
minimal-apis
Design and implement Minimal APIs in ASP.NET Core using handler-first endpoints, route groups, filters, and lightweight composition suited to modern .NET services. USE FOR: building new HTTP APIs in ASP.NET Core; creating lightweight microservices; choosing between Minimal APIs and controllers. DO NOT USE FOR…
web-api
Build or maintain controller-based ASP.NET Core APIs when the project needs controller conventions, advanced model binding, validation extensions, OData, JsonPatch, or existing API patterns. USE FOR: working on controller-based APIs in ASP.NET Core; needing controller-specific extensibility or conventions; migrating…
managedcode-communication
Use ManagedCode.Communication when a .NET application needs explicit result objects, structured errors, and predictable service or API boundaries instead of exception-driven control flow. USE FOR: integrating ManagedCode.Communication into services or APIs; replacing exception-driven result handling with explicit…
grpc
Build or review gRPC services and clients in .NET. USE FOR: ASP.NET Core gRPC, protobuf contracts, unary or streaming RPC, gRPC client factory, interceptors, deadlines, cancellation, channel reuse, backend service integration. DO NOT USE FOR: broad browser-facing APIs without gRPC-Web tradeoff review, SignalR realtime…