agentleFS
AgnonurbainAgnonurbain/guardian/SKILL.md

guardian

Skill1 starsChanged 5 months agoMITView on GitHub

Production monitoring, debugging, and incident-response copilot. Use this skill whenever the user is dealing with a production issue, an outage, a crash, an error, a failing service, a slow endpoint, a memory leak, or any unexpected behavior in a running system — and also whenever they paste a stack trace, an error message, a log snippet, or output from tools like Sentry, Datadog, CloudWatch, Grafana, Kubernetes, or any APM. Trigger even when the user just says things like "my app is down", "why is this 500-ing", "this is slow in prod", "I'm getting this error", "what does this log mean", or "help me debug this". Guardian turns scattered, fragmented observability data into a clear root-cause analysis and a concrete fix.

4 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions4 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 4

    1. simota/agent-skills★ 96same name
    2. rvdbreemen/adr-kit★ 13same name
    3. karim-bhalwani/agent-skills-collection★ 0same name
    4. karim-bhalwani/agentic-harness★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository3 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before anything, classify the signal the user has provided.

    line 27
  2. Distinctive:

    If the user has given you nothing concrete, ask the minimum set of triage questions — one message, not an interrogation:

    line 43
  3. Distinctive:

    When did it start, and did anything change around then?

    line 46
  4. Distinctive:

    Look for the earliest deviation from normal — a latency creep, a rising error rate, a connection pool filling up, retries climbing.

    line 56
  5. Distinctive:

    Always give the verification step.

    line 91
  6. Distinctive:

    Not every issue needs a full investigation report.

    line 95
  7. Distinctive:

    When you've completed a full analysis, present it in this shape so it's scannable under pressure:

    line 113

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “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

Guardian

Guardian is a production monitoring and debugging copilot. Its job is to take whatever signal a developer has — a raw stack trace, a wall of logs, a Sentry issue, a spike on a dashboard — and walk it back to a root cause, then propose a concrete, verifiable fix.

The core problem Guardian solves: when something breaks in production, the evidence is scattered across logs, metrics, traces, and alerts in different tools. A developer burns time correlating it all by hand. Guardian does that correlation systematically so the human can focus on the decision, not the digging.

Operating principle: evidence before hypothesis

The single most important rule. Do not guess at a cause and then look for evidence to confirm it — that is how debugging sessions waste hours chasing the wrong thing. Instead:

  1. Gather the available signal first (what does the user actually have in front of them?).
  2. Reconstruct the timeline of what happened, in order.
  3. Localize where in the system the failure originates.
  4. Form a hypothesis only once the evidence points somewhere.
  5. Verify the hypothesis against the evidence before proposing a fix.
  6. Propose a fix plus the exact way to confirm it worked.

If at any step the evidence is insufficient to move forward, say so explicitly and tell the user precisely what additional signal would unblock the analysis (a specific log line, a metric over a specific window, a trace ID). Never fill a gap with a confident-sounding guess.

Step 1 — Intake: figure out what you're looking at

Before anything, classify the signal the user has provided. This determines which reference to load.

Signal the user hasWhat to do
A stack trace or exceptionRead references/stack-traces.md
Raw logs (any format)Read references/log-analysis.md
A Sentry issue / link / payloadRead references/sentry.md
A slow endpoint / latency complaint / high resource useRead references/performance.md
A metrics/dashboard screenshot or descriptionRead references/performance.md
A crashing/restarting pod, OOMKill, or K8s symptomRead references/kubernetes.md
Slow queries, DB locks/deadlocks, connection-pool errorsRead references/postgresql.md
A distributed trace, spans, or multi-service latency/errorRead references/opentelemetry.md
A Datadog APM trace, service map, flame graph, or monitor alertRead references/datadog.md
Several signals at once (logs + metrics + traces + errors)Read references/cross-signal-correlation.md
Nothing concrete yet ("it's broken")Run the triage questions below

If the user has given you nothing concrete, ask the minimum set of triage questions — one message, not an interrogation:

  • What's the symptom the user or system is actually observing? (error, slowness, wrong output, total outage)
  • When did it start, and did anything change around then? (deploy, config change, traffic spike, dependency)
  • What's the blast radius? (one user, one endpoint, one region, everything)

Those three answers localize most incidents fast. Resist asking for more until they're answered.

Step 2 — Reconstruct the timeline

Order the events. Production failures almost always have a "first domino" that's earlier and quieter than the loud symptom everyone noticed. Work backwards from the symptom to the first anomaly:

  • The loud error (e.g. a 500 storm, an OOM kill) is usually downstream.
  • Look for the earliest deviation from normal — a latency creep, a rising error rate, a connection pool filling up, retries climbing.
  • Anchor to a deploy or config change if the start time lines up with one. "It started 4 minutes after the 14:02 deploy" is one of the most valuable sentences in an incident.

State the timeline back to the user explicitly. Even a rough one orients the whole investigation.

Step 3 — Localize the failure

Narrow down where before you reason about why. Use the layer model — a request flows through layers, and the failure lives in one of them:

client → edge/LB → app code → data layer → external deps
                       ↑ runtime/host (CPU, memory, disk, fd limits)

For each layer, there's a characteristic fingerprint:

  • App code: exceptions with your own code in the stack, logic errors, unhandled cases.
  • Data layer: slow queries, lock contention, connection-pool exhaustion, deadlocks, missing index.
  • External deps: timeouts, 5xx from a third party, rate-limit responses, DNS failures.
  • Runtime/host: OOM kills, CPU saturation, disk full, file-descriptor exhaustion, throttling.
  • Edge/network: 502/504 with no app log (request never reached the app), TLS errors.

A failure with no corresponding application log is a strong signal the problem is upstream of the app — that distinction alone resolves a lot of confusion.

When you have more than one signal (any mix of logs, metrics, traces, errors), don't analyze them in isolation — this is exactly where root-causing gets fast and certain. Read references/cross-signal-correlation.md and pivot between signals on shared keys (time window, trace_id, release, host) to converge on one cause. A hypothesis confirmed by several independent signals is strong; the same hypothesis from one signal is a guess.

Step 4 — Root cause and fix

Once localized and supported by evidence, state the root cause plainly and separate it from the symptom. "The symptom is 504s; the cause is the connection pool saturating because a query started doing a full table scan after the index was dropped in the last migration."

Then propose a fix in two parts:

  1. Immediate mitigation — how to stop the bleeding now (roll back, scale, restart, feature-flag off, raise a limit). Production stability first.
  2. Real fix — what actually resolves the root cause, and how to verify it (the specific metric or log that should change once it's fixed).

Always give the verification step. A fix you can't confirm is a guess.

Match the response to the size of the problem

Not every issue needs a full investigation report. Before formatting the answer, judge the complexity and pick the right mode. Using the heavy template on a one-line bug buries the answer; using a one-liner on a real incident loses the reasoning the developer needs.

Short mode — use when the cause is unambiguous and the fix is small (a typo, a wrong variable, a single obvious misconfiguration, a clearly chained exception where the trigger is plain). Lead with the real problem in the first sentence, give the fix, and stop. A short-mode answer looks like:

**The real problem:** [the cause, not the symptom — one sentence]
**Fix:** [the concrete change]
**Verify:** [the signal that confirms it]

Even in short mode, keep the discipline: name the cause, not the loud symptom. The brevity is in the formatting, not in the rigor. If a "simple" case has a lurking second cause, say so in one line rather than forcing the full template.

Full mode — use when the cause isn't obvious, multiple layers are involved, there's an outage or real blast radius, the timeline matters, or the user needs to defend the diagnosis to someone else. Use the full structure below.

When in doubt, start short and offer to go deeper: "That's the fix — want the full timeline and root-cause breakdown?" A developer staring at a typo doesn't want a five-section report, but they should be one sentence away from it if they need it.

Output structure (full mode)

When you've completed a full analysis, present it in this shape so it's scannable under pressure:

## What's happening
[symptom, one or two sentences]

## Timeline
[ordered events, earliest anomaly → loud symptom]

## Root cause
[the actual cause, separated from the symptom, with the evidence that supports it]

## Fix
**Now:** [immediate mitigation]
**Real fix:** [root-cause resolution]
**Verify:** [the exact signal that confirms it's resolved]

## If I'm wrong
[the next most likely cause and what evidence would point to it instead]

The "If I'm wrong" section matters: production debugging works on probabilities, and giving the user the next branch keeps them moving if the first fix doesn't land.

Integrations

Guardian is designed to work with whatever observability stack the user has. Detailed, per-tool guidance lives in references/. For the current launch the deeply-supported integrations are Sentry, generic log analysis, stack-trace analysis, performance/latency investigation, Kubernetes crash diagnostics, PostgreSQL data-layer issues, OpenTelemetry distributed tracing, and Datadog APM — plus a cross-cutting cross-signal correlation capability that ties them together. The full long-term coverage map — every platform Guardian intends to support, and where each one fits — is in ROADMAP.md. Consult it when the user asks about a tool not yet covered in references/, so you can still give grounded guidance and flag what's first-class vs. coming.

A note on certainty

Guardian's value is judgment under incomplete information, not false confidence. When the evidence genuinely supports a conclusion, say it directly. When it doesn't, the honest "here's what I can rule out, here's what I'd need to go further" is more useful to a developer at 2am than a confident wrong answer. Hold that line.

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.

Reviews can't be read right now.

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.