Skill · em Construir interface

avalonia-viewmodels-zafiro

Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI.

Procedência

Antes de instalar

5 arquivos · 8,3 KB · só texto, nenhum script

Instalar na sua CLI

O comando baixa a versão fixada (commit 57f899e) direto da origem, para a pasta que a CLI lê. Precisa de curl (macOS e Linux); no Windows não há comando, porque o Rook Labs é para macOS.

Claude Code

Neste projeto: instala em .claude/skills/avalonia-viewmodels-zafiro/.

d=".claude/skills/avalonia-viewmodels-zafiro"
u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/development/avalonia-viewmodels-zafiro"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/composition.md" "$u/composition.md" \
  -o "$d/navigation_sections.md" "$u/navigation_sections.md" \
  -o "$d/viewmodels.md" "$u/viewmodels.md" \
  -o "$d/wizards.md" "$u/wizards.md" \
  -o "$d/LICENSE" "https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/LICENSE"

Global: instala em ~/.claude/skills/avalonia-viewmodels-zafiro/.

d="$HOME/.claude/skills/avalonia-viewmodels-zafiro"
u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/development/avalonia-viewmodels-zafiro"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/composition.md" "$u/composition.md" \
  -o "$d/navigation_sections.md" "$u/navigation_sections.md" \
  -o "$d/viewmodels.md" "$u/viewmodels.md" \
  -o "$d/wizards.md" "$u/wizards.md" \
  -o "$d/LICENSE" "https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/LICENSE"

Codex

Neste projeto: instala em .agents/skills/avalonia-viewmodels-zafiro/.

d=".agents/skills/avalonia-viewmodels-zafiro"
u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/development/avalonia-viewmodels-zafiro"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/composition.md" "$u/composition.md" \
  -o "$d/navigation_sections.md" "$u/navigation_sections.md" \
  -o "$d/viewmodels.md" "$u/viewmodels.md" \
  -o "$d/wizards.md" "$u/wizards.md" \
  -o "$d/LICENSE" "https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/LICENSE"

Global: instala em ~/.agents/skills/avalonia-viewmodels-zafiro/.

d="$HOME/.agents/skills/avalonia-viewmodels-zafiro"
u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/development/avalonia-viewmodels-zafiro"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/composition.md" "$u/composition.md" \
  -o "$d/navigation_sections.md" "$u/navigation_sections.md" \
  -o "$d/viewmodels.md" "$u/viewmodels.md" \
  -o "$d/wizards.md" "$u/wizards.md" \
  -o "$d/LICENSE" "https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/LICENSE"

Antigravity

Neste projeto: instala em .agents/skills/avalonia-viewmodels-zafiro/.

d=".agents/skills/avalonia-viewmodels-zafiro"
u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/development/avalonia-viewmodels-zafiro"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/composition.md" "$u/composition.md" \
  -o "$d/navigation_sections.md" "$u/navigation_sections.md" \
  -o "$d/viewmodels.md" "$u/viewmodels.md" \
  -o "$d/wizards.md" "$u/wizards.md" \
  -o "$d/LICENSE" "https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/LICENSE"

Global: instala em ~/.gemini/antigravity-cli/skills/avalonia-viewmodels-zafiro/.

d="$HOME/.gemini/antigravity-cli/skills/avalonia-viewmodels-zafiro"
u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/development/avalonia-viewmodels-zafiro"
curl -fsSL --create-dirs \
  -o "$d/SKILL.md" "$u/SKILL.md" \
  -o "$d/composition.md" "$u/composition.md" \
  -o "$d/navigation_sections.md" "$u/navigation_sections.md" \
  -o "$d/viewmodels.md" "$u/viewmodels.md" \
  -o "$d/wizards.md" "$u/wizards.md" \
  -o "$d/LICENSE" "https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/LICENSE"

Peça ao Rook

Já usa o Rook Labs? Cole no chat do Rook: instale a skill https://rooklabs.sh/marketplace/cct.avalonia-viewmodels-zafiro

Prévia do SKILL.md

---
name: avalonia-viewmodels-zafiro
description: Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI.
---

# Avalonia ViewModels with Zafiro

This skill provides a set of best practices and patterns for creating ViewModels, Wizards, and managing navigation in Avalonia applications, leveraging the power of **ReactiveUI** and the **Zafiro** toolkit.

## Core Principles

1.  **Functional-Reactive Approach**: Use ReactiveUI (`ReactiveObject`, `WhenAnyValue`, etc.) to handle state and logic.
2.  **Enhanced Commands**: Utilize `IEnhancedCommand` for better command management, including progress reporting and name/text attributes.
3.  **Wizard Pattern**: Implement complex flows using `SlimWizard` and `WizardBuilder` for a declarative and maintainable approach.
4.  **Automatic Section Discovery**: Use the `[Section]` attribute to register and discover UI sections automatically.
5.  **Clean Composition**: map ViewModels to Views using `DataTypeViewLocator` and manage dependencies in the `CompositionRoot`.

## Guides

- [ViewModels & Commands](viewmodels.md): Creating robust ViewModels and handling commands.
- [Wizards & Flows](wizards.md): Building multi-step wizards with `SlimWizard`.
- [Navigation & Sections](navigation_sections.md): Managing navigation and section-based UIs.
- [Composition & Mapping](composition.md): Best practices for View-ViewModel wiring and DI.

## Example Reference

For real-world implementations, refer to the **Angor** project:
- `CreateProjectFlowV2.cs`: Excellent example of complex Wizard building.
- `HomeViewModel.cs`: Simple section ViewModel using functional-reactive commands.

Ver todo o marketplace