Stream
adrianhajdin/react-native-lingua
Stream router for Chat, Video, Feeds, and Moderation. An agent skill from adrianhajdin/react-native-lingua.
Compile a PAM control's iOS Obj-C/Swift module into the FLAT device-slice .framework for a .ppmplugin bundle (never an .xcframework — the wrap CI won't descend into one).
$ npx skills add microsoft/power-platform-skills --skill build-ios-binary -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/power-platform-skills build-ios-binary --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/build-ios-binary .claude/skills/build-ios-binary && 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 "build-ios-binary" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/build-ios-binary into .claude/skills/build-ios-binary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-ios-binary", 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/build-ios-binaryType 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 build-ios-binary -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/power-platform-skills build-ios-binary --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/build-ios-binary .agents/skills/build-ios-binary && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-ios-binary" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/build-ios-binary into .agents/skills/build-ios-binary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-ios-binary", 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 build-ios-binary -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/power-platform-skills build-ios-binary --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/build-ios-binary .cursor/skills/build-ios-binary && 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 "build-ios-binary" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/build-ios-binary into .cursor/skills/build-ios-binary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-ios-binary", 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/build-ios-binary--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 build-ios-binary -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/power-platform-skills build-ios-binary --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/build-ios-binary .gemini/skills/build-ios-binary && 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 "build-ios-binary" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/build-ios-binary into .gemini/skills/build-ios-binary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-ios-binary", 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 build-ios-binaryInstalls 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 build-ios-binary -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/build-ios-binary .github/skills/build-ios-binary && 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 "build-ios-binary" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/build-ios-binary into .github/skills/build-ios-binary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-ios-binary", 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 build-ios-binary -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 build-ios-binary --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/build-ios-binary .opencode/skills/build-ios-binary && 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 "build-ios-binary" agent skill from https://github.com/microsoft/power-platform-skills/tree/main/plugins/power-apps-mobile-extension/skills/build-ios-binary into .opencode/skills/build-ios-binary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-ios-binary", 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.
build-ios-binaryCompile a PAM control's iOS Obj-C/Swift module into the FLAT device-slice .framework for a .ppmplugin bundle (never an .xcframework — the wrap CI won't descend into one).
Build iOS Binary is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization. Compile a PAM control's iOS Obj-C/Swift module into the FLAT device-slice .framework for a .ppmplugin bundle (never an .xcframework — the wrap CI won't descend into one). Mac-only (Xcode). Builds from a throwaway staged copy so canonical ios/ and the podspec stay untouched, references React-Core headers only (React is weak-linked and provided by the wrap host at runtime, no CocoaPods), generates the required umbrella header, module map and Info.plist, sets the critical build settings, asserts manifest…
Its SKILL.md is about 3.8k 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, covering iOS development. It works with iOS, Xcode, React and Android. 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.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 0d044b8. 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.
Shell commands in SKILL.md call:
xcodebuildpnpmbrewFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
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.
Build iOS Binary loads about 3.8k tokens when it runs. Until then it costs about 219 tokens; SKILL.md has 1,554 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 0d044b8, republished under its MIT licence (© microsoft). 1,554 words, ~3,823 tokens.
.claude/skills/build-ios-binary/SKILL.md (or your agent's skills folder).Turns the extension's iOS source (ios/RCT<Pascal>Module.{h,m}) into the flat <Pascal>Plugin.framework/ (device slice) that the wrap runtime loads. iOS analogue of /build-android-binary: source in, a prebuilt framework out.
Ship a FLAT
.framework, NOT an.xcframework. The wrap pipeline expectsios/<Name>.frameworkand does not descend into an.xcframework— shipping one fails with "Framework '<Name>.framework' not found in plugin." This skill builds the device archive only and copies out the flat.framework. Seeppmplugin-format §5b.
Mac-only. Requires Xcode. On Linux/Windows this skill BLOCKs — Android-only contributors can't produce the iOS slice.
KNOWN LIMITATION — read this. The single hard part is React-Core: the framework compiles against React's headers (
#import <React/RCTBridgeModule.h>) from the control repo's own pinnedreact-nativedevDep, while never embedding React — the wrap host provides it at runtime (weak-link). The coupling that matters is the RN version pin (0.79.7): it must match the RN the wrap host ships. The exact weak-link flags / header-search-path setup aren't yet validated against a live wrap host — that's the main risk area. React symbol/header errors mean the RN pin diverged from the host's RN, not a code bug.
Read shared/ppmplugin-format.md §5b (iOS binary requirements) and the naming-conventions.md iOS rows.
manifest.json (run /generate-ppmplugin-manifest first — this skill reads it for cross-checks and the framework/moduleClass names)..ppmplugin — that's /assemble-ppmplugin./build-android-binary.ios/ or the podspec — all adjustments live in a throwaway copy under ppmplugin/staging/ios-build/.BUILD_LIBRARY_FOR_DISTRIBUTION=YES SKIP_INSTALL=NO). No signing skill needed.shared/shared-instructions.md and shared/ppmplugin-format.md.ppmplugin/staging/manifest.json. If absent, STOP with NEEDS_CONTEXT: manifest.json missing — run /generate-ppmplugin-manifest first. If it has no entrypoints.ios, STOP with NEEDS_CONTEXT: manifest targets Android-only — re-run /generate-ppmplugin-manifest and choose iOS/Both.## ppmplugin (third-party controls) block in .extension-state.md. Replace-existing gate: if ppmplugin/staging/ios/<framework>.framework already exists, surface it (with its build timestamp) and ask via AskUserQuestion — Keep existing (skip to Step 6) vs Replace (rebuild). Default Keep if source + manifest unchanged since the recorded build, else Replace (note Keep is stale). Per ppmplugin-format §1 replace-existing rule.| Check | Verify | Auto-fix |
|---|---|---|
| macOS | uname = Darwin | NOT fixable — STOP with BLOCKED: /build-ios-binary is Mac-only (iOS needs Xcode) on Linux/Windows |
| Xcode 16+ (26.2+ recommended) | xcodebuild -version | NOT auto-fixable — print: install Xcode from the App Store / xcodes; STOP if missing |
| React-Core headers present | node_modules/react-native/React/Base/RCTBridgeModule.h exists (the react-native devDep, in the control repo) | if the devDep isn't installed: pnpm install in the repo |
| CocoaPods (optional — fallback path only) | pod --version | Not required for the recommended header-only build (Step 2). Only needed if you fall back to the Podfile path; brew install cocoapods on confirm. |
The framework needs React's headers at compile time. The source is the control repo's own node_modules/react-native — the pinned react-native devDep (0.79.7 for pen-input), which ships the React headers (React/Base/RCTBridgeModule.h). The build is fully self-contained in the control repo. If the devDep isn't installed, run pnpm install; only if it's genuinely absent, ask the user for a react-native path.
Recommended: header-only React (no CocoaPods). Aggregate the React headers into a flat include dir in the staging copy and point the framework target at it — cleaner and faster than the Pod chain, and it avoids the CocoaPods/React-Codegen failures that bite under recent Xcode (see ppmplugin-format §5b):
mkdir -p ppmplugin/staging/ios-build/include/React
# copy the RN headers the module imports (Base + the Libraries it uses):
cp node_modules/react-native/React/Base/*.h ppmplugin/staging/ios-build/include/React/
cp -R node_modules/react-native/React/Base node_modules/react-native/Libraries ppmplugin/staging/ios-build/include/React/ 2>/dev/null || trueThen set on the framework target: HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/include and OTHER_LDFLAGS = -undefined dynamic_lookup (weak-links React's symbols — the host provides them at runtime). -undefined dynamic_lookup is deprecated by Apple (works today, may break in a future Xcode — known caveat).
Fallback: CocoaPods — only if the header-only path doesn't suffice. A Podfile referencing the devDep (pod 'React-Core', :path => '<repo>/node_modules/react-native') gives CocoaPods the header map, but on recent Xcode/RN-0.79 you'll need post_install patches (boost URL, Yoga _pt, RCT-Folly clockid_t, boost std::unary_function) and may still hit the React-Codegen sandbox failure — all documented in ppmplugin-format §5b.
What matters either way is that the pinned RN version (0.79.7) matches the RN the wrap host ships at runtime (React is weak-linked, host-provided). Print the detected RN version and ask via AskUserQuestion to confirm / override the source + version before building. State plainly: "React is provided by the wrap host at runtime; React symbol/header errors at build or load mean the RN pin has diverged from the host's RN version."
ios/ stays pristine)Like the Android build, work from a throwaway copy so the source the engineer maintains is never touched.
Copy ios/*.{h,m} → ppmplugin/staging/ios-build/Sources/ (fresh each run).
Generate the umbrella header ppmplugin/staging/ios-build/<Pascal>Plugin.h and mark it a Public header (build hygiene, not runtime-required — the wrap player dlopens the binary and uses NSClassFromString, it never imports the module, so the framework loads fine without a module map; the umbrella just silences the DEFINES_MODULE warning. Generate it anyway for a clean build). Minimal contents:
#import <Foundation/Foundation.h>
FOUNDATION_EXPORT double <Pascal>PluginVersionNumber;
FOUNDATION_EXPORT const unsigned char <Pascal>PluginVersionString[];Generate a standalone Xcode framework project ppmplugin/staging/ios-build/<Pascal>Plugin.xcodeproj, product/target name <Pascal>Plugin (= entrypoints.ios.framework), compiling the copied sources, with the umbrella as the Public header. Derive from the canonical podspec:
s.frameworks (e.g. pen-input → PencilKit, UIKit, CoreGraphics, QuartzCore).s.platform (e.g. :ios, "14.0") — but floor it at the supported PAM shell minimum iOS 16.0.xcodeproj gem): when a group already carries its path (e.g. Sources), add file refs filename-only — new_group('Sources','Sources') + new_reference("Sources/<file>") doubles to Sources/Sources/<file> → file-not-found. Pin a known-good gen_project.rb rather than re-deriving it each run.Set the build settings (each maps to a documented wrap/on-device failure — see ppmplugin-format §5b):
| Setting | Value |
|---|---|
| Mach-O Type | Dynamic Library (NOT Static) |
| Dead Code Stripping | NO (preserves the +moduleName class method and RCT_EXPORT_METHOD metadata the host reads after dlopen) |
| Defines Module | YES |
| Enable Bitcode | NO |
HEADER_SEARCH_PATHS | $(inherited) $(SRCROOT)/include (header-only React from Step 2) |
OTHER_LDFLAGS | -undefined dynamic_lookup (weak-link React; host-provided at runtime) |
BUILD_LIBRARY_FOR_DISTRIBUTION | YES |
SKIP_INSTALL | NO |
GENERATE_INFOPLIST_FILE | YES (REQUIRED — a framework with no Info.plist is rejected by the wrap codesign step) |
INFOPLIST_KEY_CFBundleDisplayName | <Pascal>Plugin |
MARKETING_VERSION | <version from manifest> |
CURRENT_PROJECT_VERSION | 1 |
PRODUCT_BUNDLE_IDENTIFIER | com.powerapps.<lowername> |
The canonical ios/ + podspec are never modified — report the staging adjustments applied.
Before building, verify the source matches the manifest (the iOS analogue of the Android DexClassLoader asserts):
ios/RCT<Pascal>Module.h == manifest.entrypoints.ios.moduleClass..m == manifest.entrypoints.ios.moduleClass, and + (NSString *)moduleName returns manifest.receivers[].nativeModule.RCT_EXPORT_METHOD(<name>:…) name is on manifest.receivers[].methods.[cls new] — the runtime resolves moduleClass after loading the framework and constructs it with [cls new]. A custom designated initializer that takes arguments breaks instantiation → the plugin is skipped at load. If the .m declares an - (instancetype)initWith… and no plain init, STOP with BLOCKED: <moduleClass> must support no-arg initialization.RCT_EXPORT_METHOD takes one NSDictionary *request first param (then resolver/rejecter) — the wrap proxy spreads the PCF's args: [request] positionally. A method expanding the request into multiple positional params won't receive its data; surface a WARNING (a no-arg op like getStatus taking only resolver/rejecter is fine — ppmplugin-format §2).A mismatch means the manifest and the binary disagree — the call won't reach the module on device. STOP with the specific mismatch rather than building a broken pair.
.framework (device slice only)Run for real; surface the artifact path, not the streaming log. Archive the DEVICE slice only (the wrap CI wants a flat <Name>.framework, not an .xcframework — see §5b), then copy the framework straight out. No -create-xcframework step.
cd ppmplugin/staging/ios-build
# device archive only:
xcodebuild archive -project <Pascal>Plugin.xcodeproj -scheme <Pascal>Plugin \
-destination "generic/platform=iOS" \
-archivePath build/<Pascal>Plugin-device.xcarchive \
SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# copy the flat framework out (NO xcframework wrapper):
rm -rf ../ios/<Pascal>Plugin.framework
cp -R build/<Pascal>Plugin-device.xcarchive/Products/Library/Frameworks/<Pascal>Plugin.framework ../ios/<Pascal>Plugin.framework
strip -x ../ios/<Pascal>Plugin.framework/<Pascal>Plugin # optional, if size matters(If you built with CocoaPods instead of header-only, archive the .xcworkspace scheme rather than the .xcodeproj — otherwise identical: still device-only, still copy the flat framework.)
On failure, print the failing step + the most relevant xcodebuild error line and STOP with BLOCKED: xcodebuild failed — <line>. The likely standalone failures (and where they come from) are pinned in ppmplugin-format §5b — most route back to React linking (Step 2): symbol-not-found at link → React not weak-linked (-undefined dynamic_lookup missing); <React/…> not found → HEADER_SEARCH_PATHS wrong; symbol mismatch → the RN pin doesn't match the host's RN. Surface these as React/RN-version coupling issues, not extension-code bugs.
Verify the framework. ppmplugin/staging/ios/<Pascal>Plugin.framework/ MUST contain the two runtime-required items:
<Pascal>Plugin — the Mach-O binary, named exactly <Pascal>Plugin (the player dlopens Frameworks/<Pascal>Plugin.framework/<Pascal>Plugin; a differently-named binary won't load). REQUIRED.Info.plist — REQUIRED (a framework bundle without it is invalid and fails the wrap codesign step).If either is missing, STOP with BLOCKED: framework incomplete — missing <X> and the §5b fix (GENERATE_INFOPLIST_FILE=YES / the binary name == framework name). The umbrella header + Modules/module.modulemap are build hygiene — note them if absent, but do NOT block on them (the dlopen loader doesn't use them — §5b).
Update the ## ppmplugin (third-party controls) block in .extension-state.md: iOS framework: built <ISO timestamp> (<Pascal>Plugin.framework, device slice). Print a fenced summary with the .framework path (and note it carries umbrella + module.modulemap + Info.plist), then offer next steps via AskUserQuestion (shared-instructions §9.1 — invoke the chosen skill via the Skill tool; execute, don't describe):
.ppmplugin)Return DONE with the .framework path, or BLOCKED with the failing xcodebuild line (most often React linking / an RN-version mismatch with the host — not an extension-code fix).
© 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/build-ios-binary of microsoft/power-platform-skills.
Open the folder on GitHubat commit 0d044b8
Build iOS Binary 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 |
|---|---|---|---|---|---|---|
| Build iOS Binary this skillmicrosoft/power-platform-skills | 972 | — | ~3.8k | Automated safety check: Notes | MIT | |
| Streamadrianhajdin/react-native-lingua | 151 | — | ~1.9k | Automated safety check: Pass | None | |
| Remote Installericodesign/remote-installer | 106 | — | ~4k | Automated safety check: Pass | MIT | |
| Expo UIsickn33/agentic-awesome-skills | 47k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Eas Simulatorexpo/skills | 2.7k | — | ~6.6k | Automated safety check: Notes | MIT | |
| iOS DevelopmentAnastasiyaW/codex-claude-code-config | 154 | — | ~2.2k | Automated safety check: Pass | MIT |
adrianhajdin/react-native-lingua
Stream router for Chat, Video, Feeds, and Moderation. An agent skill from adrianhajdin/react-native-lingua.
icodesign/remote-installer
Put an iOS or Android build on a real phone or tablet over the air with the remote-installer CLI — it validates the build, opens a temporary HTTPS tunnel, and prints one or more install URLs plus QR…
sickn33/agentic-awesome-skills
Build native UI with the @expo/ui package: real SwiftUI on iOS and Jetpack Compose on Android rendered from React in an Expo or React Native app.
expo/skills
Run and control a user's app on a remote iOS/Android simulator hosted on EAS cloud.
AnastasiyaW/codex-claude-code-config
Comprehensive iOS app development skill. An agent skill from AnastasiyaW/codex-claude-code-config.
bladeofgod/flutter-ai-harness
适用:编写或审查 iOS Swift Native Module、Bridge Adapter、Host 接线、Info.plist/Entitlements、SwiftPM 和原生 UI。不适用:Kotlin/Android、Dart Client 或 Wire Contract…
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
Compile a PAM control's iOS Obj-C/Swift module into the FLAT device-slice .framework for a .ppmplugin bundle (never an .xcframework — the wrap CI won't descend into one). Build iOS Binary is an agent skill from microsoft/power-platform-skills, published by the product's own GitHub organization.xcframework — the wrap CI won't descend into one).
Build iOS Binary fits situations like: tasks that involve iOS development.
Run `npx skills add microsoft/power-platform-skills --skill build-ios-binary -a claude-code`. Or copy the skill folder (plugins/power-apps-mobile-extension/skills/build-ios-binary in microsoft/power-platform-skills) into .claude/skills/build-ios-binary in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/power-platform-skills --skill build-ios-binary -a codex`. Or copy the skill folder (plugins/power-apps-mobile-extension/skills/build-ios-binary in microsoft/power-platform-skills) into .agents/skills/build-ios-binary 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 build-ios-binary -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-ios-binary, .gemini/skills/build-ios-binary, .github/skills/build-ios-binary and .opencode/skills/build-ios-binary in your project.
Going by SKILL.md and its folder, Build iOS Binary needs the command-line tools its instructions call (xcodebuild, pnpm and brew). 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.
Build iOS Binary is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k 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 Build iOS Binary: Stream (adrianhajdin/react-native-lingua, 151 stars), Remote Installer (icodesign/remote-installer, 106 stars), Expo UI (sickn33/agentic-awesome-skills, 47k stars) and Eas Simulator (expo/skills, 2.7k 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 972 GitHub stars. The repository holds 87 skills in this directory. The repository was last updated on October 7, 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.