debugging

bearcove's avatarfrom bearcove

Debugging conventions for pikru. Use when adding debug traces or investigating issues. Important rule - leave debug traces in place.

⭐6stars🔀0forks📁View on GitHub🕐Updated Dec 30, 2025

When & Why to Use This Skill

This Claude skill provides standardized debugging conventions for the pikru project, covering both C and Rust implementations. It streamlines the process of adding diagnostic traces and enforces a persistent logging policy to enhance long-term maintainability and accelerate future troubleshooting.

Use Cases

  • Investigating complex issues in C code by implementing the DBG() macro according to project standards.
  • Adding granular diagnostic logs in Rust components using tracing::debug!() for environment-based log control.
  • Maintaining a robust codebase by ensuring debug traces are preserved for future forensic analysis and system monitoring.
  • Ensuring project-specific debugging rules are followed during code modification to prevent the accidental removal of valuable diagnostic data.
namedebugging
descriptionDebugging conventions for pikru. Use when adding debug traces or investigating issues. Important rule - leave debug traces in place.

Debugging

When in doubt, add tracing:

  • C code: DBG() macro
  • Rust code: tracing::debug!() (not eprintln!)

IMPORTANT: Leave debug traces in place!

  • DO NOT remove DBG() calls from C code after debugging
  • DO NOT remove tracing::debug!() calls from Rust code after debugging
  • DO NOT run make clean in vendor/pikchr-c (it's disabled anyway)

Rationale

  • The C implementation is not used in production - debug traces are helpful for future investigations
  • Rust tracing can be turned on/off at compile time via RUST_LOG environment variable
  • Having traces in place makes future debugging much faster