CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

ios-device-qa

Drive QA of a SwiftUI app on a real iPhone over USB - screenshot, read the accessibility tree, inspect @Observable state, tap, swipe, and type through an HTTP bridge embedded in the app under test. Use when asked to test an iOS app on a physical device, find bugs on the device, or expose a connected iPhone to a remote agent over Tailscale. Requires the ios-agent-qa runtime; not for simulator or XCTest work.

Quality

76%

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 ./.claude/skills/ios-device-qa/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

The body is a maximally lean stub that delegates everything to an external shared-skill file outside the bundle. While token-efficient, it ships no executable guidance, no task workflow with checkpoints, and an unverifiable environment-dependent reference, leaving the skill non-self-contained as bundled.

Suggestions

Inline the essential getting-started steps in the body (launching the HTTP bridge, verifying the device connection, one screenshot/tap example) instead of delegating everything to the external shared-skill pointer.

Ship the detailed guidance as bundle-relative reference files (e.g., references/bridge-api.md) linked from the body, so the skill is self-contained and the reference chain does not dead-end at an environment-specific path like ~/.agents/skills/ios-device-qa/SKILL.md.

Add an explicit task sequence with validation checkpoints (e.g., verify the device is connected and the bridge responds before interacting) even if the detailed instructions live in a reference file.

DimensionReasoningScore

Conciseness

The body is two lines with zero padding — "Load and follow the shared skill at ~/.agents/skills/ios-device-qa/SKILL.md" — assuming Claude's competence and wasting no tokens; the one-line generation comment is provenance metadata, not over-explanation, so anchor 5 fits.

5 / 5

Actionability

The only guidance is a single directive to load an external file; there is no concrete code, command, or step for the actual QA tasks (screenshot, tap, inspect state) anywhere in the body, matching anchor 2's "minimal concrete guidance; missing the specific steps"; not 1 because the pointer is a concrete, executable instruction rather than a vague description.

2 / 5

Workflow Clarity

No sequence for the actual QA workflow exists in the body — all steps are delegated wholesale to an external path, with no validation checkpoints (e.g., verifying device connection or bridge health); one coherent pointer step with everything else missing matches anchor 2; not 1 because the single instruction given is coherent and executable, not incoherent.

2 / 5

Progressive Disclosure

The single reference is clearly signaled and one level deep, but it points outside the skill bundle (~/.agents/skills/...) while the bundle ships no content files at all (no references/, scripts/, or assets/), and the comment cites scripts/agent-harnesses.py which does not exist in the bundle — "some structure but could be better organized" matches anchor 3; not 4 because content is not appropriately placed within the bundle, and not 2 because the reference is explicit rather than buried.

3 / 5

Total

12

/

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.

A strong description: concrete capabilities, an explicit "Use when" clause with natural trigger phrasing and synonyms, and sharp boundaries ("not for simulator or XCTest work") that minimize conflict risk. The only gap is a few missing natural trigger variants, which keeps trigger term quality just below comprehensive.

DimensionReasoningScore

Specificity

Lists six concrete actions — "screenshot, read the accessibility tree, inspect @Observable state, tap, swipe, and type" — plus the mechanism ("an HTTP bridge embedded in the app under test") and the medium ("a real iPhone over USB"), which is comprehensive coverage; anchor 4's "minor gaps" would understate the breadth.

5 / 5

Completeness

Explicitly answers both what ("Drive QA of a SwiftUI app on a real iPhone over USB - screenshot, read the accessibility tree, ... tap, swipe, and type") and when ("Use when asked to test an iOS app on a physical device, find bugs on the device, or expose a connected iPhone to a remote agent over Tailscale") with concrete trigger phrases — a clear anchor-5 match.

5 / 5

Trigger Term Quality

Natural phrases users would say are present — "test an iOS app on a physical device", "find bugs on the device", "real iPhone" — with synonyms (physical device / connected iPhone), but a few natural variants like "on-device testing" or "manual QA on iPhone" are missing, matching anchor 4 rather than 5's fully comprehensive set.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche (real iPhone over USB via an embedded HTTP bridge, "Requires the ios-agent-qa runtime") with explicit exclusions ("not for simulator or XCTest work"), giving minimal conflict risk; anchor 4's "minor overlap risk" doesn't apply given the explicit boundary.

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

referenced_paths_exist

Referenced path issues: 1 missing

Warning

Total

15

/

16

Passed

Repository

phatblat/dotfiles

Path

.claude/skills/ios-device-qa/SKILL.md

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.