Wire Android dependency injection with Hilt, scopes, testing overrides, and module ownership boundaries.
49
37%
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 ./skills/android-di-hilt/SKILL.mdQuality
Discovery
40%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 and distinctive niche (Hilt DI for Wire Android) but reads more like a topic list than an actionable skill description. It lacks concrete action verbs describing what the skill does and entirely omits a 'Use when...' clause, making it harder for Claude to know when to select it. The trigger terms are reasonable but could be expanded with common aliases and annotations.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when setting up or modifying Hilt modules, configuring DI scopes, creating test doubles, or resolving dependency injection issues in the Wire Android codebase.'
Replace the topic-list style with concrete actions, e.g., 'Creates and configures Hilt modules, defines scope annotations, sets up testing overrides with fake implementations, and enforces module ownership boundaries.'
Include common trigger term variations such as 'DI', 'Dagger', '@Inject', '@Module', '@Provides', '@HiltAndroidApp' to improve keyword coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (dependency injection with Hilt) and mentions several aspects (scopes, testing overrides, module ownership boundaries), but these are more like topic areas than concrete actions. It doesn't list specific actions like 'create Hilt modules', 'configure scope annotations', or 'set up test fakes'. | 2 / 3 |
Completeness | Describes what the skill covers (dependency injection with Hilt including scopes, testing overrides, module ownership) 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, so this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant keywords like 'Hilt', 'dependency injection', 'scopes', 'testing overrides', and 'module ownership'. However, it misses common variations users might say such as 'DI', '@Inject', '@Module', '@Provides', 'Dagger', '@HiltAndroidApp', or 'component'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of 'Wire Android', 'Hilt', 'dependency injection', 'scopes', 'testing overrides', and 'module ownership boundaries' creates a very specific niche that is unlikely to conflict with other skills. The Wire Android platform context plus Hilt specificity makes this highly distinctive. | 3 / 3 |
Total | 8 / 12 Passed |
Implementation
35%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill reads more like a design checklist or review guide than an actionable skill for Claude. Its biggest weakness is the complete absence of concrete code examples—no Hilt module definitions, no @HiltViewModel patterns, no test replacement code. The workflow and guardrails are reasonable but remain abstract, making it difficult for Claude to produce correct, specific Hilt configurations from this guidance alone.
Suggestions
Add concrete, executable Kotlin code examples showing at minimum: a Hilt module with @Binds/@Provides, a @HiltViewModel injection, and a test module override with @UninstallModules.
Include a validation step in the workflow, such as verifying the DI graph compiles cleanly or checking for common Hilt error messages and their fixes.
Replace the abstract example scenarios with actual code snippets showing input (the class to inject) and output (the complete Hilt wiring), making the skill copy-paste actionable.
Consider splitting detailed scope/lifetime mapping rules and test replacement patterns into separate reference files, keeping SKILL.md as a concise overview with links.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is reasonably concise and avoids explaining what Hilt or DI is, but some sections like 'When To Use' and 'Review Focus' contain somewhat redundant guidance that Claude could infer. The guardrails and anti-patterns sections, while useful, overlap conceptually. | 2 / 3 |
Actionability | The skill provides no executable code, no concrete Hilt annotations in context, no module definitions, no component setup examples. It describes what to do abstractly ('Decide what should be bound', 'Match lifetime to scope') without showing how with actual code. The examples section lists commands but no actual Hilt code patterns. | 1 / 3 |
Workflow Clarity | The workflow has a clear 5-step sequence covering identification through handoff, but lacks validation checkpoints. There's no explicit verification step (e.g., compile the graph, check for missing bindings) and no feedback loop for error recovery when the DI graph is misconfigured. | 2 / 3 |
Progressive Disclosure | The content references handoff skills and official documentation links, which is good. However, there are no internal reference files (e.g., SCOPES.md, TESTING.md) for detailed patterns, and the content that is present is all inline without clear separation of quick-start vs. advanced material. | 2 / 3 |
Total | 7 / 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.