What problem does it solve?
In the Warp codebase, choosing between log::* levels and report_error! incorrectly leads to missed Sentry issues, fragmented error grouping, double-reported failures, and leaked sensitive data in logs. This Skill codifies the exact decision rules so logging and error reporting stay consistent and actionable.
Core Features & Use Cases
- Log level selection: Defines when to use
error!, warn!, info!, debug!, and trace! based on fault source, volume, and Sentry breadcrumb behavior.
- Sentry reporting with
report_error!: Explains static grouping messages, typed error chains via .context(), extra: blocks, report_if_error!, and ReportErrorLogMode::OncePerRun throttling.
- Sensitive data handling: Covers
safe_* macros (safe_error!, safe_warn!, etc.) so verbose detail stays in dogfood builds and never ships to release-channel logs or Sentry.
- Use Case: When reviewing a PR that adds
log::error!("Failed to sync: {e:#}") for an actionable failure, use this Skill to rewrite it as report_error!(e.context("Failed to sync")) so it becomes a tracked Sentry issue with a stable fingerprint.
Quick Start
Ask the AI to review your new Rust error handling code and choose the correct log level or report_error! form following the Warp logging guidelines.