← ClaudeAtlas

explain-difflisted

Translate a DriftReport JSON into a plain-English markdown narrative suitable for pasting into a PR description, chat thread, or bug report. Read-only template render — no LLM call, no filesystem mutation. Pairs with `doctor` via the `--explain` flag, or runs standalone against any DriftReport produced by `bin/compute-drift.sh` / `bin/retrofit.sh --json` / `bin/doctor.sh --json`. TRIGGER when the user says "explain the drift", "summarize doctor in plain English", "what does this drift report mean", "narrate the drift", "translate the drift report", "human-readable drift", "explain what nyann found", "make doctor output paste-friendly", "give me a drift summary for the PR", "/nyann:explain-diff". Do NOT trigger on "what's drifted" alone — that's `doctor` / `retrofit --report-only` (which produce the raw structured report this skill consumes). Do NOT trigger on "fix the drift" — that's `retrofit`.
thettwe/nyann · ★ 6 · Data & Documents · score 74
Install: claude install-skill thettwe/nyann
# explain-diff Read-only template render. Wraps `bin/explain-diff.sh`. ## When to trigger - User has a DriftReport (from doctor / retrofit / compute-drift) and wants prose. - User wants to paste a doctor summary into a PR body or chat without sharing raw JSON. - User explicitly asks for "the drift in plain English". ## When NOT to trigger - User is asking "is this repo healthy" → that's `doctor` (which can chain into this via `--explain`). - User wants to mutate / fix → that's `retrofit`. - User wants LLM-polished output → this skill is template-only by design (no LLM). If the user wants prose with more nuance, suggest reading the markdown output and editing by hand. ## Invocation Three call shapes: **1. Direct: file path** ``` bin/explain-diff.sh --file path/to/drift.json ``` **2. Pipe from a producer** ``` bin/compute-drift.sh --target . --profile default | bin/explain-diff.sh - ``` **3. Via doctor (recommended path)** ``` bin/doctor.sh --target . --profile default --explain ``` `doctor --explain` is preferred because it also forwards the computed health score and trend delta into the narrative header line — the same numbers text-mode shows at the foot of its output. `--explain` is mutually exclusive with `--json` on doctor; if both are passed, doctor dies with a clear error. ## Output shape **Markdown (default)** — three sections: 1. **Header** — target + profile + (optional) health score + trend 2. **What's drifted** — one bullet per drift category, ordered