Profile and improve Compose recomposition, layout, scrolling, startup, and rendering performance in Android apps.
67
60%
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-compose-performance/SKILL.mdQuality
Discovery
82%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong description that clearly identifies its domain (Jetpack Compose performance in Android) and lists specific concrete capabilities. Its main weakness is the absence of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill. The trigger terms are excellent and naturally match what Android developers would say.
Suggestions
Add a 'Use when...' clause, e.g., 'Use when the user asks about Compose performance issues, jank, slow scrolling, recomposition counts, or Android app startup time.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'profile and improve' across five distinct areas — recomposition, layout, scrolling, startup, and rendering performance. These are concrete, well-defined performance domains in Jetpack Compose. | 3 / 3 |
Completeness | Clearly answers 'what' (profile and improve various Compose performance areas) but lacks an explicit 'Use when...' clause or equivalent trigger guidance, which caps this dimension at 2 per the rubric. | 2 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'Compose', 'recomposition', 'layout', 'scrolling', 'startup', 'rendering performance', 'Android apps'. These are terms developers naturally use when discussing Compose performance issues. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive — the combination of Jetpack Compose, Android, and specific performance domains (recomposition, layout, scrolling, startup, rendering) creates a clear niche that is unlikely to conflict with other skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
37%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides some useful Kotlin code snippets for common Compose performance fixes (stable keys, remember, lambda-based offset), but falls short on its core promise of teaching how to profile and improve performance. The workflow is generic and lacks a concrete measure-fix-validate loop, and there's no guidance on actually using profiling tools (Layout Inspector, composition counts, macrobenchmarks). Much of the content covers general Compose best practices rather than performance-specific actionable steps.
Suggestions
Add a concrete profiling workflow with explicit steps: enable composition tracing, identify recomposition counts via Layout Inspector, measure with macrobenchmark, fix, re-measure to validate improvement.
Include actual profiling commands and tool usage (e.g., how to enable recomposition counts in Layout Inspector, how to set up a macrobenchmark test, how to read a systrace for jank).
Remove or significantly trim generic guidance (Guardrails, Anti-Patterns) that Claude already knows about Compose development, and replace with performance-specific diagnostic patterns.
Add a feedback loop to the workflow: measure baseline → identify hotspot → apply fix → re-measure → confirm improvement, with specific metrics to check (frame times, recomposition counts, startup time).
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is reasonably concise but includes some sections that feel like filler rather than adding unique value. The Workflow and Guardrails sections are generic enough that Claude would already know most of this (e.g., 'respect accessibility semantics,' 'prefer measured performance work over premature micro-optimizations'). The Anti-Patterns section similarly states things Claude already understands. | 2 / 3 |
Actionability | The remediation examples provide concrete, executable Kotlin snippets which is good, but the workflow steps are vague and abstract ('Identify whether the target surface is Compose, View system, or a mixed interoperability screen'). There's no concrete profiling guidance—no actual commands for using Layout Inspector, composition tracing, or macrobenchmark setup despite the skill being about profiling and improving performance. | 2 / 3 |
Workflow Clarity | The workflow is a generic 5-step process that reads more like a UI development checklist than a performance profiling workflow. There are no validation checkpoints, no feedback loops for performance measurement (measure → identify hotspot → fix → re-measure), and the steps don't clearly sequence a performance investigation. For a skill about profiling and improving performance, the absence of a measure-fix-validate loop is a significant gap. | 1 / 3 |
Progressive Disclosure | The skill mentions handoff skills and includes official references, which is good. However, the content is somewhat monolithic—the remediation examples, anti-patterns, and workflow are all inline when some could be split out. The references are well-signaled but the overall structure could better separate quick-start profiling from deeper optimization patterns. | 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.