Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit.
38
36%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/antigravity-avalonia-zafiro-development/SKILL.mdQuality
Discovery
22%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
The description is too vague and abstract, relying on domain names (Avalonia UI, Zafiro) without specifying concrete actions or when the skill should be triggered. It reads more like a category label than a functional skill description. The lack of a 'Use when...' clause and absence of specific capabilities severely limit its usefulness for skill selection.
Suggestions
Add specific concrete actions the skill covers, e.g., 'Enforces MVVM patterns, configures dependency injection, structures Avalonia XAML views and view models using Zafiro conventions.'
Add an explicit 'Use when...' clause with trigger terms, e.g., 'Use when developing Avalonia UI applications, creating XAML views, setting up Zafiro dependency injection, or following Avalonia/Zafiro coding conventions.'
Include natural keyword variations users might mention, such as 'XAML', 'cross-platform desktop', 'MVVM', 'ReactiveUI', or specific file extensions like '.axaml'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | The description mentions 'Avalonia UI development' and 'Zafiro toolkit' as domain identifiers, but does not list any concrete actions. Terms like 'skills, conventions, and behavioral rules' are abstract and do not describe what the skill actually does. | 1 / 3 |
Completeness | The 'what' is extremely vague ('skills, conventions, and behavioral rules') and there is no explicit 'when' clause or trigger guidance. The description fails to answer either question clearly. | 1 / 3 |
Trigger Term Quality | It includes 'Avalonia UI' and 'Zafiro toolkit' which are relevant domain-specific keywords a user might mention. However, it lacks natural variations or broader terms users might say (e.g., 'XAML', 'cross-platform UI', 'desktop app', 'MVVM', specific file types). | 2 / 3 |
Distinctiveness Conflict Risk | 'Avalonia UI' and 'Zafiro toolkit' provide some distinctiveness from generic UI or coding skills, but the vague framing ('conventions and behavioral rules') could overlap with any coding standards or style guide skill. | 2 / 3 |
Total | 6 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill serves as a reasonable overview/index page for Avalonia Zafiro development conventions, with clear references to supporting guides. However, it lacks concrete, executable examples and relies heavily on abstract principles rather than actionable instructions. The boilerplate 'When to Use' and 'Limitations' sections add no value and the pre-code procedure lacks validation checkpoints.
Suggestions
Add at least one concrete, executable code example demonstrating a core pattern (e.g., a minimal DynamicData reactive pipeline or a Result-type error handling snippet) to improve actionability.
Add a validation checkpoint to the 'Procedure Before Writing Code' workflow, such as 'Verify no existing Zafiro helper covers your use case by searching for [specific patterns]' with concrete search guidance.
Remove or significantly trim the generic 'When to Use' and 'Limitations' sections, which are boilerplate that Claude doesn't need and waste token budget.
Include a brief concrete example of what 'Search First' means in practice—e.g., specific file paths, class names, or grep patterns to look for in the codebase.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is mostly efficient but includes some unnecessary sections like 'When to Use' and 'Limitations' that are generic boilerplate adding little value. The 'Core Pillars' section is somewhat descriptive rather than instructive, and phrases like 'These rules prioritize maintainability, correctness, and a functional-reactive approach' are filler. | 2 / 3 |
Actionability | The 'Procedure Before Writing Code' section provides some concrete guidance (search first, propose extensions, use DynamicData operators), but lacks executable examples, specific commands, or concrete code snippets. The core pillars are abstract principles rather than actionable instructions. | 2 / 3 |
Workflow Clarity | The 'Procedure Before Writing Code' provides a 3-step sequence but lacks validation checkpoints or feedback loops. There's no explicit verification step (e.g., 'confirm no existing helper exists before proceeding') and no error recovery guidance if steps fail. | 2 / 3 |
Progressive Disclosure | The Guides section provides clear one-level-deep references to five supporting files with descriptive labels, which is good structure. However, no bundle files were provided, so we cannot verify these references resolve correctly. The SKILL.md itself is appropriately concise as an overview, but the boilerplate 'When to Use' and 'Limitations' sections dilute the navigation structure. | 2 / 3 |
Total | 8 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
8ac11ab
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.