SPM Dependencies
Pin Swift Package Manager dependencies to exact versions or ranges
CLAUDE.md
Pin Swift Package Manager dependencies to exact versions or minor ranges in Package.swift. Avoid .branch or .upToNextMajor for production dependencies.
// Good — exact or minor range
.package(url: "https://github.com/apple/swift-argument-parser", exact: "1.3.0"),
.package(url: "https://github.com/migueldeicaza/SwiftTerm", from: "1.2.0"),
// Risky — tracks a branch, can break anytime
.package(url: "https://github.com/example/lib", branch: "main"),
Run swift package resolve after changing versions and commit Package.resolved to lock transitive dependencies.
Copy this block into your CLAUDE.md or agent config file to enforce it in your workflow.