By j-morgan6
Enforce best practices and prevent common mistakes when adding a native iOS client to an existing web application. SwiftUI, iOS 17+, XcodeGen, App Store pipeline.
Read-only auditor for iOS project layout. Verifies App/, Models/, Services/, ViewModels/, Views/, Extensions/, Assets.xcassets/ structure; checks project.yml for Swift 6 + iOS 17+ + DEVELOPMENT_TEAM; flags misplaced files.
Read-only SwiftUI code reviewer. Dispatch after writing or editing a SwiftUI view file to catch common pitfalls against the ios-from-web-guide anti-patterns list.
MANDATORY for API client and Services work. Use before writing APIClient, any file under Services/, or any networking code.
MANDATORY when adding or updating icons in AppIcon.appiconset/. Enforces 1024x1024 sizing and the per-variant alpha rules (primary opaque, dark transparent, tinted opaque grayscale).
MANDATORY for auth token storage. Use before writing any code that stores, reads, or deletes authentication credentials.
MANDATORY when the user asks to add or scaffold a new feature or screen. Chains Model + ViewModel + View + APIClient extension + test stub in one pass.
MANDATORY for Info.plist work. Use before adding imports that require user permission (PhotosUI, AVFoundation camera, CoreLocation, ATT, HealthKit, Contacts, EventKit).
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Based on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Enforce iOS/SwiftUI best practices when adding a native iOS client to an existing web app.
12 skills · 11 enforced hook checks · 2 agents · 9 templates · 5 scripts
A Claude Code plugin. Targets SwiftUI, iOS 17+, XcodeGen, and the App Store release pipeline. Pairs enforced skills with PreToolUse/PostToolUse/SessionStart/SubagentStart hooks and opinionated templates so common mistakes are caught before they ship.
Five concrete scars from shipping a real iOS client on top of a web backend:
.buttonStyle(.plain) inside a NavigationLink silently eats the tap. A blocking hook rejects it; skill swiftui-navigation-foundations teaches it.==. A custom id-only == on a model struct makes SwiftUI think nothing changed. A post-write hook warns; skill swiftui-equatable-hashable-for-diffing explains.swiftui-layout-pitfalls covers containerRelativeFrame and sibling issues.URL(string:) with a relative path returns nil. A post-write hook warns; skill swiftui-async-image-with-backend-paths + template String+BackendURL.swift give the fix.validate_pre_archive.sh catches it before Archive; strip-alpha-from-icon.sh fixes it.Plus a handful of "one-hour-to-recover" pitfalls: UserDefaults-for-tokens (blocked), @Published when iOS 17 wants @Observable, DispatchQueue.main.async inside @MainActor, print() shipping to production, missing privacy strings, non-incrementing build number.
Install via Claude Code's plugin system:
/plugin marketplace add j-morgan6/iOS-from-web-guide
/plugin install ios-from-web-guide@ios-from-web-guide
Restart Claude Code. Skills, agents, and hooks load automatically. Add .ios-from-web-guide-project.json (the plugin's per-project session cache) to your project's .gitignore.
Drop CLAUDE.md.template into your iOS project root (it tells Claude which skills to invoke when):
cp ~/.claude/plugins/cache/ios-from-web-guide/ios-from-web-guide/*/CLAUDE.md.template ./CLAUDE.md
/plugin uninstall ios-from-web-guide@ios-from-web-guide
Run the test suite (also run by CI, alongside shellcheck):
bash tests/run-tests.sh
MIT. See LICENSE.
npx claudepluginhub j-morgan6/ios-from-web-guide --plugin ios-from-web-guideEssential Elixir and Phoenix LiveView development guide with enforced skills, hooks, and patterns for idiomatic code
Ultra-compressed communication mode. Cuts 65% of output tokens (measured) while keeping full technical accuracy by speaking like a caveman.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Memory compression system for Claude Code - persist context across sessions
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Unified capability management center for Skills, Agents, and Commands.
45% cost reduction measured. Cache expiry prevention, SubTask auto-delegation, zero-cost context restoration, real-time cost dashboard. The only Claude Code plugin built from CC source analysis.