← All skills
Tencent SkillHub · Communication & Collaboration

FOSMVVM Fields Generator

Generate FOSMVVM Fields protocols defining form fields, input types, validation rules, and localized messages for consistent, reusable form specifications.

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

Generate FOSMVVM Fields protocols defining form fields, input types, validation rules, and localized messages for consistent, reusable form specifications.

⬇ 0 downloads ★ 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
SKILL.md, reference.md

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
2.0.6

Documentation

ClawHub primary doc Primary doc: SKILL.md 23 sections Open source page

FOSMVVM Fields Generator

Generate Form Specifications following FOSMVVM patterns.

Conceptual Foundation

For full architecture context, see FOSMVVMArchitecture.md | OpenClaw reference A Form Specification (implemented as a {Name}Fields protocol) is the single source of truth for user input. It answers: What data can the user provide? (properties) How should it be presented? (FormField with type, keyboard, autofill semantics) What constraints apply? (validation rules) What messages should be shown? (localized titles, placeholders, errors)

Why This Matters

The Form Specification is defined once, used everywhere: // Same protocol adopted by different consumers: struct CreateIdeaRequestBody: ServerRequestBody, IdeaFields { ... } // HTTP transmission @ViewModel struct IdeaFormViewModel: IdeaFields { ... } // Form rendering final class Idea: Model, IdeaFields { ... } // Persistence validation This ensures: Consistent validation - Same rules on client and server Shared localization - One YAML file, used everywhere Single source of truth - Change once, applies everywhere

Connection to FOSMVVM

Form Specifications integrate with: Localization System - FormField titles/placeholders and validation messages use LocalizableString Validation System - Implements ValidatableModel protocol Request System - RequestBody types adopt Fields for validated transmission ViewModel System - ViewModels adopt Fields for form rendering

When to Use This Skill

Defining a new form (create, edit, filter, search) Adding validation to a request body Any type that needs to conform to ValidatableModel When fosmvvm-fluent-datamodel-generator needs form fields for a DataModel

What This Skill Generates

A complete Form Specification consists of 3 files: FilePurpose{Name}Fields.swiftProtocol + FormField definitions + validation methods{Name}FieldsMessages.swift@FieldValidationModel struct with @LocalizedString properties{Name}FieldsMessages.ymlYAML localization (titles, placeholders, error messages)

Project Structure Configuration

Replace placeholders with your project's actual paths: PlaceholderDescriptionExample{ViewModelsTarget}Shared ViewModels SPM targetViewModels, SharedViewModels{ResourcesPath}Localization resources pathSources/Resources Expected Structure: Sources/ {ViewModelsTarget}/ FieldModels/ {Name}Fields.swift {Name}FieldsMessages.swift {ResourcesPath}/ FieldModels/ {Name}FieldsMessages.yml

How to Use This Skill

Invocation: /fosmvvm-fields-generator Prerequisites: Form purpose understood from conversation context Field requirements discussed (names, types, constraints) Entity relationship identified (what is this form creating/editing) Workflow integration: This skill is used when defining form validation and user input contracts. The skill references conversation context automatically—no file paths or Q&A needed. Often precedes fosmvvm-fluent-datamodel-generator for form-backed models.

Pattern Implementation

This skill references conversation context to determine Fields protocol structure:

Form Analysis

From conversation context, the skill identifies: Form purpose (create, edit, filter, login, settings) Entity relation (User, Idea, Document - what's being created/edited) Protocol naming (CreateIdeaFields, UpdateProfile, LoginCredentials)

Field Design

For each field from requirements: Property specification (name, type, optional vs required) Presentation type (FormFieldType: text, textArea, select, checkbox) Input semantics (FormInputType: email, password, tel, date) Constraints (required, length range, value range, date range) Localization (title, placeholder, validation error messages)

File Generation Order

Fields protocol with FormField definitions and validation FieldsMessages struct with @LocalizedString properties FieldsMessages YAML with localized strings

Context Sources

Skill references information from: Prior conversation: Form requirements, field specifications discussed Specification files: If Claude has read form specs into context Existing patterns: From codebase analysis of similar Fields protocols

Protocol Structure

public protocol {Name}Fields: ValidatableModel, Codable, Sendable { var fieldName: FieldType { get set } var {name}ValidationMessages: {Name}FieldsMessages { get } }

FormField Definition

static var contentField: FormField<String?> { .init( fieldId: .init(id: "content"), title: .localized(for: {Name}FieldsMessages.self, propertyName: "content", messageKey: "title"), placeholder: .localized(for: {Name}FieldsMessages.self, propertyName: "content", messageKey: "placeholder"), type: .textArea(inputType: .text), options: [ .required(value: true) ] + FormInputOption.rangeLength(contentRange) ) }

FormField Types Reference

FormFieldTypeUse Case.text(inputType:)Single-line input.textArea(inputType:)Multi-line input.checkboxBoolean toggle.selectDropdown selection.colorPickerColor selection

FormInputType Reference (common ones)

FormInputTypeKeyboard/Autofill.textDefault keyboard.emailAddressEmail keyboard, email autofill.passwordSecure entry.telPhone keyboard.urlURL keyboard.date, .datetimeLocalDate picker.givenName, .familyNameName autofill

Validation Method Pattern

internal func validateContent(_ fields: [FormFieldBase]?) -> [ValidationResult]? { guard fields == nil || (fields?.contains(Self.contentField) == true) else { return nil } var result = [ValidationResult]() if content.isEmpty { result.append(.init( status: .error, field: Self.contentField, message: {name}ValidationMessages.contentRequiredMessage )) } else if !Self.contentRange.contains(NSString(string: content).length) { result.append(.init( status: .error, field: Self.contentField, message: {name}ValidationMessages.contentOutOfRangeMessage )) } return result.isEmpty ? nil : result }

Messages Struct Pattern

@FieldValidationModel public struct {Name}FieldsMessages { @LocalizedString("content", messageGroup: "validationMessages", messageKey: "required") public var contentRequiredMessage @LocalizedString("content", messageGroup: "validationMessages", messageKey: "outOfRange") public var contentOutOfRangeMessage }

YAML Structure

en: {Name}FieldsMessages: content: title: "Content" placeholder: "Enter your content..." validationMessages: required: "Content is required" outOfRange: "Content must be between 1 and 10,000 characters"

Naming Conventions

ConceptConventionExampleProtocol{Name}FieldsIdeaFields, CreateIdeaFieldsMessages struct{Name}FieldsMessagesIdeaFieldsMessagesMessages property{name}ValidationMessagesideaValidationMessagesField definition{fieldName}FieldcontentFieldRange constant{fieldName}RangecontentRangeValidate methodvalidate{FieldName}validateContentRequired message{fieldName}RequiredMessagecontentRequiredMessageOutOfRange message{fieldName}OutOfRangeMessagecontentOutOfRangeMessage

See Also

FOSMVVMArchitecture.md - Full FOSMVVM architecture reference fosmvvm-viewmodel-generator - For ViewModels that adopt Fields fosmvvm-fluent-datamodel-generator - For Fluent DataModels that implement Fields reference.md - Complete file templates

Version History

VersionDateChanges1.02024-12-24Initial skill2.02024-12-26Rewritten with conceptual foundation; generalized from Kairos-specific2.12026-01-24Update to context-aware approach (remove file-parsing/Q&A). Skill references conversation context instead of asking questions or accepting file paths.

Category context

Messaging, meetings, inboxes, CRM, and teammate communication surfaces.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
2 Docs
  • SKILL.md Primary doc
  • reference.md Docs