root-cause

root-cause is a command for coding agents from hamr0/liteagents. It costs 52 tokens per session (2,042 once invoked), scanned A, original, Apache-2.0.

A troubleshooting method that finds and proves the underlying cause of a failing test, bug, broken build, performance issue, or unexpected result before changing code.

In plain words
What is it for?
Use it to read evidence, trace incorrect values to their origin, compare working and failing cases, and test one explanation at a time.
Why use it?
It reduces guess-and-check fixes that hide symptoms while leaving the real problem in place.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/hamr0/liteagents/root-cause
Clone the repo
git clone --depth 1 https://github.com/hamr0/liteagents

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for root-cause

README.md
[![agentmods](https://agentmods.dev/badge/commands/hamr0/liteagents/root-cause.svg)](https://agentmods.dev/commands/hamr0/liteagents/root-cause)
Your own site
<a href="https://agentmods.dev/commands/hamr0/liteagents/root-cause"><img src="https://agentmods.dev/badge/commands/hamr0/liteagents/root-cause.svg" alt="Measured on agentmods" height="20"></a>
Per session 52 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,042 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00052 $0.02042
Opus 5 $0.00026 $0.01021
Sonnet 5 $0.00010 $0.00408
Haiku 4.5 $0.00005 $0.00204

Measured today against content hash 18ad3f26cfbf, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

root-cause scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

packages/droid/commands/root-cause.md · 219 lines

How it starts

The opening of the file, as written. The whole thing — 219 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Root Cause

Find the cause before you change any code.

The Law

NO FIX WITHOUT A CAUSE YOU CAN POINT AT

A fix at the place the error appeared is a symptom fix. It is a failure even when the symptom goes away, because the real cause is still there and will surface somewhere else, later, with less context.

You cannot propose a fix until Phase 1 is done.

When to Use

Any technical issue: a failing test, a production bug, unexpected behaviour, a performance problem, a broken build, an integration that will not talk.

Especially when it feels like overkill:

  • Under time pressure — emergencies are exactly when guessing is most tempting and most expensive
  • "Just one quick fix" looks obvious
  • You have already tried a fix and it did not work
  • You do not fully understand the issue

Simple bugs have root causes too, and finding one takes minutes. Guess-and-check takes hours and leaves damage behind.


Phase 1 — Gather Evidence

Do all of this before forming any opinion about the fix.

1. Read the error completely

Do not skim past it. Read the whole message, the whole stack trace, every warning above it. Note line numbers, file paths, error codes. The answer is often written there in full.

2. Reproduce it consistently

Can you trigger it on demand? What are the exact steps? Does it happen every time?

If it is not reproducible, gather more data. Do not start guessing — an intermittent bug you cannot trigger is a bug you cannot prove you fixed.

3. Check what changed

Recent commits, the working diff, new dependencies, config edits, environment differences between the place it works and the place it does not.

Be careful here: the most recent change is the most available suspect, not the most likely one. Recency is a lead to test, never a conclusion.

4. Instrument the boundaries (multi-component systems)

When the path crosses components — CI → build → sign, API → service → database, workflow → script → tool — do not reason about where it breaks. Measure it.

Read the full file on GitHub · 219 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today First seen · 219 lines · 52 tokens per session scan A 18ad3f26cfbf

Subscribe to this mod's changes

root-cause is a command published in the GitHub repository hamr0/liteagents (22 stars, last pushed today), licensed Apache-2.0. It adds 52 tokens to every session and 2,042 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.