CtrlK
BlogDocsLog inGet started
Tessl Logo

android-viewmodel

Best practices for implementing Android ViewModels using Kotlin 2.3+ Explicit Backing Fields, StateFlow for UI state, and SharedFlow for one-off events.

64

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.github/skills/architecture/android-viewmodel/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

85%Weight 40%Scale 1-3

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is concise, actionable, and well-structured with executable Kotlin examples covering all key state-management patterns. Its lone weakness is the absence of explicit validation/verification checkpoints, which the rubric flags for state-mutating workflows.

Suggestions

Add a brief validation checkpoint after state updates (e.g., confirm uiState reflects the new value before proceeding in tests or recomposition).

Consider a short 'Verify' note for event collection, such as checking that replay=0 events are not duplicated after recreation.

Optionally fold the §7 best-practices list into the relevant sections to reduce redundancy, though it currently reads cleanly as a recap.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence, delivering guidance through short directives plus minimal executable Kotlin snippets with no padding or explanations of basic concepts like what a ViewModel is.

3 / 3

Actionability

Provides copy-paste-ready, executable Kotlin code for declaration, updating state, emitting events, and collecting flows in both Compose and View systems, alongside concrete do/don't rules.

3 / 3

Workflow Clarity

Content is well-organized by topic with numbered sections, but there are no validation/verification checkpoints for state or event operations, which the rubric expects for multi-step guidance.

2 / 3

Progressive Disclosure

The skill is a single concise file under ~230 lines with no bundle files, organized into clearly numbered sections; per the rubric, a well-organized single-file skill with no need for external references can score 3.

3 / 3

Total

11

/

12

Passed

Description

67%Weight 40%Scale 1-3

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 specific and clearly distinct, naming concrete technologies and their roles. Its main weakness is the absence of an explicit 'Use when...' trigger clause, which leaves the activation context implied rather than stated.

Suggestions

Add an explicit 'Use when...' clause (e.g., 'Use when implementing Android ViewModels, managing UI state with StateFlow, or handling one-off navigation/Snackbar events with SharedFlow').

Add natural user-facing trigger phrasings such as 'ViewModel state', 'StateFlow vs SharedFlow', or 'one-off UI events' to improve keyword coverage.

Confirm the description stays in third person throughout (it does) and keep the version qualifier (Kotlin 2.3+) since it aids correct triggering.

DimensionReasoningScore

Specificity

Lists multiple concrete actions and mechanisms: 'implementing Android ViewModels using Kotlin 2.3+ Explicit Backing Fields, StateFlow for UI state, and SharedFlow for one-off events', naming specific technologies and their distinct roles.

3 / 3

Completeness

Clearly answers 'what' the skill does, but the 'when' is only implied from the domain; per the guidelines a missing explicit 'Use when...' clause caps completeness at 2.

2 / 3

Trigger Term Quality

Contains relevant technical terms (ViewModel, StateFlow, SharedFlow, UI state, one-off events) but lacks common natural phrasings a user would say and misses an explicit 'Use when...' trigger clause.

2 / 3

Distinctiveness Conflict Risk

The combination of Kotlin 2.3+ Explicit Backing Fields with StateFlow/SharedFlow state management is a narrow, distinct niche unlikely to trigger for unrelated Android or general Kotlin skills.

3 / 3

Total

10

/

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.

Validation16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
new-silvermoon/awesome-android-agent-skills
Reviewed

Table of Contents

Is this your skill?

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.