Skip to content
Back to skills

Vcsdd Language Rust

ASecurity

Use this skill when applying VCSDD to Rust projects. Provides Kani proof harness patterns, proptest strategies, cargo-fuzz integration, and cargo-mutants mutation testing guidance.

  • 27 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 1, 2026
testingrustgobashtesting

Security analysis

A100/100

Scanned June 1, 2026

npx -y skills add sc30gsw/vcsdd-claude-code --skill vcsdd-language-rust --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Vcsdd Language Rust?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Vcsdd Language Rust
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sc30gsw-vcsdd-language-rust/badge)](https://www.skillsdirectory.com/skills/sc30gsw-vcsdd-language-rust)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: vcsdd-language-rust
description: Use this skill when applying VCSDD to Rust projects. Provides Kani proof harness patterns, proptest strategies, cargo-fuzz integration, and cargo-mutants mutation testing guidance.
origin: VCSDD
---

# VCSDD Language Profile: Rust

## Verification Toolset

| Tier | Tool | Install | Use Case |
|------|------|---------|---------|
| 1 | proptest | `cargo add proptest --dev` | Property-based testing |
| 1 | cargo-fuzz | `cargo install cargo-fuzz` | Coverage-guided fuzzing |
| 1 | cargo-mutants | `cargo install cargo-mutants` | Mutation testing |
| 2-3 | kani | `cargo install kani-verifier` | Bounded model checking |

## Kani Proof Harness Pattern

```rust
// In src/parser.rs or separate verification/proof-harnesses/parser.rs
#[cfg(kani)]
mod kani_proofs {
    use super::*;

    #[kani::proof]
    fn verify_empty_input_returns_error() {
        let result = parse("");
        assert_eq!(result, Err(ParseError::Empty));
    }

    #[kani::proof]
    #[kani::unwind(5)]
    fn verify_parse_never_panics() {
        let input: String = kani::any();
        kani::assume(input.len() < 20);
        // Should return Ok or Err, never panic
        let _ = parse(&input);
    }
}
```

Run: `cargo kani`

## proptest Pattern

```rust
use proptest::prelude::*;

proptest! {
    #[test]
    fn test_parse_roundtrip(s in "[a-z]{1,20}") {
        if let Ok(parsed) = parse(&s) {
            assert_eq!(serialize(parsed), s);
        }
    }

    #[test]
    fn test_parse_does_not_panic(s in any::<String>()) {
        let _ = parse(&s);
    }
}
```

## cargo-fuzz Setup

```bash
cargo fuzz init
cargo fuzz add fuzz_parse
# Edit fuzz/fuzz_targets/fuzz_parse.rs:
# use libfuzzer_sys::fuzz_target;
# fuzz_target!(|data: &[u8]| {
#     if let Ok(s) = std::str::from_utf8(data) {
#         let _ = parse(s);
#     }
# });
cargo fuzz run fuzz_parse -- -max_total_time=60
```

## cargo-mutants

```bash
cargo mutants --timeout 30
# Results in mutants.out/
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.