explain-difflisted
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