rr-debug-test — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited rr-debug-test (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Use this skill when a test fails (crash, assertion, wrong result) and you need to find the root cause. This is especially useful for test harnesses that spawn subprocesses, where the failing test runs in a child process.
Record the entire test command. rr captures all subprocesses automatically:
rr_record(command=$ARGUMENTS, trace_dir="<project>/rr-trace-<random>")For build-system test runners:
rr_record(command=["make", "test"], trace_dir=...)
rr_record(command=["ctest", "--test-dir", "build"], trace_dir=...)
rr_record(command=["pytest", "tests/"], trace_dir=...)Test harnesses (CTest, pytest, make, shell scripts) spawn child processes. The root process is the harness, NOT the test. You must identify the correct subprocess:
rr_ps(trace_dir="<trace>")How to identify the right process:
rr_replay_start(trace_dir="<trace>", pid=<failing-pid>)Always pass `pid` for test recordings. Without it, rr replays the harness process which lacks test debug symbols and is not where the bug occurred.
rr_continue() — stops at signal automaticallyrr_breakpoint_set("__assert_fail") or rr_breakpoint_set("abort"),then rr_continue()
rr_breakpoint_set("testing::internal::AssertHelper") for gtest, or set a breakpoint on the test function itself
rr_breakpoint_set("test_function_name"), then rr_continue() andstep through the test logic
rr_backtrace()
rr_locals()Work backwards from the failure:
rr_next(reverse=True) to step backwardsrr_watchpoint_set("variable") + rr_continue(reverse=True) to find where a valuewas corrupted
rr_select_frame(N) to inspect caller framesrr_replay_stop()
rr_rm(trace_dir="<trace>")rr captures the exact execution, so a failing recording will always reproduce.
rr_record(command=["./test_binary", "--gtest_filter=TestSuite.FailingTest"])
rr_evaluate("expr") to check test expectations at the point of failure.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.