CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-pdf-report

Internal implementation skill invoked by /add-native for app-generated PDF report workflows using expo-print and, when present, expo-sharing.

Quality

78%

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-report/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.

A strong, highly actionable body: every step is executable, gates have explicit stop conditions and error-recovery loops, and the guidance is almost entirely project-specific knowledge Claude could not infer. The only weaknesses are minor repetition and heavy reliance on external plugin-shared reference files for the compatibility contract.

DimensionReasoningScore

Conciseness

Nearly every token is non-inferable project specificity (capability-boundary table, package gates, full wrapper code) with no explanation of known concepts. Minor trimmable redundancy remains: the 'cd -- <working_dir> || ... exit 1' guard repeats in every bash block and 'never installs packages' is stated at lines 21, 55, and 281, placing this just below anchor 5's 'every token earns its place'.

4 / 5

Actionability

Fully executable throughout: copy-paste bash verification with explicit BLOCKED/MISSING exits, a complete TypeScript wrapper, a concrete integration example, and 'npx --no-install tsc --noEmit'. The single non-executable piece (createUploadFileFromBase64) is explicitly justified as intentionally app-specific, which the guidelines allow.

5 / 5

Workflow Clarity

Steps 1-8 are clearly sequenced with explicit validation checkpoints and stop conditions at every gate (verify-app failure routes to /create-mobile-app, missing expo-print hard-stops with a do-not-install list, Step 2a returns NEEDS_CONTEXT for incompatible artifacts), plus a fix-then-recheck feedback loop in Step 6 that enumerates failure modes (empty HTML, unavailable sharing, absent base64). This matches the anchor-5 pattern of explicit validation with error-recovery loops.

5 / 5

Progressive Disclosure

Well-sectioned with clear headers, and the references to shared-instructions.md and native-artifact-compatibility.md are clearly signaled at the top and one level deep. However, those files live outside this bundle under ${PLUGIN_ROOT}/shared/ and native-artifact-compatibility.md is load-bearing (referenced three times, required for Steps 0, 2a, and 6), so navigation depends on external plugin files rather than a self-contained split, keeping this below anchor 5.

4 / 5

Total

18

/

20

Passed

Description

62%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 concise, honest, third-person description that correctly signals its internal /add-native routing and conditional expo-sharing usage, but it names tools rather than actions and omits the natural trigger phrases (generate/export/share PDF) that would sharpen both completeness and conflict avoidance.

Suggestions

State the concrete actions and output in the description, e.g. 'Generates a local PDF file URI from app data via expo-print and adds a share method only when expo-sharing is already present.'

Include the natural trigger terms users would say, such as 'generate PDF', 'export report as PDF', or 'share PDF', mirroring the /add-native aliases (pdf-report, generate-pdf, pdf-export) already listed in the body.

Add a brief boundary clause (e.g. 'for app-generated PDFs, not opening existing PDF files') to further separate this skill from the pdf-viewer and document-picker siblings.

DimensionReasoningScore

Specificity

Names the domain ('app-generated PDF report workflows') and concrete tools ('expo-print', 'expo-sharing'), but lists no concrete actions or outputs such as generating a local PDF URI or adding a share method. It exceeds anchor 2 (more than a bare domain name) but does not list the several specific actions anchor 4 requires.

3 / 5

Completeness

The 'what' is stated (PDF report workflows via expo-print and optionally expo-sharing) and the 'when' is explicit via 'invoked by /add-native for app-generated PDF report workflows', which counts as equivalent trigger guidance and avoids the cap at 3. The 'when' could still be more specific about which /add-native capabilities route here, matching anchor 4.

4 / 5

Trigger Term Quality

Relevant keywords are present ('PDF report', '/add-native', package names), but the natural phrases users would say ('generate PDF', 'export report as PDF', 'share PDF') and the routing aliases (pdf-report, generate-pdf, pdf-export) that appear only in the body are missing, fitting anchor 3's 'missing common variations' rather than anchor 4's 'good keyword coverage'.

3 / 5

Distinctiveness Conflict Risk

'app-generated PDF report workflows' carves a clear niche distinct from viewing existing PDFs, and the tool pairing is distinctive. Minor overlap risk remains with sibling skills (pdf-viewer, document-picker) that the description alone does not disambiguate, fitting anchor 4 rather than anchor 5's enumerated distinct triggers.

4 / 5

Total

14

/

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-report/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.