agentleFS
serhiilenivserhiileniv/ccs/skills/root-cause/SKILL.md

root-cause

Skill0 starsChanged 10 days agoMITView on GitHub

Read-only. Find the root cause of a bug using every evidence source in reach (repo, CLIs, MCP servers for errors, logs, traces, analytics, DB). Use when something is broken and the cause is unknown.

27 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use prove-it, grill and 6 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • Neko-Catpital-LabsSkill

    prove-it

    Shared evidence rule for investigating, diagnosing, debugging, proving, or explaining what happened or why for any problem or situation: do not assert something is fixed, working, passing, merged, or running unless you personally observed it this turn and can show what you saw; do not assert it was caused by X until a repro and controlled isolation prove that cause.

    Also in 3 projects that use this

  • renatorozasSkill

    grill

    Adversarial code review. Don't let me ship until the changes pass your scrutiny.

    Also in 4 projects that use this

  • jasonmichaelbell78-creatorSkill

    skill-audit

    Interactive behavioral quality audit for individual skills. Evaluates against 12 quality categories (including T25 convergence loop and completion verification) to surface attention management issues and produce actionable decisions. Includes self-audit verification that all decisions were actually implemented. Uses convergence loops in its own discovery phase. Produces a decision record and updated skill files.

    Also in 3 projects that use this

  • Microsoft AzureSkill

    design

    Design rules and conventions for the API Center Portal. Use when editing detail pages, card components, badges, layout, navigation, sidebars, or headers. Covers badge styling, metadata placement, page navigation patterns, and layout alignment.

    Also in 4 projects that use this

  • NVIDIASkill

    research

    Before designing a feature, research how comparable libraries solve the problem, check best practices, known pitfalls, and upstream changes. Use when starting a new feature, investigating an unfamiliar area, or the user asks to research something.

    Also in 4 projects that use this

  • SentrySkill

    commit

    Create commit messages following Sentry conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits with Sentry-specific issue references.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 24 edited versions we read keep these.

  • 4

    Distinctive

    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:

    Read-only everywhere: No edits, no DB writes, no redeploys, no flag or config changes, no ticket status changes.

    line 13
  2. Distinctive:

    Never print secrets read along the way.

    line 15
  3. Distinctive:

    Keep what fits the symptom:

    line 32
  4. Very specific:

    Write 2–3 competing hypotheses, each with the check that would kill it.

    line 69
  5. Distinctive:

    No retelling of the search.

    line 99

“Common” is measured: kept by at least 6 in 10 of the 24 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

/ccs:root-cause

Find why it broke, from evidence. Check what you can read before you theorise.

The hard rule

Read-only everywhere. No edits, no DB writes, no redeploys, no flag or config changes, no ticket status changes. Read queries, log searches and tests that don't write are fine. Never print secrets read along the way. The one write is this run's report.

The answer implies a change → name it and stop. The fix is /ccs:implement.

Step 1 — pin the symptom

One line each: expected, actual, since when, where (prod / preview / local), who (all users or some). Missing and not findable → ask.

Step 2 — inventory

List what you can read now. Check it; never assume it:

  • repo and git
  • CLIs: gh, vercel, railway, supabase: command -v, then a whoami
  • MCP servers: every tool in this session, deferred ones included, plus claude mcp list

Keep what fits the symptom:

SourceAnswersExample tools
Repo, gitWhat changed, when, by whomgit log -S, git bisect, git blame, tests
Error trackingStack, first seen, release, frequency, users hitSentry, Datadog error tracking
Logs, tracesWhat happened around one requestDatadog logs/spans, Vercel runtime logs, railway logs, Supabase logs
Deploys, configWhat shipped and whengh, Vercel deployments, railway variables
Product analyticsWhich users, which path, session replayPostHog
DatabaseActual state of the dataSupabase execute_sql, SELECT only
TicketsThe report, repro steps, related reportsLinear, Jira, ClickUp

A relevant source is connected → query it before stating any hypothesis.

Step 3 — scope check

A connected source may point at another org or project. Confirm it matches this repo (project name, service, DSN, env) before trusting it. Some MCPs don't expose their scope; say so when you rely on one.

Step 4 — reproduce

Locally, or pin one concrete prod instance: event id, trace id, request, user. Neither → say so; everything after is inference.

Step 5 — strategy

Symptom shapeStrategy
Started at a known timeLine it up with deploys, commits, config changes; git bisect last good → first bad
Has a stack traceError tracker: first-seen release, then follow the stack into the code
Only some users or inputsDiff failing against passing: attributes, inputs, env, version
Wrong dataTrace back from the bad row to the code that wrote it
IntermittentTiming, concurrency, retries, caches; correlate with traces
SlowTraces and spans, then DB query performance
None of the aboveHalve: input, config, code path, time range

Write 2–3 competing hypotheses, each with the check that would kill it. Run the cheapest check that separates them first. Cite file:line for every claim; mark inference as inference.

Step 6 — root cause

The thing that, changed, makes the symptom impossible. Not the line that threw. Keep asking "why" until you reach something code or config can change. Reached only a proximate cause → say so.

Output

Symptom: <one line>

Outcome: found | proximate only | not found

Root cause: <first, before any detail>

Evidence:
  - file.ts:42 — <what it proves>
  - <source>: <event / trace / query result that decided it>

Sources: <checked and used> · not available: <relevant but missing, and what it would have answered>

Not verified: <what could not be confirmed, and why>

Fix: /ccs:implement <one line; the reproduction test to write first>

No retelling of the search. Mention a discarded theory only if it is still live.

Writing

One line where one line does. Answer first. State the fact, not the story behind it — no narrating what was tried, no paragraph restating the line above. Two things always stay: why a non-obvious decision was made, and what a check cannot do. Caveats and risks still get said, one line each.

Outcome: success = root cause found · partial = proximate only · failed = not found.

Report

Last step, every run, whatever the outcome: write .ccs/reports/<skill>/<YYYY-MM-DD>-<slug>.md at the repo root, and add .ccs/ to .git/info/exclude if missing. One line per field, no secrets, tokens or customer data. Print the path.

---
skill: <skill>
date: <YYYY-MM-DD>
repo: <owner/name>
target: <argument, one line>
outcome: success | partial | failed
learned: false
---

Used: <tools, CLIs, MCPs, files that did the work>
Found: <the result, one or two lines>
Friction: <what slowed or blocked it; a user correction; "none">

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.