CtrlK
BlogDocsLog inGet started
Tessl Logo

building-native-ui

Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.

56

Quality

64%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./plugins/expo/skills/building-native-ui/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured guidelines skill: terse, opinionated rules with executable code examples and a genuinely useful Expo Go vs. custom-build decision workflow. The main improvements are de-duplicating safe-area rules scattered across sections, tightening a few vague bullets, and cross-linking the relevant reference file from each topical section.

Suggestions

Consolidate the repeated `contentInsetAdjustmentBehavior="automatic"` / safe-area rules (currently in Responsiveness, Behavior, and General Styling) into one place.

Link each topical section to its matching reference file in place (e.g. Navigation → tabs.md, toolbar-and-headers.md, form-sheet.md; Styling → gradients.md, visual-effects.md) so references are surfaced where needed, not only in the top-level tree.

Replace vague directives ("Follow Apple Human Interface Guidelines", "Test your app thoroughly", "Be cautious of unterminated strings") with concrete, checkable instructions or a short example.

DimensionReasoningScore

Conciseness

The body is terse directive bullets with essentially no explanation of concepts Claude already knows ("`expo-audio` not `expo-av`", "`process.env.EXPO_OS` not `Platform.OS`"). However, rules repeat across sections — `contentInsetAdjustmentBehavior="automatic"` appears in Responsiveness, Behavior, and General Styling — so it is not the lean every-token-earns-its-place level.

4 / 5

Actionability

Mostly executable guidance: complete snippets for boxShadow, Link/context menus, formSheet options, and full `_layout.tsx` tab/stack layouts, plus concrete library substitutions. Minor gaps keep it below fully copy-paste-ready coverage: bullets like "Follow Apple Human Interface Guidelines" and "Be cautious of unterminated strings" are abstract, and Code Style/Behavior sections have no examples.

4 / 5

Workflow Clarity

The single real workflow (Running the App) is a clearly ordered triage: start with Expo Go → test features thoroughly → create custom builds only when required, with an explicit list of when custom builds are needed. It lacks an explicit validation/retry checkpoint ("Test your app thoroughly" is vague), so it matches the clear-sequence-with-minor-validation-gaps anchor rather than the validate→fix→retry level.

4 / 5

Progressive Disclosure

Scored against the actual bundle: all 15 listed reference files exist, are one level deep (no nested references), and the annotated file tree at the top makes them easy to discover, while the body stays overview-level. The gap is that sections rarely link their own references in place — e.g. Navigation never points to tabs.md, toolbar-and-headers.md, or form-sheet.md; only Routes links route-structure.md — so references are mostly, not fully, signaled.

4 / 5

Total

16

/

20

Passed

Description

53%Weight 40%Scale 1-5

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 clearly identifies its niche (Expo Router app development) with a reasonable topic list, but it reads as a table of contents rather than an actionable capability statement, and it has no trigger guidance ("Use when..."). Adding explicit trigger phrases and concrete verbs would lift most dimensions.

Suggestions

Add a "Use when..." clause, e.g. "Use when building or styling Expo Router / React Native apps, adding navigation, tabs, or animations."

Replace the passive "Covers fundamentals, styling, components..." topic list with concrete third-person actions (e.g. "Builds Expo Router apps with native stack/tab navigation, SF Symbol icons, and Reanimated animations").

Include natural synonyms users would say — "React Native", "mobile app", "iOS/Android" — to improve trigger term coverage, and drop the subjective "beautiful".

DimensionReasoningScore

Specificity

Names the domain ("building beautiful apps with Expo Router") and lists covered topics (styling, components, navigation, animations, patterns, native tabs), but the verbs are generic coverage terms rather than concrete actions, and "beautiful" is fluff. Fits the anchor for naming the domain with only 1-2 concrete actions, not the level above which requires several specific listed actions.

3 / 5

Completeness

The "what" is clear (a guide covering a listed scope of Expo Router UI development), but there is no "Use when..." clause or equivalent trigger guidance, which per the judging guidelines caps completeness at 3. It is not score 2 because the "what" half is specific and comprehensive, and not 4 because the "when" is entirely absent rather than merely imprecise.

3 / 5

Trigger Term Quality

Contains real keywords users would say ("Expo Router", "styling", "navigation", "animations", "native tabs", "apps") but misses common variations and synonyms such as "React Native", "mobile app", or "iOS/Android". This matches the anchor for some relevant keywords with missing variations rather than the good-coverage level above.

3 / 5

Distinctiveness Conflict Risk

"Expo Router" anchors a clear niche, so the description is mostly distinct from other skills with only minor overlap risk. It falls short of the top anchor, whose exemplar pairs the niche with explicit trigger phrases ("Use when working with..."), which this description lacks.

4 / 5

Total

13

/

20

Passed

Validation

93%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
openai/plugins
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.