CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

edit-offline-profile

Internal mobile-app workflow read and executed only by mobile orchestrators to change one table's scope, columns, or sync settings in a Mobile Offline Profile.

Quality

77%

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/edit-offline-profile/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

81%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 exceptionally actionable with a clearly gated, validated workflow and concrete error recovery for every failure mode. Its main weakness is token efficiency — repeated shell guards and restated binding rules — and moderately good, though not fully split-out, content structure.

Suggestions

Factor the repeated four-line bash guard into one canonical block and reference it ('use the canonical Bash guard below') instead of duplicating it in every code block.

Consolidate the root-binding/context rules stated in the 'Invocation context' section, Step 5, and the forwarding template into a single authoritative statement to cut restated tokens.

Move the version-gated roadmap notes (v0.2 selectedrelationshipsschema, v0.5 CloneMobileOfflineProfile work) into a clearly labeled 'Not yet supported' subsection or reference to avoid time-sensitive content in the main flow.

DimensionReasoningScore

Conciseness

The body is mostly operational with no concept over-explanation, but the identical `cd -- '<working_dir>' || { echo "BLOCKED..."; exit 1; }` guard is repeated in six code blocks and the root-binding contract is restated in at least three sections ("Apply the canonical contract to every shell call", "All linked recovery commands... must bind the same root", "The recipient must enforce the same canonical root contract"), which could be factored out.

3 / 5

Actionability

Fully executable throughout: exact node CLI calls with complete $select field lists, concrete PATCH bodies, a flag-pattern table with ranges (sync 5–1440), specific error-code handling (400 / 0x80071141 circular relationship), and a copy-paste-ready context-forwarding template.

5 / 5

Workflow Clarity

The 7-step sequence has explicit validation checkpoints (Step 3 current/proposed diff with a single confirm gate, Step 6 re-read of changed items to update artifacts) and feedback loops for error recovery (parse the cycle path, prompt to drop an association, retry; 403/PrivilegeCheckFailed is BLOCKED, not retried), plus a defined status-code contract.

5 / 5

Progressive Disclosure

References are one level deep and well-signaled with purpose (e.g. "dataverse-offline-api.md §4 / §7 — POST item + PATCH selectedcolumns"), but no bundle files exist in this skill directory to verify the ${PLUGIN_ROOT}/shared paths against, and the ~270-line body inlines substantial contract and error-handling detail that could partly live in a shared reference.

4 / 5

Total

17

/

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 specific and clearly third-person, naming concrete edit operations on a well-defined entity, but it lacks any explicit "when to use" trigger guidance and under-represents the full edit surface (rename/description edits are missing). Adding an invocation clause would raise its completeness and specificity.

Suggestions

Add a 'Use when...' clause (e.g. 'Use when an orchestrator needs to edit an existing offline profile's table scope, column list, or sync interval') to move completeness above the cap of 3.

Mention the profile-level rename and description edits the skill supports so the capability list is comprehensive, raising specificity.

Include natural trigger variations such as 'edit offline profile' and 'sync interval/frequency' to broaden keyword coverage.

DimensionReasoningScore

Specificity

Names several concrete edits — "change one table's scope, columns, or sync settings in a Mobile Offline Profile" — but omits the profile rename/description edits the body supports, a minor coverage gap that keeps it below the comprehensive anchor.

4 / 5

Completeness

The "what" is clear (change one table's scope, columns, or sync settings in a Mobile Offline Profile), but there is no "Use when..." clause or equivalent explicit trigger guidance — "read and executed only by mobile orchestrators" states who runs it, not when it should run, capping this dimension at 3.

3 / 5

Trigger Term Quality

"scope", "columns", "sync settings", "Mobile Offline Profile", and "mobile-app" are the domain's natural terms, but common variations like "edit", "offline profile" without the "Mobile" qualifier, and "sync interval/frequency" are missing.

4 / 5

Distinctiveness Conflict Risk

"Mobile Offline Profile" is a distinct niche with low conflict risk against generic skills, but closely related sibling helpers in the same plugin family (e.g. /add-table-to-offline-profile) create minor overlap risk.

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

Warning

Total

13

/

16

Passed

Repository

microsoft/power-platform-skills

Path

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