Files
claude-plugins/README.md
T
TomUviandClaude Opus 5 905ad2ce3e Start a plugin marketplace for Apple platform work
Skills have been living inside one app's repository, which means the next
Xcode project starts without them and a copy is the only way to share.
A marketplace makes them installable once at user scope.

Two kinds of knowledge, handled differently. What Apple ships with Xcode
stays Apple's: this repository carries a script that exports it from the
locally installed Xcode rather than a copy, so nobody redistributes
pre-release material and everyone's guidance matches their own SDK.

What we learned by shipping goes in the skill, and only if it burned us —
the file writes hidden in view bodies, the blobs that froze the main
thread, the watch target that quietly stopped compiling, the test summary
that reads as zero tests when eighty-four passed. Each of those cost real
time twice before being written down.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-16 23:07:08 +02:00

65 lines
2.0 KiB
Markdown

# pdat-xcode
A Claude Code plugin marketplace for Apple platform work.
## What is here
**`pdat-swift-practice`** — one skill, `xcode-practice`. 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.
## Adding to the skill
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.