CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-camera

Internal implementation skill invoked by /add-native for camera, image picker, barcode scanner, QR scanner, and camera/gallery Dataverse artifact workflows.

Quality

72%

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-camera/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

77%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 strong operational skill: fully executable artifacts, an explicitly sequenced workflow with real validation and error-recovery checkpoints, and clear ownership boundaries. Its main weaknesses are repetition of the same boundary rules in multiple sections and ~325 lines of inline source templates that should be split into reference files to slim the SKILL.md overview.

Suggestions

Deduplicate the repeated boundary rules — state 'never install native modules' and the host FilePicker/ImagePicker ownership boundary once in an authoritative section and reference it from the steps instead of restating it in the intro, Steps 4–5, and the Notes.

Move the three complete source templates (camera.ts, barcodeScanner.tsx, cameraUpload.ts) into references/ files (e.g., references/camera-template.ts) and keep only interface/usage summaries inline, shrinking SKILL.md to a true overview.

Trim conditional restatements like the repeated 'returns NEEDS_CONTEXT to the owner' phrasing by defining that failure path once and citing it per step.

DimensionReasoningScore

Conciseness

The body is mostly dense operational content with no concept-explanation padding, but boundary rules repeat heavily: 'do not install native modules' appears roughly four times and the host FilePicker/ImagePicker boundary is restated in the intro, Step 4 (twice), Step 5, and the Notes. Matches 'mostly efficient but includes some unnecessary explanation or could be tightened', not 4 because the repetition is noticeable.

3 / 5

Actionability

Fully executable, copy-paste-ready guidance throughout: a heredoc Node script for module validation, three complete compilable TypeScript/TSX artifacts, an exact grep pattern, decision tables keyed by approved scope, and exact print strings. Specific examples cover the common capture, scanner, and upload cases.

5 / 5

Workflow Clarity

The numbered sequence (1–7 with 2a/3b) has explicit validation gates at Steps 1, 2, 2a, and 6, a fix-and-recheck feedback loop with common-issue remedies in Step 6, and a post-type-check re-verification contract. Matches the anchor with explicit validation steps and error-recovery loops.

5 / 5

Progressive Disclosure

External references (shared-instructions.md, native-artifact-compatibility.md, the add-dataverse reference) are clearly signaled with purpose annotations, and section structure is good — but the skill ships no bundle files and inlines ~325 lines of complete source templates (camera.ts, barcodeScanner.tsx, cameraUpload.ts) that clearly belong in a references/ directory. Matches 'content that should be separate is inline', not 4 because of the large inlined templates.

3 / 5

Total

16

/

20

Passed

Description

60%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 highly distinct and uses natural, well-scoped trigger terms, but it describes routing and domain rather than capability: it never states what the skill actually does (generate typed camera/gallery wrappers, a barcode/QR scanner control, and a Dataverse image-upload helper). Adding those concrete actions would lift both specificity and completeness.

Suggestions

State the concrete actions the skill performs, e.g., 'Generates typed camera and image-picker wrappers, an optional barcode/QR scanner control, and an optional Dataverse image-column upload helper', instead of the generic 'artifact workflows'.

Include an explicit trigger clause naming user-facing phrases such as taking photos, picking gallery images, or scanning barcodes/QR codes (even though routing goes through /add-native), to sharpen both completeness and trigger-term coverage.

Add natural synonym terms like 'take photo', 'gallery', or 'scan code' to broaden keyword coverage beyond the capability keys.

DimensionReasoningScore

Specificity

The description names the domain thoroughly (camera, image picker, barcode scanner, QR scanner, Dataverse) but the only action stated is 'invoked by /add-native for ... artifact workflows' — no concrete action verbs (e.g., generates wrappers, creates scanner control) appear. This matches the anchor 'Names the domain but actions are minimal or generic', not 3 because no concrete actions are listed at all.

2 / 5

Completeness

The 'when' is reasonably explicit for an internal skill ('invoked by /add-native for camera, image picker, barcode scanner, QR scanner ... workflows'), but the 'what' is vague — 'camera/gallery Dataverse artifact workflows' never states what the skill actually does. Not 4 because one of the two halves is only implicit.

3 / 5

Trigger Term Quality

'camera', 'image picker', 'barcode scanner', 'QR scanner', and 'Dataverse' are natural terms users would say, with decent synonym coverage. Falls just short of 5 because common natural phrasings like 'take photo', 'scan a code', or 'gallery' are missing.

4 / 5

Distinctiveness Conflict Risk

'Internal implementation skill invoked by /add-native' with an exact capability list carves a clear niche with distinct triggers; model invocation is disabled, so wrong-skill trigger risk is minimal.

5 / 5

Total

14

/

20

Passed

Validation

75%

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

Validation — 12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (675 lines); consider splitting into references/ and linking

Warning

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: 4 missing, 4 deeper-than-1-level, 2 suspicious

Warning

Total

12

/

16

Passed

Repository

microsoft/power-platform-skills

Path

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