go-cli-errors-observability
Design and review recoverable Go CLI errors, exit semantics, structured logging, debug modes, traces, profiles, redaction, and user-consented diagno…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Go CLI Errors and Observability
Design failures for recovery first, then add the minimum safe evidence needed to
diagnose them. Keep internal detail out of the normal user contract.
Core Workflow
- Classify failures by user action, dependency, cancellation, and internal defect.
- Preserve machine-checkable causes with wrapping, types, or sentinels.
- Map causes to concise user messages and stable exit behavior at the boundary.
- Assign one terminal owner to render, log, and map each failure.
- Preserve material cleanup failures without hiding the primary cause.
- Add opt-in verbosity and structured logs on stderr or a dedicated sink.
- Allowlist and redact diagnostic evidence; require consent before collection or upload.
- Test recovery guidance, output separation, redaction, and cancellation.
Read Next
| Task | Load |
|---|---|
| Design error taxonomy and recovery | guidelines.md, workflows/design-error-recovery.md |
| Add logging or support diagnostics | references/errors-observability/rules.md, workflows/add-safe-diagnostics.md |
| Review code patterns | references/errors-observability/examples.md |
| Understand layering and privacy | references/errors-observability/knowledge.md |
Guardrails
- Never log secrets, authorization headers, raw config, or unreviewed environment data.
- Do not make normal stdout depend on log level.
- Preserve cancellation and timeout identity with
errors.Is. - Do not both log and return the same failure at intermediate layers.
- Do not use panic for ordinary validation, dependency, or user errors.
- Do not collect or upload diagnostics without a visible allowlist and consent.
- Protect profiling or debug servers; default them off and bind locally.
Source Notes
Guidance is transformed and paraphrased from Marian Montagnino,
Building Modern CLI Applications in Go (Packt, 2023), especially Chapter 9,
and Ricardo Gerardi, Powerful Command-Line Applications in Go (2021).
Handler composition, context correlation, and joined-error guidance also
incorporates transformed material from Inanc Gumus, *Go by Example:
Programmer's Guide to Idiomatic and Testable Programs* (Manning, 2025),
Chapter 9.
Error ownership, panic boundaries, and cleanup-failure guidance also
incorporates transformed material from Teiva Harsanyi, *100 Go Mistakes and
How to Avoid Them* (Manning, 2022), Chapter 7.
Verify current logging APIs against https://pkg.go.dev/log/slog and error APIs
against the current Go standard library documentation.
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/LVTD-LLC/skills/skills/go-cli-errors-observability/SKILL.md