agentleFS
LukehleLukehle/claude-quorum/skills/incident-quorum/SKILL.md

incident-quorum

Skill0 starsChanged 3 months agoMITView on GitHub

Post-mortem and forensics as a quorum - assembling cited FACTS before any diagnosis, mining causes against those facts rather than against recollection, and producing a prevention process rather than a list of contributing factors. Trigger on "post-mortem", "why did it fail", "what went wrong", "incident review", "root cause", "retro", "how did we miss this", "forensics".

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Every link must be supported by a fact or be explicitly marked as inference.

    line 65
  2. Very specific:

    Every claim cites a fact from Phase 0, or is explicitly labelled INFERENCE

    line 104

≈ “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

Incident quorum

Post-mortems fail in a specific, predictable way: the first plausible story wins. Someone proposes a cause, everyone recognizes it, and the investigation stops — usually at the most visible contributor rather than the one that actually made the failure possible.

The forensics family has a structural difference from every other quorum shape, and it is non-negotiable:

The orchestrator assembles cited FACTS before any fan-out. Miners diagnose against those facts, never against recollection.

Without that step, miners generate competing plausible narratives and the verify phase has nothing independent to check them against.


Phase 0 — FACTS (before spawning anything)

Assemble a timeline where every entry carries a source. This is orchestrator work, done first.

# FACTS — checkout failures, 2026-08-14

| Time (UTC) | Fact | Source |
|---|---|---|
| 09:12 | Deploy of api@4.18.0 completed | deploy log, run 8821 |
| 09:14 | 5xx rate 0.2% → 11% | metrics dashboard, screenshot |
| 09:22 | First customer report | support ticket 44120 |
| 09:31 | On-call paged | pager log |
| 09:48 | Rollback to 4.17.2 started | deploy log, run 8822 |
| 09:55 | 5xx rate back to 0.3% | metrics dashboard |

## Established
- The change in 4.18.0 touching the payment client is at
  `api/payments/client.ts:88-140` (diff attached)
- Connection pool max is 20 (config, unchanged since March)

## NOT established (do not assume)
- Whether the pool was actually exhausted — no metric existed for it
- Why the canary did not catch it
- Whether the 09:22 reports are the same failure as the 09:14 spike

The NOT established section is the most valuable part. It is what stops miners from treating a gap as a fact, and it usually names the missing instrumentation that becomes a prevention action.

Facts are observations with sources. "The pool was exhausted" is a hypothesis; "no pool metric existed" is a fact.


The lenses

Coined per incident, but these five generalize:

1. Mechanism adversary

"Show me the causal chain from the facts to the observed failure, with no gaps."

Every link must be supported by a fact or be explicitly marked as inference. The chain — not a list of contributors — is the deliverable.

2. Alternative-cause adversary

"Show me a different cause that fits these same facts."

Seat this always. It is the direct counter to first-plausible-story-wins. If two causes fit the facts equally, the investigation is not finished, and saying so is a legitimate result.

3. Detection adversary

"Show me why this was not caught earlier."

Hunts: the missing alert, the test that should have failed, the canary that passed, the review that did not look, the dashboard nobody watches. Detection findings usually produce the highest-value prevention actions, because they generalize past this one incident.

4. Blast-radius adversary

"Show me what else this touched that nobody has checked."

Hunts: silently corrupted data, partially processed queues, downstream systems that consumed bad output, retries that duplicated work, cached wrong values still being served.

Run this before closing the incident. The failure people find later is usually here.

5. Response adversary

"Show me where the response itself cost time."

Hunts: unclear ownership, a missing runbook, an ambiguous alert, a rollback path nobody had tested, the time between detection and the decision to act.

A note on rosters: the corpus explicitly rejected an invented forensics trio of root-cause / timeline-integrity / blast-radius — zero mined runs used it, and 3/3 judges rejected it. Two of those concepts appear above because they emerged from real incidents; the point is that they were derived per-incident, not applied as a default. See CALIBRATION.md.


Evidence contract

  • Every claim cites a fact from Phase 0, or is explicitly labelled INFERENCE
  • Inferences state what would confirm them
  • "Probably" and "likely" require a stated basis, or they refute
  • Timeline claims cite a timestamped source

The framing that keeps this honest: a post-mortem is not an explanation, it is a set of claims that survived attempts to break them.


Verification

Refuters check each causal link against the facts. Refute when:

  • A link has no supporting fact and is not marked as inference
  • The facts equally support a different mechanism
  • The timeline does not permit the claimed sequence — check this first; it is the fastest kill
  • The mechanism would have produced additional symptoms nobody observed

That last one is powerful: if the proposed cause predicts effects the incident did not show, the cause is wrong or incomplete.


The output must include a prevention process

A post-mortem ending in "we fixed the bug" has produced nothing durable. The family requires a prevention process — a change to how work is done, not only to what the code says.

LayerExample
DetectionAdd the pool-utilization metric that did not exist; alert at 80%
PreventionLoad-test the payment path against pool limits in CI
ResponseRunbook for pool exhaustion; test the rollback path quarterly
ProcessDeploys touching connection-pooled clients require a canary at production concurrency

Each needs an owner and a date, or it will not happen.

No blame. The corpus is clear that findings must attach to systems and processes. A post-mortem that names a person stops producing honest inputs immediately, and every subsequent incident review gets worse.


Judges

JudgeAsks
RecurrenceWould these actions actually have prevented this?
GeneralityDo they prevent the class, or only this instance?
CostIs the prevention proportionate to the risk?

The generality judge is the one that upgrades a post-mortem from a patch to a process improvement.


Related skills

  • quorum, quorum-lenses, quorum-verification, quorum-judging
  • code-quorum — the pre-merge review that would have caught it
  • decision-quorum — when the incident forces a bigger call

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.