Official agent skill

Add Table To Offline Profile

by microsoft in microsoft/power-platform-skills

Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile.

OfficialMITAuto-check: notes

Install Add Table To Offline Profile

skills CLI
$ npx skills add microsoft/power-platform-skills --skill add-table-to-offline-profile -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/power-platform-skills add-table-to-offline-profile --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/mobile-apps/skills/add-table-to-offline-profile .claude/skills/add-table-to-offline-profile && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-table-to-offline-profile
GitHub stars
984
Token cost
~4.3k tokens
SKILL.md length
1,489 words
Files
1
Skills in repo
93
Repo updated
First seen
Licence
MIT

At a glance

Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile.

  • Works in 8 steps: Verify project + locate profile → Resolve target table → Prereq check (auto-enable if needed) → …
  • SKILL.md covers Invocation context and root…, Workflow, Status code (final line) and What this skill does NOT do
  • Calls node

What it does

Add Table To Offline Profile is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile.

Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: A plugin marketplace for GitHub Copilot and other AI agents that provides Power Platform development plugins, including reusable skills, agents, and commands for building and… The licence is MIT.

Example prompts

  • “/add-table-to-offline-profile”

Requirements

  • Pre-approved tools (allowed-tools): Read, Edit, Write, Grep, Glob, Bash, AskUserQuestion

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Verify project + locate profile
  2. Resolve target table
  3. Prereq check (auto-enable if needed)
  4. Scope picker (single question)
  5. POST item + associations + PATCH selectedcolumns
  6. Publish (targeted PublishXml)
  7. Update artifacts
  8. Summary

What it can do on your machine

Read from SKILL.md and the folder at commit 7d6b845. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Edit
    • Write
    • Grep
    • Glob
    • Bash
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add Table To Offline Profile loads about 4.3k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 1,489 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~43
When it runs · the whole SKILL.md, loaded when a task matches
~4.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Edit, Write, Grep, Glob, Bash, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/power-platform-skills at commit 7d6b845, republished under its MIT licence (© microsoft). 1,489 words, ~4,312 tokens.

Download SKILL.mdSave it as .claude/skills/add-table-to-offline-profile/SKILL.md (or your agent's skills folder).
name
add-table-to-offline-profile
description
Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile.
allowed-tools
Read, Edit, Write, Grep, Glob, Bash, AskUserQuestion
user-invocable
false
disable-model-invocation
true
model
sonnet

Shared instructions: shared-instructions.md — read first.

References:

Add Table to Offline Profile

Add a single table to an existing Mobile Offline Profile. Most common flow: user ran /add-dataverse to add a new table to their app, now wants that table available offline too.

Equivalent to running /setup-offline-profile and seeing the existing profile (extend-mode), but skips the per-table questionnaire for the tables already in the profile — only configures the new one.

Invocation context and root binding

This internal helper is always a child invocation. Before any project read or command, execute app-working-directory.md. Require the owner's absolute working_dir; --working-dir, when supplied, must identify that same native-canonical root. Missing, relative, or conflicting root context returns NEEDS_CONTEXT before project access; an inaccessible directory is BLOCKED. Never use the launch cwd or introduce another root resolver.

Receive MOBILE_APP_ORCHESTRATING=1, orchestrator, working_dir, phase, approved_scope, and supplied answers from the owner. Keep the selected environment ID/URL/tenant, profile ID, exact table allowlist, and approved operations unchanged. Missing or conflicting scope returns NEEDS_CONTEXT; do not substitute another environment, profile, or table. The marker is not approval: schema approval alone does not authorize offline prerequisite changes, profile items, relationships, columns, publication, deletion, or membership edits. Reuse only the same current offline approvals; otherwise retain Steps 3–4's gates. For --plan-only or a planning-phase handoff, return a proposal after permitted read-only discovery, before any prerequisite update, profile mutation, publish, or artifact write. A gate response cannot lift proposal-only mode.

Apply the canonical contract to every shell call and file tool, including version/auth checks, row counts, screen greps, commands copied from references, verification, recovery, and retries. Re-supply the absolute PLUGIN_ROOT and required context on each call; no prior cd, export, or shell variable persists. Use the canonical Bash guard below or its PowerShell equivalent. Replace placeholders with validated, shell-quoted invocation values; missing values return NEEDS_CONTEXT, never execute an unresolved placeholder. File tools use absolute <working_dir>/... paths; plugin reads/scripts use ${PLUGIN_ROOT}/.... Resolve manifest location once within this root and keep that absolute path; never search another app when a file is absent.

Workflow

  1. Verify project + locate profile → 2. Resolve target table → 3. Prereq check (auto-enable if needed) → 4. Scope picker (single question) → 5. POST item + PATCH selectedcolumns → 6. Publish → 7. Update artifacts → 8. Summary

Step 1 — Verify project + locate profile
bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
if [ ! -f power.config.json ] || [ ! -f app.config.js ]; then
  echo "BLOCKED: working_dir is not an initialized app" >&2
  exit 1
fi

Read <working_dir>/power.config.json and require a nonempty environmentId matching the owner's selected environment. Reuse matching complete environment context, or perform this non-persisting lookup from the bound root:

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
environment_id=$(node -p "require('./power.config.json').environmentId || ''") || {
  echo "BLOCKED: unreadable power.config.json" >&2; exit 1;
}
if [ -z "$environment_id" ] || [ "$environment_id" != "<selected-environment-id>" ]; then
  echo "NEEDS_CONTEXT: selected environment does not match working_dir" >&2
  exit 1
fi
node "${PLUGIN_ROOT}/scripts/resolve-environment.js" "$environment_id" --no-cache --require-tenant

Require the returned environment ID, HTTPS URL, and tenant to match the owner; incomplete or conflicting context returns NEEDS_CONTEXT. Never drop --no-cache --require-tenant, change configuration, or switch auth/environment to recover a failure. Use that exact <envUrl> and <tenantId> for every request.

Manifest path (dual-location, both within the bound root):

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
if [ -f .datamodel-manifest.json ]; then
  printf '%s\n' '<working_dir>/.datamodel-manifest.json'
elif [ -f docs/plan-artifacts/.datamodel-manifest.json ]; then
  printf '%s\n' '<working_dir>/docs/plan-artifacts/.datamodel-manifest.json'
else
  echo "NEEDS_CONTEXT: no manifest in working_dir" >&2
  exit 1
fi

Read the profile from <working_dir>/offline-profile.json or the owner's explicit --profile-id, using /edit-offline-profile's resolution rules inline. Verify it matches the owner's profile and the live profile in the selected environment. A conflicting snapshot/argument, 404, or permission failure is not permission to pick a different profile; return NEEDS_CONTEXT for conflict or BLOCKED for access failure. Do not execute the edit workflow just to locate a profile.

STOP if no profile exists. Recommend: Run /setup-offline-profile first to create the profile.

Step 2 — Resolve target table

$ARGUMENTS parsing:

FlagEffect
--table <logical-name>Explicit target
--all-newAdd missing manifest tables only within the owner's exact table allowlist (bulk mode); never widen to unrelated pending tables
(no flags)Interactive: list allowed tables in the manifest NOT yet in the selected profile via AskUserQuestion (max 4); if more than 4 candidates, prompt user to specify by name in next message

An explicit --table must match the owner's allowlist. Conflicting selection returns NEEDS_CONTEXT. For bulk --all-new mode, loop through Steps 3–7 for each approved missing table; each runs sequentially because Dataverse profile-item POSTs serialize. Every iteration keeps the same root/environment/profile context.

Step 3 — Prereq check (auto-enable if needed)

Query the target table's EntityMetadata:

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" GET \
  "EntityDefinitions(LogicalName='<table>')?\$select=IsAvailableOffline,ChangeTrackingEnabled,OwnershipType,IsCustomizable" \
  --tenant-id "<tenantId>"
Flags stateAction
Both already trueSkip to Step 4
Either false AND IsCustomizableUse update-entity-offline-flags.js only if the current offline approval covers these exact prerequisite changes and publication; otherwise show the changes and obtain owner/user approval first
IsCustomizable.Value = falseSTOP with BLOCKED: <table> is system-managed and cannot be flagged for offline. Use a different table or accept this row is read-only-offline.

After approval, execute the helper for this table only with the resolved tenant. --tenant-id binds both initial authentication and 401 refresh; never rely on ambient tenant variables for this prerequisite mutation.

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/update-entity-offline-flags.js" "<envUrl>" \
  --table "<table>" --offline true --tracking true --tenant-id "<tenantId>"

Check the returned HTTP status, not just process exit. A 403/PrivilegeCheckFailed is BLOCKED; do not change identity or profile to bypass permissions. After a successful change, issue the approved prerequisite publication:

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" POST \
  "PublishXml" --tenant-id "<tenantId>" --body '{
    "ParameterXml": "<importexportxml><entities><entity><table></entity></entities></importexportxml>"
  }'

Publish only this helper's changed prerequisite table. Do not use PublishAllXml unless the owner separately approves publishing all pending environment customizations; table-only approval does not cover that fallback.

No prerequisite mutation or publication is allowed in proposal-only mode.

Show full SKILL.md (667 more words)Show less
Step 4 — Scope picker (single question)

Pull from the bound absolute manifest the target table's lookups[] to inform defaults. Run a root-bound row-count probe in the selected environment for this table only to inform reference-data classification.

AskUserQuestion with 4 options reflecting the architect's priority cascade:

Option labelMaps to
Organization rows — User's rows only (Recommended for most tables)recorddistributioncriteria: 2, recordsownedbyme: true
All records (for small reference data)recorddistributioncriteria: 1
Related rows only (for pure child tables)recorddistributioncriteria: 0
Custom — specify exact flags in next messagePrompt user with text

Recommendation in the question body should be derived from the architect's heuristics for the table being added (use the same priority cascade from offline-profile-architect.md Step 4 inline). The user can override.

Show the proposed relationships, selected columns, and sync interval alongside the scope choice. Reuse supplied answers only when they approve this exact offline change; otherwise wait for the choice before Step 5. Cancel stops without creating a profile item. Neither invocation nor the orchestration marker answers this gate.

Step 5 — POST item + associations + PATCH selectedcolumns
Step 5a — POST profile item
bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" POST \
  "mobileofflineprofileitems" --tenant-id "<tenantId>" \
  --body '{
    "name": "<DisplayName>",
    "regardingobjectid@odata.bind": "/mobileofflineprofiles(<profileId>)",
    "selectedentitytypecode": "<table>",
    "recorddistributioncriteria": <0|1|2>,
    "recordsownedbyme": <bool>,
    "recordsownedbymyteam": false,
    "recordsownedbymybusinessunit": false,
    "getrelatedentityrecords": true,
    "syncintervalinminutes": 10
  }' \
  --include-headers

Capture itemId from OData-EntityId response header.

Step 5b — POST associations for the new table's relationships

After the new item is created, walk the new table's relationships (from the manifest's lookups[] + a EntityDefinitions(LogicalName='<table>')/ManyToOneRelationships query) and POST one mobileofflineprofileitemassociation per relationship whose target is ALREADY in the profile.

Recipe per shared/references/dataverse-offline-api.md §5–§6:

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" POST \
  "mobileofflineprofileitemassociations" --tenant-id "<tenantId>" \
  --body '{
    "name": "<relationshipSchemaName>",
    "relationshipdisplayname": "<relationshipSchemaName>",
    "relationshipid": "<MetadataId-from-EntityDefinitions>",
    "regardingobjectid@odata.bind": "/mobileofflineprofileitems(<newItemId>)"
  }' \
  --include-headers

Critical: do NOT include selectedrelationshipsschema in the body — server fills it in (empirical 2026-05-24).

For new tables that are recorddistributioncriteria: 0 (Related rows only), at least ONE inbound relationship MUST be included or the table will sync zero rows. The skill should validate this and warn if no associations are being created for a Related-only-scoped table.

Step 5c — PATCH selectedcolumns

Build selectedcolumns using the deterministic union from offline-profile-architect.md Step 6 (always-include ∪ lookups ∪ screen-grep'd, dedupe, sort). Scope file-tool greps to absolute <working_dir>/app/ and <working_dir>/src/ paths and the selected table; use the same proposed columns approved in Step 4.

bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" PATCH \
  "mobileofflineprofileitems(<itemId>)" --tenant-id "<tenantId>" \
  --body '{"selectedcolumns":"{\"Columns\":[...]}"}'
Step 6 — Publish (targeted PublishXml)
bash
cd -- '<working_dir>' || { echo "BLOCKED: cannot enter working_dir" >&2; exit 1; }
node "${PLUGIN_ROOT}/scripts/dataverse-request.js" "<envUrl>" POST \
  "PublishXml" --tenant-id "<tenantId>" --body '{
    "ParameterXml": "<publish><mobileofflineprofiles><mobileofflineprofile><profileId></mobileofflineprofile></mobileofflineprofiles></publish>"
  }'

Publishes only this profile, not the entire org's customizations. See shared/references/dataverse-offline-api.md §9 for 0x80071141 circular-relationship handling + PublishAllXml fallback.

All linked recovery commands, re-GET verification, and retries must bind the same root and pass the same environment/tenant/profile/table/item context. Removing a cycle association requires the explicit user decision in that recipe. An org-wide PublishAllXml fallback needs approval for that broader publication; do not silently escalate a profile-scoped approval. Never retry on a different profile or bypass a permission failure. Confirm publication before Step 7.

If a linked recovery recipe requires another offline helper, return the proposed change to the owner for approval first, then read the helper at its absolute ${PLUGIN_ROOT}/skills/<helper>/SKILL.md path. Forward:

text
Arguments: --working-dir '<working_dir>' --profile-id "<profileId>" --table "<table>" <exact-approved-change-flags>
Context: MOBILE_APP_ORCHESTRATING=1, orchestrator, working_dir, phase, approved_scope,
         selected environment ID/URL/tenant, profile ID, table allowlist, item ID,
         supplied answers, --plan-only (if present)

The recipient must enforce the same canonical root contract. Missing context returns NEEDS_CONTEXT; do not fall back to direct invocation or rediscovery.

Step 7 — Update artifacts

Append the new table's entry to <working_dir>/offline-profile.json tables[]. The entry MUST include a schemaColumns array — the added table's full set of schema column logical names from the bound absolute manifest at this moment. This is the schema-reconciliation baseline that ${PLUGIN_ROOT}/scripts/offline-profile-delta.js diffs future manifest changes against; omitting it reports columnBaselineMissing until re-reconciled. It is distinct from selectedColumns (the curated sync set) — see offline-profile-reconciliation.md. Match the canonical entry shape in /setup-offline-profile Step 9a without executing that workflow. Any delta check uses --project-root '<working_dir>' in its own guarded call.

Append to <working_dir>/memory-bank.md ## Offline profile block:

yaml
addedTables:
  - { at: 2026-05-19T..., table: <name>, itemId: <guid>, scope: <criterion> }
Step 8 — Summary
✓ Added <table> to profile.

  Profile      : <name>
  New item ID  : <guid>
  Scope        : <human-readable>
  Sync         : <minutes> min
  Columns      : <N> selected
  Published    : <ISO timestamp>

Total tables in profile now: <N>

Users who already have this profile assigned will receive the new table on their
next sign-in sync. To force-refresh, sign out and back in on the device.

Status code (final line)

  • DONE — table added, profile published, artifacts updated
  • DONE_WITH_CONCERNS: <list> — added with caveats (auto-enabled prereqs, publish timeout-then-success)
  • NEEDS_CONTEXT: <missing> — no profile to add to, or no target table
  • BLOCKED: <reason> — IsCustomizable=false on target, auth failure, POST/PATCH failure

What this skill does NOT do

  • Add N:N (ManyToMany) relationships to a profile item — uncommon, not covered by v0.1's recipe (which assumes N:1 / 1:N via the regardingobjectid lookup). If the user has an M:N use case, point them at the maker portal.
  • Re-architect existing tables in the profile — that's /edit-offline-profile.
  • Remove a table from the profile — manual DELETE /mobileofflineprofileitems(<itemId>) (no current skill).

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/mobile-apps/skills/add-table-to-offline-profile of microsoft/power-platform-skills.

Open the folder on GitHubat commit 7d6b845

Compare with similar skills

Add Table To Offline Profile next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Add Table To Offline Profile compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Table To Offline Profile this skillmicrosoft/power-platform-skills984—~4.3kAutomated safety check: NotesMIT
Executealirezarezvani/claude-skills28k—~831Automated safety check: PassMIT
Debugging Executionsn8n-io/n8n207k—~2.6kAutomated safety check: PassCustom licence
Internal Commsalirezarezvani/claude-skills28k—~3.4kAutomated safety check: PassMIT
Internal Communicationsickn33/agentic-awesome-skills47k1 repos~3.4kAutomated safety check: PassMIT
Profileccusage/ccusage19k—~430Automated safety check: PassCustom licence

Similar skills

  • Execute

    alirezarezvani/claude-skills

    /cs:execute <decision — Generate a 90-day execution plan with weekly milestones, DRIs, and check-in cadence from an approved decision.

    28k GitHub stars~831 tokensUpdated 1 mo ago
    Product & Project ManagementAuto-check passed
  • Official

    Debug failed or wrong-output workflow executions using executions tools.

    207k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Internal Comms

    alirezarezvani/claude-skills

    A skill your agent uses when a Head of People Ops, BizOps lead, or Internal Communications owner needs to draft and sequence an internal-only change-management communication — a re-org announcement…

    28k GitHub stars~3.4k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Internal Communication

    sickn33/agentic-awesome-skills

    Internal communication log: title, type, date, department, host and attendees, agenda, action items, follow-up date, meeting link and delivery status.

    47k GitHub starsUsed in 1 repo~3.4k tokens
    Writing & ContentAuto-check passed
  • Profile

    ccusage/ccusage

    Profiles ccusage performance. An agent skill from ccusage/ccusage.

    19k GitHub stars~430 tokensUpdated today
    Auto-check passed
  • Profiling Tables

    astronomer/agents

    Deep-dive data profiling for a specific table. An agent skill from astronomer/agents.

    451 GitHub stars~964 tokensUpdated 2 days ago
    Data & AnalyticsAuto-check passed

More from microsoft/power-platform-skills

All 93 skills in this repo
  • Manage Firewall

    microsoft/power-platform-skills

    Official

    Inspects and configures the web application firewall (WAF) in front of a Power Pages production site.

    984 GitHub stars~4.5k tokensUpdated today
    Auto-check: notes
  • Manage Headers

    microsoft/power-platform-skills

    Official

    Inspects and configures the security headers a Power Pages site sends to browsers — Content Security Policy, frame and clickjacking protection, cross-origin sharing, cookie behavior, and related…

    984 GitHub stars~3k tokensUpdated today
    Auto-check: notes
  • Scan Code

    microsoft/power-platform-skills

    Official

    Scans a Power Pages site project for security issues in source code and dependencies.

    984 GitHub stars~3.4k tokensUpdated today
    Auto-check: notes
  • Scan Site

    microsoft/power-platform-skills

    Official

    Runs a security scan on a deployed Power Pages site, fetches the latest scan report, and produces a plain-language summary.

    984 GitHub stars~3.2k tokensUpdated today
    Auto-check: notes
  • Setup Datamodel

    microsoft/power-platform-skills

    Official

    Creates Dataverse tables, columns, and relationships for a Power Pages site based on a data model proposal.

    984 GitHub stars~4k tokensUpdated today
    Auto-check: notes
  • Add Localization

    microsoft/power-platform-skills

    Official

    Adds or extends multilingual localization in a Power Pages code-site SPA.

    984 GitHub stars~15k tokensUpdated today
    Auto-check: notes

Questions about Add Table To Offline Profile

What does Add Table To Offline Profile do?

Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile. Add Table To Offline Profile is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Internal mobile-app workflow read and executed only by mobile orchestrators to add one Dataverse table to an existing Mobile Offline Profile.

How do I install Add Table To Offline Profile in Claude Code?

Run `npx skills add microsoft/power-platform-skills --skill add-table-to-offline-profile -a claude-code`. Or copy the skill folder (plugins/mobile-apps/skills/add-table-to-offline-profile in microsoft/power-platform-skills) into .claude/skills/add-table-to-offline-profile in your project. Claude Code loads it when a task matches its description.

How do I install Add Table To Offline Profile in Codex?

Run `npx skills add microsoft/power-platform-skills --skill add-table-to-offline-profile -a codex`. Or copy the skill folder (plugins/mobile-apps/skills/add-table-to-offline-profile in microsoft/power-platform-skills) into .agents/skills/add-table-to-offline-profile in your project. Codex loads it when a task matches its description.

Can I use Add Table To Offline Profile in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/power-platform-skills --skill add-table-to-offline-profile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-table-to-offline-profile, .gemini/skills/add-table-to-offline-profile, .github/skills/add-table-to-offline-profile and .opencode/skills/add-table-to-offline-profile in your project.

What does Add Table To Offline Profile need to run?

Going by SKILL.md and its folder, Add Table To Offline Profile needs the command-line tools its instructions call (node). Its frontmatter pre-approves these tools: Read, Edit, Write, Grep, Glob, Bash, AskUserQuestion.

Does Add Table To Offline Profile access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Add Table To Offline Profile safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Add Table To Offline Profile use?

Add Table To Offline Profile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Add Table To Offline Profile use?

About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add Table To Offline Profile?

Skills that share tags, products or a category with Add Table To Offline Profile: Execute (alirezarezvani/claude-skills, 28k stars), Debugging Executions (n8n-io/n8n, 207k stars), Internal Comms (alirezarezvani/claude-skills, 28k stars) and Internal Communication (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Table To Offline Profile?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/power-platform-skills, which has 984 GitHub stars. The repository holds 93 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/power-platform-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.