Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when ANY iOS or macOS build fails, a crash log needs diagnosing, a test run crashes, Xcode misbehaves, or an environment issue blocks work before code is the suspect. Covers build failures, dependency conflicts, simulator diagnostics.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
You MUST use this skill for ANY build, environment, or Xcode-related issue before debugging application code.
<!-- AXIOM_AUDITOR_INLINE_BEGIN — rewritten for Codex by scripts/build-codex.ts; do not hand-edit --><!-- AXIOM_AUDITOR_INLINE_END -->Auditors are skills here. Where this router says "Launch
some-auditoragent", invoke the matching Codex skill instead — same procedure, no Claude Code agent required.Available:
axiom-modernize,axiom-scan-security-privacy.The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
Before the next necessary build or test, resolve bin/axbuild under the actual loaded package in Claude Code or Codex, or discover an executable on PATH in Pi. Check executable permission and run its absolute path with --help; assign that observed path to AXBUILD. Never infer an installation path from an example.
Cursor and MCP distributions do not bundle axbuild and expose no axbuild MCP wrapper. Use the saved-log fallback below when a verified shell helper is unavailable.
Before every Xcode invocation, run pgrep -lx xcodebuild; echo "pgrep exit=$?": exit 1 means none are running, 0 lists them, and any other exit means the inventory failed. Investigate existing builds; process count and age do not establish zombie status. Never terminate unrelated processes. When interrupted or timed out, axbuild also stops build scripts and other processes descended from its build that Xcode moved into separate process groups, found by parentage when cleanup begins and on each cleanup pass. It reports cleanup-incomplete for any such descendant it could not stop or verify (another user's, unreadable, or being debugged). Jobs that had already left the build's process tree, such as daemons or launchd-started tools, are neither stopped nor reported. Inspect ownership before stopping anything it lists. Discover the actual scheme and destination before executing:
"$AXBUILD" xcodebuild -scheme "$SCHEME" -destination "$DESTINATION" build
"$AXBUILD" swift test --package-path "$PACKAGE"
Preserve caller flags, working directory, environment, test selection, coverage and explicit artifact paths. The wrapper adds absent diagnostic defaults; it never cleans caches or automatically rebuilds. Do not pipe a build through another command.
Inspect command (native outcome) and collection (evidence completeness) separately. Native success can accompany partial collection. The default JSON is bounded to 8,000 UTF-8 bytes; inspect omissions and read artifacts.report relative to the absolute artifacts.run directory for complete records and evaluated values. The startup stderr JSON identifies the run directory before completion. Use diagnostic locations and values rather than rebuilding to redisplay output.
The retained log is the primary compiler source; test results and validated Swift Testing events supplement it. A null failed-test count means uncertainty, not zero. Preserve result bundles for attachment export, coverage, console logs and deeper inspection. Native informational commands pass their output through.
Saved-log fallback: redirect the necessary native command's stdout/stderr to a unique file, let it finish, record its exit status and inspect that saved file. An xcresult build summary is not equivalent to the compiler log. Read an existing log before considering another build. If a build's output ends in a truncation marker, or before xcodebuild's closing ** BUILD … ** or ** TEST … ** line, read the saved log or report instead of rebuilding.
Use this router when you encounter:
BUILD FAILED, compilation errors, linker errors)This router invokes specialized skills based on the specific issue:
Triggers:
BUILD FAILED without obvious code causexcodebuild processesOS27)OS27)Why xcode-debugging first: 90% of mysterious issues are environment, not code. Check this BEFORE debugging code.
Invoke: skills/xcode-debugging.md
Triggers:
Invoke: skills/build-performance.md
Triggers:
Why spm-conflict-resolver: Specialized agent that analyzes Package.swift and Package.resolved to diagnose and resolve Swift Package Manager conflicts.
Invoke: axiom-resolve-spm
Triggers:
Why security-privacy-scanner: Specialized agent that scans for security vulnerabilities and privacy compliance issues.
Invoke: axiom-scan-security-privacy
Triggers:
Why modernization-helper: Specialized agent that scans for legacy patterns and provides migration paths with code examples.
Invoke: axiom-modernize
Triggers:
Why build-fixer: Autonomous agent that checks zombie processes, Derived Data, SPM cache, and simulator state before investigating code. Saves 30+ minutes on environment issues.
Invoke: axiom-fix-build
Triggers:
Why build-optimizer: Scans Xcode projects for build performance optimizations — slow type checking, expensive scripts, suboptimal settings — to reduce build times by 30-50%.
Invoke: axiom-optimize-build
Triggers:
Invoke: skills/build-debugging.md
Triggers:
Why testflight-triage: Systematic workflow for investigating TestFlight crashes and reviewing beta feedback. Covers symbolication, crash interpretation, common patterns, and Claude-assisted analysis.
Invoke: See axiom-shipping (skills/testflight-triage.md)
Triggers:
Why app-store-connect-ref: Reference for navigating ASC crash analysis, metrics dashboards, and data export workflows.
Invoke: See axiom-shipping (skills/app-store-connect-ref.md)
Triggers:
Why crash-analyzer: Autonomous agent that parses crash reports, identifies patterns (null pointer, Swift runtime, watchdog, jetsam), and generates actionable analysis.
Invoke: axiom-analyze-crash
Triggers:
Why metrickit-ref: Complete MetricKit API reference with setup patterns, payload parsing, and integration with crash reporting systems.
Invoke: See axiom-performance (skills/metrickit-ref.md)
Triggers:
Why hang-diagnostics: Systematic diagnosis of hangs with decision tree for busy vs blocked main thread, tool selection (Time Profiler, System Trace), and 8 common hang patterns with fixes.
Invoke: See axiom-performance (skills/hang-diagnostics.md)
Triggers:
Why lldb: Crash reports tell you WHAT crashed. LLDB tells you WHY.
Invoke: skills/lldb.md
Triggers:
Why xclog-ref: Xcode's debug console isn't accessible externally. xclog combines simctl stdout/stderr with log stream JSON to capture everything print(), NSLog(), os_log(), and Logger emit — with structured fields (level, subsystem, category) for automated analysis.
Invoke: /axiom:console (Claude Code only)
Triggers:
Why code-signing: Code signing errors are NEVER code bugs — they are 100% configuration (certificates, profiles, entitlements, keychains). Diagnosing with CLI tools takes 5 minutes vs hours of guessing.
Invoke: See axiom-security (skills/code-signing.md) (workflows) or See axiom-security (skills/code-signing-diag.md) (troubleshooting)
/axiom:console (Claude Code only)| Thought | Reality |
|---|---|
| "I know how to fix this linker error" | Linker errors have 4+ root causes. xcode-debugging diagnoses all in 2 min. |
| "Let me just clean the build folder" | Clean builds mask the real issue. xcode-debugging finds the root cause. |
| "It's just an SPM issue, I'll fix Package.swift" | SPM conflicts cascade. spm-conflict-resolver analyzes the full dependency graph. |
| "The simulator is just slow today" | Simulator issues indicate environment corruption. xcode-debugging checks systematically. |
| "I'll skip environment checks, it compiles locally" | Environment-first saves 30+ min. Every time. |
| "I'll read the crash report more carefully instead of reproducing" | Crash reports show WHAT crashed, not WHY. Reproducing in LLDB with breakpoints reveals the actual state. skills/lldb.md has the workflow. |
| "I know my certificate is fine, let me check the code" | Code signing errors are NEVER code bugs. 100% configuration. code-signing diagnoses with CLI in 5 min. |
| "I can't see what the app is logging without Xcode" | xclog captures print() + os_log from the simulator. Structured JSON output with level, subsystem, category. /axiom:console (Claude Code only). |
Do NOT use axiom-build for these — use the correct router instead:
| Error Type | Correct Router | Why NOT axiom-build |
|---|---|---|
| Swift 6 concurrency errors | /skill axiom-concurrency | Code error, not environment |
| SwiftData migration errors | /skill axiom-data | Schema issue, not build environment |
| "Sending 'self' risks data race" | /skill axiom-concurrency | Language error, not Xcode issue |
| Type mismatch / compilation errors | Fix the code | These are code bugs |
axiom-build is for environment mysteries, not code errors:
User: "My build failed with a linker error"
→ Invoke: skills/xcode-debugging.md (environment-first diagnostic)
User: "Builds are taking 10 minutes"
→ Invoke: skills/build-performance.md
User: "SPM won't resolve dependencies"
→ Invoke: spm-conflict-resolver agent
User: "Two packages require different versions of the same dependency"
→ Invoke: spm-conflict-resolver agent
User: "Duplicate symbol linker error"
→ Invoke: spm-conflict-resolver agent
User: "I need to prepare for App Store security review"
→ Invoke: security-privacy-scanner agent
User: "Do I need a Privacy Manifest?"
→ Invoke: security-privacy-scanner agent
User: "Are there hardcoded credentials in my code?"
→ Invoke: security-privacy-scanner agent
User: "How do I migrate from ObservableObject to @Observable?"
→ Invoke: modernization-helper agent
User: "Update my code to use modern SwiftUI patterns"
→ Invoke: modernization-helper agent
User: "Should I still use @StateObject?"
→ Invoke: modernization-helper agent
User: "A beta tester said my app crashed" → Invoke: See axiom-shipping (skills/testflight-triage.md)
User: "I see crashes in App Store Connect but don't know how to investigate" → Invoke: See axiom-shipping (skills/testflight-triage.md)
User: "My crash logs aren't symbolicated" → Invoke: See axiom-shipping (skills/testflight-triage.md)
User: "I need to review TestFlight feedback" → Invoke: See axiom-shipping (skills/testflight-triage.md)
User: "How do I find crashes in App Store Connect?" → Invoke: See axiom-shipping (skills/app-store-connect-ref.md)
User: "Where's the crash-free users metric in ASC?" → Invoke: See axiom-shipping (skills/app-store-connect-ref.md)
User: "How do I export crash data from App Store Connect?" → Invoke: See axiom-shipping (skills/app-store-connect-ref.md)
User: "Analyze this crash log" [pastes .ips content]
→ Invoke: crash-analyzer agent or axiom-analyze-crash
User: "Parse this .ips file: ~/Library/Logs/DiagnosticReports/MyApp.ips"
→ Invoke: crash-analyzer agent or axiom-analyze-crash
User: "Why did my app crash? Here's the report..."
→ Invoke: crash-analyzer agent or axiom-analyze-crash
User: "How do I set up MetricKit to collect crash data?"
→ Invoke: See axiom-performance (skills/metrickit-ref.md)
User: "How do I parse MXDiagnosticPayload?"
→ Invoke: See axiom-performance (skills/metrickit-ref.md)
User: "What's in MXCallStackTree and how do I decode it?"
→ Invoke: See axiom-performance (skills/metrickit-ref.md)
User: "My app hangs sometimes"
→ Invoke: See axiom-performance (skills/hang-diagnostics.md)
User: "The main thread is blocked and UI is unresponsive"
→ Invoke: See axiom-performance (skills/hang-diagnostics.md)
User: "Xcode Organizer shows hang diagnostics for my app"
→ Invoke: See axiom-performance (skills/hang-diagnostics.md)
User: "My app was killed by watchdog during launch"
→ Invoke: See axiom-performance (skills/hang-diagnostics.md)
User: "I have a crash report and need to reproduce it in the debugger"
→ Invoke: skills/lldb.md
User: "How do I set breakpoints to catch this crash?"
→ Invoke: skills/lldb.md
User: "My build is failing with BUILD FAILED but no error details"
→ Invoke: build-fixer agent or axiom-fix-build
User: "Build sometimes succeeds, sometimes fails"
→ Invoke: build-fixer agent or axiom-fix-build
User: "How can I speed up my Xcode build times?"
→ Invoke: build-optimizer agent or axiom-optimize-build
User: "No signing certificate found when I try to build" → Invoke: See axiom-security (skills/code-signing-diag.md)
User: "errSecInternalComponent in my GitHub Actions CI" → Invoke: See axiom-security (skills/code-signing-diag.md)
User: "How do I set up code signing for GitHub Actions?" → Invoke: See axiom-security (skills/code-signing.md)
User: "What is my app printing to the console?"
→ Invoke: /axiom:console (Claude Code only)
User: "I need to see the simulator console output"
→ Invoke: /axiom:console (Claude Code only)
User: "The app fails silently, no error in the UI"
→ Invoke: /axiom:console (Claude Code only)
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Use when fixing or auditing ANY accessibility issue — VoiceOver, Dynamic Type, color contrast, touch targets, WCAG compliance, App Store accessibility review.
日本語の概要は準備中です。原文の説明を表示しています。
Use when implementing, testing, or evaluating ANY Apple Intelligence, on-device AI, or speech-to-text feature. Covers Foundation Models, @Generable, LanguageModelSession, Tool protocol, eval suites, model-as-judge scoring, SpeechTranscriber, CoreML.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user has a crash log (.ips, MetricKit JSON, legacy .crash text, .xccrashpoint bundle, or pasted text) that needs analysis.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user mentions Swift performance audit, code optimization, or performance review — ARC issues, allocation patterns, and generic specialization.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user mentions SwiftUI performance, janky scrolling, slow animations, or view update issues — expensive bodies, formatters, whole-collection dependencies, and missing lazy containers.
日本語の概要は準備中です。原文の説明を表示しています。
Use when the user mentions flaky tests, tests that pass locally but fail in CI, race conditions in tests, or needs to diagnose WHY a specific test fails.
日本語の概要は準備中です。原文の説明を表示しています。