CtrlK
BlogDocsLog inGet started
Tessl Logo

android-compose-xml-interoperability

Bridge Compose and the View system safely during incremental migrations, interoperability screens, and shared theming.

41

Quality

27%

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 ./.github/skills/android-compose-xml-interoperability/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 clear domain (Compose/View interoperability) and mentions relevant sub-topics, but lacks concrete actions and an explicit 'Use when...' clause. It reads more like a topic summary than a skill selection guide, making it harder for Claude to confidently choose this skill from a large pool.

Suggestions

Add an explicit 'Use when...' clause, e.g., 'Use when the user is migrating from XML Views to Jetpack Compose, embedding Compose in existing Activities/Fragments, or wrapping legacy Views inside Composables.'

List specific concrete actions such as 'wrap Views in AndroidView composable, embed ComposeView in XML layouts, share Material themes between Compose and AppCompat.'

Include more natural trigger terms users would say: 'Jetpack Compose,' 'XML layouts,' 'ComposeView,' 'AndroidView,' 'legacy UI,' 'mixed UI,' '.xml to Compose.'

DimensionReasoningScore

Specificity

Names the domain (Compose/View interoperability) and mentions some actions like 'incremental migrations, interoperability screens, and shared theming,' but these are more like categories than concrete specific actions (e.g., doesn't say 'wrap View components in ComposeView,' 'use AndroidViewBinding,' etc.).

2 / 3

Completeness

Describes what it does (bridge Compose and View system) but has no explicit 'Use when...' clause or equivalent trigger guidance. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and the 'what' portion is also somewhat vague, placing this at 1.

1 / 3

Trigger Term Quality

Includes relevant terms like 'Compose,' 'View system,' 'migrations,' 'interoperability,' and 'theming,' but misses common natural variations users might say such as 'ComposeView,' 'AndroidView,' 'XML layouts,' 'legacy UI,' 'Jetpack Compose,' or 'mixed UI.'

2 / 3

Distinctiveness Conflict Risk

The Compose-View interoperability niche is fairly specific and unlikely to conflict with many other skills, but without explicit trigger terms it could overlap with general Compose skills or general Android UI migration skills.

2 / 3

Total

7

/

12

Passed

Implementation

22%

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 high-level process document than an actionable guide for bridging Compose and the View system. It lacks any concrete code examples showing ComposeView in XML layouts, AndroidView in Compose, theme bridging, or state sharing patterns. The workflow and examples are too abstract to meaningfully guide Claude through actual interoperability implementation tasks.

Suggestions

Add concrete, executable code examples showing key interoperability patterns: ComposeView in Fragment/Activity XML, AndroidView composable wrapping a View, and MdcTheme/AppCompatTheme bridging.

Replace the abstract workflow steps with specific decision trees, e.g., 'If hosting Compose in XML: use ComposeView in layout XML → setContent in Fragment.onCreateView → pass ViewModelStoreOwner' with actual code.

Add validation steps with specific commands or checks, such as verifying that ComposeView has the correct lifecycle owner, or checking that theme attributes resolve correctly across the bridge.

Include at least one complete before/after migration example showing XML layout code being partially migrated to Compose with the interoperability boundary clearly marked.

DimensionReasoningScore

Conciseness

The content is reasonably structured and avoids explaining basic concepts, but includes some filler language (e.g., 'lowest-friction UI pattern that satisfies responsiveness, accessibility, and performance needs') and the workflow steps are abstract enough to feel padded rather than information-dense.

2 / 3

Actionability

There is no executable code, no concrete API usage (e.g., ComposeView, AndroidView, setContent), no specific Compose-XML bridging patterns, and no copy-paste ready snippets. The examples section only provides gradle build commands, not actual interoperability code. The guidance is almost entirely abstract and descriptive.

1 / 3

Workflow Clarity

The workflow steps are vague and abstract ('Identify whether the target surface is Compose, View system, or a mixed interoperability screen') with no concrete validation checkpoints, no specific tools or commands for verification, and no feedback loops for error recovery. The 'failure recovery' example doesn't actually demonstrate recovery from a real failure.

1 / 3

Progressive Disclosure

The content has clear section headers and references to handoff skills and official documentation links, which is good. However, there are no references to supplementary files with detailed patterns, code examples, or migration guides that would provide depth beyond this overview.

2 / 3

Total

6

/

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.