From ocaml-dev
Guides creation of OCaml library tutorials using .mld format with MDX executable examples. Use for OCaml docs, .mld files, MDX, or interactive documentation.
npx claudepluginhub avsm/ocaml-claude-marketplace --plugin ocaml-devThis skill uses the workspace's default tool permissions.
Invoke this skill when:
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Checks Next.js compilation errors using a running Turbopack dev server after code edits. Fixes actionable issues before reporting complete. Replaces `next build`.
Invoke this skill when:
OCaml tutorials should:
(mdx
(files tutorial.mld)
(libraries your_library_name))
(documentation
(package your_package_name)
(mld_files index tutorial))
Enable MDX:
(using mdx 0.4)
Add MDX as doc dependency:
(package
(name your_package)
(depends
...
(mdx :with-doc)
(odoc :with-doc)))
{0 Topic Name Tutorial}
Introduction text.
{1 Section Title}
Section content.
{2 Subsection Title}
Subsection content.
Use {@ocaml[...]} for executable examples:
{@ocaml[
# let x = 1 + 1;;
val x : int = 2
]}
# are input;; to terminate expressionsUse {v ... v} for verbatim blocks:
{v
name: Alice
age: 30
v}
{!Library.function_name} - Function reference
{!Library.Module.type_name} - Type reference
{{!Library}API reference} - Link with custom text
{ul
{- Item one}
{- Item two}
}
{ol
{- First item}
{- Second item}
}
{b bold text}
{i italic text}
{1 Setup}
{@ocaml[
# #require "library_name";;
# open Library;;
]}
dune build @check # Verify syntax
dune build @doc # Build documentation
dune runtest # Run MDX tests (if configured)
Use fully qualified names: {!Library.of_string} not {!of_string}
Enable in dune-project: (using mdx 0.4)
Run code manually, update expected output. Use <abstr> for abstract values.