LaunchKit · 2026
Back to Skills

fosmvvm-viewmodel-generator

Generate FOSMVVM ViewModels for SwiftUI screens, pages, and components.

2
455 downloads
by @foscomputerservices

Setup & Installation

openclaw skills install @foscomputerservices/fosmvvm-viewmodel-generator

Or with the ClawHub CLI, for registry-managed skill folders outside a full OpenClaw workspace:

npx clawhub install fosmvvm-viewmodel-generator

What This Skill Does

Scaffolds ViewModels for SwiftUI screens following FOSMVVM architecture. Handles both server-hosted and client-hosted modes, generating the correct combination of ViewModel structs, Request types, localization YAML, and factory files. Covers display ViewModels, form ViewModels, child ViewModels, and error display patterns.

It encodes the multi-file structure, hosting mode decision, and protocol adoption rules of FOSMVVM so developers don't have to manually reason through each placement decision.

When to use it

  • Generating a new page ViewModel that fetches data from a server API
  • Scaffolding a settings screen ViewModel backed by local device state
  • Creating a client-hosted error display ViewModel from a caught ResponseError
  • Adding a card or row child ViewModel nested inside a parent list ViewModel
  • Producing localization YAML alongside a new ViewModel struct

Example Workflow

Here's how your AI assistant might use this skill in practice.

INPUT

User asks: Create a ViewModel for a user profile screen that loads data from the server

AGENT
  1. 1Determine hosting mode: data comes from server, so server-hosted
  2. 2Design ViewModel properties: @LocalizedString for page title, stored properties for profile data, LocalizableDate for join date
  3. 3Generate UserProfileViewModel.swift with RequestableViewModel conformance and vmId
  4. 4Generate UserProfileRequest.swift with the associated ViewModelRequest type
  5. 5Generate UserProfileViewModel.yml with English localization keys
  6. 6Generate UserProfileViewModel+Factory.swift with hand-written factory querying the database
OUTPUT

Four files: UserProfileViewModel.swift, UserProfileRequest.swift, UserProfileViewModel.yml, UserProfileViewModel+Factory.swift