generate-native-extension

Generates iOS and Android native module sources plus manifest.json from an approved PRD for Power Apps Mobile extensions.

808|167|Updated Jan 21, 2026
One-click install
npx skills add https://github.com/microsoft/power-platform-skills --skill generate-native-extension
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: generate-native-extension
Source: https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/generate-native-extension
Command: npx skills add https://github.com/microsoft/power-platform-skills --skill generate-native-extension

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Writing the native iOS (Objective-C) and Android (Kotlin) module scaffolding for a third-party Power Apps Mobile (PAM) control by hand is slow and error-prone, especially keeping the dispatch contract in sync between the native code, the manifest, and the companion PCF control. This Skill reads an approved PRD.md and generates substantially complete native sources plus the committed manifest.json dispatch contract in one pass.

Core Features & Use Cases

  • Native module generation: Emits an iOS Objective-C RCT<Pascal>Module (header + implementation with RCT_EXPORT_METHOD methods, safe-area UI boilerplate, error/success JSON helpers) and an Android Kotlin <Pascal>Module with build.gradle, AndroidManifest.xml, themes, and ReactPackage.
  • Dispatch contract authoring: Writes the committed ./manifest.json (name, abi, receivers, entrypoints) that the companion PCF and the .ppmplugin build stage both read, preventing contract drift.
  • Supporting repo files: Generates .gitignore, a dev-only private package.json pinning react/react-native devDependencies, an optional system-frameworks podspec, README.md, CHANGELOG.md, and LICENSE.
  • Use Case: After running /design-native-extension-feature to produce a PRD for a pen-input capture control, run this Skill to scaffold the full ios/ and android/ native module tree and manifest, ready for compilation by /build-android-binary and /build-ios-binary.

Quick Start

Ask the agent to run /generate-native-extension in the directory containing your approved PRD.md to scaffold the native iOS and Android extension sources and manifest.

Frequently Asked Questions about generate-native-extension

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate native iOS and Android code for a Power Apps Mobile extension?

Place an approved PRD.md in your working directory (created by /design-native-extension-feature), then run /generate-native-extension. It reads the PRD and shared docs, confirms a scaffold plan, and writes the ios/, android/, manifest.json, and supporting repo files.

What files does the native extension scaffold include?

It emits an Objective-C RCT<Pascal>Module header and implementation, an Android Kotlin module with build.gradle, AndroidManifest.xml and themes, a committed manifest.json dispatch contract, a dev-only package.json, an optional podspec, plus .gitignore, README, CHANGELOG, and LICENSE.

Does this skill compile the native code or publish packages?

No. It only writes source files locally. Compilation happens later in /build-android-binary and /build-ios-binary, and the .ppmplugin bundle is built by /generate-ppmplugin. It runs no git commands and touches no remote or feed.

Why is there no TypeScript INativeExtension layer in the generated code?

This is the native-only track: the wrap host dispatches straight to NativeModules.<Pascal>Module.<method> per the manifest's receivers contract. Request validation, operation branching, and error codes are implemented inside each native method instead of a TypeScript mediator.

What prerequisites are required before running the scaffold?

Git is required for the prerequisite check; Node 20+ and pnpm are optional and only used to seed package.json devDependencies from the public npm registry. An approved PRD.md must exist in the working directory or the skill stops with a BLOCKED error.

What happens if the PRD architecture section is incomplete?

The skill stops with a NEEDS_CONTEXT error naming the incomplete section and instructs you to re-run /design-native-extension-feature Step 7. It does not guess or emit TODO placeholders for vague implementation specs.