Description
Update documentation in the same PR cluster that lands implementation on main.
(1) MacApp/Packages/GitHubIntegration/README.md (new)
- Package overview
- OAuth App registration instructions for new contributors (manual GitHub step)
- Where to put Client ID (
GitHubOAuthConfig.clientID)
- Module architecture (Client/Feature split)
- Dependency diagram
(2) CLAUDE.md (root) — add to macOS Client table
| GitHubIntegration | GitHub OAuth + polling CI status + badge/popover UI |
Also in "Key Patterns": reference ASWebAuthenticationSession.callbackURLScheme pattern used here.
(3) docs/architecture/github-integration.md (new)
- Why OAuth App (not GitHub App) — no backend
- Why REST + ETag (not GraphQL) — 304 doesn't count against primary limit
- Why own client (not Octokit.swift / swift-openapi-generator)
- Rate-limit strategy + future cap
- Migration path to GitHub App
(4) docs/testplans/15-github-integration.md (new)
10–15 TCs: happy path, error matrix from T-14 (each row ≥1 TC), polling (active/inactive/rate-limit/SAML), accessibility (VoiceOver, Tab, Dynamic Type, reduce motion).
(5) docs/testplans/coverage-matrix.md
Updated with new TCs.
(6) .github/workflows/ci.yml
Verify Swift job covers new package; if path filter is whitelist-style, add MacApp/Packages/GitHubIntegration/**.
Spec reference
See swarm-report/github-integration-decomposition.md#t-16 (BA M-6).
Relationships
Acceptance criteria
Complexity
S
Suggested agent
developer-workflow:swift-engineer
Module / Layer
Cross-cutting / Docs + CI
Description
Update documentation in the same PR cluster that lands implementation on main.
(1)
MacApp/Packages/GitHubIntegration/README.md(new)GitHubOAuthConfig.clientID)(2)
CLAUDE.md(root) — add to macOS Client tableAlso in "Key Patterns": reference
ASWebAuthenticationSession.callbackURLSchemepattern used here.(3)
docs/architecture/github-integration.md(new)(4)
docs/testplans/15-github-integration.md(new)10–15 TCs: happy path, error matrix from T-14 (each row ≥1 TC), polling (active/inactive/rate-limit/SAML), accessibility (VoiceOver, Tab, Dynamic Type, reduce motion).
(5)
docs/testplans/coverage-matrix.mdUpdated with new TCs.
(6)
.github/workflows/ci.ymlVerify Swift job covers new package; if path filter is whitelist-style, add
MacApp/Packages/GitHubIntegration/**.Spec reference
See
swarm-report/github-integration-decomposition.md#t-16(BA M-6).Relationships
Acceptance criteria
MacApp/Packages/GitHubIntegration/README.mdexists with the 5 sections listedCLAUDE.mdmacOS Client table containsGitHubIntegrationrowCLAUDE.md"Key Patterns" referencesASWebAuthenticationSession.callbackURLSchemedocs/architecture/github-integration.mdexists with 4 design rationalesdocs/testplans/15-github-integration.mdexists with 10–15 TCsdocs/testplans/coverage-matrix.mdupdated.github/workflows/ci.ymlcovers new package (confirmed by CI run)Complexity
S
Suggested agent
developer-workflow:swift-engineerModule / Layer
Cross-cutting / Docs + CI