CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

assign-offline-profile

Use when the user needs to bind users or teams to a Mobile Offline Profile so they actually receive offline sync on their devices. Without this, the profile exists in Dataverse but no one's app uses it.

Quality

86%

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

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.

An exceptionally actionable, well-sequenced operational skill with explicit validation, gating, idempotency, and recovery handling. Remaining improvements are token-level: deduplicate the repeated working-directory guard boilerplate and move verbose command/query detail into a reference file.

Suggestions

State the working-directory guard once (e.g., 'Run every command from <working_dir>') and remove the repeated cd/BLOCKED boilerplate from each code block to cut significant token waste.

Move the long OData discovery queries and the AskUserQuestion dialog templates into a reference file (e.g., shared/references/dataverse-offline-api.md §12 or a membership-discovery reference), keeping only the command shape inline.

Trim the opening two paragraphs, which largely restate the frontmatter description and shared-instructions content already loaded at invocation time.

DimensionReasoningScore

Conciseness

The body is lean and operational with no concept padding — every section is task-specific. However, the 'cd -- <working_dir> || { echo BLOCKED... }' guard is repeated verbatim in roughly nine code blocks and the opening paragraph restates the frontmatter description, so minor trimming opportunities remain.

4 / 5

Actionability

Fully executable guidance throughout: concrete node CLI invocations with exact OData $filter/$select/$expand query strings, POST bodies with @odata.bind navigation properties, a flags table, exact AskUserQuestion dialog copy with options, status codes, and a duplicate-409 rescue note — copy-paste ready modulo clearly marked placeholders.

5 / 5

Workflow Clarity

The 7-step sequence is explicitly mapped up front, includes a single confirmation gate (Step 4), an explicit verification step with readback assertion (Step 6), idempotent re-run guidance, and a failure-recovery section — satisfying the validation requirement for batch operations with clear feedback loops.

5 / 5

Progressive Disclosure

The top references block is well-signaled with per-file descriptions pointing one level deep to shared files (entity field maps and API recipes are properly delegated out of the body). Minor gaps: full OData query strings and dialog templates remain inline where a reference could hold them, and the referenced ${PLUGIN_ROOT}/shared paths cannot be verified against this skill's bundle since no local references/ or scripts/ directories exist.

4 / 5

Total

18

/

20

Passed

Description

82%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, concrete what/when statements, and good differentiation from sibling profile-creation skills. Its main gaps are limited action coverage and omission of the natural 'assign' trigger term.

Suggestions

Add one or two more concrete actions (e.g., unbind memberships, verify assignments applied) to raise specificity beyond the two bind actions currently named.

Include the natural verb 'assign' (and ideally 'assign offline profile to users/teams') since that is the phrasing the maker portal UX and the skill name itself use.

DimensionReasoningScore

Specificity

Concrete actions are limited to 'bind users or teams to a Mobile Offline Profile' and 'receive offline sync on their devices' — the domain is named with two concrete actions, but there is no mention of unbinding, verification, or membership management scope, matching the anchor for 1-2 concrete actions without comprehensive coverage.

3 / 5

Completeness

It explicitly answers both: the what ('bind users or teams to a Mobile Offline Profile so they actually receive offline sync on their devices') and the when ('Use when the user needs to bind users or teams...') with a concrete, specific trigger clause rather than a generic one.

5 / 5

Trigger Term Quality

Natural phrases like 'bind users or teams', 'offline sync', and 'Mobile Offline Profile' are present and user-facing, but the most natural verb users would say — 'assign' (the skill's own name) — and synonyms like 'give offline access' are missing, so keyword coverage is good but not comprehensive.

4 / 5

Distinctiveness Conflict Risk

The niche is clearly delimited (Mobile Offline Profile membership binding in Dataverse) and the second sentence ('Without this, the profile exists in Dataverse but no one's app uses it') explicitly distinguishes it from profile-creation skills, minimizing overlap risk.

5 / 5

Total

17

/

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

Warning

Total

13

/

16

Passed

Repository

microsoft/power-platform-skills

Path

plugins/mobile-apps/skills/assign-offline-profile/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.