CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-pdf-viewer

Internal implementation skill invoked by /add-native for native PDF control workflows. Handles HTTPS and file URI PDF viewing with @microsoft/power-apps-native-pdf-viewer 0.2.9+.

Quality

80%

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/mobile-apps/skills/add-native/add-pdf-viewer/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

88%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 an exemplar of actionable, validated workflow writing: executable checks with hard stops, complete error-handling code, and a clear feedback loop through type-checking. Its only weaknesses are mild repetition of shell guards and a long inline verification snippet that would sit better in a bundle script.

DimensionReasoningScore

Conciseness

The body is dense and operational — bash guards, a complete TypeScript wrapper, and terse notes — with almost no explanation of concepts Claude already knows. Minor trimming is possible: the `cd -- '<working_dir>' || { echo BLOCKED... }` guard is repeated verbatim in three code blocks, and the Notes section restates the https://file:// constraint already enforced in the code. This matches anchor 4 ('efficient; minor instances of over-explanation that could be trimmed') rather than anchor 5, whose every token would earn its place.

4 / 5

Actionability

Guidance is fully executable: copy-paste-ready bash verification with explicit failure handling and STOP conditions, a complete discriminated-union TypeScript wrapper with all error paths, a concrete integration example, and a `npx --no-install tsc --noEmit` check. This matches anchor 5 ('fully executable; copy-paste ready code or commands; specific examples cover the common cases'); it is clearly above anchor 4, which allows minor gaps.

5 / 5

Workflow Clarity

Steps 1–8 are clearly sequenced with explicit validation checkpoints and feedback loops: app verification with a hard STOP, package/version verification with a hard STOP and named failure reasons, artifact reconciliation before writes, and a type-check step that says to fix in-scope errors and recheck, explicitly noting 'type-check success alone is insufficient'. This matches anchor 5 ('clear sequence with explicit validation steps; feedback loops for error recovery') and exceeds anchor 4, whose checkpoints may have minor gaps.

5 / 5

Progressive Disclosure

Structure is good: a clearly signaled pointer to shared plugin instructions and a one-level-deep referenced compatibility contract (with step anchors) at the top, well-labeled sections, and the wrapper/usage code appropriately inline. It falls short of anchor 5 because the long inline `node -e` version-check block (~500 characters on one line) is script-shaped content that belongs in a scripts/ file, and no bundle files are provided at all — a minor organization gap consistent with anchor 4 ('most content is appropriately placed; references mostly clear').

4 / 5

Total

18

/

20

Passed

Description

66%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 distinctive and precise about what the skill does and how it is routed, with a specific package and version bound. Its main weaknesses are limited action coverage and missing natural trigger phrasings that would help routing and completeness.

Suggestions

List 2-3 more concrete capabilities in the description (e.g., 'generates and verifies the src/native/pdfViewer.ts wrapper, validates the installed package version, and type-checks the app') to lift specificity.

Add natural trigger phrases users would actually say, such as 'PDF viewer', 'open a PDF in the app', or 'view a local or online PDF', to improve trigger term quality and routing.

Make the 'when' more explicit, e.g., 'Use when /add-native is asked to add native PDF viewing or a PDF viewer control to a mobile app'.

DimensionReasoningScore

Specificity

The description names the domain ('native PDF control workflows', 'HTTPS and file URI PDF viewing') and one concrete capability with a specific package and version, but stops short of listing multiple concrete actions such as generating the wrapper, verifying the installed version, or type-checking. This matches anchor 3 ('names domain and 1-2 concrete actions, but not comprehensive') and is below anchor 4, which expects several listed specific actions, while clearly exceeding anchor 2's generic single-verb action.

3 / 5

Completeness

The 'what' is explicit ('Handles HTTPS and file URI PDF viewing with @microsoft/power-apps-native-pdf-viewer 0.2.9+') and the 'when' is given as explicit trigger guidance ('Internal implementation skill invoked by /add-native for native PDF control workflows'), which is equivalent to a 'Use when...' clause for a routed internal skill. It sits below anchor 5 because the when-clause describes routing rather than concrete user-request trigger phrases (e.g., 'add a PDF viewer to my app'), matching anchor 4 ('both what and when present; when could be more explicit or specific').

4 / 5

Trigger Term Quality

It includes relevant keywords a user might echo ('PDF viewing', 'PDF control', the package name, '/add-native'), but misses common natural variations like 'PDF viewer', 'open a PDF', or 'view a PDF in the app'. This fits anchor 3 ('some relevant keywords but missing common variations or synonyms'), not anchor 4's 'good keyword coverage; a few natural terms missing', because several natural user phrasings for this capability are absent.

3 / 5

Distinctiveness Conflict Risk

It carves out a clear niche: native PDF viewing with one specific Microsoft package, a version floor, HTTPS/file:// scope, and explicit /add-native routing. This minimizes overlap with related skills (e.g., PDF generation or document picking), matching anchor 5 ('clear niche with distinct triggers; minimal conflict risk') rather than anchor 4, which requires some residual overlap risk with closely related skills.

5 / 5

Total

15

/

20

Passed

Validation

81%

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

Validation — 13 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

frontmatter_unknown_keys

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

Warning

relative_links

Relative link issues: 3 missing, 3 deeper-than-1-level

Warning

Total

13

/

16

Passed

Repository

microsoft/power-platform-skills

Path

plugins/mobile-apps/skills/add-native/add-pdf-viewer/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.