Coordinate serialization, caching, conflict handling, and offline-first sync flows in Android apps.
41
27%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./.github/skills/android-serialization-offline-sync/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 reasonably specific technical domain (offline-first sync in Android) but reads more like a topic list than an actionable skill description. It lacks a 'Use when...' clause, which is critical for skill selection, and the listed capabilities are somewhat abstract rather than concrete actions. The trigger terms are moderately relevant but miss common user phrasings.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user needs help with offline data sync, local caching strategies, conflict resolution, or building offline-first Android features.'
Include more natural trigger terms and variations users might say, such as 'offline mode', 'data synchronization', 'local database', 'Room', 'WorkManager', 'network retry', or 'sync conflicts'.
Make capabilities more concrete by specifying actions, e.g., 'Implements Room-based local caching, designs conflict resolution strategies for bidirectional sync, and configures WorkManager for background data synchronization in Android apps.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Android apps) and several actions (serialization, caching, conflict handling, offline-first sync flows), but these are more like topic areas than concrete, specific actions. It doesn't list what it actually does with these (e.g., 'implement Room database caching', 'resolve merge conflicts in synced data'). | 2 / 3 |
Completeness | Describes what the skill covers (serialization, caching, conflict handling, offline-first sync) but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per rubric guidelines, a missing 'Use when...' clause caps completeness at 2, and the 'what' portion is also only moderately clear, placing this at 1. | 1 / 3 |
Trigger Term Quality | Includes some relevant keywords like 'caching', 'offline-first', 'sync', and 'Android', but misses common user variations such as 'offline mode', 'data synchronization', 'local storage', 'WorkManager', 'Room', or 'network retry'. The terms are somewhat technical and may not match how users naturally phrase requests. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of 'Android' + 'offline-first sync' + 'conflict handling' is fairly specific, but could overlap with general Android development skills, networking skills, or database/caching skills. The lack of explicit boundaries increases conflict risk. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
22%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill reads as a high-level outline or template rather than actionable guidance. It lacks any concrete code examples for serialization, caching, or conflict resolution—the core topics it claims to cover. The workflow and examples sections reference hypothetical projects and scripts without providing the actual implementation patterns Claude would need to follow.
Suggestions
Add concrete, executable Kotlin code examples showing serialization setup (e.g., kotlinx.serialization with Room entities), a mapping layer between wire and cache models, and a basic conflict resolution strategy.
Replace the abstract workflow steps with specific sequences including validation checkpoints, e.g., 'After implementing the sync adapter, verify idempotency by running the sync twice and asserting identical DB state.'
Provide at least one complete conflict resolution example with code showing how to handle timestamp disagreements, including the decision logic and data flow.
Either include the referenced sample project structures inline or clearly describe what each example project demonstrates and how to set it up.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is reasonably concise and avoids explaining basic concepts, but includes some filler phrases ('Treat user data durability, privacy, and migration paths as part of the implementation') and the workflow steps are abstract enough to feel like padding rather than adding concrete value. | 2 / 3 |
Actionability | The skill provides no executable code, no concrete serialization examples, no actual conflict resolution logic, and no specific API usage. The workflow steps are entirely abstract ('Model contracts explicitly before wiring network, storage, media, or background APIs') and the example commands reference hypothetical sample projects without showing any actual implementation. | 1 / 3 |
Workflow Clarity | The workflow steps are vague and lack any validation checkpoints or feedback loops. For a skill involving offline sync and conflict resolution—operations that are inherently multi-step and error-prone—there are no concrete sequences, no validation steps, and no error recovery guidance beyond abstract statements like 'Validate offline, retry, and process death behavior.' | 1 / 3 |
Progressive Disclosure | The skill has reasonable section structure and references handoff skills and official documentation links. However, the references to example projects (orbittasks-compose, orbittasks-xml) and scripts (eval_triggers.py) are not clearly signaled as to what they contain or where they live, and there are no intermediate reference files for advanced topics. | 2 / 3 |
Total | 6 / 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 |
|---|---|---|
metadata_field | 'metadata' should map string keys to string values | Warning |
Total | 10 / 11 Passed | |
c5bf673
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.