Use modern Android file, media, picker, FileProvider, and share-sheet APIs with minimal permissions.
46
33%
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-media-files-sharing/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 Android-specific domain and names several relevant APIs, which provides moderate specificity and distinctiveness. However, it lacks concrete action verbs describing what the skill does and entirely omits a 'Use when...' clause, making it difficult for Claude to know when to select this skill over others. The description reads more like a topic label than a functional skill description.
Suggestions
Add a 'Use when...' clause with explicit triggers, e.g., 'Use when the user asks about Android file access, sharing files between apps, picking images/documents, or configuring FileProvider in AndroidManifest.'
Replace the API-listing style with concrete actions, e.g., 'Implements scoped storage file access, configures FileProvider for secure file sharing, integrates photo/document pickers, and sets up share-sheet intents on Android.'
Include common natural-language variations users might say, such as 'scoped storage', 'content URI', 'ACTION_SEND', 'storage permissions', or 'SAF (Storage Access Framework)'.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Android) and lists several specific API areas (file, media, picker, FileProvider, share-sheet), but doesn't describe concrete actions like 'read files', 'share content', or 'pick images'. It describes what APIs to use rather than what actions the skill performs. | 2 / 3 |
Completeness | Describes what (use modern Android file/media/picker APIs) 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 only partially clear, so this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant technical keywords like 'FileProvider', 'share-sheet', 'picker', 'media', and 'Android' that developers might use, but misses common natural-language variations like 'file sharing', 'image picker', 'content URI', 'storage access', 'scoped storage', or 'Intent.ACTION_SEND'. | 2 / 3 |
Distinctiveness Conflict Risk | The Android-specific API names like FileProvider and share-sheet provide some distinctiveness, but the broad mention of 'file' and 'media' could overlap with general file handling or media processing skills. It's somewhat specific but not sharply delineated. | 2 / 3 |
Total | 7 / 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 an architectural decision guide than an actionable skill file. It clearly articulates when to use which API surface and what anti-patterns to avoid, which is valuable framing. However, it critically lacks any executable code examples—no FileProvider XML configuration, no Photo Picker ActivityResultContract setup, no share intent construction—making it difficult for Claude to produce correct implementations from this skill alone.
Suggestions
Add concrete, executable code examples for the core APIs: Photo Picker registration with ActivityResultContracts.PickVisualMedia, FileProvider XML setup and URI generation, and share-sheet Intent construction with FLAG_GRANT_READ_URI_PERMISSION.
Include a minimal FileProvider XML configuration snippet (file_paths.xml + AndroidManifest provider declaration) since this is a common source of errors.
Add explicit validation steps with concrete checks, e.g., verifying the returned URI is non-null, checking grantUriPermission success, and testing MIME type resolution before sharing.
Consider creating a companion REFERENCE.md with full code samples for each API surface (Photo Picker, SAF, FileProvider, chooser) and link to it from the main skill.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The content is reasonably efficient but includes some sections that are more descriptive than instructive (e.g., the Guardrails and Anti-Patterns sections overlap significantly in content). The workflow section describes principles rather than concrete steps, adding some verbosity without proportional value. | 2 / 3 |
Actionability | The skill lacks any concrete code examples, specific commands for implementation, or executable snippets. It describes what to do conceptually (e.g., 'Choose the narrowest platform surface first') but never shows how—no FileProvider XML config, no Kotlin/Java code for Photo Picker, no manifest snippets, no share intent construction. The example commands reference project directories but don't teach anything actionable about the APIs themselves. | 1 / 3 |
Workflow Clarity | The workflow has a numbered sequence with a logical progression from asset selection through validation, but the steps are abstract principles rather than concrete actions. There are no explicit validation checkpoints with commands or code—step 4 mentions validating return flows but doesn't show how. For a skill involving URI grants and file sharing (which can fail silently), the lack of concrete validation steps is a gap. | 2 / 3 |
Progressive Disclosure | The skill references handoff skills and official documentation links, which is good. However, it doesn't reference any detailed companion files (e.g., a REFERENCE.md for FileProvider XML templates, or an EXAMPLES.md with full code samples). The examples section points to project directories but doesn't explain what's in them. The content that is present could benefit from splitting detailed API guidance into referenced files. | 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.