The skill so far only held what we broke ourselves. Most of what is worth knowing about a new SDK is found rather than suffered — release notes, other people's articles — and that deserves a place too, on terms that stay fair to whoever wrote it. So: entries in our own words, source named and linked, and the one thing no external article can supply — what it would replace in our code and whether it is genuinely a step forward. Attribution answers plagiarism, not copyright, so nothing is pasted; an API signature is a fact, the paragraph explaining it is not ours to take. First four entries come from Natalia Panferova's writing at nilcoalescing .com: the close button role and concentric corners, both of which replace things we hand-built; ScrollPosition, which replaces one wrapper view; and the iOS 27 toolbar APIs, which we cannot use at our deployment target but which would delete a workaround the day we can. A LICENSE was overdue and now says plainly what is ours, what is Apple's and stays out of the repository, and what belongs to the authors we cite. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
90 lines
3.1 KiB
Markdown
90 lines
3.1 KiB
Markdown
# pdat-xcode
|
|
|
|
A Claude Code plugin marketplace for Apple platform work.
|
|
|
|
## What is here
|
|
|
|
**`pdat-swift-practice`** — two skills.
|
|
|
|
`apple-findings` is a curated file of APIs worth adopting that we found
|
|
elsewhere: what each one is, what it would replace in our code, whether it
|
|
is genuinely a step forward, and where we read about it. Written in our own
|
|
words with sources named — see [Sourcing](#sourcing).
|
|
|
|
`xcode-practice` is the opposite direction: practices for
|
|
SwiftUI, Core Data, XcodeGen and Swift Testing that came out of shipping
|
|
apps: work that must not happen in a view `body`, blobs that must stay off
|
|
the main thread, derived collections computed once, Keychain access
|
|
outside view `init`, keeping every target of a multi-platform project
|
|
building, and reading test output correctly.
|
|
|
|
It deliberately does not restate Apple's own guidance. Where the two
|
|
overlap, Apple wins.
|
|
|
|
**`bin/export-apple-skills.sh`** — Xcode ships its own skills, written by
|
|
the framework teams. They are Apple's material, so this repository carries
|
|
a script to export them rather than a copy of them. Everyone exports from
|
|
the Xcode they have, which keeps the guidance matched to their SDK.
|
|
|
|
```sh
|
|
bin/export-apple-skills.sh .claude/skills
|
|
```
|
|
|
|
Xcode must be running or the export hangs.
|
|
|
|
## Install
|
|
|
|
```
|
|
/plugin marketplace add <url-of-this-repo>
|
|
/plugin install pdat-swift-practice@pdat-xcode
|
|
```
|
|
|
|
Install at user scope and it applies to every project, including ones that
|
|
do not exist yet.
|
|
|
|
To hand it to a team through a repository instead, put this in that
|
|
project's `.claude/settings.json`:
|
|
|
|
```json
|
|
{
|
|
"extraKnownMarketplaces": {
|
|
"pdat-xcode": {
|
|
"source": { "source": "git", "url": "<url-of-this-repo>" }
|
|
}
|
|
},
|
|
"enabledPlugins": { "pdat-swift-practice@pdat-xcode": true }
|
|
}
|
|
```
|
|
|
|
Anyone who clones that project gets the skill without installing anything.
|
|
|
|
## Updating
|
|
|
|
Push a change, bump `version` in both `.claude-plugin/marketplace.json` and
|
|
`pdat-swift-practice/.claude-plugin/plugin.json`, then `/plugin marketplace
|
|
update` locally. Without the version bump, installs will not notice.
|
|
|
|
## Sourcing
|
|
|
|
`apple-findings` collects other people's discoveries, so it follows rules
|
|
that keep it honest and lawful:
|
|
|
|
- **Write the entry yourself.** An API signature is a fact and facts are
|
|
free to restate. The paragraph explaining it is the author's work, and
|
|
crediting them does not make copying it acceptable — attribution answers
|
|
plagiarism, not copyright.
|
|
- **Name the source** — author, title, publication, date — and link it.
|
|
Partly courtesy, partly so a stale entry can be checked against the
|
|
original later.
|
|
- **Say what it replaces in our code.** This is the half no external
|
|
article can write, and the reason the file is worth keeping at all.
|
|
- **Prefer the vendor's own material where it exists.** When Apple's
|
|
shipped skills cover the same API, defer to them and keep only the
|
|
"what of ours does this replace" note.
|
|
|
|
## Adding to `xcode-practice`
|
|
|
|
The bar is deliberately high: something that actually went wrong, more than
|
|
once, and whose fix is not obvious from the framework documentation. A rule
|
|
nobody has been burned by is a rule nobody will follow.
|