Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Apple Docs Research

ASecurity

Exhaustively research Apple developer documentation — HIG pages, API reference, WWDC/Tech Talk sessions — by enumerating every linked reference programmatically and fetching all of them, never skipping one because it "looks like" a well-known API. Use this skill whenever the user asks you to read, go through, gather context from, or research anything on developer.apple.com: a HIG page, a framework or symbol's docs, a WWDC or Tech Talk session, release notes, or "everything about" a new Apple ...

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
designjavascriptpythonrustgojavaswiftshellbashgitapi

Works with

api

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add RV784/iphone-duo-skills --skill apple-docs-research --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Apple Docs Research?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Apple Docs Research
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rv784-apple-docs-research/badge)](https://www.skillsdirectory.com/skills/rv784-apple-docs-research)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: apple-docs-research
description: Exhaustively research Apple developer documentation — HIG pages, API reference, WWDC/Tech Talk sessions — by enumerating every linked reference programmatically and fetching all of them, never skipping one because it "looks like" a well-known API. Use this skill whenever the user asks you to read, go through, gather context from, or research anything on developer.apple.com: a HIG page, a framework or symbol's docs, a WWDC or Tech Talk session, release notes, or "everything about" a new Apple platform, device, OS version, or API. Also use it when the user asks what a new Apple API does, whether something is documented, or which SDK a symbol needs — and whenever they ask you to be thorough, complete, or exhaustive about Apple docs, or challenge whether you actually read all of it.
---

# Exhaustive Apple developer documentation research

## Why this skill exists

Apple's docs invite two specific mistakes, and both produce research that *looks*
complete and isn't.

**The first is silent triage.** A page links to `HStack`, `VStack`, `ZStack`,
`Label`, `UIBarButtonItem` — and it is very tempting to think "I know those" and
skip them. That reasoning is invalid, and it's worth being precise about why:
you are not deciding whether *you* need the page. You are deciding what the
*user's report* is based on. The reader has no way to tell which links you read
and which you assumed, so an unmarked gap reads as coverage. Worse, Apple
routinely adds new members to old types — a "boring" `GeometryProxy` link is
exactly where a brand-new `reservedRegions(kind:)` would live. Your prior about
a type's familiarity is evidence about the past, not about this page.

The rule that follows: **you may skip a link, but you may not skip it silently.**
Every reference is either fetched or explicitly listed as not-fetched with a
reason, in the output. Cheap to follow, and it converts an invisible assumption
into a visible, checkable claim.

**The second is trusting the rendered page.** developer.apple.com is a
JavaScript SPA. Fetching the human URL returns an empty shell — you get a title
and nothing else, which is easy to mistake for "this page is thin." The real
content is at DocC JSON endpoints. `scripts/appledoc.py` handles the mapping.

## The method

Run these in order. Steps 1–3 are the non-negotiable core; 4–6 are what turn a
transcript dump into something a reader can act on.

### 1. Fetch the root page as JSON, never as HTML

```bash
python3 scripts/appledoc.py get hig:designing-for-iphone-duo
python3 scripts/appledoc.py get swiftui/navigationsplitview
```

`hig:<page>` is shorthand for a Human Interface Guidelines page; anything else
is treated as a `documentation/` path. Full URLs work too. Add `--raw` for the
underlying JSON when you need metadata the text view drops.

**Video pages are the exception** — `/videos/play/wwdc20NN/NNN/` and
`/videos/play/tech-talks/NNNNN/` return real transcript content to an ordinary
web fetch. Use WebFetch for those, and ask for the transcript *verbatim with
every code snippet*, because for brand-new APIs the transcript is frequently the
only place a declaration exists anywhere (see step 4).

### 2. Enumerate every reference programmatically

```bash
python3 scripts/appledoc.py refs hig:designing-for-iphone-duo
```

Do this instead of eyeballing a prose summary of the page's links. A summary is
itself a lossy read, and it is the natural place for a link to quietly go
missing. The command prints a count — `32 real references` — that becomes your
accounting target.

Output is classified as `HIG` / `API` / `VIDEO` / `EXTERNAL` / `topic`. Images
are counted and excluded (a typical page is half image references, which is why
the raw reference count is misleadingly large).

### 3. Fetch all of them, and account for every one

Batch them. `refs` output feeds straight into `get`, and independent fetches
should go out in parallel rather than one per turn.

Two classes genuinely need no fetch, and naming them is part of the accounting:
site chrome (`Human Interface Guidelines` index, `Technologies`, `Getting
started`) and same-page anchors (`#Size-classes`). Everything else gets fetched.
**`EXTERNAL` links are the ones most often dropped** — Apple Design Resources,
GitHub plug-ins, sample-code downloads. They are also where device dimensions,
UI kits, and bezels live, so a question like "what are the screen dimensions"
is answered there or nowhere.

### 3b. Scope the rule sensibly on large symbol pages

The accounting rule is about **topical** links, not every symbol Apple's
generator emits. A HIG page carries 15–35 real references and all of them are
meaningful. A large UIKit class page carries 100+ — `UISplitViewController`
alone has 108 — because DocC lists every inherited member and protocol
conformance (`CVarArg`, `NSObjectProtocol`, `Equatable`…). Fetching those is
noise, not rigor.

So scope by the research question:

- **Root page and anything topically linked** — fetch everything. This is where
  silent triage does its damage.
- **Large symbol pages** — read the page itself, then enumerate its members
  in one pass (`topicSections`, or the members loop in `references/endpoints.md`)
  rather than fetching each member's page. One request shows the whole surface
  including members no session mentioned.
- **Boilerplate conformances** — skip, and say so once: "108 refs, 90 of which
  are inherited/conformance boilerplate; read the 18 topical ones."

The test isn't "did I fetch every URL," it's **"could a reader be misled about
what I actually read."** One honest line about what you skipped and why
satisfies it; silence does not.

### 4. Probe which symbols are actually documented

For any new platform or OS release, the tech talks will name APIs that have no
published reference page at all. Establishing *which* is a finding in itself.

```bash
python3 scripts/appledoc.py probe \
  swiftui/arrangementview swiftui/reservedregion \
  swiftui/toolbaritemvisibilitypriority uikit/uihingeinteraction
```

The output includes **introduced-in versions**, and this is where the real
insight usually hides. When you sort documented vs undocumented symbols by
availability, the split is rarely random — it typically falls exactly on an SDK
boundary, because the web doc set lags the newest SDK. That single observation
answers the question the user actually cares about: *which parts can I build
today, and which parts am I waiting on a toolchain for?*

Interpreting a 404 correctly matters:

- **404 on a type** (`swiftui/arrangementview`) — strong evidence it is unpublished.
- **404 on a member path** (`uikit/uibarbuttonitem/axisbehavior`) — weak evidence.
  You may simply have guessed the path wrong. Confirm against the parent page
  before claiming anything:
  ```bash
  python3 scripts/appledoc.py scan "axisBehavior,badge" --pages uikit/uibarbuttonitem
  ```
  In this exact case the parent page shows `badge` present and `axisBehavior`
  absent — so one 404 was a bad path and the other was a real gap. Reporting
  both as "undocumented" would have been wrong.

### 5. Sweep adjacent pages for the topic — searching content, not alt-text

To check whether a topic reaches beyond its own page:

```bash
python3 scripts/appledoc.py scan "iPhone Duo,hinge,reserved region" \
  --pages hig:layout,hig:multitasking,hig:split-views,hig:playing-video
```

`scan` searches **page prose only**. This is not a detail — a naive `grep` over
the raw JSON produces confident false positives from image alt-text. Icon
descriptions like *"two side-by-side windows in a split view arrangement"* match
`arrangement` on half a dozen unrelated pages, and `UISplitViewController`
matches `fold` because it discusses Notes **folders**. Both of those very nearly
became findings. `scan` excludes the reference/image payload so its hits are real.

A clean negative here is a genuine result — "this concept appears on exactly one
page and nowhere else in the HIG" tells the reader not to go looking.

### 6. Follow cross-referenced sessions, and check their dates

Sessions cite other sessions. Follow them, but verify the citation actually
pays out: a WWDC session from June cannot discuss hardware announced in
September, even when a talk lists it as related. Check what a session predates
before treating it as coverage — and when it contains nothing on the topic, say
so explicitly rather than omitting it, since "I checked and it's empty" and "I
didn't check" are indistinguishable to the reader otherwise.

## Reporting

Lead with a **source inventory**: every artifact, its type, and whether you
fetched it. Then the substance. Then — and this is the part most often dropped —
a **verified negatives** section.

Negatives earn their place because they are expensive to establish and cheap to
consume. "Apple has published nothing about video playback on this device; I
grepped 30+ HIG pages and the `playing-video` page has zero mentions" stops the
reader from repeating your search. State the *method* alongside the negative, so
they can judge how much to trust it.

Distinguish three things throughout, and label them:

- **Apple's text** — quote or reproduce it; for undocumented APIs the
  transcript snippet is the authoritative source and should be verbatim.
- **Verified absence** — you looked, with a named method, and it isn't there.
- **Your synthesis** — implications for the user's codebase. Mark it clearly as
  yours. It's usually the most valuable section and the one most damaged by
  being mistaken for Apple's guidance.

Flag the toolchain gate when it applies: if the APIs need a newer Xcode/SDK than
the user has (`xcodebuild -version`, `xcrun --sdk iphoneos --show-sdk-version`),
say so early — it changes whether the work is buildable now or plan-only.

## Failure modes worth remembering

| Symptom | Cause | Fix |
|---|---|---|
| Page returns only a title | SPA shell from the human URL | Use the JSON endpoint via `get` |
| Confident hits on unrelated pages | Matched image alt-text | Use `scan`, not raw grep |
| "Undocumented" member that exists | Guessed the wrong member path | `scan` the parent page |
| Missed dimensions / UI kits | Skipped `EXTERNAL` links | Fetch them; that's where downloads live |
| Session "covers" a topic it can't | Citation predates the announcement | Check dates before trusting |
| Report reads complete but isn't | Silent triage of "known" APIs | Account for every ref in the output |

## Reference

`references/endpoints.md` documents the URL→JSON mapping rules, the page JSON
structure, and how to pull availability and declaration fragments by hand if you
need something the script doesn't surface.

Attribution

RV784RV784
View sourceMore from RV784 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Responsive Design

Implement modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first breakpoint strategies. Use when building adaptive interfaces, implementing fluid layouts, or creating component-level responsive behavior.

393432 votes

Mermaid Diagrams

Creating and refining Mermaid diagrams with live reload. Use when users want flowcharts, sequence diagrams, class diagrams, ER diagrams, state diagrams, or any other Mermaid visualization. Provides best practices for syntax, styling, and the iterative workflow using mermaid_preview and mermaid_save tools.

2032 votes

sleek-design-mobile-apps

Use when the user wants to design a mobile app, create screens, build UI, or interact with their Sleek projects. Covers high-level requests ("design an app that does X") and specific ones ("list my projects", "create a new project", "screenshot that screen").

5711 votes

swiftui-design-skill

SwiftUI frontend visual design skill. Creates beautiful, distinctive iOS/macOS interfaces that avoid generic AI slop patterns. Covers design direction, layout systems, typography, color, spacing, brand integration, and design review. Use when designing new SwiftUI views, reviewing UI quality, creating iOS prototypes, choosing visual styles, improving app aesthetics, or when the UI looks generic or AI-generated.

1801 votes

Ios Hig

Use when designing iOS interfaces, implementing accessibility (VoiceOver, Dynamic Type), handling dark mode, ensuring adequate touch targets, providing animation/haptic feedback, or requesting user permissions. Apple Human Interface Guidelines for iOS compliance.

761 votes
View all in design →