Swiftui Expert Skill
ilyas-hallak/romm-ios-app
Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, and iOS 26+ Liquid Glass adoption.
Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.
$ npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UniClipboard/UniClipboard ios-log-diagnose --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/UniClipboard/UniClipboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .claude/skills/ios-log-diagnose && 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 "ios-log-diagnose" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnose into .claude/skills/ios-log-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ios-log-diagnose", 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/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnoseType 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 UniClipboard/UniClipboard --skill ios-log-diagnose -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UniClipboard/UniClipboard ios-log-diagnose --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .agents/skills/ios-log-diagnose && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ios-log-diagnose" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnose into .agents/skills/ios-log-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ios-log-diagnose", 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 UniClipboard/UniClipboard --skill ios-log-diagnose -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UniClipboard/UniClipboard ios-log-diagnose --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .cursor/skills/ios-log-diagnose && 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 "ios-log-diagnose" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnose into .cursor/skills/ios-log-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ios-log-diagnose", 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/UniClipboard/UniClipboard.git --path .agents/skills/ios-log-diagnose--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 UniClipboard/UniClipboard --skill ios-log-diagnose -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UniClipboard/UniClipboard ios-log-diagnose --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .gemini/skills/ios-log-diagnose && 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 "ios-log-diagnose" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnose into .gemini/skills/ios-log-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ios-log-diagnose", 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 UniClipboard/UniClipboard ios-log-diagnoseInstalls 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 UniClipboard/UniClipboard --skill ios-log-diagnose -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .github/skills/ios-log-diagnose && 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 "ios-log-diagnose" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnose into .github/skills/ios-log-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ios-log-diagnose", 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 UniClipboard/UniClipboard --skill ios-log-diagnose -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UniClipboard/UniClipboard ios-log-diagnose --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UniClipboard/UniClipboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/ios-log-diagnose .opencode/skills/ios-log-diagnose && 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 "ios-log-diagnose" agent skill from https://github.com/UniClipboard/UniClipboard/tree/main/.agents/skills/ios-log-diagnose into .opencode/skills/ios-log-diagnose/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ios-log-diagnose", 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.
ios-log-diagnoseDrive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.
iOS Log Diagnose is an agent skill from UniClipboard/UniClipboard. Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs. Use when debugging why the iOS sync engine or M5 reducer did something, reproducing an iOS sync / clipboard bug on the simulator, or whenever you'd otherwise ask the user "what do the logs say". All output is Swift OSLog under subsystem app.uniclipboard — the Rust core (uc-mobile) emits no logs of its own; the Swift shell logs the reducer's decisions.
Its SKILL.md is about 1.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `ios-logs.sh`).
It sits in Mobile, covering iOS development and State management. It works with iOS and Rust. The repository describes itself as: Real-time clipboard sync across all your devices — local-first, peer-to-peer, and end-to-end encrypted. No account. No cloud dependency. No central server. The licence is AGPL-3.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit add157e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
xcodebuildFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
iOS Log Diagnose loads about 1.1k tokens when it runs. Until then it costs about 130 tokens; SKILL.md has 476 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 found no risky patterns in SKILL.md.
Automated 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 UniClipboard/UniClipboard at commit add157e, republished under its AGPL-3.0 licence (© UniClipboard). 476 words, ~1,129 tokens.
.claude/skills/ios-log-diagnose/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Read the UniClipboard iOS app's logs yourself. The mobile-sync decision core lives in Rust (uc-mobile reducer), but it has no logger — the Swift SyncEngine shell logs every reducer decision and outcome to OSLog. So one OSLog stream shows both the native Swift logic and the Rust core's behavior.
iOS app repo: /Users/mark/MyProjects/iOSApp/UniClipboard. The reducer-path log harness lives in UniClipboard/Sync/SyncEngine.swift (commit e94ffd1).
The helper is .agents/skills/ios-log-diagnose/ios-logs.sh — the only thing to invoke. Don't hand-roll simctl/log pipelines unless it can't express what you need (macOS has no timeout; the script wraps log stream in a perl alarm — reproducing that by hand is the usual mistake).
Log level decides where a line goes. This split is the whole mental model:
debug → live only, never persisted. The per-tick decision trace: sync preamble: proceed/stop(...), sync route: converged/server-new/push(...), push silent-skip. Seen ONLY by streaming while it happens. Use to watch what the reducer decides each tick.notice / error → persisted, queryable after the fact. The event trail: sync apply/stage/push/consent-push, sync history: round done, the five handle_* transitions, and tick: SyncError .... Use to reconstruct what already happened.So: streaming a reproduction answers "what is it deciding right now"; show answers "what happened in the last N minutes".
Drive — boot a sim, install the newest build, inject the Rust-core flag ON + an active server, launch:
.agents/skills/ios-log-diagnose/ios-logs.sh drive [SERVER_URL]The engine only ticks with an active server, so drive always injects one. A dead URL (the default) still exercises preamble → proceed → getClipboard fails → tick: SyncError → backoff — enough to see decisions + the error path. For the happy path (route/apply/push/converge), pass a SERVER_URL that actually returns data (a running uniclipd mobile-sync server).
Completion: the command prints injected: flag=ON server=... and a launch PID.
Read — choose the channel:
.agents/skills/ios-log-diagnose/ios-logs.sh stream [SECONDS] [CATEGORY] # live debug, default 15s
.agents/skills/ios-log-diagnose/ios-logs.sh show [DURATION] [CATEGORY] # persisted notice/error, default 5mCATEGORY (optional): sync (SyncEngine — reducer + tick; the usual one), network (HTTP client / connect-uri), store (persistence), app, intents. Omit for every category under app.uniclipboard.
Completion: you have the sync (or target) lines for the run you triggered, and can name what the reducer decided / what failed.
hashTag prefix — a one-way SHA fingerprint that correlates one clipboard item across pull → stage → apply → push → converge, never the content.drive writes mobileCore.syncClientUsesRustCore = YES. Once the native A/B paths are deleted and Rust is the only path, that key just goes unread — the script keeps working unchanged.defaults suite group.app.uniclipboard.UniClipboard; injecting them needs a terminate + launch so loadServers re-reads. drive handles this.grep ProcessInfo.processInfo.environment in the iOS repo for UC_* (e.g. UC_DEVICE_TEXT to seed a device copy, UC_TEST_QR_PAYLOAD to add a server via connect-uri) — passed through SIMCTL_CHILD_<NAME>=value on launch.drive says "no built UniClipboard.app": xcodebuild -scheme UniClipboard -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' build CODE_SIGNING_ALLOWED=NO.© UniClipboard, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/ios-log-diagnose of UniClipboard/UniClipboard.
Open the folder on GitHubat commit add157e
iOS Log Diagnose 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 |
|---|---|---|---|---|---|---|
| iOS Log Diagnose this skillUniClipboard/UniClipboard | 1.9k | — | ~1.1k | Automated safety check: Pass | AGPL-3.0 | |
| Swiftui Expert Skillilyas-hallak/romm-ios-app | 169 | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Swiftui Expert SkillAFK-surf/OpenBridge | 430 | 2 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Swiftui Patternsaffaan-m/ECC | 276k | 4 repos | ~1.8k | Automated safety check: Pass | MIT | |
| Swiftui Expert Skillsupabitapp/supaterm | 172 | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Iphone Useleeguooooo/iphone-use | 135 | — | ~2.9k | Automated safety check: Pass | MIT |
ilyas-hallak/romm-ios-app
Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, and iOS 26+ Liquid Glass adoption.
AFK-surf/OpenBridge
Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, modern APIs, Swift concurrency, and iOS 26+ Liquid Glass adoption.
affaan-m/ECC
SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS/macOS UI best practices.
supabitapp/supaterm
Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, macOS-specific APIs, and iOS 26+ Liquid Glass adoption.
leeguooooo/iphone-use
A skill your agent uses when a task needs a real iPhone — operating iOS apps that have no API (Apple Health, banking, IM apps), exporting on-phone data, tapping/typing/scrolling on the phone, or…
hanamizuki/solopreneur
A skill your agent uses when building iOS/macOS apps with SwiftUI — covers localization (String Catalogs), date/time formatting, JSON date decoding, Previews, state management, sheet/navigation…
UniClipboard/UniClipboard
Pick and install beUI (@beui) animated React components from the shadcn registry.
UniClipboard/UniClipboard
Push the current branch and open a GitHub pull request against main.
UniClipboard/UniClipboard
定期审计代码库的工程设计问题(高心智复杂度、单一真相源被破坏、catch-all 胖接口、死代码、散落魔法字面量、泄漏抽象、资源生命周期靠环形缓冲)与可优化点,范围限定为自上次审计以来的 git churn,每条发现都落到 file:line 并对照本项目自己的 VISION.md / 各级 AGENTS.md / memory…
UniClipboard/UniClipboard
Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues.
UniClipboard/UniClipboard
Analyze the current branch's diff against main and determine which changes are testable via CLI-based end-to-end tests.
UniClipboard/UniClipboard
Record a lesson learned into crates/AGENTS.md (CONVENTIONS or ANTI-PATTERNS section).
Categories
Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs. iOS Log Diagnose is an agent skill from UniClipboard/UniClipboard. Drive the UniClipboard iOS app in a simulator and read its OSLog yourself to diagnose a mobile-sync bug, instead of asking the user to paste logs.
iOS Log Diagnose fits situations like: debugging why the iOS sync engine; M5 reducer did something; reproducing an iOS sync / clipboard bug on the simulator; whenever youd otherwise ask the user what do the logs say.
Run `npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a claude-code`. Or copy the skill folder (.agents/skills/ios-log-diagnose in UniClipboard/UniClipboard) into .claude/skills/ios-log-diagnose in your project. Claude Code loads it when a task matches its description.
Run `npx skills add UniClipboard/UniClipboard --skill ios-log-diagnose -a codex`. Or copy the skill folder (.agents/skills/ios-log-diagnose in UniClipboard/UniClipboard) into .agents/skills/ios-log-diagnose 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 UniClipboard/UniClipboard --skill ios-log-diagnose -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ios-log-diagnose, .gemini/skills/ios-log-diagnose, .github/skills/ios-log-diagnose and .opencode/skills/ios-log-diagnose in your project.
Going by SKILL.md and its folder, iOS Log Diagnose needs a shell for the scripts in its folder and the command-line tools its instructions call (xcodebuild). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
iOS Log Diagnose is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.1k tokens (SKILL.md is roughly 4.5k 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 iOS Log Diagnose: Swiftui Expert Skill (ilyas-hallak/romm-ios-app, 169 stars), Swiftui Expert Skill (AFK-surf/OpenBridge, 430 stars), Swiftui Patterns (affaan-m/ECC, 276k stars) and Swiftui Expert Skill (supabitapp/supaterm, 172 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
UniClipboard (a GitHub organization) maintains it in UniClipboard/UniClipboard, which has 1,867 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 10, 2026.
Source: UniClipboard/UniClipboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.