log-taillisted
Install: claude install-skill adnanmokhtar/refract
# log-tail
## Premise
Real artifacts only. Every claim cites the actual log line(s) observed + the timestamp + the correlation id used to filter. "Saw an error" without quoting the line is not a finding. The log source must be a real file, container, or process — never a paraphrase. PII (phones, emails, tokens) gets redacted before sharing; surfacing raw secrets is a halt-worthy mistake.
A "nothing in the logs" verdict without showing the exact `jq` filter run is a failed investigation.
Stream structured JSON logs (Pino / Winston / zerolog / structlog) with `jq` filters scoped to one request, level, module, or tenant.
**Scope boundary — this skill owns the mechanism, `/log-tail` owns the interpretation.** Everything here is how to *obtain* lines: source detection, the level-encoding probe, the field-name probe, the filters, the logger-specific gotchas. What the lines *mean* — the cluster halt, the no-match ladder, the reporting halts — lives in [`templates/packs/backend/commands/log-tail.md`](../../commands/log-tail.md) and is not restated here. One predicate, one owner: the level filter this skill emits shipping differently from the command's is exactly the defect that made a Pino project report a confident, false "nothing in the logs."
**Never hardcode the level predicate.** `.level` is a number in some loggers and a label in others, and a predicate built for the wrong encoding matches zero rows forever while looking correct. Probe first (Procedure step 3a), then buil