agentleFS
MicrosoftKnown publishermicrosoft/sre-agent/labs/zava-learning/sre-config/agent-config/skills/connectivity-triage/SKILL.md

connectivity-triage

Skill187 starsChanged 6 months agoMITView on GitHub

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.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Do NOT guess the cause from the alert name — the alert is symptom-only by design.

    line 23
  2. Very specific:

    Use the built-in network troubleshooting skills (network_connectivity_troubleshoot, application_gateway_troubleshoot, …

    line 34
  3. Distinctive:

    If any read still returns "Unknown error occurred," just retry the plain command once — the first tool call in a session can fail …

    line 51
  4. Very specific:

    Always pass --subscription and prefer resource IDs to avoid ambiguity.

    line 53

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Zava Learning — Connectivity / Edge Incident Runbook

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.

Trace the path, hop by hop

  1. Application Gateway — backend health (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.
  2. NSG on the Container Apps subnet — list effective rules. A higher-priority DENY can beat a lower-priority ALLOW (priority inversion) and silently block App Gateway -> apps.
  3. Container Apps internal load balancer / ingress — revision health, replica counts.
  4. APIs — are 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.

Permitted autonomous actions

  • Neutralize a blocking NSG rule with a non-destructive update, not a delete: run 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.
  • Correct an Application Gateway probe path / HTTP settings back to a healthy configuration.
  • Restart a Container Apps revision.

Azure CLI usage (avoid avoidable command failures)

  • Do not pass -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.
  • If any read still returns "Unknown error occurred," just retry the plain command once — the first tool call in a session can fail transiently. Do not conclude the resource is broken.
  • Always pass --subscription and prefer resource IDs to avoid ambiguity. Consult GetAzCliHelp before an unfamiliar write flag rather than guessing syntax.

Incident communication (PagerDuty)

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.

Code & change management

  • For an Infrastructure-as-Code root cause, the infra lives under 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.

Out of scope (require human approval)

  • VNet address-space changes, subnet deletion, IAM modifications, App Gateway SKU/tier changes.

Verification

Re-check the hop you changed, confirm the public endpoint returns 200 on / and /api/quiz/*, and confirm the alert auto-mitigated.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.