Skip to content
Back to skills

Draft Rca

ASecurity

Trace a reported defect from symptom to specific root cause — the file, the logic, and why it is wrong — and author rca.yaml plus resolution-trace.yaml (when LTM context provided). Used by tech-designer in the fix-it play.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
testingbashgit

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add kapilvirenahuja/garura --skill draft-rca --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Draft Rca?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Draft Rca
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kapilvirenahuja-draft-rca/badge)](https://www.skillsdirectory.com/skills/kapilvirenahuja-draft-rca)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: draft-rca
description: Trace a reported defect from symptom to specific root cause — the file, the logic, and why it is wrong — and author rca.yaml plus resolution-trace.yaml (when LTM context provided). Used by tech-designer in the fix-it play.
user-invocable: false
model: sonnet
allowed-tools: Read, Write, Grep, Glob, Bash
---

# draft-rca

Model-invocable skill for root-cause analysis artifact authorship.

## Purpose

Given an issue description and codebase access, trace the reported symptom through the call chain to the specific line/logic/assumption that is wrong, enumerate blast radius, and write `rca.yaml`. When `ltm_context` is provided, also write `resolution-trace.yaml` per the R1–R4 resolution protocol.

This is the RCA-authoring mechanism for the fix-it play — tech-designer invokes it instead of authoring YAML inline.

## Input

| Field | Required | Description |
|-------|----------|-------------|
| `issue_read_path` | yes | Path to issue-read.yaml produced by manage-issue (title, body, state) |
| `project_root` | yes | Codebase root for read-only exploration |
| `ltm_context` | optional | `{project_base, core_base, query_domains, locked_artifacts}` for R1–R4 resolution |
| `output_base` | yes | Directory to write rca.yaml (and resolution-trace.yaml if ltm_context provided) |

## Process

1. **Read the issue.** Extract title, body, reported symptoms, stack traces, user-reported behavior.

2. **Reproduce understanding.** State the failure in one sentence, separating symptom from the assumed cause.

3. **Trace the symptom.** Use Grep/Glob/Read/`git log`/`git blame` to walk from where the error manifests back through the call chain to the originating logic.

4. **Pinpoint root cause.** Identify the specific file + line range + the exact logic or assumption that is wrong. Restating the issue title is NOT a root cause — the output must name a file path and describe the wrong logic.

5. **Map blast radius.** Enumerate every file affected by a fix to this root cause with its role and what would need to change.

6. **LTM resolution (when ltm_context present).** Follow R1–R4 from `standards/rules/resolution.md`:
   - R1: Identify decision domains
   - R2: Search `project_base` — LOCKED authoritative, DRAFT advisory
   - R3: Search `core_base` via `_index.md` and `Search patterns:` headers
   - R4: Unresolved → LLM, flag as `resolved_from: "llm"`
   - Write `resolution-trace.yaml` with per-domain `resolved_from`.

7. **Emit rca.yaml:**

   ```yaml
   issue_number: {n}
   summary: "{one-sentence failure description, symptom vs. cause separated}"
   root_cause:
     file: "{path}"
     logic: "{what the code does}"
     why_wrong: "{why it produces the observed failure}"
     line_range: "{start}-{end}"
   trace:
     - step: "{symptom observed in X}"
     - step: "{follows to Y because...}"
     - step: "{originates at Z}"
   blast_radius:
     - path: "{file}"
       role: "{what this file does}"
       change_needed: "{what must change}"
   produced_at: "{ISO-8601}"
   ```

## Output

```yaml
rca_path: "{output_base}/rca.yaml"
resolution_trace_path: "{output_base}/resolution-trace.yaml"  # only when ltm_context present
root_cause_file: "{path}"
blast_radius_count: {n}
status: written
```

## Failure Modes

| What failed | Cause | Return |
|-------------|-------|--------|
| Cannot locate referenced code from issue | Symbol/path doesn't exist | `status: failed`, `reason: symbol_not_found`, `searched_for` |
| Root cause inconclusive after 2 self-recovery passes | Trace does not converge | `status: failed`, `reason: rca_inconclusive`, `paths_explored` |
| Issue file unreadable | I/O | `status: failed`, `reason: missing_input` |

## Boundaries

- Read-only against the codebase. No git commit, branch, checkout, push, or any file write outside `{output_base}`.
- Restating the issue title as the root cause is forbidden — must name a file + logic + why-wrong.
- You do not design the fix (that is `draft-fix-design`'s job) and do not author tests (that is `author-regression-test`'s job).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…