All skills
expo avatar

/expo-skill-eval

@b2fdce7 official
by expoexpo/skills2.6k stars
156

Evaluate Expo skills in this repo end-to-end - trigger accuracy, generated code quality, and runtime screenshots on iOS simulator and Android emulator via Expo Go (web optional). Use when the user wants to eval an Expo skill, test that a skill produces working code, benchmark a skill with device screenshots, or verify a skill's output renders correctly.

Use this Skill: https://skilld.dev/gh/expo/skills/expo-skill-eval

This session only. Nothing lands on disk.

referencesdesign-rubric.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Design-quality rubric

Applied by the grader when scoring an app's visual quality — primarily for image-prompt cases (reference_image), and any time a quality grade is requested — on top of the pass/fail expectations, not instead of them. It answers "how good is this app?", scored from the captured screenshots and the implementation diff. Combine it with the failure-signature checks in agents/visual-grader.md: a redbox, blank screen, or wrong-screen capture caps every visual dimension at 0 for that platform regardless of intent.

How to score

  • Judge visuals only from the pixels. Read every screenshot with the Read tool; never infer a visual score from the transcript or from what the code intended to render.
  • Grade per platform, then take the worst. If the case ran ios + android, a dimension's score is the lower of the two — unless the gap is a legitimate platform difference (see Platform conventions).
  • Each dimension is 0–3. The seven visual dimensions sum to a max of 21; with the code-quality dimension (also 0–3) the built-in rubric max is 24.
  • If a config/platform screenshot is missing, score only the platforms present, note the gap, and do not penalize for the absence.
  • Cite concrete evidence per dimension, naming the file: e.g. ios.png: 16px gutters, consistent 12px row spacing, large-title nav bar.

Score anchors (apply to every dimension)

  • 0 — broken/absent: the dimension fails outright (overlapping or clipped text, unreadable contrast, no hierarchy, content off-screen).
  • 1 — below bar: present but with clear problems a designer would reject.
  • 2 — solid: clean and conventional, no notable problems; what a competent dev ships.
  • 3 — polished: deliberate and refined; App-Store quality for this dimension.

Visual dimensions

  1. Layout & hierarchy — clear primary/secondary structure, alignment, logical grouping, balanced composition; nothing clipped or pushed off-screen.
  2. Spacing & density — consistent padding/margins and vertical rhythm; not cramped, not sparse; respects safe areas, the notch, and the home indicator.
  3. Typography — readable sizes, a sensible type scale (title vs body vs caption), consistent weights, no truncation/overflow/orphaned text.
  4. Color & contrast — coherent, limited palette; sufficient text/background contrast for legibility; sensible light/dark handling.
  5. Platform conventions — feels native to the platform it's shown on:
    • iOS — large titles / nav bars, grouped/inset lists, SF-style controls, standard tab bars, system spacing.
    • Android — Material surfaces, app bar, FAB where appropriate, ripple/elevation cues, Material controls.
    • web — sensible responsive layout, real cursor/hover affordances, no mobile-only chrome stranded on a wide canvas. A genuine platform difference (status bar, system fonts, control styling, safe areas) is not a defect; shipping an iOS-only pattern verbatim on Android is.
  6. Polish & states — pixel alignment, crisp icons/images at the correct density, no stray debug text or placeholder lorem, sensible empty/loading states where the screen implies them.
  7. Visual accessibility — tap targets look ≥44pt, text isn't clipped at default scale, contrast meets a rough WCAG-AA bar, interactive elements are visually distinguishable from static content.

Code-quality dimension (0–3, from the diff)

Scored from the fixture's git diff, not the screenshots:

  • Idiomatic Expo/RN: correct import paths and current APIs (e.g. the @expo/ui Host wrapper, Expo Router file conventions), no deprecated patterns.
  • Reasonable structure: componentized where it helps, no copy-paste duplication, styles organized (not a wall of inline objects), TypeScript types where the template uses them.
  • No dead code, leftover console.log noise, or unused scaffolding left from the template.
  • Anchors: 0 broken/anti-patterns, 1 works but messy, 2 clean and idiomatic, 3 exemplary.

Extra criteria

If the eval case lists visual_expectations, grade each as an additional 0–3 dimension with the same anchors, appended to the dimensions array and folded into subtotal/max (max grows by 3 per extra criterion). Cite evidence for each just like the built-ins.

Source: SKILL.md on GitHub

1 warning2mo3 checks · Risk SAFE
  • Gen Agent Trust Hub2mo

    The skill facilitates the end-to-end evaluation of Expo-based AI agent skills using simulators, emulators, and local build tools. It uses a structured orchestration model via Python and shell scripts within controlled temporary directories. All external dependencies and scripts originate from the vendor's own repository and official package registries.

  • Socket2mo

    No alerts

  • Snyk2mo

    Risk: MEDIUM · 1 issue

Signed by skilld at b2fdce7. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 days ago.

Activeupdated 3 months ago
What it can do
Reads files Edits files Runs commands
version
1.0.0
All 13 allowed tools
Read(~/.cache/expo-skill-eval/**)Read(/tmp/expo-skill-eval-*/**)Read(/private/tmp/expo-skill-eval-*/**)Write(/tmp/expo-skill-eval-*/**)Write(/private/tmp/expo-skill-eval-*/**)Edit(/tmp/expo-skill-eval-*/**)Edit(/private/tmp/expo-skill-eval-*/**)Bash(python3 /tmp/expo-skill-eval-*)Bash(python3 /private/tmp/expo-skill-eval-*)Bash(python3 *expo-skill-eval/scripts/*)Bash(tee /tmp/expo-skill-eval-*)Bash(tee /private/tmp/expo-skill-eval-*)Bash(bash *expo-skill-eval/scripts/*)

README badge

README badge for expo/skills/expo-skill-eval