Diagnose xcodebuild builds using argus. Use this instead of parsing xcodebuild output to avoid filling the context window. Query build errors, warnings, slowest targets, bottlenecks, implicit/redundant dependencies, and dependency graph with linking information for optimization analysis.
Analyzes Xcode builds using argus instead of parsing raw xcodebuild output. Triggers when diagnosing build failures, analyzing slow targets, or optimizing dependency graphs and linking configurations.
/plugin marketplace add tuist/claude-marketplace/plugin install xcode@tuist-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Use argus to analyze Xcode builds instead of parsing raw xcodebuild output.
mise install github:tuist/argus@0.4.0
Run xcodebuild with argus intercepting the build:
BUILD_TRACE_ID=$(uuidgen)
XCBBUILDSERVICE_PATH=$(which argus) BUILD_TRACE_ID=$BUILD_TRACE_ID xcodebuild build -scheme MyScheme
After the build completes, use these commands to analyze results:
# Get build summary
argus trace summary --build $BUILD_TRACE_ID
# Get compilation errors
argus trace errors --build $BUILD_TRACE_ID
# Get slowest targets
argus trace slowest-targets --build $BUILD_TRACE_ID --limit 5
# Get build bottlenecks
argus trace bottlenecks --build $BUILD_TRACE_ID
Detect dependency issues in your project:
# Show what each target imports
argus trace imports --build $BUILD_TRACE_ID
# Find implicit dependencies (imports not declared as dependencies)
argus trace implicit-deps --build $BUILD_TRACE_ID
# Find redundant dependencies (declared but never imported)
argus trace redundant-deps --build $BUILD_TRACE_ID
Add --json flag for structured output.
Query the build dependency graph with product type and linking information to identify optimization opportunities:
# Get the full dependency graph with linking info
argus trace graph --build $BUILD_TRACE_ID
# Query what a specific target depends on (transitive)
argus trace graph --source MyApp
# Query only direct dependencies
argus trace graph --source MyApp --direct
# Query what depends on a specific target
argus trace graph --sink CoreKit
# Find the path between two targets
argus trace graph --source MyApp --sink CoreKit
# Filter by dependency type
argus trace graph --source MyApp --label package
argus trace graph --source MyApp --label framework
target: Project targetspackage: Swift package dependenciesframework: Framework dependenciesxcframework: XCFramework dependenciessdk: System SDK frameworksbundle: Bundle dependenciesThe graph output includes:
name: Target nameproductType: Xcode product type identifier (e.g., com.apple.product-type.framework)artifactKind: The kind of artifact (e.g., framework, staticLibrary, dynamicLibrary)machOType: Mach-O type (staticlib, mh_dylib, mh_execute)dependencies: Array of linked dependencies with:
kind: Link kind (static, dynamic, framework)mode: Link modeisSystem: Whether it's a system dependencyUse the graph information combined with linking types to make optimization decisions:
To improve launch time (reduce dylib loading):
argus trace graph --source MyApp --jsonkind: "dynamic" or kind: "framework"machOType: "mh_dylib" that are only used by one app are candidates for static linkingdlopen calls at launchTo reduce binary size:
kind: "static" that are shared across multiple appsmachOType: "staticlib" used by multiple apps benefit from being dynamicAnalysis workflow:
# 1. Get the full graph to understand the dependency structure
argus trace graph --build latest --json > graph.json
# 2. Find all targets that depend on a library you want to optimize
argus trace graph --sink MyLibrary --json
# 3. Check if a target is statically or dynamically linked
argus trace graph --source MyApp --direct --json | jq '.dependencies[] | select(.name == "MyLibrary")'
Decision criteria:
# List all tracked projects
argus trace projects
# List builds for a project
argus trace builds --project my-app --limit 10
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.