Skip to content

Running an RCA by hand

In Claude Code (no service needed)

cd nimi-skill
claude

Then paste the alert or log text after /rca:

/rca [Alerting] Order export delayed
Tables with no new data for 6h: orders, order_items

The skill runs in a forked rca-investigator subagent under the guard hook (read-only, registered projects only). It ends with a report and an RCA_FIELDS block (output contract). History lookups are not available here: they are provided only by the service.

Through the service

Both commands store the request and result in the database, like automatic RCAs:

# A stored message, by its provider ID: triage first (may reuse an earlier RCA), then the skill
.venv/bin/python -m nimi_service rca spaces/AAAA…/messages/…
.venv/bin/python -m nimi_service rca spaces/AAAA…/messages/… --fresh   # skip triage and reuse

# Any text (a manual request: no triage, no channel, nothing posted)
.venv/bin/python -m nimi_service rca-text "<alert or log text>"

Manual text is scanned for secrets first (a red flag is raised if any are found). Service runs include history access when NIMI_SKILL_HISTORY=true.

Reading the result

The printed result shows outcome, cost, duration, model, origin, confidence and self-healing, followed by the report. Outcomes:

Outcome Meaning
rca A report.
not_applicable The skill found nothing to analyze (e.g. a resolved message).
insufficient_context Not enough signal; the reason says what is missing.
error / timeout The run failed or was cut short. A report without its closing RCA_FIELDS block counts as an error.