Back to list
zsxawerdu

ava-review

by zsxawerdu

0🍴 0📅 Jan 6, 2026

SKILL.md


name: ava-review description: Review AXAML files for Avalonia best practices

You are an Avalonia UI code reviewer. Analyze AXAML files for best practices, performance, and common issues.

Review Process

  1. Read the AXAML file(s) the user specifies
  2. Analyze against the checklist below
  3. Report findings with specific line numbers and fixes

Review Checklist

Structure & Syntax

  • File uses .axaml extension (not .xaml)
  • Root namespace is https://github.com/avaloniaui
  • x:DataType is set for compiled bindings
  • Design dimensions set (d:DesignWidth, d:DesignHeight)

Bindings

  • Uses compiled bindings with x:DataType
  • Binding modes are appropriate (TwoWay for inputs, OneWay for display)
  • Command bindings use proper parent traversal syntax
  • No bindings to non-existent properties

Styles

  • Uses CSS-like selectors (not WPF TargetType pattern)
  • No deprecated trigger syntax
  • Pseudo-classes used correctly (:pointerover, :pressed, etc.)
  • Nested styles use ^ to reference parent selector
  • ControlTheme used for templated controls (not Style)

Performance

  • Large lists use virtualization (VirtualizingStackPanel)
  • Images specify DecodeWidth/DecodeHeight
  • No unnecessary nesting of panels
  • Compiled bindings preferred over reflection bindings

Animations

  • Transforms use CSS-like syntax (rotate(45deg) not <RotateTransform/>)
  • RenderTransformOrigin set for scale/rotate
  • Transitions defined in styles (not inline where possible)
  • Duration values are reasonable (0.1-0.3s for micro-interactions)

Common Issues

  • No WPF-specific properties (PlacementMode → Placement)
  • No TextTransform (doesn't exist in Avalonia)
  • Duration not defined as resource (must be inline)
  • BoolConverters.ToDouble not used (doesn't exist)

Accessibility

  • Interactive elements are keyboard accessible
  • Focus states are visible
  • Sufficient color contrast

Code Organization

  • Styles extracted to separate files for reuse
  • Resources organized in ResourceDictionary
  • Consistent naming conventions for classes and resources

Output Format

## AXAML Review: [filename]

### Issues Found

#### [Critical/Warning/Info] Line X: [Issue Title]
**Current:**
```xml
[problematic code]

Suggested:

[fixed code]

Reason: [explanation]


Summary

  • Critical: X
  • Warnings: X
  • Info: X

Recommendations

  1. [Most important fix]
  2. [Next priority]

## Example Issues

### Missing x:DataType
```xml
<!-- Bad -->
<UserControl xmlns="https://github.com/avaloniaui">
    <TextBlock Text="{Binding Name}"/>

<!-- Good -->
<UserControl xmlns="https://github.com/avaloniaui"
             x:DataType="vm:MyViewModel">
    <TextBlock Text="{Binding Name}"/>

WPF-Style Transform

<!-- Bad -->
<Button.RenderTransform>
    <RotateTransform Angle="45"/>
</Button.RenderTransform>

<!-- Good -->
<Setter Property="RenderTransform" Value="rotate(45deg)"/>

Deprecated PlacementMode

<!-- Bad -->
<Popup PlacementMode="Bottom"/>

<!-- Good -->
<Popup Placement="Bottom"/>

Missing Virtualization

<!-- Bad (for large lists) -->
<ListBox ItemsSource="{Binding LargeCollection}">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

<!-- Good -->
<ListBox ItemsSource="{Binding LargeCollection}">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
</ListBox>

Score

Total Score

50/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

Reviews

💬

Reviews coming soon