Swiftui Pro
twostraws/SwiftUI-Agent-Skill
Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance.
Use swift-snapshot-testing to visually verify SwiftUI views during implementation.
$ npx skills add woocommerce/woocommerce-ios --skill snapshot -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install woocommerce/woocommerce-ios snapshot --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-ios.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/snapshot .claude/skills/snapshot && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "snapshot" agent skill from https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshot into .claude/skills/snapshot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snapshot", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshotType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add woocommerce/woocommerce-ios --skill snapshot -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install woocommerce/woocommerce-ios snapshot --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-ios.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/snapshot .agents/skills/snapshot && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "snapshot" agent skill from https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshot into .agents/skills/snapshot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snapshot", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add woocommerce/woocommerce-ios --skill snapshot -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install woocommerce/woocommerce-ios snapshot --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-ios.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/snapshot .cursor/skills/snapshot && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "snapshot" agent skill from https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshot into .cursor/skills/snapshot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snapshot", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/woocommerce/woocommerce-ios.git --path .claude/skills/snapshot--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add woocommerce/woocommerce-ios --skill snapshot -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install woocommerce/woocommerce-ios snapshot --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-ios.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/snapshot .gemini/skills/snapshot && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "snapshot" agent skill from https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshot into .gemini/skills/snapshot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snapshot", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install woocommerce/woocommerce-ios snapshotInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add woocommerce/woocommerce-ios --skill snapshot -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-ios.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/snapshot .github/skills/snapshot && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "snapshot" agent skill from https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshot into .github/skills/snapshot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snapshot", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add woocommerce/woocommerce-ios --skill snapshot -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install woocommerce/woocommerce-ios snapshot --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/woocommerce/woocommerce-ios.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/snapshot .opencode/skills/snapshot && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "snapshot" agent skill from https://github.com/woocommerce/woocommerce-ios/tree/trunk/.claude/skills/snapshot into .opencode/skills/snapshot/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snapshot", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
snapshotUse swift-snapshot-testing to visually verify SwiftUI views during implementation.
Snapshot is an agent skill from woocommerce/woocommerce-ios. Use swift-snapshot-testing to visually verify SwiftUI views during implementation. Renders views to PNG for comparison against design references. Fast feedback loop (~25s/cycle).
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile, covering iOS development. It works with SwiftUI and WooCommerce. The licence is GPL-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 630d986. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGrepGlobFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitxcodebuildFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Snapshot loads about 1.8k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 531 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, Grep, GlobAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from woocommerce/woocommerce-ios at commit 630d986, republished under its GPL-2.0 licence (© woocommerce). 531 words, ~1,767 tokens.
.claude/skills/snapshot/SKILL.md (or your agent's skills folder).Use swift-snapshot-testing to create a visual feedback loop when implementing UI changes. Render SwiftUI views to PNG after each code change, compare against design goals, fix mismatches, and repeat.
1. SETUP Add swift-snapshot-testing dependency (temporary)
2. GOAL Collect design reference images
3. SCAFFOLD Create snapshot test rendering the target view
4. LOOP For each implementation step:
a. Edit code
b. Run snapshot test (record mode)
c. Read generated PNG
d. Compare against design
e. If mismatch -> fix and re-snapshot
f. If match -> commit the verified change, move to next step
5. CLEANUP Revert dependency + delete test fileCheck if swift-snapshot-testing already exists in Modules/Package.swift. If not, add it temporarily.
In the dependencies array of Modules/Package.swift:
.package(url: "https://github.com/pointfreeco/swift-snapshot-testing", from: "1.17.0"),In the relevant test target's dependencies array:
.product(name: "SnapshotTesting", package: "swift-snapshot-testing"),Common test targets in this project:
PointOfSaleTests — for POS viewsWooFoundationTests — for shared UI componentsYosemiteTests — for business logic viewsRemember the original state of Modules/Package.swift so you can revert exactly after cleanup.
If the user provides design reference images (Figma exports, screenshots):
mkdir -p ~/Downloads/snapshot_experiment
cp ~/path/to/design.png ~/Downloads/snapshot_experiment/design.pngRead each reference image to understand the target state before writing code.
If no reference image, the goal is inferred from the user's description of desired UI behavior.
Create a test file in the appropriate Modules/Tests/*Tests/ directory:
import XCTest
import SnapshotTesting
import SwiftUI
@testable import TargetModule
final class ViewNameSnapshotTests: XCTestCase {
override func invokeTest() {
withSnapshotTesting(record: .all) {
super.invokeTest()
}
}
func test_defaultState_snapshot() {
let view = YourView(/* props for default state */)
.frame(width: 375, height: 900)
assertSnapshot(of: view, as: .image(layout: .sizeThatFits))
}
func test_alternateState_snapshot() {
let view = YourView(/* props for alternate state */)
.frame(width: 375, height: 900)
assertSnapshot(of: view, as: .image(layout: .sizeThatFits))
}
}Important details for this project:
record: .all in invokeTest() forces PNG generation every run.environment(\.horizontalSizeClass, .regular) — POS is iPad-first.frame(width:height:) to control render size. Start with height: 900, increase to 1200+ if content is clippedPOSPadding, POSSpacing, POSFontStyle, Color+POSColorPalette) when comparing POS designsUse the /simulator skill approach to discover a booted simulator UDID.
Run only the snapshot tests for fast feedback:
xcodebuild test \
-workspace WooCommerce.xcworkspace \
-scheme WooCommerce \
-destination 'platform=iOS Simulator,id=<SIMULATOR_UDID>' \
-only-testing:<TestTarget>/<SnapshotTestClass> \
CODE_SIGNING_ALLOWED=NO 2>&1 | tail -30Prefer module-level test targets over the full app for faster feedback (~25s vs minutes).
Generated PNGs appear at:
Modules/Tests/<TestTarget>/__Snapshots__/<TestClass>/test_name.1.pngAfter each run:
cp Modules/Tests/<Target>/__Snapshots__/<Class>/test_name.1.png ~/Downloads/snapshot_experiment/step1.pngCommon issues caught by snapshots:
.lineLimit(1).fixedSize(horizontal: true, vertical: false), reduce padding.environment(\.horizontalSizeClass, .regular)POSPadding/POSSpacing values against designWhen fixing: edit the code and re-run snapshots to verify. Only commit once the snapshot matches the design goal — don't commit untested changes.
After implementation is complete, revert ALL temporary changes:
# Revert Package.swift (removes snapshot dependency)
git checkout -- Modules/Package.swift
# Revert Package.resolved if it changed
git checkout -- Modules/Package.resolved
# Also revert workspace Package.resolved if changed
git checkout -- WooCommerce.xcworkspace/xcshareddata/swiftpm/Package.resolved
# Delete the snapshot test file
rm Modules/Tests/<TestTarget>/<SnapshotTestClass>.swift
# Delete generated snapshot directory
rm -rf Modules/Tests/<TestTarget>/__Snapshots__
# Verify clean state
git statusCritical: Never commit snapshot test files, __Snapshots__/ directories, or the swift-snapshot-testing dependency. These are temporary iteration tools only.
| Action | Command/Tool |
|---|---|
| Add dependency | Edit Modules/Package.swift |
| Run snapshots | xcodebuild test -only-testing:<Target>/<Class> |
| Find PNGs | Modules/Tests/<Target>/__Snapshots__/<Class>/test_name.1.png |
| View snapshot | Read tool on the PNG path |
| Compare | Read both snapshot PNG and design reference |
| Fix + re-run | Edit code, re-run xcodebuild, commit once verified |
| Clean up | git checkout -- Modules/Package.swift, rm test file + snapshots |
© woocommerce, GPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/snapshot of woocommerce/woocommerce-ios.
Open the folder on GitHubat commit 630d986
Snapshot next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Snapshot this skillwoocommerce/woocommerce-ios | 358 | — | ~1.8k | Automated safety check: Notes | GPL-2.0 | |
| Swiftui Protwostraws/SwiftUI-Agent-Skill | 5.2k | 2 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Update Swiftui APIsAvdLee/SwiftUI-Agent-Skill | 3.7k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Swiftui Liquid Glassharperreed/dotfiles | 334 | 8 repos | ~941 | Automated safety check: Pass | None | |
| Swiftui Expert Skillomarshahine/HomeClaw | 175 | 4 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Appkit Swiftui BridgeKartikLabhshetwar/better-shot | 2.4k | 2 repos | ~1.1k | Automated safety check: Pass | Custom licence |
twostraws/SwiftUI-Agent-Skill
Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance.
AvdLee/SwiftUI-Agent-Skill
Scan Apple's SwiftUI documentation for deprecated APIs and update the SwiftUI Expert Skill with modern replacements.
harperreed/dotfiles
Implement, review, or improve SwiftUI features using the iOS 26+ Liquid Glass API.
omarshahine/HomeClaw
A skill your agent uses when writing, reviewing, or refactoring SwiftUI code for iOS or macOS, including state management, view composition, performance, Liquid Glass adoption, or Instruments .trace…
KartikLabhshetwar/better-shot
Expert guidance for hybrid AppKit-SwiftUI development. An agent skill from KartikLabhshetwar/better-shot.
AFK-surf/OpenBridge
Best practices and example-driven guidance for building SwiftUI views and components.
woocommerce/woocommerce-ios
Diagnose and fix Swift strict-concurrency warnings in WooCommerce iOS.
woocommerce/woocommerce-ios
Launch the WooCommerce app on a simulator already authenticated into a given store (site credentials, application password, or WPCom), skipping the manual login UI.
woocommerce/woocommerce-ios
Set up the ContextA8C MCP server for accessing Automattic internal resources (Slack, Linear, P2s, GitHub Enterprise, etc.)
woocommerce/woocommerce-ios
Build the app, launch on simulator, and verify feature behavior via mobile-mcp interaction.
woocommerce/woocommerce-ios
Debug a failing test or build error in WooCommerce iOS. An agent skill from woocommerce/woocommerce-ios.
woocommerce/woocommerce-ios
Start or stop the WireMock API mock server for UI testing and E2E verification.
Works with
Categories
Use swift-snapshot-testing to visually verify SwiftUI views during implementation. Snapshot is an agent skill from woocommerce/woocommerce-ios. Use swift-snapshot-testing to visually verify SwiftUI views during implementation.
Snapshot fits situations like: tasks that involve iOS development.
Run `npx skills add woocommerce/woocommerce-ios --skill snapshot -a claude-code`. Or copy the skill folder (.claude/skills/snapshot in woocommerce/woocommerce-ios) into .claude/skills/snapshot in your project. Claude Code loads it when a task matches its description.
Run `npx skills add woocommerce/woocommerce-ios --skill snapshot -a codex`. Or copy the skill folder (.claude/skills/snapshot in woocommerce/woocommerce-ios) into .agents/skills/snapshot in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add woocommerce/woocommerce-ios --skill snapshot -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/snapshot, .gemini/skills/snapshot, .github/skills/snapshot and .opencode/skills/snapshot in your project.
Going by SKILL.md and its folder, Snapshot needs the command-line tools its instructions call (git and xcodebuild). Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Grep, Glob.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Snapshot is published under the GPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Snapshot: Swiftui Pro (twostraws/SwiftUI-Agent-Skill, 5.2k stars), Update Swiftui APIs (AvdLee/SwiftUI-Agent-Skill, 3.7k stars), Swiftui Liquid Glass (harperreed/dotfiles, 334 stars) and Swiftui Expert Skill (omarshahine/HomeClaw, 175 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
woocommerce (a GitHub organization) maintains it in woocommerce/woocommerce-ios, which has 358 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 9, 2026.
Source: woocommerce/woocommerce-ios on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.