mx-api-classify-roundtrip-failures

A tool for turning measured differences in a MusicXML read-and-write test into a plain-language worklist. MusicXML is a file format for storing written music, and a round-trip test checks whether reading and writing a file preserves it.

In plain words
What is it for?
It is for classifying failures such as crashes, immediate mismatches, and dropped data, then grouping them by pattern and priority.
Why use it?
It shows what is actually going wrong and which fixes could help the most files, instead of relying on assumptions about intended support.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/webern/mx/mx-api-classify-roundtrip-failures
Any agent
npx skills add webern/mx --skill mx-api-classify-roundtrip-failures
Clone the repo
git clone --depth 1 https://github.com/webern/mx

Made for: Claude Code, Codex.

Per session 132 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,620 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00132 $0.01620
Opus 5 $0.00066 $0.00810
Sonnet 5 $0.00026 $0.00324
Haiku 4.5 $0.00013 $0.00162

Measured 2d ago against content hash b1a34661afe7, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

mx-api-classify-roundtrip-failures 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 2d 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-classify-roundtrip-failures/SKILL.md · 148 lines

How it starts

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

Explain the mx::api round-trip

mx::api is a deliberate subset of MusicXML, and the comparison is strict full-DOM, so most corpus files diverge somewhere. This skill turns the measured divergences into a plain-English answer to two questions: what is broken, and what should we fix next to land the most files into the round-trip corpus with the fewest software changes.

It is the read-out layer on top of the failure classifier (issue #211/#212): the classifier produces a machine-readable build/api/classified.json; this skill interprets it for a human.

What the classifier reports (and what it does not)

Classification is purely measured from each expected/actual pair. It does not consult data/api.features.xml or any record of what mx::api was believed to "support" — whether a drop is intended is a present-day human decision (#214), not something the tool asserts. So do not describe any drop as "by-design" on the classifier's authority; report what was dropped and let the human decide.

Each difference is a signature, and a file's distance to passing is its count of unique signatures:

signature meaning
drop:<tag> a tag in expected, missing from actual
add:<tag> a spurious tag only in actual (a bug)
value:<tag> a paired element whose text value differs
value:<tag>@<attr> a paired element whose attribute value differs
attr:<tag>@<attr> an attribute present on only one side
reorder:<parent> a parent with matching children in a different order

Per-file status is PASS / FAIL / CRASH. A FAIL with no reorder: signature is a candidate: the first-pass worklist targets these, since reorders are expected mx::api behavior to be absorbed in test normalization later (#214).

Procedure

Step 1 — produce the data

If build/api/roundtrip-dump/ is empty or stale (api/impl changed since it was written), run:

make api-roundtrip-dump

Then always run:

Read the full file on GitHub · 148 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. 2d ago First seen · 148 lines · 132 tokens per session scan A b1a34661afe7

Subscribe to this mod's changes

mx-api-classify-roundtrip-failures is a skill published in the GitHub repository webern/mx (93 stars, last pushed 4d ago), licensed MIT. It adds 132 tokens to every session and 1,620 once invoked, about $0.0007 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-30.

Related

Other skills, from other repositories

electron-node-upgrade

Guide for performing Node.js version upgrades in the Electron project. Use when working on the roller/node/main branch to fix patch conflicts during e sync --3. Covers the patch application workflow, conflict resolution, analyzing upstream Node.js changes, building, running the Node.js test suite, and proper commit…

electron/electron · 69 tokens

testing

Testing workflow and quality standards for writing and running tests. Use when: (1) Writing new tests, (2) Adding a new feature that needs tests, (3) Modifying logic that has existing tests, (4) Before claiming a task is complete.

iOfficeAI/AionUi · 55 tokens

test-writer

Generate comprehensive Vitest tests for code examples in JavaScript concept documentation pages, following project conventions and referencing source lines.

leonardomso/33-js-concepts · 26 tokens

evaluate-pr-tests

Evaluates tests added in a PR for coverage, quality, edge cases, and test type appropriateness. Checks if tests cover the fix, finds gaps, and recommends lighter test types when possible. Prefer unit tests over device tests over UI tests. Triggers on: 'evaluate tests in PR', 'review test quality', 'are these tests…

dotnet/maui · 94 tokens

run-helix-tests

Submit and monitor .NET MAUI unit tests on Helix infrastructure. Supports running XAML, Resizetizer, Core, Essentials, and other unit test projects on distributed Helix queues.

dotnet/maui · 45 tokens

agui-dotnet-unit-tests

Author unit tests for the AG-UI .NET SDK (the .UnitTests projects), following the SDK's serialization and compatibility conventions. USE FOR: adding unit-test coverage for a new type/method in AGUI.Abstractions/Formatting/Protobuf/Client/Server, event serialization round-trips, JsonDocument property-name assertions…

ag-ui-protocol/ag-ui · 154 tokens