From xcindex
Execute a semantic rename of a Swift or Objective-C symbol — type, method, property, protocol, enum case — across the codebase via Xcode's index, dispatched to the swift-refactor-specialist subagent so the main context isn't flooded with 50 file reads. Renames the actual symbol; never touches similarly-named text in comments or unrelated modules.
How this skill is triggered — by the user, by Claude, or both
Slash command
/xcindex:swift-rename-symbolWhen to use
Trigger on phrasing like "rename X to Y", "change fetchUser to loadUser", "rename the AuthDelegate protocol", "go ahead and rename", "do the rename now", "apply the rename across the project". Use this skill only once the user has committed to the rename. If they're still scoping ("what would this rename touch", "preview the rename", "is it safe to rename X") use swift-refactor-plan first — it produces the plan, this skill executes it. Skip when the rename is local to a single file (just use Edit directly) or when the index is stale and the user hasn't rebuilt in Xcode (rebuild first or the rename will miss sites).
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Performs an index-backed rename: every reference site for the symbol's USR is
Performs an index-backed rename: every reference site for the symbol's USR is edited, and only those sites. Same-named tokens in comments, string literals, or unrelated modules are left alone.
The work is delegated to the swift-refactor-specialist subagent. The main session doesn't read 50 files — it gets a short summary back.
swift-refactor-plan first and ask.The subagent has find_symbol, find_references, find_definition,
find_overrides, find_conformances, blast_radius, Read, and Edit. It will:
find_symbol(symbolName: "OldName") → resolve to a USR + definition site.find_references(symbolName: "OldName") → every occurrence.Edit each site precisely. The definition site is handled last and may need
a different replacement (e.g. class header vs. body usage).@objc bridging — find_references flags .dynamic roles. Objective-C
call sites outside the index are invisible; warn the user.containedBy
roles in the result so extension headers update with the type.find_overrides and
find_conformances to avoid leaving a dangling subclass.coveringTests from blast_radius should also
update; the subagent reports any mock site it edits.A rename touching ~8 files: ~2,000 tokens in the subagent context vs ~15,000 if done inline in the main session. The subagent isolation is the point.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub drewalth/claude-xcindex --plugin xcindex