By henrysipp
Swift concurrency, SwiftUI patterns, performance auditing, and iOS debugging skills
Use XcodeBuildMCP to build, run, launch, and debug the current iOS project on a booted simulator. Trigger when asked to run an iOS app, interact with the simulator UI, inspect on-screen state, capture logs/console output, or diagnose runtime behavior using XcodeBuildMCP tools.
Swift Concurrency review and remediation for Swift 6.2+. Use when asked to review Swift Concurrency usage, improve concurrency compliance, or fix Swift concurrency compiler errors in a feature or file. Concrete actions include adding Sendable conformance, applying @MainActor annotations, resolving actor isolation warnings, fixing data race diagnostics, and migrating completion handlers to async/await.
Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API. Use when asked to adopt Liquid Glass in new SwiftUI UI, refactor an existing feature to Liquid Glass, or review Liquid Glass usage for correctness, performance, and design alignment.
Audit and improve SwiftUI runtime performance from code review and architecture. Use for requests to diagnose slow rendering, janky scrolling, high CPU/memory usage, excessive view updates, or layout thrash in SwiftUI apps, and to provide guidance for user-run Instruments profiling when code review alone is insufficient.
Best practices and example-driven guidance for building SwiftUI views and components, including navigation hierarchies, custom view modifiers, and responsive layouts with stacks and grids. Use when creating or refactoring SwiftUI UI, designing tab architecture with TabView, composing screens with VStack/HStack, managing @State or @Binding, building declarative iOS interfaces, or needing component-specific patterns and examples.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Shared skills (and, later, subagents) for Claude Code and Codex. One repo, two consumption modes:
install.sh symlinks skills into each tool. Symlinks — not
copies — because skills write back to their own references/ and memory as
they run; linking keeps those writes here, git-tracked, shared by both tools.Claude Code:
/plugin marketplace add henrysipp/skills
/plugin install swift-skills@henry-skills
Codex:
codex plugin marketplace add henrysipp/skills
codex plugin add swift-skills@henry-skills
Cursor: no third-party marketplace registration. Install from GitHub via
Customize → Rules → Remote Rule (repo URL), or publish to cursor.com/marketplace.
Local dev: copy/symlink plugins/swift-skills into ~/.cursor/plugins/local/.
plugins/swift-skills/ the plugin, shared verbatim by all three tools
.claude-plugin/plugin.json Claude plugin manifest
.codex-plugin/plugin.json Codex plugin manifest
.cursor-plugin/plugin.json Cursor plugin manifest
skills/<name>/
SKILL.md Claude reads this (frontmatter: name, description)
agents/openai.yaml Codex reads this (display_name, default_prompt)
references/ supporting docs the skill loads on demand
agents/ subagents (Claude-only; empty for now)
install.sh symlinks skills into each tool (local dev mode)
.claude-plugin/marketplace.json Claude marketplace catalog
.agents/plugins/marketplace.json Codex marketplace catalog
Plugins must live in a subdirectory (plugins/<name>), not at the repo root —
Codex refuses root-as-plugin, and its installer copies files (skipping
symlinks), so the plugin dir holds the real skill content.
Each skill is dual-format on purpose. Claude auto-discovers from the SKILL.md
description; Codex invokes explicitly via the $name trigger in
agents/openai.yaml. Same body, two front doors.
./install.sh # link everything into both tools
./install.sh claude # Claude only
./install.sh codex # Codex only
./install.sh --dry-run # preview, change nothing
./install.sh --unlink # remove the symlinks it created
Targets (override with $CLAUDE_HOME / $CODEX_HOME):
| Source | Claude | Codex |
|---|---|---|
skills/<name>/ | ~/.claude/skills/<name> | ~/.agents/skills/<name> (+ legacy ~/.codex/skills) |
agents/<name>.md | ~/.claude/agents/<name>.md | — (no subagent concept) |
Cursor needs no target of its own: it reads ~/.agents/skills/ (and falls back
to ~/.claude/skills/), so the Codex symlinks cover it. Same for subagents —
Cursor reads ~/.claude/agents/ as a compatibility path.
Each skill/agent is linked individually, so this composes with the skills
you already have globally — it never replaces the whole directory. If a real
(non-symlink) file already sits at a target, the script skips it and tells you.
Files named example-*, README*, and dotfiles are not installed.
openai.yaml shim (derivable from the SKILL.md frontmatter).~/.claude/agents/ as
a compat path). Codex has no subagent primitive, so agents/ is linked into
Claude alone.~/.agents/skills/ and
~/.cursor/skills/, with ~/.claude/skills/ and ~/.codex/skills/ as
fallbacks — the symlinks above already cover it.npx claudepluginhub henrysipp/skills --plugin swift-skillsUltra-compressed communication mode. Cuts 65% of output tokens (measured) while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.