labs/zava-learning/sre-config/agent-config/skills/pagerduty-incident-update/SKILL.md
Use to keep the triggering PagerDuty incident in sync with the investigation and to close it out — acknowledge on engagement, mark the incident Mitigated the moment the live fix lands, post a concise symptom-only status/summary note (diagnosis, mitigation, links to the PR / Change Request), and resolve the incident only after the RCA and summary report are complete and recovery is verified. This is the PagerDuty communication and closure layer for a Zava Learning incident.
npx skillsauth add microsoft/sre-agent pagerduty-incident-updateInstall 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.
Keep the PagerDuty incident that triggered this investigation current, and close it out cleanly.
Resource Group: @@RG@@. Services: learner-portal, course-api, assessment-api. Operate on
the PagerDuty incident id from the triggering event (confirm details with
GetPagerDutyIncidentById if needed). Capture the incident's html_url from the
GetPagerDutyIncidentById response — that is the operator-facing PagerDuty link the
zava-reporting Artifacts & links section surfaces as [Incident #<n>](<html_url>). The bare
incident key (e.g. Q1LXN8LVWLS9L6) is NOT clickable — always pass the html_url.
As soon as you start working the incident, call AcknowledgePagerDutyIncident so responders see it
is owned and stop escalating. This must be a REAL tool call that returns success — do not write
"acknowledged" unless AcknowledgePagerDutyIncident actually executed in this thread. If that tool
is not available, this skill is not loaded: load pagerduty-incident-update and retry before doing
anything else.
The moment the live mitigation is applied and the symptom clears (endpoint returns 200), post a
plain-text note with Status: Mitigated via AddNoteToPagerDutyIncident, summarising the live
fix in one or two lines. This marks the incident as mitigated for on-call while the incident stays
acknowledged — do NOT resolve here. The lifecycle is always: mitigate → mark Mitigated →
RCA + summary → resolve. (If zava-reporting or a triage skill swapped the active toolset and the
PagerDuty tools are gone, reload pagerduty-incident-update first.)
Use AddNoteToPagerDutyIncident to add a concise, factual note. PagerDuty notes are PLAIN TEXT
only — they do not render HTML or markdown, and they have a practical length cap. Never paste the
zava-reporting HTML email, the deck, or the Teams Adaptive Card into a note; those rich
deliverables go through their own channels. Instead post a short text summary and link out to
the rich artifacts. Keep it symptom-only — never put the root cause in a heading or opening line
(the alert is symptom-only by design). Pull the agreed summary from the completed rca-analysis
(and zava-reporting) via SearchMemory; do not re-derive it. Post (plain text):
Add interim notes at meaningful transitions (mitigation applied, recovery confirmed) rather than a single dump at the end.
Call ResolvePagerDutyIncident to close the incident only once the incident is already MITIGATED,
recovery is proven, AND the RCA + summary report exist: the public endpoint returns 200 on / and
/api/quiz/*, the underlying Azure Monitor alert has auto-mitigated, evidence-before-after confirms
the metric/state returned to healthy, and the RCA narrative and Zava report have been produced. Never
resolve straight after the live fix — that step only marks the incident Mitigated; resolution comes
after the RCA and summary. Before resolving, ensure a final note records the resolution and references
the PR and Change Request. Do not resolve on a hunch or while the alert is still firing.
zava-redaction standard
(SearchMemory("zava-redaction")) and mask anything sensitive as [REDACTED:<CLASS>] before
posting — never paste a Key Vault secret value, connection string, or token into a note.The PagerDuty incident is acknowledged on engagement, marked Mitigated the moment the live fix
lands (a Status: Mitigated note), carries a concise symptom-only summary note with links to the PR
and Change Request, and is resolved only after the RCA and the Zava report are complete and
recovery is verified — i.e. the lifecycle ran mitigate → mark Mitigated → RCA + summary → resolve.
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.