generate-ppmplugin
Installation
SKILL.md
/generate-ppmplugin
The recommended entry point for the third-party-control build track. In the normal flow, the user invokes /generate-ppmplugin and it drives the five stage skills (/generate-ppmplugin-manifest, /build-android-binary, /build-ios-binary, /assemble-ppmplugin, /audit-ppmplugin) in order. Advanced users may invoke a stage directly to rerun or debug only that stage. Inspect the repo, pick the right target set, run manifest → build skill(s) → assemble → audit in sequence, and produce a verified .ppmplugin on disk (or a clear stop with the failing stage).
Read shared/ppmplugin-format.md §1 — the bundle layout this orchestrator produces.
What this skill does NOT do
- Does not author the manifest, build the DEX, build the framework, zip the bundle, or run the audit itself — those are the stage skills. This skill invokes them in the right order, with the right inputs, and gates between them.
- Does not skip any stage's confirmations / mismatch gates / replace-existing prompts — those still surface to the user. The orchestrator just removes the "which stage next?" decision so the user never has to invoke a stage directly.
- Does not upload to Dataverse or wire into a canvas app (Stage 3 — deferred).
- Does not edit source code under
src/,ios/,android/— every stage builds from a staged copy. The repo is read-only from the build's perspective.
Step 1 — Read shared docs + prereq summary
- Read
shared/shared-instructions.mdandshared/ppmplugin-format.md. - Confirm the working directory is a third-party-control repo: a
package.json(dev-only<kebab>-controlname — not a published@powerapps/extension-*scope; this track ships a binary, not an npm package) and eitherandroid/orios/(or both). If missing, STOP withNEEDS_CONTEXT: not a third-party-control-ready repo — missing <list>and point atshared/repo-layout.md. - Print the orchestrator prereq block (sub-skills each re-run their own prereq check when invoked — this is the summary the user sees up front so they know what's required end-to-end):