# Swift Binding Fixer

> Fix SwiftUI binding errors ($var issues) by adding @Bindable to @Observable ViewModels in Leavn app

- Skill: `majiayu000/swift-binding-fixer` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/swift-binding-fixer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/swift-binding-fixer/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/swift-binding-fixer

---


# Swift Binding Fixer

## Instructions

Fix "cannot find '$viewModel'" errors:

1. **Find the error**:
   ```bash
   grep "cannot find '\$viewModel'" build_output.txt
   ```

2. **Read the view file**:
   - Check if viewModel is @Observable type
   - Look for `@State var viewModel` or `var viewModel`
   - Find all `$viewModel.property` usages

3. **Apply fix**:
   ```swift
   // BEFORE
   @State var viewModel: MyViewModel
   // OR
   var viewModel: MyViewModel

   // AFTER (if using $viewModel)
   @Bindable var viewModel: MyViewModel
   ```

4. **Common Leavn patterns**:
   - HomeViewModel: Use @Bindable for sheet bindings
   - CommunityViewModel: Use @Bindable for showCreate* bindings
   - SettingsViewModel: Use @Bindable for alert bindings
   - SermonAIView: Use @Bindable for showing* bindings

Use this skill when: $viewModel errors, @Observable binding issues, sheet presentation errors

