CtrlK
BlogDocsLog inGet started
Tessl Logo

expo-module

Guide for writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript). Covers module definition DSL, native views, shared objects, config plugins, lifecycle hooks, autolinking, and type system. Use when building or modifying native modules for Expo.

74

Quality

93%

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

SKILL.md
Quality
Evals
Security

Quality

Content

93%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.

An exemplary overview-style SKILL.md: executable scaffolding guidance, concrete cleanup checklists, real gotchas (rename + pod install), and clean deferral of detail to existing reference files. The only weakness is the absence of an explicit validation/feedback checkpoint after modifying a scaffold.

DimensionReasoningScore

Conciseness

The body is lean and non-obvious throughout: a copy-paste scaffold command with CI=1 explained in one line, a gotcha note about directory naming and pod install, concrete boilerplate-removal checklists, and compact Swift/Kotlin/TS skeletons. It never explains concepts Claude already knows (no "what is Expo" padding), and the only trimmable token is the intro line that restates the frontmatter description. Not below 5 because that single redundant line is minor and the rest earns its place.

5 / 5

Actionability

Everything is executable: `CI=1 npx create-expo-module@latest --local --name MyModule ...`, a flags table with real examples, exact file paths to delete ("Delete `ios/MyModuleView.swift`, `android/.../MyModuleView.kt`"), a complete generated-structure tree, and full working Swift/Kotlin/TypeScript module definitions plus expo-module.config.json. Copy-paste ready with common cases covered.

5 / 5

Workflow Clarity

The scaffold workflow is clearly sequenced (scaffold → rename to kebab-case → `pod install` → decide module/view → strip boilerplate → remove web files) with one explicit checkpoint ("skipping `pod install` after any rename causes iOS build failures"). Not 5 because there is no explicit post-change validation step or feedback loop (e.g., "build and confirm both platforms compile before proceeding"); not 3 because the sequence is complete and the riskiest step has a concrete failure-mode guard.

4 / 5

Progressive Disclosure

The body is an overview + quick start, with a clearly signaled references block listing all five real one-level-deep files (native-module.md, native-view.md, lifecycle.md, config-plugin.md, module-config.md) each with a one-line purpose. The bulk DSL/type-system detail is correctly deferred to those files, and all listed paths exist on disk. Easy to navigate, no inline dumping of reference material.

5 / 5

Total

19

/

20

Passed

Description

92%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 is a strong model: third-person, specific, and comprehensive on capabilities, with an explicit "Use when..." trigger clause. The only gap is a handful of natural synonyms (React Native, platform names) that would broaden trigger matching.

DimensionReasoningScore

Specificity

"Covers module definition DSL, native views, shared objects, config plugins, lifecycle hooks, autolinking, and type system" lists multiple concrete capabilities in third person ("Guide for writing"), with comprehensive coverage matching the skill body's actual scope. Not 4 because coverage spans every major subsystem the skill documents with no meaningful gaps.

5 / 5

Completeness

The "what" is explicit ("Guide for writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript)...") and the "when" is an explicit trigger clause ("Use when building or modifying native modules for Expo") with concrete, naturally phrased conditions. Not 4 because the when-clause is specific and unambiguous, not merely present.

5 / 5

Trigger Term Quality

"Use when building or modifying native modules for Expo" plus "Expo native modules", "native views", "Swift, Kotlin, TypeScript", "config plugins" are natural phrases users would say. A few likely search terms are missing (e.g., "React Native", "iOS/Android native code"), keeping it just short of the synonym-complete anchor 5.

4 / 5

Distinctiveness Conflict Risk

"Expo native modules and views using the Expo Modules API" carves out a clear niche with distinct triggers (Expo, Swift/Kotlin module DSL, config plugins); adjacent skills (e.g., generic React Native or iOS development) would not fire on these phrases. Minimal overlap risk.

5 / 5

Total

19

/

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.