diff --git a/.gitignore b/.gitignore
index 0b178c0..de787c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,12 @@
/*.xcodeproj
xcuserdata/
DerivedData/
-.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
TestApp/.build
+
+# Xcode workspace state. These patterns contain a slash, so without the leading `**`
+# git anchors them to the repository root and the copies under TestApp/ slip through.
+**/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+**/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+
+# Local agent/tool settings
+.claude/
diff --git a/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d9810..0000000
--- a/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/TestApp/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/TestApp/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a..0000000
--- a/TestApp/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-