Android Maps Ktx
googlemaps/android-maps-ktx
Provides idiomatic Kotlin extension (KTX) patterns, reactive Flow event streams, and multi-subscriber shareIn rules for Google Maps SDK for Android and its Utility Library.
Assemble the final .ppmplugin binary bundle for a PAM native extension and verify its contents.
$ npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/power-platform-skills assemble-ppmplugin --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin .claude/skills/assemble-ppmplugin && rm -rf skills-srcUse ~/.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/
Install the "assemble-ppmplugin" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin into .claude/skills/assemble-ppmplugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assemble-ppmplugin", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmpluginType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/power-platform-skills assemble-ppmplugin --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin .agents/skills/assemble-ppmplugin && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "assemble-ppmplugin" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin into .agents/skills/assemble-ppmplugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assemble-ppmplugin", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/power-platform-skills assemble-ppmplugin --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin .cursor/skills/assemble-ppmplugin && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "assemble-ppmplugin" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin into .cursor/skills/assemble-ppmplugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assemble-ppmplugin", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/microsoft/power-platform-skills.git --path plugins/power-apps-mobile-extension/skills/assemble-ppmplugin--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/power-platform-skills assemble-ppmplugin --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin .gemini/skills/assemble-ppmplugin && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "assemble-ppmplugin" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin into .gemini/skills/assemble-ppmplugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assemble-ppmplugin", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install microsoft/power-platform-skills assemble-ppmpluginInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin .github/skills/assemble-ppmplugin && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "assemble-ppmplugin" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin into .github/skills/assemble-ppmplugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assemble-ppmplugin", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/power-platform-skills assemble-ppmplugin --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/power-platform-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin .opencode/skills/assemble-ppmplugin && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "assemble-ppmplugin" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/assemble-ppmplugin into .opencode/skills/assemble-ppmplugin/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assemble-ppmplugin", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
assemble-ppmpluginAssemble the final .ppmplugin binary bundle for a PAM native extension and verify its contents.
Assemble Ppmplugin is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Assemble the final .ppmplugin binary bundle for a PAM native extension and verify its contents. First reconciles the manifest's declared entrypoints against the binaries actually staged — if the manifest declares a platform with no built binary it gates (build it / ship without it / stop) rather than shipping a broken bundle. Then re-runs the plugin's upload-compatibility checks on the reconciled manifest, zips the manifest plus whichever of android/<PascalNamePlugin.dex and ios/<PascalNamePlugin.framework/ are…
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Mobile. It works with Java, Android and iOS. 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.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5ef4e4f. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBashGlobGrepAskUserQuestionSkillFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and powershell).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Assemble Ppmplugin loads about 2.4k tokens when it runs. Until then it costs about 215 tokens; SKILL.md has 940 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, SkillAutomated 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.
The full file from microsoft/power-platform-skills at commit 5ef4e4f, republished under its MIT licence (© microsoft). 940 words, ~2,430 tokens.
.claude/skills/assemble-ppmplugin/SKILL.md (or your agent's skills folder).The final step: take the label (manifest.json from /generate-ppmplugin-manifest) and the binaries the build skills produced, zip them into the single <name>.ppmplugin file, and verify the box contains exactly the right items. The output is the deliverable — the file you can hand off / upload. Before zipping, it reconciles the manifest's declared platforms against the binaries that actually built, so the shipped bundle never claims a platform it doesn't contain.
Read shared/ppmplugin-format.md §1 — the bundle layout this skill produces and verifies.
android/<Pascal>Plugin.dex from /build-android-binary and/or ios/<Pascal>Plugin.framework/ from /build-ios-binary) and bundles those present.shared/shared-instructions.md and shared/ppmplugin-format.md.jar (ships with the JDK). Print the visible block (shared-instructions §9.2):━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Prereq check — /assemble-ppmplugin
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🟢 ✓ jar (JDK) available
🟢 1 check passed, 0 failed. Ready to proceed.If jar is missing, STOP with BLOCKED: jar not found — install a JDK (JDK 17).
The shipped bundle's manifest.json MUST declare exactly the platforms whose binaries are in the zip — no more, no less. The manifest was authored from intent (target choice); this step makes it match reality (what actually built). This is the one place that sees the final set of binaries, so it owns consistency.
ppmplugin/staging/manifest.json — else STOP with NEEDS_CONTEXT: manifest missing — run /generate-ppmplugin-manifest. Read name for the output filename <name>.ppmplugin (the version is NOT in the filename — it lives in the manifest's version field; the wrap pipeline reads it from there. Still read version to show it in the deliverable report).entrypoints.android present? entrypoints.ios?ppmplugin/staging/android/<dex> exists, where <dex> = entrypoints.android.dex.ppmplugin/staging/ios/<framework>.framework/ exists (a flat .framework, NOT an .xcframework — §5b), where <framework> = entrypoints.ios.framework. If an .xcframework is staged instead, surface it as a gate — the wrap CI can't ingest it; re-run /build-ios-binary for the flat device-slice framework.| Declared | Staged | Action |
|---|---|---|
| yes | yes | ship it ✓ |
| yes | no | MISMATCH → gate (below) |
| no | yes | binary present but the manifest won't route it — surface; offer to re-run /generate-ppmplugin-manifest to declare it, or leave it out |
| no | no | not part of this bundle — ignore |
NEEDS_CONTEXT: no built binary to ship — run a build skill first.The mismatch gate (declared but not staged). Do NOT silently ship a manifest pointing at a missing binary. The situation is genuinely ambiguous (changed-my-mind vs forgot-to-build), so surface it and ask via AskUserQuestion:
"Manifest declares
<platform>but no<platform>binary is staged."
- Build
<platform>first — run the build skill (/build-android-binary, or/build-ios-binaryfor iOS, Mac-only) [invoke it via the Skill tool — execute, don't describe]- Ship without
<platform>— removeentrypoints.<platform>from the stagedmanifest.json, ship the platforms that ARE built- Stop
If the user picks "Ship without", edit the staged manifest.json to drop that entrypoint before continuing. After this step, the manifest's entrypoints set equals the staged-binary set exactly.
Re-run the ppmplugin-format §4 validation rules on the reconciled staged manifest.json (it may have been edited in Step 2 or by hand). Also cross-check, for each shipped platform:
entrypoints.android.dex exactly matches the staged DEX filename.entrypoints.ios.framework matches the staged …/<framework>.framework directory name, and that .framework/ carries the binary + Headers/<framework>.h + Modules/module.modulemap + Info.plist (the wrap-CI requirements — /audit-ppmplugin does the deep check; flag here if any are obviously absent).If validation fails, STOP with BLOCKED: manifest validation — <rule> and do not produce the
bundle. A .ppmplugin that fails the local compatibility checks is not ready for upload.
Before zipping: if the output ppmplugin/<name>.ppmplugin already exists, do NOT silently overwrite it — ask via AskUserQuestion: Replace [default] / Keep existing (stop, leave the prior bundle untouched). Proceed to zip only on Replace.
Zip the manifest plus only the platform folder(s) reconciled as shipped in Step 2. Pass them explicitly so the build dirs (android-build/, ios-build/) are never swept in. jar (JDK) recurses directories, so it handles the iOS .framework tree, and it behaves identically on every OS — only the shell glue differs (§5):
macOS / Linux (bash):
mkdir -p ppmplugin
# list only the shipped platforms, e.g. `android` for Android-only, `android ios` for Both:
( cd ppmplugin/staging && jar cMf "../<name>.ppmplugin" manifest.json android ios )Windows (PowerShell):
New-Item -ItemType Directory -Force ppmplugin | Out-Null
Push-Location ppmplugin\staging
jar cMf ..\<name>.ppmplugin manifest.json android ios
Pop-Location(-M = no JAR manifest entry; the bundle's manifest.json is our own. Drop ios (or android) from the argument list if that platform isn't shipped.) On Replace (confirmed above), the prior bundle is overwritten.
Verify layout — list and assert it matches the reconciled manifest exactly:
jar tf ppmplugin/<name>.ppmpluginAndroid-only expects exactly:
manifest.json
android/<Pascal>Plugin.dexA Both bundle also has ios/<Pascal>Plugin.framework/… entries (flat framework — binary + Headers/ + Modules/module.modulemap + Info.plist). STOP with BLOCKED: unexpected bundle contents (and the actual listing) if: a build dir leaked in (android-build/, ios-build/), a stray file appears (.DS_Store, META-INF/), an ios/<…>.xcframework/ is present (must be a flat .framework), or a declared platform's binary is missing. The bundle must contain exactly the manifest + the entrypoints' binaries — nothing else.
Update the ## ppmplugin (third-party controls) block in .extension-state.md: Bundle: <name>.ppmplugin assembled <ISO timestamp> (v<version>, platforms: <android[,ios]>). Print the deliverable as a visible fenced block (shared-instructions §9.1, informational form):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
.ppmplugin ready
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ppmplugin/pen-input.ppmplugin (v0.1.4, Android-only)
Contents:
manifest.json
android/PenInputPlugin.dex
Next: /audit-ppmplugin — verify the bundle is upload-ready before shipping it.
(Then: deploy the dispatcher PCF via /publish-pcf-companion, and upload the
.ppmplugin via the wrap wizard — Stage 3, not yet a skill.)Then offer the next step via AskUserQuestion (shared-instructions §9.1 — invoke the chosen skill via the Skill tool; execute, don't describe):
(When /assemble-ppmplugin runs as an internal stage of /generate-ppmplugin, the orchestrator invokes /audit-ppmplugin automatically and this gate is skipped.) Return DONE with the bundle path.
© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/power-apps-mobile-extension/skills/assemble-ppmplugin of microsoft/power-platform-skills.
Open the folder on GitHubat commit 5ef4e4f
Assemble Ppmplugin 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Assemble Ppmplugin this skillmicrosoft/power-platform-skills | 967 | — | ~2.4k | Automated safety check: Notes | MIT | |
| Android Maps Ktxgooglemaps/android-maps-ktx | 360 | — | ~897 | Automated safety check: Pass | Apache-2.0 | |
| AppsFlyer Unity Plugin API ChangeAppsFlyerSDK/appsflyer-unity-plugin | 178 | — | ~514 | Automated safety check: Pass | MIT | |
| Appium Skillsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.8k | Automated safety check: Pass | MIT | |
| Re Mobile Forensicsdslsdzc/rev-skills | 117 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Teswiz Projectznsio/teswiz | 105 | — | ~977 | Automated safety check: Pass | MIT |
googlemaps/android-maps-ktx
Provides idiomatic Kotlin extension (KTX) patterns, reactive Flow event streams, and multi-subscriber shareIn rules for Google Maps SDK for Android and its Utility Library.
AppsFlyerSDK/appsflyer-unity-plugin
Guides API changes in the AppsFlyer Unity plugin across the C# layer and the Android Java and iOS Objective-C bridges, ending with a compatibility-risk report.
sickn33/agentic-awesome-skills
Generates production-grade Appium mobile automation scripts for Android and iOS in Java, Python, or JavaScript.
dslsdzc/rev-skills
移动设备取证:Android/iOS 备份解析、应用数据提取、删除恢复与时间线. An agent skill from dslsdzc/rev-skills.
znsio/teswiz
A skill your agent uses when working in the znsio/teswiz repository to modify framework code, Cucumber/TestNG hooks, Applitools visual testing flows, configs/caps, or related docs/tests.
gkd-kit/gkd
Looks up Android framework Java and AIDL APIs across versions with the android-api-diff CLI: signatures, availability, source files and hidden-API access code.
microsoft/power-platform-skills
Inspects and configures the web application firewall (WAF) in front of a Power Pages production site.
microsoft/power-platform-skills
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…
microsoft/power-platform-skills
Scans a Power Pages site project for security issues in source code and dependencies.
microsoft/power-platform-skills
Runs a security scan on a deployed Power Pages site, fetches the latest scan report, and produces a plain-language summary.
microsoft/power-platform-skills
Creates Dataverse tables, columns, and relationships for a Power Pages site based on a data model proposal.
microsoft/power-platform-skills
Creates, edits, and manages Power Pages Server Logic files — server-side JavaScript that runs securely on the Power Pages runtime.
Categories
Assemble the final .ppmplugin binary bundle for a PAM native extension and verify its contents. Assemble Ppmplugin is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization.ppmplugin binary bundle for a PAM native extension and verify its contents.
Assemble Ppmplugin fits situations like: mobile work in your project.
Run `npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a claude-code`. Or copy the skill folder (plugins/power-apps-mobile-extension/skills/assemble-ppmplugin in microsoft/power-platform-skills) into .claude/skills/assemble-ppmplugin in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/power-platform-skills --skill assemble-ppmplugin -a codex`. Or copy the skill folder (plugins/power-apps-mobile-extension/skills/assemble-ppmplugin in microsoft/power-platform-skills) into .agents/skills/assemble-ppmplugin in your project. Codex loads it when a task matches its description.
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 assemble-ppmplugin -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/assemble-ppmplugin, .gemini/skills/assemble-ppmplugin, .github/skills/assemble-ppmplugin and .opencode/skills/assemble-ppmplugin in your project.
SKILL.md names no scripts, command-line tools or credentials: Assemble Ppmplugin is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion, Skill.
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.
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.
Assemble Ppmplugin is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Assemble Ppmplugin: Android Maps Ktx (googlemaps/android-maps-ktx, 360 stars), AppsFlyer Unity Plugin API Change (AppsFlyerSDK/appsflyer-unity-plugin, 178 stars), Appium Skill (sickn33/agentic-awesome-skills, 47k stars) and Re Mobile Forensics (dslsdzc/rev-skills, 117 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/power-platform-skills, which has 967 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on October 6, 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.