← ClaudeAtlas

diglisted

Cross-domain root-cause diagnosis for bugs, data mismatches, metric anomalies, and recurring problems, found before touching a fix. Use when the user says 查不出原因 / 有时好有时坏 / 数对不上 / 指标掉了 / 为什么又坏了 / 反复出现 / 改了还是不行 / 一直报��� / dig into this / debug this / why does this keep failing. Do not trigger for concept-explanation whys (why-is-the-sky-blue knowledge questions), first-time errors with obvious messages (the error already states the fix), known-cause fixes (coding's job), or debugging the harness session itself (built-in /debug's job).
liustack/liustack · ★ 0 · AI & Automation · score 70
Install: claude install-skill liustack/liustack
# dig: cross-domain root-cause digging Iron rule: **no fix before the root cause is found.** Making the symptom disappear and solving the problem are two different things. This rule applies to every kind of anomaly: code, data, metrics, process. Repeated failure is the entry signal: a fix that did not fix ("改了还是不行", still failing after changes) means the guessing phase is over. Stop patching from memory and start here. The cause-known boundary runs the other way: when the cause is already understood, skip this skill and take the fix straight through coding's red path. Diagnosis, source fix and regression all complete inside this skill, no forced handoff. Diagnosis is a thinking activity, and each step is driven by a thinking engine: what an engine gives you isn't terminology, it's **the question that step should ask**. The deliverable of a non-trivial dig is `.issues/<YYYY-MM-DD-topic>/issue.md`: the symptom and reproduction, the hypothesis list with a verdict on each, the probe log, the root-cause reconciliation, the fix, and the regression line. Create it when the dig starts, append as verdicts land. When the user wants it published, rewrite it from the confirmed understanding into issue or PR text, never by copying the working file. Before writing to disk, make sure the draft directory is ignored: if `git check-ignore .issues` fails, append `.issues/` to `.git/info/exclude` (a local ignore, leaving the shared `.gitignore` untouched) and let the user know. In a non-git