ios-legacy-mapping
Step-by-step procedure for mapping an undocumented, unfamiliar, or large legacy iOS codebase (Objective-C, UIKit, SwiftUI, or a mix) before making changes.
Skill by apexbymanish
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/apexbymanish-ios-legacy-mapping
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/ios-legacy-mapping
What's inside
- Skill name
ios-legacy-mapping- Description
- Step-by-step procedure for mapping an undocumented, unfamiliar, or large legacy iOS codebase (Objective-C, UIKit, SwiftUI, or a mix) before making changes. Use when onboarding onto a project with no CLAUDE.md, no architecture docs, or when asked to "explore this codebase" or "figure out how this app is structured".
- License
- MIT
- Instructions
- 139 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# iOS Legacy Codebase Mapping A read-only reconnaissance procedure. Do not modify code while running this — the output is a document, not a refactor. ## 1. Inventory targets and schemes ```bash find . -name "*.xcodeproj" -o -name "*.xcworkspace" xcodebuild -list -project <Project>.xcodeproj # or -workspace ``` Note every target (app, extensions, frameworks, test targets) and which scheme builds what. A large app often has more targets than the obvious main one (share extensions, widgets, watch app). ## 2. Detect the architecture actually in use — don't assume Codebases rarely match what their README claims (if they have one at all). Grep for signal, don't guess: ```bash # Massive View Controller smell grep -rlZ "class.*ViewController" --include="*.swift" --include="*.m" . \ | xargs -0 wc -l | sort -rn | head -20 # Singleton usage density grep -rn "\.shared\b" --include="*.swift" . | wc -l # Delegate pattern density (common in older UIKit code) grep -rn "Delegate" --include="*.swift" --include="*.h" . | wc -l # MVVM signal grep -rl "ViewModel" --include="*.swift" . | wc -l ``` A file count over ~400-500 lines for view controllers, high singleton density, and low ViewModel presence together indicate a Massive View Controller / MVC-in-name-only codebase regardless of what any doc claims. **Known false positives:** a large view-controller file that's mostly generated or boilerplate (Interface Builder outlet dumps, generated model/mapping code) isn't the same finding as a large hand-maintained one — open the file rather than trusting the line count alone. Raw `.shared` count includes standard Apple singletons (`UIApplication.shared`, `URLSession.shared`, `FileManager.default`) that are normal API usage, not an app-specific anti-pattern — the density signal is about *app-defined* singletons; skim a sample of hits to see which kind dominates before citing the raw count as evidence of over-reliance. Delegate-density hits include standard UIKit protocol conformance (`UITableViewDelegate`, `UICollectionViewDelegate`) alongside any custom delegate protocols substituting for real architecture — only the latter is the smell. ## 3. Flag Objective-C ↔ Swift bridging points ```bash find . -name "*-Bridging-Header.h" find . -name "*.h" -o -name "*.m" | wc -l # Obj-C surface area grep -rl "@objc" --include="*.swift" . | head -20 ``` For each bridging header found, read it and note which Obj-C types are exposed to Swift — these are the highest-risk edit points (changes on either side can silently break the other without a compiler error on both sides in mixed-language files). ## 4. Flag security-relevant patterns ```bash # Hardcoded secrets/keys in source grep -rniE '(api[_-]?key|secret|password|token)\s*=\s*"' --include="*.swift" --include="*.m" --include="*.h" . # Credentials/tokens stored insecurely (UserDefaults instead of Keychain) grep -rniE 'UserDefaults' --include="*.swift" . | grep -iE 'token|password|secret|credential' # Is there a Keychain wrapper at all? grep -rl "kSecClass\|SecItemAdd\|SecItemCopyMatching" --include="*.swift" . | wc -l # App Transport Security weakened grep -A5 "NSAppTransportSecurity" **/*.plist 2>/dev/null # TLS/certificate validation bypassed grep -rn "didReceive challenge" --include="*.swift" . -A5 | grep -i "useCredential\|performDefaultHandling" # Sensitive data reaching logs grep -rniE '(print|NSLog|os_log)\(.*\b(token|password|secret)\b' --include="*.swift" . ``` Per `ios-evidence-reporting`'s "a pattern match is a lead, not a finding" rule, a hit on any of these is a lead to verify, not proof. The absence of any Keychain usage combined with `UserDefaults` calls near "token" or "password" is a strong signal worth verifying, even though neither half alone confirms insecure storage. **Known false positive:** zero hits on raw `kSecClass`/`SecItemAdd` doesn't mean zero Keychain usage — a project using a third-party Keychain wrapper (e.g. KeychainAccess, KeychainSwift) calls the wrapper's API, not the raw Security framework calls this grep looks for. Check `Package.resolved`/`Podfile.lock` for a Keychain-wrapper dependency before concluding credentials aren't in the Keychain at all. ## 5. Map module and dependency boundaries ```bash find . -name "Package.swift" find . -name "Podfile" find . -name "*.podspec" ``` Note whether the app is a single monolithic target, uses local SPM packages, or uses CocoaPods/Carthage — this determines how safely code can be moved or extracted later. ## 6. Produce the summary document Write findings as a `CLAUDE.md`-ready summary with these sections: ```markdown
From apexbymanish/claude-ai-agents-ios, MIT.
More from apexbymanish/claude-ai-agents-ios
- 0.524score
swiftui-engineering
apexbymanish
Procedure for reviewing SwiftUI code for state-ownership, view-identity, lifecycle, and rendering correctness — distinct from ios-ux-reviewer's visual/HIG…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-accessibility
apexbymanish
Procedure for reviewing and verifying iOS accessibility — VoiceOver, Dynamic Type, contrast, hit targets, Switch Control, Reduce Motion — with an explicit…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-api-availability
apexbymanish
Procedure for determining whether code actually works at a project's stated minimum iOS version — deployment target vs.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-app-store-readiness
apexbymanish
App Store submission readiness checklist covering privacy manifests, export compliance, permission usage descriptions, App Tracking Transparency, Sign in with…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-testing-strategy
apexbymanish
Step-by-step procedure for adding tests to existing Swift/iOS code, whether untested legacy code or new TDD work.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-feature-implementation
apexbymanish
Structured procedure for implementing a new feature or change in an existing iOS codebase — inspect and explain before touching files, then implement, then…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-performance-measurement
apexbymanish
Procedure for confirming a performance fix actually worked, with a real number, instead of asserting improvement from reading code.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-security-review
apexbymanish
Comprehensive security audit procedure for iOS/Swift code covering data storage, transport security, authentication, input validation, deep links, third-party…
SkillBFreshness: BClaude Code +9 - 0.524score
swift-concurrency
apexbymanish
Procedure for reviewing real Swift code for concurrency correctness — async/await, actors, Sendable, cancellation, task lifetime — not a Swift Concurrency…
SkillBFreshness: BClaude Code +9 - 0.521score
ios-evidence-reporting
apexbymanish
Standard for reporting task outcomes with verifiable evidence instead of confident prose.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 28, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from apexbymanish
- 0.524score
swiftui-engineering
apexbymanish
Procedure for reviewing SwiftUI code for state-ownership, view-identity, lifecycle, and rendering correctness — distinct from ios-ux-reviewer's visual/HIG…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-accessibility
apexbymanish
Procedure for reviewing and verifying iOS accessibility — VoiceOver, Dynamic Type, contrast, hit targets, Switch Control, Reduce Motion — with an explicit…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-api-availability
apexbymanish
Procedure for determining whether code actually works at a project's stated minimum iOS version — deployment target vs.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-app-store-readiness
apexbymanish
App Store submission readiness checklist covering privacy manifests, export compliance, permission usage descriptions, App Tracking Transparency, Sign in with…
SkillBFreshness: BClaude Code +9 - 0.524score
ios-testing-strategy
apexbymanish
Step-by-step procedure for adding tests to existing Swift/iOS code, whether untested legacy code or new TDD work.
SkillBFreshness: BClaude Code +9 - 0.524score
ios-feature-implementation
apexbymanish
Structured procedure for implementing a new feature or change in an existing iOS codebase — inspect and explain before touching files, then implement, then…
SkillBFreshness: BClaude Code +9
Cite this page
ios-legacy-mapping skill. Agent Mart. https://agentmart.dev/skills/apexbymanish-ios-legacy-mapping (last updated 2026-10-24)