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 clipper2git 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/clipper2)<a href="https://agentmods.dev/skills/znlgis/opengis-skills/clipper2"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/clipper2/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/clipper2"><img src="https://agentmods.dev/badge/skills/znlgis/opengis-skills/clipper2.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.00122 | $0.03271 |
| Opus 5.5 | $0.00049 | $0.01308 |
| Sonnet 5.5 | $0.00024 | $0.00654 |
| Haiku 4.5 | $0.00012 | $0.00327 |
Grade A, and why
clipper2 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 today.
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 — 286 lines — stays where its author put it; the contents beside it link to each section on GitHub.
项目地址: https://github.com/AngusJohnson/Clipper2
官方文档: http://www.angusj.com/clipper2/Docs/Overview.htm
包管理器: NuGet
Clipper22.0.0 | vcpkgclipper2| npmclipper2-js1.2.4 | 源码 tagClipper2_2.0.1(2025-12-19,截至 2026-10)版本: 上游 tag
Clipper2_2.0.1;NuGet 稳定包仍为2.0.0,二者 API 相同,装包时以 NuGet 版本为准许可证: Boost Software License 1.0
概述
Clipper2 相对 Clipper1 的提升:
- 全新算法,速度更快、内存更省
- 支持浮点(
PathsD)与整数(Paths64)双模式 - 全新偏移引擎:更鲁棒的 mitre/square/round 端帽与连接
- 简洁 API:
Union/Intersect/Difference/Xor顶级函数 - 多语言:C++、C#、Delphi、JS(Clipper2.js 移植)
安装
C#
dotnet add package Clipper2 # 2.0.0,提供 Clipper2Lib 命名空间
C++
# vcpkg
vcpkg install clipper2
# 或直接 add subdirectory CPP/Clipper2Lib 到 CMake
JavaScript
npm install clipper2-js # 1.2.4,第三方原生 TS/JS 移植;另有 WASM 移植 js-angusj-clipper 1.3.1
验证
# C#:包能还原且命名空间可解析,跑通一个 union 即可视为就绪
dotnet list package | grep Clipper2
# Node:确认版本
node -e "console.log(require('clipper2-js/package.json').version)"
核心 API
核心数据结构(C#)
using Clipper2Lib;
PointD pd = new(10.5, 20.7); // 浮点点
PathD path = new() { new(0,0), new(10,0), new(10,10), new(0,10) };
PathsD subj = new() { path }; // 多个 path
PathsD clip = new() { /* ... */ };
整数版本:Point64 / Path64 / Paths64,避免浮点误差。
布尔运算
using Clipper2Lib;
PathsD a = new() { Clipper.MakePath(new[] { 0d,0, 100,0, 100,100, 0,100 }) };
PathsD b = new() { Clipper.MakePath(new[] { 50d,50, 150,50, 150,150, 50,150 }) };
PathsD u = Clipper.Union(a, b, FillRule.NonZero);
PathsD i = Clipper.Intersect(a, b, FillRule.NonZero);
PathsD d = Clipper.Difference(a, b, FillRule.NonZero);
PathsD x = Clipper.Xor(a, b, FillRule.NonZero);
FillRule:
EvenOdd(奇偶)NonZero(非零)Positive(正向缠绕)Negative(负向缠绕)
多边形偏移(Inflate / 缩进)
PathsD outline = new() {
Clipper.MakePath(new[] { 0d,0, 100,0, 100,100, 0,100 })
};
// 向外偏移 10 单位
PathsD outer = Clipper.InflatePaths(outline, 10,
JoinType.Round, // Square / Miter / Round
EndType.Polygon); // Polygon / Joined / Butt / Square / Round
// 向内偏移:负数
PathsD inner = Clipper.InflatePaths(outline, -10,
JoinType.Miter, EndType.Polygon);
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.
- today Changed · +18 lines · +72 tokens per session a3d5e0700c12
- 13d ago Changed · +16 lines be68e917329d
- 1mo ago Changed · +2 lines 4f6bd830fc00
- 1mo ago Changed cf6322d81ab1
- 1mo ago Changed ce5a4cdf829c
- 1mo ago First seen · 250 lines · 50 tokens per session scan A e0dfdf72e1f9
clipper2 is a skill published in the GitHub repository znlgis/opengis-skills (75 stars, last pushed today), licensed MIT. It adds 122 tokens to every session and 3,271 once invoked, about $0.0005 per session on Opus 5.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
game-engine-development
Skill de implementacao real de codigo de engine de jogo — Unity C# e Unreal C++. Cobre padroes de MonoBehaviour, ScriptableObject, object pooling, state machine, ECS, componentes de Actor/UPROPERTY/ UFUNCTION do Unreal, otimizacao de performance (profiling, batching, LOD, culling, garbage collection), e networking…
vs-search
Routing rules for code search in C/C++, C#/.NET, JS/TS, and Python projects via vs-token-safer — use the vs-search MCP tools (clangd/Roslyn/tsserver/pyright language-server index) or the vts CLI instead of Bash grep. Use whenever searching for a symbol, definition, function, variable, type, or finding…
dotnet-pinvoke
Correctly call native (C/C++) libraries from .NET using P/Invoke and LibraryImport. Covers function signatures, string marshalling, memory lifetime, SafeHandle, and cross-platform patterns. USE FOR: writing new P/Invoke or LibraryImport declarations, reviewing or debugging existing native interop code, wrapping a C or…
windows-interop-modernize
A reference for connecting modern Windows apps with older Windows technologies such as Win32, WPF, and WinForms. It covers native APIs, COM, C++, C#, Rust, and XAML Islands.
matlab-cpp-dll-csharp-validation
A workflow for moving numerical algorithms from MATLAB, a technical computing environment, into a C or C++ DLL that C# programs can call on Windows. It also checks that the converted results match MATLAB’s results.
ue5-cpp-gameplay
UE5.6/UE5.7 gameplay C++ implementation for Actors, Components, DataAssets, and gameplay logic. Use when requests ask to write .h/.cpp pairs, expose UPROPERTY/UFUNCTION to Blueprint, use GameplayTags, or build reusable component-based systems.