Best practices for implementing Android ViewModels, specifically focused on StateFlow for UI state and SharedFlow for one-off events.
53
58%
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 ./.github/skills/architecture/android-viewmodel/SKILL.mdQuality
Discovery
32%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 identifies a clear technical niche (Android ViewModels with StateFlow/SharedFlow) but is too brief and lacks actionable trigger guidance. It reads more like a topic label than a skill description—it says 'best practices' without specifying what concrete actions the skill enables, and completely omits when Claude should select it.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about Android ViewModel implementation, converting LiveData to StateFlow, handling UI events with SharedFlow, or structuring MVVM architecture in Kotlin.'
Replace 'Best practices for implementing' with specific concrete actions, e.g., 'Implements Android ViewModels using StateFlow for reactive UI state management and SharedFlow for one-off events like navigation, toasts, and snackbars.'
Include additional natural trigger terms users might say, such as 'MVVM', 'Kotlin Flow', 'LiveData', 'Compose state', 'UiState', or 'event handling in Android'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | It names the domain (Android ViewModels) and mentions specific technologies (StateFlow, SharedFlow) with their purposes (UI state, one-off events), but describes 'best practices' rather than listing concrete actions like 'create ViewModel classes', 'convert LiveData to StateFlow', etc. | 2 / 3 |
Completeness | It describes what the skill covers (best practices for ViewModels with StateFlow/SharedFlow) but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per rubric guidelines, missing 'Use when' caps completeness at 2, and the 'what' is also somewhat weak (just 'best practices'), warranting a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Android', 'ViewModels', 'StateFlow', 'SharedFlow', 'UI state', and 'one-off events' which users might naturally mention. However, it misses common variations like 'MVVM', 'LiveData migration', 'Kotlin Flow', 'Compose state', or 'ViewModel pattern'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of Android ViewModels + StateFlow + SharedFlow is fairly specific and unlikely to conflict with many other skills. However, it could overlap with general Android development skills, Kotlin coroutines skills, or broader state management skills. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
85%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A solid, well-structured skill that provides actionable Kotlin code examples for Android ViewModel state management patterns. The organization into StateFlow, SharedFlow, UI collection, and scope sections is logical and easy to follow. Minor verbosity in the descriptive bullets ('What' fields) could be trimmed since Claude already understands these concepts.
Suggestions
Remove the 'What' bullet points under each section — Claude already knows what UI state and one-off events are. Instead, lead directly with the type and code pattern.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | Mostly efficient but includes some unnecessary explanatory text like 'What' descriptions that Claude already knows (e.g., explaining what UI state represents, what one-off events are). The bullet-point structure adds some overhead, but the code examples are lean. | 2 / 3 |
Actionability | Provides concrete, executable Kotlin code snippets for each pattern — MutableStateFlow/StateFlow exposure, SharedFlow configuration, collecting in Compose, and the thread-safe `.update {}` pattern. These are copy-paste ready and cover the key implementation details. | 3 / 3 |
Workflow Clarity | For this type of skill (best practices / patterns rather than a multi-step destructive process), the content is clearly sequenced from state definition (StateFlow) → events (SharedFlow) → UI collection → scope. No destructive or batch operations are involved, so validation checkpoints are not required. | 3 / 3 |
Progressive Disclosure | The skill is under 50 lines, single-purpose, and well-organized into clearly labeled sections. No bundle files are provided and none are needed — the content is appropriately self-contained for its scope. | 3 / 3 |
Total | 11 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
e5d0275
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.