Guidance on implementing the Data Layer using Repository pattern, Room (Local), and Retrofit (Remote) with offline-first synchronization.
47
48%
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-data-layer/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 domain and names specific technologies (Room, Retrofit, Repository pattern), which provides some distinctiveness. However, it reads more like a topic heading than a skill description—it lacks concrete actions, explicit trigger conditions, and natural user-facing keywords that would help Claude reliably select it from a large skill set.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about Android data layer architecture, offline-first apps, Room database setup, Retrofit API integration, or repository pattern implementation.'
List specific concrete actions the skill covers, e.g., 'Implements repository classes, configures Room DAOs and entities, sets up Retrofit API services, and manages offline-first data synchronization strategies.'
Include additional natural trigger terms users might say, such as 'Android', 'local database', 'caching', 'API calls', 'data persistence', or 'MVVM data layer'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Data Layer) and specific technologies (Repository pattern, Room, Retrofit) along with a general approach (offline-first synchronization), but doesn't list concrete actions like 'create repositories', 'configure database entities', or 'implement sync logic'. | 2 / 3 |
Completeness | Describes what the skill covers (Data Layer implementation guidance) 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' is also somewhat vague ('Guidance on implementing'), so this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant technical keywords like 'Repository pattern', 'Room', 'Retrofit', 'offline-first', and 'synchronization' that developers would use, but misses common variations like 'Android', 'local database', 'API calls', 'caching', 'DAO', or 'data persistence'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of Repository pattern + Room + Retrofit + offline-first is fairly specific to Android development, which helps distinguish it, but 'Data Layer' is broad and could overlap with other data architecture or backend skills without explicit scoping. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
64%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a well-structured, concise overview of the Android Data Layer with an offline-first approach. Its main strengths are token efficiency and logical organization. However, it falls short on actionability—key sections like Room setup, Retrofit configuration, and the Outbox Pattern lack executable code—and workflow clarity is weakened by the absence of validation steps and error recovery flows for sync operations.
Suggestions
Add executable code examples for Room Entity/DAO definitions and Retrofit interface setup to match the actionability of the Repository section.
Provide a concrete WorkManager-based Outbox Pattern implementation or reference a separate file for the advanced sync workflow.
Add explicit validation/verification steps for sync operations: how to detect sync failures, handle conflicts, and confirm data consistency between local and remote.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is lean and efficient. It assumes Claude knows what Room, Retrofit, Hilt, and Flow are without explaining them. Every section is tightly written with minimal filler text. | 3 / 3 |
Actionability | The Repository pattern section has a concrete, executable Kotlin example, and the DI section has a useful snippet. However, the Room and Retrofit sections are descriptive bullet points without executable code, and the synchronization section describes patterns abstractly without concrete implementation examples (e.g., no WorkManager outbox code). | 2 / 3 |
Workflow Clarity | The sections are logically sequenced (Repository → Local → Remote → Sync → DI), but there are no explicit validation checkpoints or feedback loops. For offline-first sync—which involves potentially destructive write operations and conflict resolution—there's no guidance on verifying sync success, handling conflicts, or retry logic. | 2 / 3 |
Progressive Disclosure | The content is reasonably structured with clear sections and headers, but everything is inline in a single file with no references to supporting files for advanced topics like the Outbox Pattern or Room entity/DAO examples. The sync section mentions 'Advanced' for the Outbox Pattern but doesn't point anywhere for details. | 2 / 3 |
Total | 9 / 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.