review-verification-protocol
Mandatory verification steps for all code reviews to reduce false positives. Load this skill before reporting ANY code review findings.
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/anderskev/review-verification-protocolReview Verification Protocol
This protocol MUST be followed before reporting any code review finding. Skipping these steps leads to false positives that waste developer time and erode trust in reviews.
Pre-Report Verification Checklist
Before flagging ANY issue, verify:
- I read the actual code - Not just the diff context, but the full function/impl block
- I searched for usages - Before claiming "unused", searched all references
- I checked surrounding code - The issue may be handled elsewhere (trait impls, error propagation)
- I verified syntax against current docs - Rust edition, crate versions, and API changes
- I distinguished "wrong" from "different style" - Both approaches may be valid
- I considered intentional design - Checked comments, CLAUDE.md, architectural context
Verification by Issue Type
"Unused Variable/Function"
Before flagging, you MUST:
- Search for ALL references in the codebase (grep/find)
- Check if it's
puband used by other crates in the workspace - Check if it's used via derive macros, trait implementations, or conditional compilation (
#[cfg]) - Verify it's not a trait method required by the trait definition
Common false positives:
- Trait implementations where the method is defined by the trait
#[cfg(test)]items only used in test builds- Derive-generated code that uses struct fields
- Types used via
From/Intoconversions
"Missing Error Handling"
Before flagging, you MUST:
- Check if the error is handled at a higher level (caller propagates with
?) - Check if the crate has a top-level error type that wraps this error
- Verify the
unwrap()isn't in test code or after a safety-ensuring check
Common false positives:
unwrap()in tests and examples (expected pattern)expect("reason")after validation (e.g.,regex::Regex::newon a literal)- Error propagation via
?(the caller handles it) let _ = tx.send(...)— intentional when receiver may have dropped
"Unnecessary Clone"
Before flagging, you MUST:
- Confirm the clone is actually avoidable (borrow checker may require it)
- Check if the value needs to be moved into a closure/thread/task
- Verify the type isn't
Copy(clone on Copy types is a no-op) - Check if the clone is in a hot path (test/setup code cloning is fine)
Common false positives:
Arc::clone(&arc)— this is the recommended explicit clone for Arc- Clone before
tokio::spawn— required for'staticbound - Clone in test setup — clarity over performance
"Potential Race Condition"
Before flagging, you MUST:
- Verify the data is actually shared across threads/tasks
- Check if
Mutex,RwLock, or atomic operations protect the access - Confirm the type doesn't already guarantee thread safety (e.g.,
Arc<Mutex<T>>) - Check if the "race" is actually benign (e.g., logging, metrics)
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-anderskev-review-verification-protocol": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
tutorial-docs
Tutorial patterns for documentation - learning-oriented guides that teach through guided doing
fetch-pr-feedback
Fetch review comments from a PR and evaluate with receive-feedback skill
swift-testing-code-review
Reviews Swift Testing code for proper use of
rust-testing-code-review
Reviews Rust test code for unit test patterns, integration test structure, async testing, mocking approaches, and property-based testing. Covers Rust 2024 edition changes including async fn in traits for mocks,
explanation-docs
Explanation documentation patterns for understanding-oriented content - conceptual guides that explain why things work the way they do