Files
claude-plugins/README.md
T
TomUviandClaude Opus 5 f84852d49c Collect findings from other people's writing, with sources
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>
2026-08-16 23:14:51 +02:00

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.