Hig Components Content
raintree-technology/hig-doctor
Apple Human Interface Guidelines for content display components.
Generate UI tests for FOSMVVM SwiftUI views using XCTest and FOSTestingUI.
$ npx skills add LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fosmvvm-ui-tests-generator --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/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/fosmvvm-ui-tests-generator .claude/skills/fosmvvm-ui-tests-generator && 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 "fosmvvm-ui-tests-generator" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generator into .claude/skills/fosmvvm-ui-tests-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fosmvvm-ui-tests-generator", 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/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generatorType 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 LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fosmvvm-ui-tests-generator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/fosmvvm-ui-tests-generator .agents/skills/fosmvvm-ui-tests-generator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fosmvvm-ui-tests-generator" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generator into .agents/skills/fosmvvm-ui-tests-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fosmvvm-ui-tests-generator", 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 LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fosmvvm-ui-tests-generator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/fosmvvm-ui-tests-generator .cursor/skills/fosmvvm-ui-tests-generator && 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 "fosmvvm-ui-tests-generator" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generator into .cursor/skills/fosmvvm-ui-tests-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fosmvvm-ui-tests-generator", 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/LeoYeAI/openclaw-master-skills.git --path skills/fosmvvm-ui-tests-generator--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 LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fosmvvm-ui-tests-generator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/fosmvvm-ui-tests-generator .gemini/skills/fosmvvm-ui-tests-generator && 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 "fosmvvm-ui-tests-generator" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generator into .gemini/skills/fosmvvm-ui-tests-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fosmvvm-ui-tests-generator", 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 LeoYeAI/openclaw-master-skills fosmvvm-ui-tests-generatorInstalls 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 LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/fosmvvm-ui-tests-generator .github/skills/fosmvvm-ui-tests-generator && 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 "fosmvvm-ui-tests-generator" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generator into .github/skills/fosmvvm-ui-tests-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fosmvvm-ui-tests-generator", 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 LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills fosmvvm-ui-tests-generator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/fosmvvm-ui-tests-generator .opencode/skills/fosmvvm-ui-tests-generator && 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 "fosmvvm-ui-tests-generator" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/fosmvvm-ui-tests-generator into .opencode/skills/fosmvvm-ui-tests-generator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fosmvvm-ui-tests-generator", 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.
fosmvvm-ui-tests-generatorGenerate UI tests for FOSMVVM SwiftUI views using XCTest and FOSTestingUI.
Fosmvvm UI Tests Generator is an agent skill from LeoYeAI/openclaw-master-skills. Generate UI tests for FOSMVVM SwiftUI views using XCTest and FOSTestingUI. Covers accessibility identifiers, ViewModelOperations, and test data transport.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `_meta.json` and `reference.md`).
It sits in Testing & QA, covering Test data and fixtures, iOS development and Accessibility. It works with SwiftUI. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are swift).
From 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.
Fosmvvm UI Tests Generator loads about 4.4k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 983 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 LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 983 words, ~4,447 tokens.
.claude/skills/fosmvvm-ui-tests-generator/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Generate comprehensive UI tests for ViewModelViews in FOSMVVM applications.
For full architecture context, see FOSMVVMArchitecture.md | OpenClaw reference
UI testing in FOSMVVM follows a specific pattern that leverages:
┌─────────────────────────────────────────────────────────────┐
│ UI Test Architecture │
├─────────────────────────────────────────────────────────────┤
│ │
│ Test File (XCTest) App Under Test │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ MyViewUITests │ │ MyView │ │
│ │ │ │ │ │
│ │ presentView() ───┼─────────────►│ Show view with │ │
│ │ with stub VM │ │ stubbed data │ │
│ │ │ │ │ │
│ │ Interact via ────┼─────────────►│ UI elements with │ │
│ │ identifiers │ │ .uiTestingId │ │
│ │ │ │ │ │
│ │ Assert on UI │ │ .testData────────┼──┐ │
│ │ state │ │ Transporter │ │ │
│ │ │ └──────────────────┘ │ │
│ │ viewModelOps() ◄─┼─────────────────────────────────────┘ │
│ │ verify calls │ Stub Operations │
│ └──────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘Every project should have a base test case that inherits from ViewModelViewTestCase:
class MyAppViewModelViewTestCase<VM: ViewModel, VMO: ViewModelOperations>:
ViewModelViewTestCase<VM, VMO>, @unchecked Sendable {
@MainActor func presentView(
configuration: TestConfiguration,
viewModel: VM = .stub(),
timeout: TimeInterval = 3
) throws -> XCUIApplication {
try presentView(
testConfiguration: configuration.toJSON(),
viewModel: viewModel,
timeout: timeout
)
}
override func setUp() async throws {
try await super.setUp(
bundle: Bundle.main,
resourceDirectoryName: "",
appBundleIdentifier: "com.example.MyApp"
)
continueAfterFailure = false
}
}Key points:
ViewModel and ViewModelOperationspresentView() with project-specific configurationcontinueAfterFailure = false stops tests immediately on failureEach ViewModelView gets a corresponding UI test file.
For views WITH operations:
final class MyViewUITests: MyAppViewModelViewTestCase<MyViewModel, MyViewOps> {
// UI Tests - verify UI state
func testButtonEnabled() async throws {
let app = try presentView(viewModel: .stub(enabled: true))
XCTAssertTrue(app.myButton.isEnabled)
}
// Operation Tests - verify operations were called
func testButtonTap() async throws {
let app = try presentView(configuration: .requireSomeState())
app.myButton.tap()
let stubOps = try viewModelOperations()
XCTAssertTrue(stubOps.myOperationCalled)
}
}
private extension XCUIApplication {
var myButton: XCUIElement {
buttons.element(matching: .button, identifier: "myButtonIdentifier")
}
}For views WITHOUT operations (display-only):
Use an empty stub operations protocol:
// In your test file
protocol MyViewStubOps: ViewModelOperations {}
struct MyViewStubOpsImpl: MyViewStubOps {}
final class MyViewUITests: MyAppViewModelViewTestCase<MyViewModel, MyViewStubOpsImpl> {
// UI Tests only - no operation verification
func testDisplaysCorrectly() async throws {
let app = try presentView(viewModel: .stub(title: "Test"))
XCTAssertTrue(app.titleLabel.exists)
}
}When to use each:
Common helpers for interacting with UI elements:
extension XCUIElement {
var text: String? {
value as? String
}
func typeTextAndWait(_ string: String, timeout: TimeInterval = 2) {
typeText(string)
_ = wait(for: \.text, toEqual: string, timeout: timeout)
}
func tapMenu() {
if isHittable {
tap()
} else {
coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)).tap()
}
}
}For views WITH operations:
public struct MyView: ViewModelView {
#if DEBUG
@State private var repaintToggle = false
#endif
private let viewModel: MyViewModel
private let operations: MyViewModelOperations
public var body: some View {
Button(action: doSomething) {
Text(viewModel.buttonLabel)
}
.uiTestingIdentifier("myButtonIdentifier")
#if DEBUG
.testDataTransporter(viewModelOps: operations, repaintToggle: $repaintToggle)
#endif
}
public init(viewModel: MyViewModel) {
self.viewModel = viewModel
self.operations = viewModel.operations
}
private func doSomething() {
operations.doSomething()
toggleRepaint()
}
private func toggleRepaint() {
#if DEBUG
repaintToggle.toggle()
#endif
}
}For views WITHOUT operations (display-only):
public struct MyView: ViewModelView {
private let viewModel: MyViewModel
public var body: some View {
VStack {
Text(viewModel.title)
Text(viewModel.description)
}
.uiTestingIdentifier("mainContent")
}
public init(viewModel: MyViewModel) {
self.viewModel = viewModel
}
}Critical patterns (for views WITH operations):
@State private var repaintToggle = false for triggering test data transport.testDataTransporter(viewModelOps:repaintToggle:) modifier in DEBUGtoggleRepaint() called after every operation invocationoperations stored as property from viewModel.operationsDisplay-only views:
repaintToggle needed.testDataTransporter() modifier needed.uiTestingIdentifier() to elements you want to testNot all views need ViewModelOperations:
Views that NEED operations:
Views that DON'T NEED operations:
For views without operations:
Create an empty operations file alongside your ViewModel:
// MyDisplayViewModelOperations.swift
import FOSMVVM
import Foundation
public protocol MyDisplayViewModelOperations: ViewModelOperations {}
#if canImport(SwiftUI)
public final class MyDisplayViewStubOps: MyDisplayViewModelOperations, @unchecked Sendable {
public init() {}
}
#endifThen use it in tests:
final class MyDisplayViewUITests: MyAppViewModelViewTestCase<
MyDisplayViewModel,
MyDisplayViewStubOps
> {
// Only test UI state, no operation verification
}The view itself doesn't need:
repaintToggle state.testDataTransporter() modifieroperations propertytoggleRepaint() functionJust add .uiTestingIdentifier() to elements you want to verify.
Verify that the UI displays correctly based on ViewModel state:
func testButtonDisabledWhenNotReady() async throws {
let app = try presentView(viewModel: .stub(ready: false))
XCTAssertFalse(app.submitButton.isEnabled)
}
func testButtonEnabledWhenReady() async throws {
let app = try presentView(viewModel: .stub(ready: true))
XCTAssertTrue(app.submitButton.isEnabled)
}Verify that user interactions invoke the correct operations:
func testSubmitButtonInvokesOperation() async throws {
let app = try presentView(configuration: .requireAuth())
app.submitButton.tap()
let stubOps = try viewModelOperations()
XCTAssertTrue(stubOps.submitCalled)
XCTAssertFalse(stubOps.cancelCalled)
}Verify navigation flows work correctly:
func testNavigationToDetailView() async throws {
let app = try presentView()
app.itemRow.tap()
XCTAssertTrue(app.detailView.exists)
}| File | Location | Purpose |
|---|---|---|
{ProjectName}ViewModelViewTestCase.swift | Tests/UITests/Support/ | Base test case for all UI tests |
XCUIElement.swift | Tests/UITests/Support/ | Helper extensions for XCUIElement |
| File | Location | Purpose |
|---|---|---|
{ViewName}ViewModelOperations.swift | Sources/{ViewModelsTarget}/{Feature}/ | Operations protocol and stub (if view has interactions) |
{ViewName}UITests.swift | Tests/UITests/Views/{Feature}/ | UI tests for the view |
Note: Views without user interactions use an empty operations file with just the protocol and minimal stub.
| Placeholder | Description | Example |
|---|---|---|
{ProjectName} | Your project/app name | MyApp, TaskManager |
{ViewName} | The ViewModelView name (without "View" suffix) | TaskList, Dashboard |
{Feature} | Feature/module grouping | Tasks, Settings |
Invocation: /fosmvvm-ui-tests-generator
Prerequisites:
Workflow integration: This skill is typically used after implementing ViewModelViews. The skill references conversation context automatically—no file paths or Q&A needed. Often follows fosmvvm-swiftui-view-generator or fosmvvm-react-view-generator.
This skill references conversation context to determine test structure:
From conversation context, the skill identifies:
From requirements already in context:
Based on project state:
For the specific view:
Ensure test identifiers and data transport:
.uiTestingIdentifier() on all interactive elements@State private var repaintToggle (if has operations).testDataTransporter() modifier (if has operations)toggleRepaint() calls after operations (if has operations)Skill references information from:
Use TestConfiguration for tests that need specific app state:
func testWithSpecificState() async throws {
let app = try presentView(
configuration: .requireAuth(userId: "123")
)
// Test with authenticated state
}Define element accessors in a private extension:
private extension XCUIApplication {
var submitButton: XCUIElement {
buttons.element(matching: .button, identifier: "submitButton")
}
var cancelButton: XCUIElement {
buttons.element(matching: .button, identifier: "cancelButton")
}
var firstItem: XCUIElement {
buttons.element(matching: .button, identifier: "itemButton").firstMatch
}
}After user interactions, verify operations were called:
func testDecrementButton() async throws {
let app = try presentView(configuration: .requireDevice())
app.decrementButton.tap()
let stubOps = try viewModelOperations()
XCTAssertTrue(stubOps.decrementCalled)
XCTAssertFalse(stubOps.incrementCalled)
}Set device orientation in setUp() if needed:
override func setUp() async throws {
try await super.setUp()
#if os(iOS)
XCUIDevice.shared.orientation = .portrait
#endif
}All views:
.uiTestingIdentifier() on all elements you want to testViews WITH operations (interactive views):
@State private var repaintToggle = false property.testDataTransporter(viewModelOps:repaintToggle:) modifiertoggleRepaint() helper functiontoggleRepaint() called after every operation invocationoperations stored from viewModel.operations in initViews WITHOUT operations (display-only):
repaintToggle needed.testDataTransporter() neededoperations property neededoperations stored from viewModel.operations in initfunc testAsyncOperation() async throws {
let app = try presentView()
app.loadButton.tap()
// Wait for UI to update
_ = app.waitForExistence(timeout: 3)
let stubOps = try viewModelOperations()
XCTAssertTrue(stubOps.loadCalled)
}func testFormInput() async throws {
let app = try presentView()
let emailField = app.emailTextField
emailField.tap()
emailField.typeTextAndWait("user@example.com")
app.submitButton.tap()
let stubOps = try viewModelOperations()
XCTAssertTrue(stubOps.submitCalled)
}func testErrorDisplay() async throws {
let app = try presentView(viewModel: .stub(hasError: true))
XCTAssertTrue(app.errorAlert.exists)
XCTAssertEqual(app.errorMessage.text, "An error occurred")
}See reference.md for complete file templates.
| Concept | Convention | Example |
|---|---|---|
| Base test case | {ProjectName}ViewModelViewTestCase | MyAppViewModelViewTestCase |
| UI test file | {ViewName}UITests | TaskListViewUITests |
| Test method (UI state) | test{Condition} | testButtonEnabled |
| Test method (operation) | test{Action} | testSubmitButton |
| Element accessor | {elementName} | submitButton, emailTextField |
| UI testing identifier | {elementName}Identifier or {elementName} | "submitButton", "emailTextField" |
| Version | Date | Changes |
|---|---|---|
| 1.0 | 2026-01-23 | Initial skill for UI tests |
| 1.1 | 2026-01-24 | Update to context-aware approach (remove file-parsing/Q&A). Skill references conversation context instead of asking questions or accepting file paths. |
© LeoYeAI, MIT. 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 2 other files in skills/fosmvvm-ui-tests-generator of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Fosmvvm UI Tests Generator 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 |
|---|---|---|---|---|---|---|
| Fosmvvm UI Tests Generator this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.4k | Automated safety check: Pass | MIT | |
| Hig Components Contentraintree-technology/hig-doctor | 143 | 5 repos | ~1.3k | Automated safety check: Pass | MIT | |
| iOS Accessibilitydpearson2699/swift-ios-skills | 1.2k | — | ~4.6k | Automated safety check: Pass | Custom licence | |
| UI Review TahoeKartikLabhshetwar/better-shot | 2.4k | 2 repos | ~1.7k | Automated safety check: Pass | Custom licence | |
| iOS Accessibility Testingconorluddy/xclaude-plugin | 183 | — | ~5k | Automated safety check: Pass | MIT | |
| Frontend DesignAnastasiyaW/codex-claude-code-config | 154 | — | ~1.1k | Automated safety check: Pass | MIT |
raintree-technology/hig-doctor
Apple Human Interface Guidelines for content display components.
dpearson2699/swift-ios-skills
Build and audit SwiftUI, UIKit, and AppKit accessibility for VoiceOver, Voice Control, Switch Control, Full Keyboard Access, Dynamic Type, focus restoration, labels/traits/actions, traversal, custom…
KartikLabhshetwar/better-shot
Comprehensive UI/UX review for macOS Tahoe apps. An agent skill from KartikLabhshetwar/better-shot.
conorluddy/xclaude-plugin
Guides WCAG 2.1 and VoiceOver accessibility testing for iOS apps, working from the accessibility tree and not from screenshots.
AnastasiyaW/codex-claude-code-config
Создание высококачественных, визуально выдающихся фронтенд-интерфейсов.
gustavscirulis/snapgrid
Review SwiftUI code for iOS/watchOS Human Interface Guidelines compliance, font usage, Dynamic Type support, and accessibility.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
Generate UI tests for FOSMVVM SwiftUI views using XCTest and FOSTestingUI. Fosmvvm UI Tests Generator is an agent skill from LeoYeAI/openclaw-master-skills. Generate UI tests for FOSMVVM SwiftUI views using XCTest and FOSTestingUI.
Fosmvvm UI Tests Generator fits situations like: tasks that involve Test data and fixtures; tasks that involve iOS development; tasks that involve Accessibility.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a claude-code`. Or copy the skill folder (skills/fosmvvm-ui-tests-generator in LeoYeAI/openclaw-master-skills) into .claude/skills/fosmvvm-ui-tests-generator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a codex`. Or copy the skill folder (skills/fosmvvm-ui-tests-generator in LeoYeAI/openclaw-master-skills) into .agents/skills/fosmvvm-ui-tests-generator 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 LeoYeAI/openclaw-master-skills --skill fosmvvm-ui-tests-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fosmvvm-ui-tests-generator, .gemini/skills/fosmvvm-ui-tests-generator, .github/skills/fosmvvm-ui-tests-generator and .opencode/skills/fosmvvm-ui-tests-generator in your project.
SKILL.md names no scripts, command-line tools or credentials: Fosmvvm UI Tests Generator is instructions for the agent only.
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.
Fosmvvm UI Tests Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k 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 Fosmvvm UI Tests Generator: Hig Components Content (raintree-technology/hig-doctor, 143 stars), iOS Accessibility (dpearson2699/swift-ios-skills, 1.2k stars), UI Review Tahoe (KartikLabhshetwar/better-shot, 2.4k stars) and iOS Accessibility Testing (conorluddy/xclaude-plugin, 183 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.