debug-extension

Diagnose and fix failures in built .ppmplugin native extension controls.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

When a built Power Apps mobile extension (.ppmplugin) crashes, silently does nothing, or returns wrong data on device, there is no debugger or console access β€” only thin evidence like a PCF ErrorCode, a raw JSON diagnostic output, or a host log line. This Skill turns that limited evidence into a located root cause and a surgical fix.

Core Features & Use Cases

  • Symptom-to-layer triage: Maps reported symptoms (silent no-ops, crashes at launch, error codes like PARSE or BRIDGE_FAILED) to candidate layers β€” PCF transport, dispatch contract, Android/iOS native modules, native load, build config, or behavior drift β€” using a canonical error-code catalog.
  • Evidence-based diagnosis with gates: Traces the dispatch path end-to-end (PCF key β†’ sendAsync envelope β†’ manifest receivers β†’ native method β†’ response), presents a ranked diagnosis anchored to file:line evidence, and requires user approval before any edit.
  • Contract-consistent fixes: Applies surgical edits that keep the committed manifest.json, native module names, and PCF composite keys synchronized, re-validating through /generate-ppmplugin-manifest when the contract moves.
  • Use Case: A user reports "the button tap does nothing on Android, no error." The Skill reads the PCF index.ts, finds cordova.exec used instead of the host-injected sendAsync, diagnoses the transport bug, and applies the fix after approval.

Quick Start

Ask the agent to debug why your built .ppmplugin control shows an error code or does nothing when tapped on device.

Frequently Asked Questions about debug-extension

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

FAQPage Schema
How do I debug a .ppmplugin control that fails on device?β–Ό

Run the debug-extension skill with the observed symptom, such as the PCF ErrorCode, raw JSON diagnostic output, or a host log line. It triages the symptom to a layer, traces the dispatch path with file-level evidence, and proposes a ranked diagnosis before applying any fix.

Why does my Power Apps native extension silently do nothing on tap?β–Ό

A silent no-op usually indicates a PCF transport problem, such as calling cordova.exec directly instead of the host-injected sendAsync, or a dispatch contract mismatch. The skill checks the PCF index.ts, manifest.json receivers, and native module names to locate the break.

Can this skill debug a build that never produced a binary?β–Ό

No. It only diagnoses built .ppmplugin controls. If the build never produced a binary, the failure is a build failure and you should run /generate-ppmplugin first and read its stage output.

Does the skill edit code without asking for approval?β–Ό

No. It enforces two gates: one after presenting the ranked diagnosis and one after presenting the fix plan. No files are edited until you explicitly approve, and fixes are surgical rather than wholesale rewrites.

What causes the 'Loaded 0 plugin package(s)' error on Android?β–Ό

This signature typically means the ReactPackage class lacks a public no-argument constructor, so the runtime cannot instantiate it. The skill matches this host log line against the error-code catalog and inspects the package class to confirm.

When should I not use the debug-extension skill?β–Ό

Skip it when no extension repo exists yet, when you are adding a brand-new operation, or when you already know the exact edit for a planned change. It is designed for investigating reported on-device failures with unknown causes.