xcode-build-toolinglisted
Install: claude install-skill hmj1026/dhpk
# Xcode build & lint tooling
Load references on demand:
- `references/swiftlint-config.md` — SwiftLint rule tiers, per-package config.
- `references/xcodebuild-spm.md` — `xcodebuild` vs `swift build/test`, destinations.
- `references/scheme-signing.md` — schemes, capabilities, signing for no-iCloud.
---
## What this module wires (hooks)
- **`hooks/post-edit-swiftlint.sh`** — PostToolUse (Edit/Write). On a `.swift`
edit, runs SwiftLint on that file and surfaces warnings to stderr. Backgrounded
by the dispatcher, always exits 0, **self-skips when `swiftlint` is absent** —
no noise on machines without it.
- **`hooks/pre-commit-swift-build.sh`** — PreToolUse (Bash). On `git commit*` with
staged `.swift`, runs a build (and tests unless skipped). **Exit 2 blocks the
commit** on failure; **self-skips when `xcodebuild`/`swift` is absent**; honors a
`[skip-swift-build]` commit-message sentinel for emergencies.
## userConfig (overridable)
| Key | Default | Used by |
|-----|---------|---------|
| `swiftlint_bin` | `swiftlint` | post-edit hook (path/wrapper to SwiftLint) |
| `xcode_scheme` | `""` (auto-detect / skip test gate) | pre-commit hook |
| `xcode_destination` | `""` (test step auto-picks first available simulator; build always uses generic) | pre-commit hook |
| `swift_build_skip_tests` | `false` | pre-commit hook (build only, no tests) |
## Core rules
1. **Lint locally is advisory, commit gate is blocking.** The post-edit hook
informs; the pre-commit hoo