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 avsm/ocaml-claude-marketplace --skill oxcamlgit clone --depth 1 https://github.com/avsm/ocaml-claude-marketplaceWrote 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/avsm/ocaml-claude-marketplace/oxcaml)<a href="https://agentmods.dev/skills/avsm/ocaml-claude-marketplace/oxcaml"><img src="https://agentmods.dev/badge/skills/avsm/ocaml-claude-marketplace/oxcaml/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/avsm/ocaml-claude-marketplace/oxcaml"><img src="https://agentmods.dev/badge/skills/avsm/ocaml-claude-marketplace/oxcaml.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.00042 | $0.08802 |
| Opus 5.5 | $0.00017 | $0.03521 |
| Sonnet 5.5 | $0.00008 | $0.01760 |
| Haiku 4.5 | $0.00004 | $0.00880 |
Grade A, and why
oxcaml 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.
How it starts
The opening of the file, as written. The whole thing — 1,066 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are writing code for the OxCaml compiler, a performance-focused fork of OCaml with Jane Street extensions. This guide covers OxCaml-specific features. You should already know standard OCaml.
Current target: OxCaml 5.2.0minus-39 — the latest released
version, shipping as ocaml-variants.5.2.0+ox on the OCaml 5.2
base. Later tags (5.2.0minus-40, 5.4.0-ox1/-ox2) and main are
unreleased development, covered by
CHANGES-unreleased.md. Throughout these
guides, any feature gated "minus-40+", "5.4.0-ox", "5.4 base", or
"post-ox2" is unreleased* — don't use it unless targeting a compiler
built from main.
Change history, newest first — the upgrade guide at the bottom of each file is the right starting point when bumping a project:
- CHANGES-unreleased.md — everything after
5.2.0minus-39(minus-40, the upstream-OCaml-5.4 merge, ox2, main) - CHANGES-38-39.md —
5.2.0minus-38→5.2.0minus-39 - CHANGES-31-38.md —
5.2.0minus-31→5.2.0minus-38 - CHANGES-25-31.md, CHANGES-23-25.md — earlier windows
Quick Upgrade Flags (38 → 39)
When diagnosing build failures after a bump to minus-39, check these first:
unique_/once_prefix syntax removed — use(x @ unique)in patterns,(e : @ unique)on expressions.local_is kept.-extension labeled_tuplesno longer exists — labeled tuples are always-on; repeated labels in one tuple are gone.- Mixed
float+float#records now require[@@flatten_floats](hard error without it; such records get no unboxedt#version); all-float64records are mixed blocks ([@@represent_as_float_array]opts out). C layout asserts: v5 → v6. Stdlib_stable.Iarraylocal API removed —( .:() )and*_localfunctions gone (both survive only inStdlib_stable.IarrayLabels).-ikindsflag removed — the ikinds checker is now the default;-no-ikindsopts out.- Scannable kind axes now meet instead of override — an annotation can only lower an axis.
- Magic number 577 → 578 — rebuild everything including ppx rewriters.
See the Breaking changes and upgrade guide section of CHANGES-38-39.md for an ordered checklist.
What ships with it
16 files 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.
- CHANGES-23-25.md 7.2 KB
- CHANGES-25-31.md 26 KB
- CHANGES-31-38.md 30 KB
- CHANGES-38-39.md 17 KB
- CHANGES-unreleased.md 26 KB
- SKILL-BASE.md 14 KB
- SKILL-COMPREHENSIONS.md 8.1 KB
- SKILL-CORE.md 14 KB
- SKILL-KINDS.md 16 KB
- SKILL-MODES.md 13 KB
- SKILL-SIMD.md 15 KB
- SKILL-STACK-ALLOCATION.md 9.1 KB
- SKILL-TEMPLATES.md 7.8 KB
- SKILL-UNBOXED.md 14 KB
- SKILL-UNIQUENESS.md 8.4 KB
- SKILL-ZERO-ALLOC.md 8.9 KB
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 · 1,066 lines · 42 tokens per session scan A 83fc57840536
oxcaml is a skill published in the GitHub repository avsm/ocaml-claude-marketplace (37 stars, last pushed 1mo ago), licensed ISC. It adds 42 tokens to every session and 8,802 once invoked, about $0.0002 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
erlang-otp-behaviors
Use when oTP behaviors including genserver for stateful processes, genstatem for state machines, supervisors for fault tolerance, genevent for event handling, and building robust, production-ready Erlang applications with proven patterns.
omh-rust
This is an OMH rust workflow skill, projected for Agent Skills hosts (Claude Code, Codex, Cursor, opencode, OpenClaw, pi).
axiom-concurrency
Use when writing ANY async code, actors, or threads in an Apple-platform app, or seeing ANY concurrency error. Covers Swift 6 concurrency, @MainActor, Sendable, data races, async/await patterns.
haskell-pro
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
splitting-oversized-modules
Split an oversized Python module (a thousand-plus-line logic.py, models.py, api.py, or its test file) into a package of one module per concern, mechanically and provably without changing behavior. Use on a request to split / break up / decompose a god module or move functions out of one, once a human has agreed to…
migrate-better-result-3
Migrate a TypeScript codebase from better-result 2.x to 3.0. Use when upgrading better-result across the TaggedError syntax, removed Result serialization helpers, recovery inference, matching, or retry APIs.