Description
Create SPM package MacApp/Packages/GitHubIntegration/Package.swift:
swift-tools-version: 6.3
.swiftLanguageMode(.v6) on all targets
- Platforms:
.macOS(.v26)
Targets (internal):
GitHubIntegrationClient — Foundation + SharedModels only (no TCA, no SwiftUI)
GitHubIntegrationFeature — Client + ComposableArchitecture + SwiftUI + SharedModels
Public library target GitHubIntegration re-exports GitHubIntegrationFeature. Test target GitHubIntegrationTests (covers Client).
Pre-create placeholder files so W2 tasks modify only their own files (avoid Package.swift merge conflicts):
Sources/GitHubIntegrationClient/GitHubOAuthConfig.swift
Sources/GitHubIntegrationClient/GitHubClient.swift
Sources/GitHubIntegrationClient/GitHubAPIError.swift
Sources/GitHubIntegrationClient/Models/.keep
Sources/GitHubIntegrationClient/GitHubCredentialStore.swift
Sources/GitHubIntegrationClient/GitHubLogger.swift
Sources/GitHubIntegrationClient/PKCE.swift
Sources/GitHubIntegrationClient/GitHubAuthService.swift
Sources/GitHubIntegrationFeature/GitHubFeature.swift
Sources/GitHubIntegrationFeature/Views/.keep
Tests/GitHubIntegrationTests/Placeholder.swift
Each file contains an empty type or // TODO so the package compiles. Register package as a local dependency in MacApp/Relay.xcodeproj.
Spec reference
See swarm-report/github-integration-decomposition.md#t-2.
Relationships
Acceptance criteria
Complexity
S
Suggested agent
developer-workflow:build-engineer
Module / Layer
GitHubIntegration / Package config
Description
Create SPM package
MacApp/Packages/GitHubIntegration/Package.swift:swift-tools-version: 6.3.swiftLanguageMode(.v6)on all targets.macOS(.v26)Targets (internal):
GitHubIntegrationClient— Foundation + SharedModels only (no TCA, no SwiftUI)GitHubIntegrationFeature— Client + ComposableArchitecture + SwiftUI + SharedModelsPublic library target
GitHubIntegrationre-exportsGitHubIntegrationFeature. Test targetGitHubIntegrationTests(covers Client).Pre-create placeholder files so W2 tasks modify only their own files (avoid
Package.swiftmerge conflicts):Sources/GitHubIntegrationClient/GitHubOAuthConfig.swiftSources/GitHubIntegrationClient/GitHubClient.swiftSources/GitHubIntegrationClient/GitHubAPIError.swiftSources/GitHubIntegrationClient/Models/.keepSources/GitHubIntegrationClient/GitHubCredentialStore.swiftSources/GitHubIntegrationClient/GitHubLogger.swiftSources/GitHubIntegrationClient/PKCE.swiftSources/GitHubIntegrationClient/GitHubAuthService.swiftSources/GitHubIntegrationFeature/GitHubFeature.swiftSources/GitHubIntegrationFeature/Views/.keepTests/GitHubIntegrationTests/Placeholder.swiftEach file contains an empty type or
// TODOso the package compiles. Register package as a local dependency inMacApp/Relay.xcodeproj.Spec reference
See
swarm-report/github-integration-decomposition.md#t-2.Relationships
Acceptance criteria
xcodebuild build -project MacApp/Relay.xcodeproj -scheme Relay -destination 'platform=macOS,arch=arm64' CODE_SIGN_IDENTITY=-passesswiftlint lint --strictgreen on new packagexcodebuild testrunsGitHubIntegrationTestswithout errorsComplexity
S
Suggested agent
developer-workflow:build-engineerModule / Layer
GitHubIntegration/ Package config