From neo-research
Researches Apple iOS/visionOS frameworks against spec files using Dash docset docs. Outputs per-feature references with verbatim code examples and API signatures before implementation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/neo-research:apple-researchThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Research Apple framework documentation against your app's spec or planning files.
Research Apple framework documentation against your app's spec or planning files. Produces a structured reference artifact with verbatim code from official guides, samples, and API docs.
DocSetQuery/docs/apple/*.md (run batch_export.py)rlm_apple_bulk_ingest for faster searchRead the user's spec/plan file and extract implementation features:
1. Read the spec file (user provides path)
2. Break into discrete features/components
3. For each feature, identify:
- What Apple frameworks are involved
- What specific capabilities are needed (gestures, 3D rendering, networking, etc.)
- What platform constraints exist (visionOS only, iOS 17+, etc.)
For each feature, search the Apple docs:
# Via MCP tools (if docs are ingested into .mv2):
rlm_apple_lookup(query="<feature need>", framework="<fw>", top_k=5)
# Via extraction tool (for full sections with code):
rlm_apple_extract(query="<feature need>", frameworks="visionos,realitykit", role_filter="Sample Code")
# Via REPL (for deep programmatic search across all frameworks):
rlm_exec("""
from apple_extract import DocReader
reader = DocReader("/Users/quartershots/Source/DocSetQuery/docs/apple")
# Find relevant guides
guides = reader.find_by_role("Article", frameworks=["visionos", "arkit"])
# Find sample code
samples = reader.find_by_role("Sample Code", frameworks=["visionos", "realitykit"])
# Search for specific capability
hits = reader.find("immersive space", frameworks=["visionos", "swiftui"])
# Cross-reference a symbol
xrefs = reader.xref("ImmersiveSpace")
""")
For each discovery hit, extract the full section with code blocks preserved:
# Via MCP tool:
rlm_apple_extract(query="placing content on detected planes", frameworks="visionos", preserve_code=True)
# Via REPL for surgical extraction:
rlm_exec("""
from apple_extract import DocReader
reader = DocReader("/Users/quartershots/Source/DocSetQuery/docs/apple")
# Get full section text with code
section = reader.read_section("visionos", "Placing content on detected planes", include_children=True)
print(section)
# Or just the code blocks
blocks = reader.code_blocks("visionos", "Placing content on detected planes")
for b in blocks:
print(f"--- {b['language']} ---")
print(b['code'])
""")
Structure: one file per spec, organized by feature.
Output path: ~/.claude/research/apple-<project>/reference.md
# <Project> — Apple Docs Reference
> Generated: <date>
> Spec: <spec file path>
> Sources: <N> sections from <M> frameworks
> Docs root: /Users/quartershots/Source/DocSetQuery/docs/apple/
## Feature: <name from spec>
### Relevant Frameworks
- <framework>: <what it provides for this feature>
### Official Guide: <guide title> (Article)
_Source: docs/apple/<fw>.md, line <N>_
<verbatim extracted text with code blocks>
### Sample Code: <sample title> (Sample Code)
_Source: docs/apple/<fw>.md, line <N>_
<verbatim code blocks, full context>
### Key APIs
- `ClassName` (Class) — <one-line from overview>
```swift
<declaration from doc>
methodName(_:) (Instance Method) —
<declaration>
Based on the guides above:
...
### Phase 5: Verify
Read the artifact. For each feature, check:
1. Are there verbatim code examples? (not synthesized)
2. Do the APIs exist in the exported docs? (cross-ref with `reader.xref()`)
3. Are platform requirements noted?
4. Are there gaps? (features with no matching guides — flag them)
### Phase 6: Artifact Output
Report what was generated:
Apple docs research complete:
For coding: read the reference doc before implementing each feature. For deep-dive: rlm_apple_extract(query="...", frameworks="...")
## REPL Helper Reference
The `DocReader` class (in `mcp_server/apple_extract.py`) provides these methods:
| Method | What it does |
|--------|-------------|
| `frameworks()` | List all exported framework files with sizes |
| `toc(fw)` | Table of contents for a framework |
| `find(query, frameworks?, role?)` | Search headings + content across frameworks |
| `find_by_role(role, frameworks?)` | Find all sections of a type (Article, Sample Code, Class, etc.) |
| `read_section(fw, heading_query)` | Full section text with code blocks |
| `code_blocks(fw, heading_query)` | Just the code blocks from a section |
| `xref(symbol)` | Which frameworks mention a symbol |
## Rules
1. **Preserve code verbatim.** Never paraphrase or summarize code blocks. Copy them exactly.
2. **Cite sources.** Every extracted section must have its framework file and line number.
3. **Feature-first organization.** Organize by spec features, not by framework.
4. **Flag gaps honestly.** If a feature has no matching guide or sample, say so.
5. **Prefer Sample Code over Articles.** Sample code has tested, runnable examples. Articles have conceptual explanations. Both are useful, but prioritize samples for implementation reference.
6. **Cross-reference APIs.** If a guide mentions `Entity`, check `realitykit.md` for the full `Entity (Class)` section. Combine guide context with API reference.
npx claudepluginhub shihwesley/shihwesley-plugins --plugin neo-researchIndexes Apple developer documentation for iOS/macOS frameworks. Browse APIs, find doc paths, and fetch detailed pages for SwiftUI, UIKit, Core Animation, XCTest, HealthKit, Combine, SwiftData, and more.
Searches 277K+ Apple developer documentation pages offline for Swift, SwiftUI, UIKit, Foundation, Combine APIs, HIG, sample code, and Swift Evolution proposals.
MCP tools for Xcode automation and Apple documentation access. XcodeBuildMCP for builds, apple-docs for WWDC and API docs. Use when building projects, searching documentation, or accessing WWDC content.