labs/zava-learning/sre-config/agent-config/skills/connectivity-triage/SKILL.md
Use for any Zava Learning incident where students cannot reach the platform or actions fail at the network/edge layer — quiz launches failing, portal 5xx, requests timing out, or backends appearing unhealthy. Traces the full request path (Application Gateway -> NSG -> Container Apps internal load balancer -> APIs) from telemetry and Azure config, finds the broken hop, and remediates within the permitted-action boundary.
npx skillsauth add microsoft/sre-agent connectivity-triageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Resource Group: @@RG@@. Public entry: Application Gateway -> learner-portal (Container App,
internal ingress) -> course-api / assessment-api (environment-internal). App Insights
cloud_RoleName values: learner-portal, course-api, assessment-api.
Diagnose root cause from telemetry and configuration, then remediate within the boundary below. Do NOT guess the cause from the alert name — the alert is symptom-only by design.
az network application-gateway show-backend-health),
probe path/host, HTTP settings. A probe pointed at a path the portal doesn't serve marks the
backend unhealthy and yields 502s.course-api / assessment-api answering and healthy?Use the built-in network troubleshooting skills (network_connectivity_troubleshoot,
application_gateway_troubleshoot, load_balancer_troubleshoot, network_topology_mapper) to go deep
on any hop. Filter App Insights/LAW queries by the relevant cloud_RoleName.
az network nsg rule update ... --access Allow (or raise the DENY rule's --priority above the
ALLOW). The write tool restricts delete/remove, and an update achieves the same effect — so
never reach for az network nsg rule delete.-o/--output or --query to RunAzCliReadCommands. The read tool already
returns JSON — adding -o json, -o table, or a --query projection makes the command fail with
a generic "Unknown error occurred." Run the plain command (e.g. az network nsg rule list --nsg-name ... --include-default) and pick out the fields you need from the JSON in your reasoning.--subscription and prefer resource IDs to avoid ambiguity. Consult GetAzCliHelp
before an unfamiliar write flag rather than guessing syntax.Record the request-path diagram and your diagnostic notes for the incident record. PagerDuty
acknowledgement, status/summary notes, and resolution are owned by the pagerduty-incident-update
skill.
infra/ in @@REPO@@
(the NSG is defined in infra/modules/network.bicep). After the live mitigation, the durable
fix is delivered as a GitHub pull request by the pr-delivery skill and recorded as a Change
Request by servicenow-change-management.Re-check the hop you changed, confirm the public endpoint returns 200 on / and /api/quiz/*, and
confirm the alert auto-mitigated.
development
Use to package a completed Zava Learning incident analysis for the audience. First present a branded in-thread executive summary (markdown with the before/after visuals inline), then produce the downloadable deliverables — a PowerPoint deck, an HTML email, and a Teams notification — using the Zava corporate template. The calling agent may narrow this to a subset (e.g. only the HTML report). Produces content and artifacts; it does not send them. Assembles the output of rca-analysis, evidence-before-after, recommendations-next-steps, and pr-delivery.
development
Use to package a completed Zava Learning weekly governance audit (NSG / network security, RBAC / least-privilege, or cloud cost) into a single branded, downloadable PowerPoint deck in the Zava house style. The calling audit agent passes its findings (a list of rows with severity) and a short posture summary; this skill renders the deck, applies redaction, and returns the attachment download link. Produces the artifact; it does not send it.
development
Use whenever a Zava Learning investigation produces a durable fix that needs change management — after a GitHub PR is opened for an Infrastructure-as-Code or application code root cause, raise a ServiceNow Change Request referencing the PR and attach the RCA report. The single owner of ServiceNow Change Request and attachment operations.
development
Use whenever you are about to emit operator-visible content — a chat/thread message, a PagerDuty or ServiceNow note, a commit message or pull-request body, or any report artifact (HTML, PowerPoint, Teams card). Deterministically masks secrets, credentials, tokens, private keys, URI-embedded passwords, and PII so they never appear in the thread or in any deliverable. This is a cross-cutting guardrail invoked by the output-producing skills, not a runbook step.