anomaly-investigation

Diagnoses the root cause of a known data anomaly by testing and eliminating candidate explanations.

Updated Sep 9, 2026
One-click install
npx skills add https://github.com/xlinh2301/EditCTC --skill anomaly-investigation-xlinh2301
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: anomaly-investigation
Source: https://github.com/xlinh2301/EditCTC/tree/main/.agents/skills/anomaly-investigation
Command: npx skills add https://github.com/xlinh2301/EditCTC --skill anomaly-investigation-xlinh2301

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When a metric spikes, drops, or behaves unexpectedly, teams often guess at causes or accept the first plausible story. This Skill replaces guesswork with a disciplined form-test-eliminate-confirm loop that narrows a slate of candidate causes against the actual data until exactly one survives refutation and passes a positive confirming test. ## Core Features & Use Cases - Candidate elimination loop: Forms a broad slate of mutually distinguishable causes (real change, mix shift, data-quality bug, measurement change, seasonality, outlier segment), then tests each against the dataset and drops the ones the data refutes. - Confirmation discipline: A cause is only declared root when it survives an honest refutation attempt and passes a positive confirming prediction, with every step recorded in an investigation log and ledger. - Sandboxed analysis: Runs stdlib-first Python snippets in the user's environment via a configurable analysis command, keeping the dataset read-only and all artifacts in a self-contained sandbox. - Use Case: Sessions spiked 3x while conversions stayed flat on a given date. The loop characterizes the anomaly, tests candidates like bot traffic versus a pipeline double-count, and reports the confirmed cause with the evidence that ruled out the alternatives. ## Quick Start Ask the assistant to investigate why conversions stayed flat while sessions spiked 3x on 2026-06-14 using the events.csv file in the working directory.

Frequently Asked Questions about anomaly-investigation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find the root cause of a metric spike in my data?▼

Provide the dataset and a precise description of the anomaly, including the metric, time window, and deviation size. The loop forms candidate causes, tests each against the data with Python snippets, and confirms the one cause that survives refutation and a positive test.

What is the difference between anomaly investigation and exploratory data analysis?▼

Anomaly investigation is reactive diagnosis of one specific, already-observed anomaly, narrowing candidates until a single cause is confirmed. Exploratory data analysis is open-ended discovery over a dataset with no particular anomaly in hand, which this Skill explicitly does not cover.

Does the anomaly investigation loop modify my dataset?▼

No. The dataset is treated as read-only ground truth that every test is checked against. All analysis snippets, outputs, and logs are written to a self-contained sandbox directory with no escapes outside it.

What Python packages are required to run the analysis snippets?▼

Snippets are stdlib-first, using csv and statistics by default. If pandas or numpy would help, the snippet probes with a try/except ImportError and degrades to a stdlib path, or asks consent before installing anything.

What happens if two causes explain the anomaly equally well?▼

When two mechanistically different candidates make identical predictions in the available data, they are reported as a single confirmed cause at that data resolution. The report names the additional data, such as finer-grained logs or raw event records, that would distinguish them.

When should I not use this anomaly investigation approach?▼

Avoid it when you have no specific anomaly in hand and want open-ended dataset exploration, or when you need to verify an external claim against sources. It is designed for reactive diagnosis of one known anomaly, with a default budget of 8 iterations.