mx: Skill for Claude Code

.agents/skills/mx-api-doctrine/SKILL.md

mx-api-doctrine is a skill for Claude Code from webern/mx. It costs 61 tokens per session (1,945 once invoked), scanned A, original, MIT.

A set of design rules for mx::api, a programming interface for creating, reading, and changing MusicXML music files.

In plain words
What is it for?
It is for designing, changing, or reviewing public mx::api types and their supporting reader and writer code. It guides how musical meaning should be represented rather than copying the file format’s raw structure.
Why use it?
It keeps the programming model clear and makes invalid or ambiguous music data harder to represent, even though MusicXML itself allows such forms.

Skill for Claude Code

Written for Claude Code: disable-model-invocation in frontmatter. Also seen: installed under .agents/ (shared by several agents); mentions AGENTS.md.

This is webern/mx's own configuration. It tells Claude Code how to work on mx itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything mx configures →

View source ↗ webern/mx
Reuse

Borrowing it

Nothing to install: this file belongs to webern/mx. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/webern/mx/main/.agents/skills/mx-api-doctrine/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/webern/mx

Made for: Claude Code.

Wrote 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.

agentmods badge for mx-api-doctrine

README.md
[![agentmods](https://agentmods.dev/badge/skills/webern/mx/mx-api-doctrine/github.svg)](https://agentmods.dev/skills/webern/mx/mx-api-doctrine)
Your own site
<a href="https://agentmods.dev/skills/webern/mx/mx-api-doctrine"><img src="https://agentmods.dev/badge/skills/webern/mx/mx-api-doctrine/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.

agentmods 80×15 button for mx-api-doctrine

Your own site · 80×15
<a href="https://agentmods.dev/skills/webern/mx/mx-api-doctrine"><img src="https://agentmods.dev/badge/skills/webern/mx/mx-api-doctrine.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 61 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,945 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00061 $0.01945
Opus 5.5 $0.00024 $0.00778
Sonnet 5.5 $0.00012 $0.00389
Haiku 4.5 $0.00006 $0.00194

Measured 1mo ago against content hash 6d6d7dda07e7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

mx-api-doctrine 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.

.agents/skills/mx-api-doctrine/SKILL.md · 143 lines

How it starts

The opening of the file, as written. The whole thing — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.

mx::api doctrine

mx::api is not "MusicXML minus rare features." It re-shapes MusicXML into a model where invalid or ambiguous documents are hard or impossible to express. MusicXML's recurring defects -- stateful encodings, flat streams with label fields, one fact stated in two places, id-linked declarations, order-dependent meaning -- each have a countering principle below. Never mirror an element's raw shape. The price of every simplification is paid in mx::impl: the writer regenerates the spec-compliant encoding, the reader accepts every spec-legal variant.

The audience is a musician, not the round-trip harness

Corpus round-tripping is how we develop mx::api; it is not what the api is for. The api exists for people who create music and who build, modify, and interpret MusicXML files. Public-header comments must explain the notation semantics, how MusicXML encodes them, and how to author or read them through the api.

  • Never write from the harness's viewpoint. "The source", "preserved on round-trip", "populated by the reader" are wrong unless the field truly records non-semantic source fidelity (a principle-7 knob) -- then say so plainly (i.e. "Do not populate this when authoring").
  • Do not document what is not modeled; listing what isn't there is noise.
  • No separator/banner comments.

Bad: // staffIndex is zero-based; a source with an explicit number attribute always populates Good: // Which staff of the part this layout applies to, zero-based from the top staff.

Failure model: misuse must be boring

Responses to wrong api usage, in order of preference:

  1. Unrepresentable: shape the type so the wrong state cannot be expressed (choice types below; merged fields, principle 3).
  2. Defined fallback: document a harmless result and return it. A wrong-kind choice accessor returns a default-constructed copy; the writer drops the half of an encoding that is meaningless for the note it is on (a tie on a silent cue note is written as <tied> notation only, never as a sound-level <tie>). Report an important adjustment through an optional Diagnostics collector.
  3. Result<T> (Result.h): the error channel of last resort. It exists for the MusicXml I/O boundary, where failure is real (unreadable file, unparseable XML). Do not spread it into the data model.

Read the full file on GitHub · 143 lines

Changes

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.

  1. 1mo ago Changed · +1 lines 6d6d7dda07e7
  2. 2mo ago First seen · 142 lines · 61 tokens per session scan A 19981300d455

Subscribe to this mod's changes

mx-api-doctrine is a skill published in the GitHub repository webern/mx (93 stars, last pushed yesterday), licensed MIT. It adds 61 tokens to every session and 1,945 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.

Related

Other skills, from other repositories

zoom-meeting-sdk-windows

Zoom Meeting SDK for Windows - Native C++ SDK for embedding Zoom meetings into Windows desktop applications. Supports custom UI architecture with raw video/audio data, headless bots, and deep integration with meeting features. Includes SDK architecture patterns and Windows message loop handling.

anthropics/knowledge-work-plugins · 59 tokens

clipper1

Use when maintaining legacy code on the Clipper 1.x API — IntPoint integer paths with a scale factor, Clipper.AddPath/Execute for ctUnion/ctIntersection/ctDifference/ctXor, ClipperOffset for jtRound/jtMiter buffering, PolyTree hole hierarchy, and the pyclipper (1.4.0) / js-clipper bindings. Clipper1 V6 (6.4.2) is…

znlgis/opengis-skills · 131 tokens

backend-development

Guidelines for backend development in C++ and Elixir/Phoenix, covering modern language features, best practices, and production-ready patterns.

Mindrally/skills · 31 tokens

header-only-c-cpp-ingestion

Inspect C and C++ headers for public contracts and data structures before reading implementation files.

alivirgo/Major-AI-Skills · 25 tokens

boost-asio-pro

Use when building asynchronous networking applications with Boost.Asio or standalone Asio — TCP/UDP servers and clients, SSL/TLS streams, async I/O via C++20 coroutines OR pre-C++20 callbacks/stackful coroutines, timers, strand-based concurrency, or composing async operations. Use when code involves iocontext…

alexprivalov/boost-asio-skill · 103 tokens

drogon-gen-plugin

A code generator for Drogon plugins, which initialize and manage application-wide resources during the program's lifetime. Examples include connection pools and third-party software libraries.

voidvec/drogon-claude-plugin · 42 tokens