`claude-code.json`'s skills array is generated from each SKILL.md's frontmatter, but check 4 only verified that every manifest skill had a SKILL.md on disk — never that the description matched. The one assertion comparing the two texts lived in scripts/skill-listing.test.ts, which runs under `npm run test:unit` (what CI runs) but not under `npm test` (what a maintainer runs), and `node scripts/skill-listing.ts` reports character budgets only and exits 0 on drift. So editing a router's description — the most ordinary kind of change in this repo — left the manifest stale, and the `/axiom:ask` generated from it, through a green local gate and four consecutive red CI runs. Check 4 now compares the text and names the first drifted skill. Verified in both directions: it reports 26 manifest descriptions matching, fails with `[manifest-drift]` naming axiom-media when a description is injected, and passes again once that is reverted. Verified: npm test (static validation clean) and npm run test:unit (519/519).
Axiom
Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.
What is Axiom?
Axiom gives AI coding assistants deep Apple OS development expertise — the kind that prevents data loss from bad migrations, catches memory leaks before users complain, and stops you from spending 30 minutes debugging a zombie xcodebuild process.
- 276 skills covering UI, data, concurrency, performance, networking, accessibility, and more
- 42 agents that autonomously scan for issues (memory leaks, concurrency violations, build problems)
- 17 commands for quick audits and diagnostics
- xclog — a built-in console capture tool that gives AI assistants access to simulator and device logs
- xcsym — a built-in crash symbolication tool for
.ips, MetricKit, and Apple's legacy.crashtext crashes, with automatic dSYM discovery and pattern categorization - xcui — a built-in tool to drive and validate the simulator UI and accessibility (tap by accessibility ID, dump the accessibility tree, check VoiceOver and Dynamic Type)
- xcprof — a built-in tool to record and analyze CPU/performance traces (xctrace) without opening Instruments
Every discipline skill is TDD-tested against real developer pressure scenarios. Learn more about quality.
OS 27 in progress. Axiom is on a 27.x beta that tracks Apple's OS 27 developer betas — OS-27 coverage lands continuously through the beta season. Guidance for OS 26 and earlier stays stable.
Installation
Claude Code (native plugin)
/plugin marketplace add CharlesWiltgen/Axiom
Then search for "axiom" in the /plugin menu and install.
Cursor (native plugin)
Axiom's generated Cursor plugin includes 27 skill routers, 42 agents, 17 /axiom-* commands, advisory hooks, and automatic discovery of its MCP server configuration. See the Cursor install and support guide for the macOS support boundary and local installation steps.
MCP (VS Code, Cursor MCP-only, Gemini CLI, and more)
See the MCP setup guide.
Pi (terminal coding agent)
pi install git:github.com/CharlesWiltgen/Axiom
One command installs the skills plus the /axiom-* commands and hooks. See the Pi setup guide.
Xcode (Claude Agent / Codex)
See the Xcode integration guide.
Getting Started
Skills activate automatically based on your questions. Just ask:
"I'm getting BUILD FAILED in Xcode"
"How do I fix Swift 6 concurrency errors?"
"My app has memory leaks"
"I need to add a database column safely"
"Show me what my app is logging"
"Symbolicate this crash file"
You can also use commands directly:
/axiom:console # Capture simulator console output
/axiom:analyze-crash # Parse and triage .ips, MetricKit, or .crash reports
/axiom:fix-build # Diagnose build failures
/axiom:audit memory # Scan for memory leaks
/axiom:audit concurrency # Check for data races
/axiom:health-check # Run all relevant auditors
Documentation
Full documentation, skill catalog, and guides at charleswiltgen.github.io/Axiom.
Community
- r/axiomdev — Version announcements with changelogs
- Report issues or request features
- Share usage patterns and questions