Skip to content
Back to skills

Report Issue

BSecurity

Use when the user wants to report a bug, file an issue, submit a bug report, or report any problem with the mobile-app plugin.

  • 963 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
developmentgojavabashnodegitdocumentation

Works with

  • cli

Security analysis

B88/100
  • criticalSends environment variables or credentials to an external URL

Pro shows the line behind each finding and how to fix it

Scanned October 1, 2026

npx -y skills add microsoft/power-platform-skills --skill report-issue --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Report Issue?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Report Issue
[![Security: B β€” Skills Directory](https://www.skillsdirectory.com/api/skills/microsoft-report-issue-6cfc2107/badge)](https://www.skillsdirectory.com/skills/microsoft-report-issue-6cfc2107)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: report-issue
description: Use when the user wants to report a bug, file an issue, submit a bug report, or report any problem with the mobile-app plugin.
user-invocable: true
argument-hint: "[optional: brief description of the bug]"
allowed-tools: Read, Bash, Glob, Grep, AskUserQuestion
model: haiku
---

> **Plugin check**: Run `node "${PLUGIN_ROOT}/scripts/check-version.js"` - if it outputs a message, show it to the user before proceeding.

**πŸ“‹ Shared instructions: [shared-instructions.md](${PLUGIN_ROOT}/shared/shared-instructions.md)** β€” read this first.

# Report Issue β€” mobile-app

Generates a fully-populated GitHub issue body for the `microsoft/power-platform-skills` repo, scoped to the `mobile-app` plugin. Read-only β€” no project modifications.

## Workflow

1. Capture user description β†’ 2. Detect project context β†’ 3. Collect diagnostics β†’ 4. Render issue body β†’ 5. Print URL

---

### Step 1 β€” Capture user description

**Telemetry checkpoint: `capture_issue_description`**

If `$ARGUMENTS` contains a description, use it. Otherwise prompt:

> "What's the issue? Briefly describe what you expected vs. what happened. (You can paste error output if helpful.)"

Then ask via `AskUserQuestion`:

> "Issue category?
> (a) Bug β€” something broke
> (b) Unexpected behavior β€” wrong output but no error
> (c) Documentation β€” docs are wrong / missing
> (d) Feature request
> (e) Question / discussion"

> "How blocking is this?
> (a) Blocking β€” can't proceed at all
> (b) Workaround exists β€” but painful
> (c) Annoying β€” non-critical
> (d) Polish β€” nice-to-have"

### Step 2 β€” Detect project context

Read-only checks:

```bash
test -f power.config.json && echo "in_project=true" || echo "in_project=false"
pwd
node --version
npm --version
node scripts/resolve-environment.js "$(node -e \"console.log(require('./power.config.json').environmentId)\")" 2>/dev/null || true
az --version 2>/dev/null | head -1
npx expo --version 2>/dev/null
uname -srm
```

If in a project:

```bash
node -e "console.log(require('./package.json').name, require('./package.json').version)" 2>/dev/null
node -e "console.log(JSON.stringify({env: require('./power.config.json').environmentId, name: require('./power.config.json').displayName}))"
test -f memory-bank.md && echo "memory_bank=present"
test -f native-app-plan.md && echo "plan=present"
ls src/generated/services/ 2>/dev/null | head -10
```

If the description names a package matching `@microsoft/power-apps-native-*`, collect its declared and lockfile-resolved versions from `package.json` and `package-lock.json`. Do not read package source or metadata from `node_modules/`.

```bash
node - <<'NODE'
const fs = require('node:fs');
const manifest = JSON.parse(fs.readFileSync('package.json', 'utf8'));
const lockfile = fs.existsSync('package-lock.json')
  ? JSON.parse(fs.readFileSync('package-lock.json', 'utf8'))
  : null;
const dependencies = { ...manifest.dependencies, ...manifest.devDependencies };
for (const [name, declared] of Object.entries(dependencies)) {
  if (!name.startsWith('@microsoft/power-apps-native-')) continue;
  const resolved = lockfile?.packages?.[`node_modules/${name}`]?.version ?? 'unknown';
  console.log(`${name}\tdeclared=${declared}\tresolved=${resolved}`);
}
NODE
```

For native-build issues also capture:

```bash
[ "$(uname)" = "Darwin" ] && xcode-select -p
[ "$(uname)" = "Darwin" ] && pod --version 2>/dev/null
java -version 2>&1 | head -1
echo "ANDROID_HOME=$ANDROID_HOME"
```

### Step 3 β€” Collect diagnostics

**Telemetry checkpoint: `collect_issue_diagnostics`**

Run `npx expo doctor` and capture the text output verbatim.

Ask for the affected workflow's Support ID when available. Use the telemetry
helper's read-only `--report` mode from the affected project to inspect only its
allowlisted timeline. Include the Support ID and relevant step/error category in
the issue body, not environment, tenant, or organization IDs. Do not
upload the telemetry directory or raw timing/authentication files.

If the user pasted an error, capture verbatim. Otherwise look for recent failure signals:

- Last 50 lines of any Metro / Gradle / Xcode log if user mentions a build failure
- `git status --short` if in a git repo (to show modified files β€” sanitize for secrets first)
- Output of `npx tsc --noEmit` if relevant

**Do NOT capture:**
- Contents of `src/playerConfig.ts` (contains tenantId / clientId β€” sensitive)
- Contents of `.env` or any file matching `.env*`
- Connection IDs unless the user explicitly opted in (PII / can map to tenant)
- Anything under `node_modules/`
- Package source excerpts, patched package contents, or proposed fork code
- Tenant/environment/organization IDs in a public issue, even though verified
  IDs can exist in access-controlled telemetry

### Step 4 β€” Render issue body

**Telemetry checkpoint: `render_issue_report`**

Print this block β€” user copies into a new issue:

```markdown
### Description

<user's description>

### Category

<Bug / Unexpected behavior / Docs / Feature / Question>

### Severity

<Blocking / Workaround / Annoying / Polish>

### Environment

| | |
|---|---|
| Plugin | mobile-app |
| Plugin version | <from .plugin/plugin.json, or legacy .claude-plugin/plugin.json fallback, or "unknown"> |
| OS | <uname output> |
| Node | <version> |
| npm | <version> |
| Power Apps CLI | <version> |
| Expo CLI | <version> |
| Xcode | <if macOS> |
| JDK | <if android> |
| ANDROID_HOME set | <yes/no> |

### Project context

<if in project>
- Mobile project detected: yes
- Support ID: `<affected workflow run GUID, or unavailable>`
- Failed step / error category: `<registered step and fixed category, or unknown>`
- Memory bank present: <yes/no>
- Plan present: <yes/no>
- Connector count: <count, not generated service or business-table names>
</if>

<if not in project>
Not run inside a mobile-app project.
</if>

### Affected native package

<include only when the issue concerns @microsoft/power-apps-native-*>
- Package: `<package name>`
- Declared version: `<package.json range>`
- Resolved version: `<package-lock.json version or unknown>`
- Platform: `<iOS / Android>`
- Ownership evidence: <why the documented caller contract is satisfied and the failure is package-internal>

### Reproduction steps

1.
2.
3.

### Expected

<what should have happened>

### Actual

<what happened>

### Logs / errors

```
<paste verbatim β€” sensitive values redacted>
```

### Notes

<anything else>
```

### Step 5 β€” Print URL

**Telemetry checkpoint: `generate_issue_submission_url`**

Tell the user:

> Open this URL to file the issue:
>
> <https://github.com/microsoft/power-platform-skills/issues/new?labels=plugin%3Amobile-app>
>
> Paste the block above into the body. Review for any sensitive values before submitting.

If the user wants to open it, suggest `open <url>` (macOS) / `xdg-open <url>` (Linux) / `start <url>` (Windows). Do not auto-open without confirmation.

## Notes

- This skill never modifies any file or invokes mutating commands. Pure diagnostic.
- For diagnosing connection-specific failures, suggest the user run `/list-connections` first and paste that output into the issue.
- For diagnosing build failures, suggest they include the full Metro/Gradle/Xcode log (not truncated).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…