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 | $0.00037 | $0.00293 |
| Sonnet 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 11d 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.
- 11d 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 (7 stars, last pushed 14d ago), licensed Apache-2.0. It adds 74 tokens to every session and 585 once invoked, about $0.0004 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
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.
sync-wb-nb
Propagate a change made in a Wolfbook .wb notebook into the paired .nb notebook so the two stay identical. Use immediately after every .wb edit.
wolfram-headless
Run heavy Wolfram Language (wolframscript) computations from Claude Code reliably, and diagnose the misleading "The product exited because of a license error". Use whenever invoking wolframscript on a non-trivial computation, when a wolframscript job dies with a "license error" despite a valid license, or when Wolfram…
cross-validate
Format a result, derivation, or numerical value for independent verification by a second model. Use when you want a cross-check on an important or contested result.
verify-citation
Confirm a paper actually exists (arXiv / Semantic Scholar / OpenAlex) before citing it. Use before writing any new citation.