AgentSkillsCN

xcode-deps

分析Swift Package Manager的依赖关系,以可视化依赖图并识别版本冲突。当用户询问依赖项、SPM问题或版本冲突时,可使用此技能。

SKILL.md
--- frontmatter
name: xcode-deps
description: Analyzes Swift Package Manager dependencies to visualize the dependency graph and identify version conflicts. Use when user asks about dependencies, SPM issues, or version conflicts.
disable-model-invocation: true
argument-hint: [Package.swift or Package.resolved path]
allowed-tools: Bash(swift:*), Read, Glob

Xcode Dependencies Analyzer

Analyzes Swift Package Manager dependencies for insights and potential issues.

When to Use

  • User asks about project dependencies
  • User experiences SPM resolution issues
  • User wants to visualize dependency graph
  • User suspects version conflicts

Usage

Run from project root (where Package.swift is located):

bash
swift ~/.claude/plugins/xcode-dx-skills/skills/xcode-deps/scripts/spm-graph.swift

Or specify a path:

bash
swift ~/.claude/plugins/xcode-dx-skills/skills/xcode-deps/scripts/spm-graph.swift /path/to/Package.swift

What Gets Analyzed

AspectDescription
Direct dependenciesTop-level packages your project depends on
Transitive dependenciesDependencies of your dependencies
Version constraintsSpecified version requirements
Resolved versionsActual versions in Package.resolved
ConflictsIncompatible version requirements
DepthHow deep the dependency tree goes

Output Format

The script outputs JSON with:

  • direct_dependencies: Your declared dependencies
  • all_dependencies: Complete list including transitive
  • dependency_graph: Adjacency list of dependencies
  • version_map: Resolved version for each package
  • conflicts: Any detected version conflicts
  • mermaid_graph: Mermaid diagram code for visualization

Mermaid Diagram

The output includes a Mermaid diagram you can render:

mermaid
graph TD
    A[MyApp] --> B[Alamofire]
    A --> C[SwiftyJSON]
    B --> D[Foundation]

Common Issues

Version Conflict

When two packages require incompatible versions of a shared dependency.

Fix: Update version constraints or find compatible versions.

Deep Dependency Chain

When transitive dependencies go many levels deep.

Concern: Longer build times, more potential conflicts.

Outdated Packages

When newer versions are available.

Action: Review changelogs and update carefully.