scripts/audit-areas.json is now the single source for /axiom:audit areas. Three surfaces are generated from it into marker-delimited regions, leaving the surrounding hand-authored prose untouched: commands/audit.md argument: list (hash markers, inside frontmatter) commands/audit.md body table (model-facing "Detects" text) docs/commands/utility/audit.md (human-facing prose) The registry keeps `detects` and `docsDetects` as separate fields rather than reconciling them. They differ for 22 of 32 areas because one is routing text the model reads and the other is prose a person reads — the docs-are-human / source-is-for-LLM split, not drift. The sidebar is deliberately NOT generated: each of its groups interleaves audit entries with unrelated commands (Build holds audit-build beside fix-build, optimize-build, resolve-deps), so the audit rows are not a spliceable region and generating the groups would delete the others. It stays hand-maintained and is now checked directly against the registry, which is what the old docs-vs-sidebar grouped parity was approximating. Retires validateParity and validateGroupedParity: with three surfaces generated from one source they cannot disagree by construction, so the set-parity and grouped-parity comparisons are replaced by one staleness check — the same generate-and-diff pattern already used for the inlined auditors (12d-bis) and the Codex variant (12f). validateRegistry gates the source itself (duplicate areas, unknown groups, empty fields, a `|` that would break a table cell, a docPath the sidebar parser could not read the area back out of). Also collapses the three arbitrary orderings that had accumulated across the surfaces into one: group order, then alphabetical within group. Row order in a for-LLM table carries no meaning, and docs and sidebar already used exactly this order. Verified no data was lost: every body-table row and every docs description is byte-identical to the previous committed content compared order-independently; only ordering changed. Mutation-tested by adding an area to the registry alone — all three generated regions plus the sidebar check reported it. 126 unit tests pass.
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.
- 269 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.
MCP (VS Code, Cursor, 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