Files
Graeme ArthurandClaude Opus 4.8 f8c2b6c9a5 Add baseline-gated Periphery dead-code check to CI
Runs Periphery after the existing Xcode build in pr_build_test, reusing that
build's index store (--index-store-path + --skip-build) so it adds no second
build. Scans the Xcode project (.periphery.yml) so the Homebrew app counts as a
consumer of the SwiftPM modules — reporting unused code across the whole program,
including dead public API, which a package-only scan cannot.

Gating is baseline-driven (--strict --baseline): a PR fails only on dead code not
already in .periphery-baseline.json, so the existing tail is grandfathered and
only newly introduced dead code blocks a merge. Implicit-usage classes are
retained in config (SwiftUI previews, Codable properties, assign-only/Hashable
key structs) to keep false positives near zero.

The baseline can't be generated in the agent sandbox (needs a working xcodebuild
app build), so the CI step self-seeds: when .periphery-baseline.json is absent it
writes one and uploads it as the 'periphery-baseline' artifact without gating.
Commit that artifact to activate the gate. Periphery pinned in Mintfile (3.7.4);
usage documented in AGENTS.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 21:57:03 +10:00

4 lines
84 B
Plaintext

nicklockwood/SwiftFormat@0.61.0
realm/SwiftLint@0.63.2
peripheryapp/periphery@3.7.4