Skip to content

Add release-monitoring-report skill, Fixes AB#3681264#442

Open
shahzaibj wants to merge 6 commits into
masterfrom
shahzaibj/release-monitoring-skill
Open

Add release-monitoring-report skill, Fixes AB#3681264#442
shahzaibj wants to merge 6 commits into
masterfrom
shahzaibj/release-monitoring-skill

Conversation

@shahzaibj

@shahzaibj shahzaibj commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Work item: AB#3681264

Summary

First check-in of the release-monitoring-report skill — an agent skill that produces a version-over-version release-health report for the Android Broker and Authenticator as a single self-contained HTML file. For each app it answers two questions — what changed this release (KPIs + tables vs a baseline) and why (error-code movers, per-scenario deltas, crash analysis) — and ends in a clear SAFE / WATCH / HOLD verdict.

This is a tooling/automation-only change: everything lands under .github/skills/ and ships no product code.

What's included (27 files under .github/skills/release-monitoring-report/)

Area Files Purpose
Entry point SKILL.md Workflow: bootstrap → resolve versions → pull queries → diagnose → fill report → validate
Queries assets/queries/*.kql + README.md 18 validated Broker + Authenticator KQL templates (adoption, reliability, error rate, top errors, latency, per-host-app, scenario success, crash denominator)
Scripts assets/scripts/ run-kql.ps1, bootstrap-report.ps1, validate-report.ps1, compare-versions.js, find-suspect-prs.ps1, fetch-appcenter-crashes.js (App Center crash pull: groups/diff/enrich/newcrashes/signature)
Docs assets/docs/ Diagnostic-pattern methodology, App Center crash-source reference, Kusto cheatsheet
Template assets/templates/report-template.html Canonical report layout (filled reference example)

Highlights

  • Diagnostic methodology, not just dashboards — a KPI delta is treated as a question: count-vs-rate normalization, version-attribution vs rollout-substitution, code-frozen control, benign-vs-real classification, and crash version-attribution before anything is called a regression.
  • Crash version-attributionnewcrashes (genuinely-new java-frame signatures via anti-join against a union of priors) + signature (cross-version presence) reliably separate real new crashes from pre-existing/environmental ones and from native-frame false positives.

Secrets / cleanliness

  • No tokens, keys, passwords, emails, or user paths. App Center token is read at runtime from outside the repo (~/.android-release-reports/appcenter.token); only internal Kusto cluster/DB names (AAD-accessed) appear.
  • Scoped to the skill only — unrelated untracked .pr-patches/, AD-MFA-phonefactor-phoneApp-android/, and a local .gitignore edit were deliberately excluded.

Risk

Low — .github/skills/ only, no app/build/runtime impact. Helpers require az login (Kusto) and an optional App Center token; nothing runs automatically.

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

First check-in of the release-monitoring-report skill: a version-over-version release-health report generator for the Android Broker and Authenticator. Includes KQL query catalog, PowerShell/Node helpers (run-kql, bootstrap, validate, compare-versions, find-suspect-prs, fetch-appcenter-crashes), diagnostic-pattern + crash-source docs, and the HTML report template.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@shahzaibj shahzaibj requested a review from a team as a code owner June 29, 2026 04:59
@github-actions

Copy link
Copy Markdown

❌ Work item link check failed. Description does not contain AB#{ID}.

Click here to Learn more.

@github-actions github-actions Bot changed the title Add release-monitoring-report skill Add release-monitoring-report skill, Fixes AB#3681264 Jun 30, 2026
@github-actions

Copy link
Copy Markdown

✅ Work item link check complete. Description contains link AB#3681264 to an Azure Boards work item.

shahzaibj and others added 5 commits July 2, 2026 15:05
Replace the silent "no token -> skip crashes" fallback with a guided gate:

- New assets/scripts/preflight-appcenter.ps1 with two modes:
  -Check (non-interactive: resolves + validates the token, emits
  STATUS ok/missing/invalid/no-access/network + exit codes for the skill
  to branch on) and -Setup (interactive: opens the token page, secure
  Read-Host, validate-then-save with a user-only ACL). Never prints the token.
- SKILL.md Step 3b gains a step 0 that auto-runs -Check and, on
  missing/expired, prompts the engineer to run -Setup once instead of
  skipping silently. Intake item 5 + bundled-assets table updated.
- crash-sources.md Authentication section rewritten around the helper.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
The Step 3b prompt handed the engineer a repo-relative -Setup path, which
fails when their terminal cwd is their home directory (the common case):
'not recognized as the name of a script file'. Instruct the skill to relay
the absolute path that preflight -Check already prints (via \)
and never a repo-relative path.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…piry, host-adaptive capture)

Adds -Wait/-IntervalSec auto-poll to preflight-appcenter.ps1 so the crash layer resumes the instant a token is captured (no 'done, re-check' handshake), host-agnostic across desktop app / VS Code / CLI. Wires SKILL.md Step 3b to open the best per-host capture surface and relay the absolute -Setup path. Recommends no-expiry read-only tokens. Documents the Azure Monitor migration as the durable token-free end-state.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
App Center API tokens are non-expiring by default with no expiry toggle in the portal, so instructing engineers to pick 'No expiry' was misleading. Removed the config step from the -Setup prompt, SKILL.md Step 3b, and crash-sources.md; kept the accurate note that App Center tokens don't expire.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Halves API calls over the 3-min wait window (~18 vs ~36) at the cost of only ~10s worst-case extra latency after paste — negligible against human paste time. Updated the script default, help text, and both Step 3b / crash-sources.md invocations.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant