iOS RAG Skill
Purpose
Vector search across iOS repositories. Semantic search of Swift code, SwiftUI views, UIKit patterns, and design tokens via MCP tools. Call status to discover currently indexed projects.
MCP Tools
| Tool | Purpose |
|---|---|
query |
Semantic search — returns code chunks with relevance scores |
status |
Health check, indexed projects, document counts |
navigate |
O(1) shortcut to known code locations |
expansions |
Component alias mappings + synonym groups for query planning |
Tool parameters are self-describing — check inputSchema for current options. iOS also exposes filter metadata via GET /api/rag/filters (REST) — use query inputSchema for MCP-accessible filter options.
Discovery Protocol
Before querying, discover what's indexed:
- Call
status— returns available projects, document counts, health - Call
expansions(once per session) — get component aliases and synonym groups
Use discovered project names for filters.project param. Use enforce_scope: false to search across all indexed projects.
When to Use
| Scenario | RAG | Grep/Glob | Context7 |
|---|---|---|---|
| Find Swift view by concept | yes | if know filename | no |
| Search theme tokens | yes | yes | no |
| Apple framework API | no | no | yes |
| Cross-project pattern | yes | one repo at a time | no |
| Existing view for task | yes | no | no |
Query Strategy
- Known view or file? ->
query+ component filter (get canonical name fromexpansions) - Known topic area? ->
query+ topic/file_type filters (discover valid values viastatus) - Conceptual/cross-cutting? -> Smart query with HyDE (see
references/smart-query.md) - **< 3 results or low scores?** -> Broaden: remove filters, try synonyms, alternate casing
- Still sparse? -> Try
enforce_scope: falseto search all indexed repos - Still nothing? -> Fall through to Grep/Glob (codebase search)
Rules
- Start broad, refine with filters — not longer queries
- Natural language works best — "button with loading state" over "btn loading"
- Low relevance scores suggest rephrasing needed
- If server offline, fall back to Grep/Glob
stale_sidecar: truein results — trust code chunks, ignore metadata fields- Do NOT generate synonym variants — server handles expansion automatically
Integration
Priority level 2 in knowledge-retrieval chain:
docs/files -> 2. RAG -> 3. Skills/codebase -> 4. Context7
Related Skills
knowledge-retrieval— Orchestrates source priorityios-development— iOS development patterns (enhanced by this skill)docs-seeker— External Apple documentation lookup
References
references/smart-query.md— HyDE + multi-query retrieval strategyreferences/sidecar-workflow.md— AI-generated metadata enrichmentreferences/component-mappings.md— Get canonical names viaexpansionsMCP toolreferences/synonym-groups.md— Get synonym groups viaexpansionsMCP tool