labs/zava-learning/sre-config/agent-config/skills/redaction-guard/SKILL.md
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.
npx skillsauth add microsoft/sre-agent redaction-guardInstall 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.
A cross-cutting safety layer: nothing sensitive ever reaches an operator-visible surface. The triggering alert is symptom-only and the investigation touches Key Vault secrets, connection strings, access tokens and learner PII — none of which may be exposed in chat, notes, PRs, or reports.
Retrieve the canonical policy and scrubber with SearchMemory("zava-redaction"). It defines what
counts as sensitive, the credential files you must never print, and a deterministic redact()
function. Apply redact() (via ExecutePythonCode) to every string you are about to emit —
chat summary, note body, PR/commit text, and the assembled HTML/markdown/deck — before it leaves the
agent. The scrubber is idempotent, so running it more than once is safe.
zava-redaction for the full list)PGPASSWORD, connection strings, Key Vault secret values,
client secrets, API / access / account keys, SAS tokens.gho_/ghp_/github_pat_…), JWTs / AAD access tokens (eyJ…), bearer /
Authorization values.-----BEGIN … PRIVATE KEY----- block, SSH/cert keys.scheme://user:password@host.Keep resource names, resource groups, regions, app names, alert names, and PR/CR numbers — they are not sensitive and are needed for the narrative.
cat / Get-Content
/ echo / type the contents of .git/git-credentials, .env, *.pem, id_rsa*, *.pfx,
kubeconfig, ~/.azure/*, or *.tfstate into the thread or a report.az keyvault secret show), do not paste its output —
confirm the fact ("secret present / rotated") without revealing the value.[REDACTED:<CLASS>]; for URI credentials keep the scheme and
username and mask only the password.zava-reporting, pagerduty-incident-update, servicenow-change-management, and pr-delivery each
call redact() on their output before emitting. Because loading a separate skill swaps the active
toolset, those skills inline the redact() function (retrieved via SearchMemory("zava-redaction"))
within their own ExecutePythonCode step rather than handing off here — this skill is the
authoritative definition they follow.
Every operator-visible string has passed through redact() (or equivalent manual masking) and shows
[REDACTED:<CLASS>] in place of any secret, token, private key, URI credential, or PII. No
credential file was ever printed to the thread or a deliverable.
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.
testing
Use to produce the forward-looking recommendations and next steps for a Zava Learning incident — prioritized preventive, detective, and process actions with owners, target dates, and the risk of inaction. Its output is used in the zava-reporting deliverables.