Skip to content
Agent Memory
Skill

/rca

Root-cause analysis for code. Use when a defect shipped and was caught after the fact, a run came back BLOCKED or a deliverable failed validation, a bug recurs after a prior fix, or the user says 'rca this', 'root cause this', 'postmortem this', or 'why did this break'. Produces

BOOST
From plugin
kipi-system
12816 skills5 agents23 commands5 MCP
Install
$ npx -y skills add assafkip/kipi-system --skill rca --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/rca

Context preview

The summary Claude sees to decide when to auto-load this skill.

Root-cause analysis for code. Use when a defect shipped and was caught after the fact, a run came back BLOCKED or a deliverable failed validation, a bug recurs after a prior fix, or the user says 'rca this', 'root cause this', 'postmortem this', or 'why did this break'. Produces

SKILL.md

rca.SKILL.md
name: rca
description: "Root-cause analysis for code. Use when a defect shipped and was caught after the fact, a run came back BLOCKED or a deliverable failed validation, a bug recurs after a prior fix, or the user says 'rca this', 'root cause this', 'postmortem this', or 'why did this break'. Produces a structured RCA that separates surface from structural cause, demands evidence-backed verification, and tracks action items. Also covers prospective premortems."

RCA Skill

The diagnostic counterpart to forward planning. When a failure gets past a test, a gate, or review, write a root-cause analysis to the canonical template. The goal is never who, it is: what guardrail was missing and why the mistake was easy to make.

Before writing

Read `references/rca-template.md`. It is the canonical structure and the exact contract the lint enforces. Do not improvise a different shape.

When to write an RCA

  • A defect shipped and a human or a gate caught it after the fact.
  • A run came back BLOCKED, or a deliverable failed validation.
  • A bug recurs after a prior fix (the prior fix treated a symptom).
  • The user says "rca this", "root cause this", "postmortem this", "why did this break".

A trivial bug you fix in the same breath, that never escaped a gate, does not need an RCA. A failure that got past a test, a gate, or review does.

Where RCAs land

`q-system/output/rca/rca-<slug>-<YYYY-MM-DD>.md` inside a kipi instance, or `rca/rca-<slug>-<YYYY-MM-DD>.md` in a plain repo. The lint fires on any file named `rca-*.md` / `premortem-*.md` or any doc whose H1 starts with `# RCA:` or `# Premortem`.

The rules the lint enforces

1. **Surface vs structural root cause.** Surface is the trigger (what fired). Structural is the latent systemic cause (why it was allowed and went uncaught). 2. **Multi-factor.** Use `### Root cause #1`, `### Root cause #2` when more than one structural cause contributed. Resist a single tidy cause. 3. **Cause-type tags.** Each structural cause carries a `type:` line, one of: code-defect, config, environmental-trigger, missing-test, implicit-contract, process, capacity. 4. **Verification is evidence.** Show the command and result ("ran X, got Y") or the passing test. An assertion with no observed output is not verification. 5. **Action items are checkboxes with owners.** Not prose. An RCA is not finished until its actions are owned and trackable. 6. **Blameless.** Describe system, contract, gate, and test failures. Never name a person as the cause.

The deterministic notify

The `rca-notify` hook watches command results. When a test or run fails (non-zero exit, or FAIL / BLOCKED / Traceback in the output), it injects a nudge to open an RCA. That is the shoulder-tap. The skill is how you answer it.

Premortem variant

Before shipping a high-trust deliverable, run a premortem instead: assume it already failed in front of the customer and enumerate how. Structure is in the template under "Premortem variant".

Enforcement

`scripts/rca-lint.py` validates every RCA/premortem doc on write. Bypass a single file with `<!-- rca-lint-skip -->` (intentional exceptions only).

Read more
Ships withkipi-system

Give your AI the right knowledge, at the moment it needs it. Kipi turns the scattered knowledge around your work into context that follows you across AI sessions: decisions, conversations, projects, people, commitments, lessons, documents, history.

Get the whole plugin

Other skills on kipi-system.