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 CesiumGS/cesiumjs-ai-starter-app --skill czml-custom-propertiesgit clone --depth 1 https://github.com/CesiumGS/cesiumjs-ai-starter-appWrote 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/cesiumgs/cesiumjs-ai-starter-app/czml-custom-properties)<a href="https://agentmods.dev/skills/cesiumgs/cesiumjs-ai-starter-app/czml-custom-properties"><img src="https://agentmods.dev/badge/skills/cesiumgs/cesiumjs-ai-starter-app/czml-custom-properties/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/cesiumgs/cesiumjs-ai-starter-app/czml-custom-properties"><img src="https://agentmods.dev/badge/skills/cesiumgs/cesiumjs-ai-starter-app/czml-custom-properties.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.00074 | $0.00585 |
| Opus 5.5 | $0.00030 | $0.00234 |
| Sonnet 5.5 | $0.00015 | $0.00117 |
| Haiku 4.5 | $0.00007 | $0.00059 |
Grade A, and why
czml-custom-properties 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 1mo 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.
What it actually says
CZML Custom Properties
- "properties":
{ "<propertyName>": { "number": <value> } }— a top-level packet property (a sibling of "position"/"polygon"/etc., not nested inside a graphics property) holding arbitrary named data on an entity. Wrap the value by its type:{ "number": <value> }for numeric data,{ "string": "<value>" }for text,{ "boolean": true|false }for flags. - For a value that changes over time, use either:
- The same "epoch" + interleaved-timestamp-and-value pattern as any other sampled property:
{ "epoch": "<ISO8601>", "population": [t0, v0, t1, v1, ...] }, or - An array of interval-scoped values, each with its own "interval":
"population": [{ "interval": "<ISO8601 start>/<ISO8601 end>", "number": 1000 }, { "interval": "<next start>/<next end>", "number": 2000 }]. This same interval-array pattern also works for any other property (e.g. "position") when an entity's full timeline needs to be built incrementally from several non-overlapping segments, as if streamed across separate CZML packets.
- The same "epoch" + interleaved-timestamp-and-value pattern as any other sampled property:
Example: a time-varying custom property alongside a polygon entity
[
{ "id": "document", "name": "Custom properties", "version": "1.0" },
{
"id": "region-1",
"properties": {
"epoch": "2026-01-01T00:00:00Z",
"population": [0, 10000, 3600, 12000, 7200, 15000]
},
"polygon": {
"positions": {
"cartographicDegrees": [-90, 30, 0, -89.9, 30, 0, -89.9, 30.1, 0, -90, 30.1, 0]
},
"extrudedHeight": 15000,
"material": { "solidColor": { "color": { "rgba": [0, 128, 255, 150] } } }
}
}
]
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.
- 1mo ago First seen · 42 lines · 74 tokens per session scan A cb93c6629c9e
czml-custom-properties is a skill published in the GitHub repository CesiumGS/cesiumjs-ai-starter-app (10 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 74 tokens to every session and 585 once invoked, about $0.0003 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-31.
Other skills, from other repositories
QGIS Processing
Use Arion's local QGIS integration to discover, describe, and run qgisprocess workflows against file-backed layers. Use when a request involves QGIS Processing algorithms, qgisprocess troubleshooting, chaining multiple QGIS steps, or selecting the right algorithm and parameters for a map layer.
CRS Sanity Check
Validate coordinate systems, units, and reprojection assumptions before analysis.
Data Source Intake
Standard intake checklist for evaluating geospatial data sources before use.
Geospatial Triage
Rapidly scope a geospatial request, validate data assumptions, and propose an execution plan.
latex-compile
Compile a LaTeX document and fix every error plus aesthetic issue (overfull/underfull boxes, widows, alignment, fonts) for a clean PDF and log. Use this instead of running pdflatex/latexmk manually — it avoids the latexmk stale-log trap and silent grep failures on binary log output, and it reformats rather than…
nb-to-wolfbook
Convert Mathematica .nb or .m files to Wolfbook .wb format so they open and run in VS Code. Use when bringing existing .nb/.m files into Wolfbook, or to make an existing .wb bridge-safe.