CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-datasource

Use when adding an unspecified data source to an Expo/React Native Power Apps mobile app; routes to Dataverse, SharePoint, or another connector.

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 ./plugins/mobile-apps/skills/add-datasource/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 well-structured router skill with executable commands, explicit gates, and good externalization of detail. Its weakest point is redundancy between the routing table and the bullet rules, plus a stray numbered step that breaks the workflow's numbering.

Suggestions

Consolidate the 'Important routing rules' bullets with the routing table: state each rule (cloud-flow blocked, Dataverse-action rerouting, structured-data routing) once, keeping the table as the single source of truth.

Re-home the stray '4. If the approved scope includes multiple capabilities…' item into the numbered sequence under 'Understand the Goal' or promote it to its own subheading so the workflow step numbering is coherent.

Standardize on one path convention for shared files (e.g., always '${PLUGIN_ROOT}/shared/…') so the external references are consistent and verifiable.

DimensionReasoningScore

Conciseness

The body is dense and operational with no concept padding, but three routing rules (cloud-flow blocked, Dataverse-action rerouting, structured-data routing) are each stated twice — once in the table and again nearly verbatim in the 'Important routing rules' bullets. This duplication is a real tightening opportunity, matching 'mostly efficient but could be tightened' rather than the minor-trim level above.

3 / 5

Actionability

Concrete slash-commands with exact flags ('/add-dataverse … with skill-only --refresh --data-source-name "<registered-name>"', '/add-connector office365') and a specific CLI command ('pa app find-dataverse-api --search \'<operation-name>\' --json') make the routing directly executable. Minor gaps remain where steps defer entirely to shared-instructions.md (e.g., the memory-bank check).

4 / 5

Workflow Clarity

The sequence (check memory bank → understand goal → route → multi-capability fan-out) is clear with explicit gates ('BLOCKED: cloud-flow integration is not supported', 'a saved plan or router choice is not consent to mutate'). It falls short of the top level because a stray numbered item '4. If the approved scope includes multiple capabilities…' is detached from the 1–3 list in 'Understand the Goal', breaking the step numbering.

4 / 5

Progressive Disclosure

Sections are well organized and all detail lives behind clearly signaled one-level-deep links to plugin-shared files, keeping SKILL.md an overview. It is not the top level because references use two different path conventions ('${PLUGIN_ROOT}/shared/…' and '../../shared/…') and point to files outside the skill directory that cannot be verified within the bundle.

4 / 5

Total

15

/

20

Passed

Description

78%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 with an explicit 'Use when' trigger, a clear what (routing), and natural platform keywords. Its main weaknesses are modest action specificity and missing natural trigger variants for the many connector types the skill actually routes.

DimensionReasoningScore

Specificity

Names the domain (adding a data source to an Expo/React Native Power Apps mobile app) and the concrete routing targets 'Dataverse, SharePoint, or another connector', but stops short of listing several specific actions. It matches 'names domain and 1-2 concrete actions, but not comprehensive' rather than the minor-gaps level above.

3 / 5

Completeness

It explicitly answers both parts: 'Use when adding an unspecified data source to an Expo/React Native Power Apps mobile app' (when, with a concrete trigger phrase) and 'routes to Dataverse, SharePoint, or another connector' (what). Both are explicit and concrete, matching the top anchor rather than the merely adequate level below.

5 / 5

Trigger Term Quality

'adding an unspecified data source', 'Dataverse', 'SharePoint', and 'connector' are terms users would naturally say, giving good keyword coverage. It falls short of comprehensive because natural variations like 'connect to', 'hook up SharePoint/Teams data', or 'Excel/OneDrive data' (which the body actually handles) are absent.

4 / 5

Distinctiveness Conflict Risk

The 'unspecified data source' qualifier carves out a distinct router niche that delegates to leaf skills. It is not fully minimal-risk because it sits in a family of siblings (/add-dataverse, /add-sharepoint, /add-connector) with some overlap risk when the user does name a source.

4 / 5

Total

16

/

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

Warning

Total

13

/

16

Passed

Repository

microsoft/power-platform-skills

Path

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