Back to Skills
antigravityDevelopment & Code Tools
avalonia-zafiro-development
Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit.
Documentation
Avalonia Zafiro Development
This skill defines the mandatory conventions and behavioral rules for developing cross-platform applications with Avalonia UI and the Zafiro toolkit. These rules prioritize maintainability, correctness, and a functional-reactive approach.
Core Pillars
- Functional-Reactive MVVM: Pure MVVM logic using DynamicData and ReactiveUI.
- Safety & Predictability: Explicit error handling with
Resulttypes and avoidance of exceptions for flow control. - Cross-Platform Excellence: Strictly Avalonia-independent ViewModels and composition-over-inheritance.
- Zafiro First: Leverage existing Zafiro abstractions and helpers to avoid redundancy.
Guides
- Core Technical Skills & Architecture: Fundamental skills and architectural principles.
- Naming & Coding Standards: Rules for naming, fields, and error handling.
- Avalonia, Zafiro & Reactive Rules: Specific guidelines for UI, Zafiro integration, and DynamicData pipelines.
- Zafiro Shortcuts: Concise mappings for common Rx/Zafiro operations.
- Common Patterns: Advanced patterns like
RefreshableCollectionand Validation.
Procedure Before Writing Code
- Search First: Search the codebase for similar implementations or existing Zafiro helpers.
- Reusable Extensions: If a helper is missing, propose a new reusable extension method instead of inlining complex logic.
- Reactive Pipelines: Ensure DynamicData operators are used instead of plain Rx where applicable.
Quick Info
- Source
- antigravity
- Category
- Development & Code Tools
- Repository
- View Repo
- Scraped At
- Jan 26, 2026
Tags
reactairagcro
Related Skills
2d-games
2D game development principles. Sprites, tilemaps, physics, camera.
add_repo_inst
Please browse the current repository under /workspace/{{ REPO_FOLDER_NAME }}, look at the documentation and relevant code, and understand the purpose of this repository.
address_pr_comments
First, check the branch {{ BRANCH_NAME }} and read the diff against the main branch to understand the purpose.