unsafe-checker

CRITICAL: Use for unsafe Rust code review and FFI. Triggers on: unsafe, raw pointer, FFI, extern, transmute, *mut, *const, union, #[repr(C)], libc, std::ffi,…

INSTALLATION
npx skills add https://github.com/actionbook/rust-skills --skill unsafe-checker
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Display the following ASCII art exactly as shown. Do not modify spaces or line breaks:

⚠️ **Unsafe Rust Checker Loaded**

     *  ^  *

    /◉\_~^~_/◉\

 ⚡/     o     \⚡

   '_        _'

   / '-----' \

Unsafe Rust Checker

When Unsafe is Valid

Use Case

Example

FFI

Calling C functions

Low-level abstractions

Implementing Vec, Arc

Performance

Measured bottleneck with safe alternative too slow

NOT valid: Escaping borrow checker without understanding why.

Required Documentation

// SAFETY: <why this is safe>

unsafe { ... }

/// # Safety

/// <caller requirements>

pub unsafe fn dangerous() { ... }

Quick Reference

Operation

Safety Requirements

*ptr deref

Valid, aligned, initialized

&#x26;*ptr

+ No aliasing violations

transmute

Same size, valid bit pattern

extern "C"

Correct signature, ABI

static mut

Synchronization guaranteed

impl Send/Sync

Actually thread-safe

Common Errors

Error

Fix

Null pointer deref

Check for null before deref

Use after free

Ensure lifetime validity

Data race

Add proper synchronization

Alignment violation

Use #[repr(C)], check alignment

Invalid bit pattern

Use MaybeUninit

Missing SAFETY comment

Add // SAFETY:

Deprecated → Better

Deprecated

Use Instead

mem::uninitialized()

MaybeUninit<T>

mem::zeroed() for refs

MaybeUninit<T>

Raw pointer arithmetic

NonNull<T>, ptr::add

CString::new().unwrap().as_ptr()

Store CString first

static mut

AtomicT or Mutex

Manual extern

bindgen

FFI Crates

Direction

Crate

C → Rust

bindgen

Rust → C

cbindgen

Python

PyO3

Node.js

napi-rs

Claude knows unsafe Rust. Focus on SAFETY comments and soundness.

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card