CtrlK
BlogDocsLog inGet started
Tessl Logo

android-permissions-activity-results

Use modern permission requests, Activity Result APIs, and capability-gated UX in Android flows.

55

Quality

45%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/android-permissions-activity-results/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

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 specific Android development niche (permissions and Activity Result APIs) but is too terse and lacks explicit trigger guidance. It reads more like a feature list fragment than a complete skill description, missing both a 'Use when...' clause and natural user-facing trigger terms that would help Claude reliably select it.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user needs to implement runtime permissions, handle permission results, migrate from onActivityResult to Activity Result APIs, or conditionally show UI based on granted permissions in Android.'

Include more natural trigger terms users would say, such as 'runtime permissions', 'requestPermissions', 'registerForActivityResult', 'permission denied handling', 'camera permission', 'location permission', 'dangerous permissions'.

Expand the 'what' portion with concrete actions, e.g., 'Implements runtime permission requests, migrates deprecated onActivityResult to modern Activity Result APIs, handles permission denial and rationale dialogs, and gates UI features based on granted capabilities.'

DimensionReasoningScore

Specificity

Names the domain (Android) and some specific actions/concepts ('permission requests', 'Activity Result APIs', 'capability-gated UX'), but doesn't list concrete tasks like 'request runtime permissions', 'handle permission denial gracefully', or 'migrate from deprecated onActivityResult'.

2 / 3

Completeness

Describes what it does at a high level 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 described, warranting a 1.

1 / 3

Trigger Term Quality

Includes some relevant keywords like 'permission requests', 'Activity Result APIs', and 'Android', but misses common natural terms users would say such as 'runtime permissions', 'requestPermissions', 'onActivityResult', 'registerForActivityResult', 'permission dialog', or 'dangerous permissions'.

2 / 3

Distinctiveness Conflict Risk

The combination of 'permissions', 'Activity Result APIs', and 'Android' narrows the scope somewhat, but 'capability-gated UX' is vague and could overlap with general Android UI skills or broader mobile development skills.

2 / 3

Total

7

/

12

Passed

Implementation

57%

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 instructional skill that covers the Android permissions domain comprehensively with good progressive disclosure and clear anti-patterns. Its main weakness is the lack of concrete, executable code examples—the examples section only contains grep commands rather than actual Kotlin/Compose implementation patterns. The workflow is reasonable but could benefit from more explicit validation checkpoints given the complexity of permission state management.

Suggestions

Add at least one executable Kotlin/Compose code example showing a complete permission request flow with Activity Result API (e.g., rememberLauncherForActivityResult with RequestPermission contract and state handling).

Include a concrete code snippet demonstrating the full permission state space handling (granted, denied, permanently denied, limited access) rather than just listing the states.

Add explicit validation checkpoints in the workflow, such as 'After step 3, verify the permission state covers all branches by checking: shouldShowRequestPermissionRationale() return value, isGranted status, and limited-access flags.'

DimensionReasoningScore

Conciseness

The content is reasonably efficient but includes some sections that are somewhat verbose for what they convey. The 'When To Use' section restates things Claude could infer, and some guardrails/anti-patterns overlap. However, it avoids explaining basic Android concepts.

2 / 3

Actionability

The skill provides grep commands as examples and a clear workflow, but lacks executable code examples showing actual Activity Result API usage, permission request implementation, or state handling. The guidance is directional rather than copy-paste ready—it tells Claude what to do conceptually but not how with concrete Kotlin/Compose code.

2 / 3

Workflow Clarity

The 5-step workflow is logically sequenced and step 5 mentions re-checking and validation, but the validation checkpoints are implicit rather than explicit. For a domain involving state machines (granted/denied/limited) and lifecycle-sensitive operations, the workflow lacks concrete feedback loops or error recovery steps beyond 'validate rotation, process death, and denial recovery.'

2 / 3

Progressive Disclosure

The skill effectively uses progressive disclosure by keeping the main file as an overview and pointing to `references/patterns.md` and `references/scenarios.md` for detailed content. Handoff skills are clearly listed, and references are one level deep with clear signaling.

3 / 3

Total

9

/

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.

Validation10 / 11 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

Total

10

/

11

Passed

Repository
krutikJain/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.