AgentStack
SKILL verified MIT Self-run

Migration Validator

skill-juanmarchetto-agent-skills-migration-validator · by JuanMarchetto

Safety verification checklist for C-to-Rust migrations. Validates compilation, unsafe block minimization, memory safety, API compatibility, and idiomatic Rust patterns. Use when: validate migration, check Rust safety, verify converted code, migration QA.

No reviews yet
0 installs
1 views
0.0% view→install

Install

$ agentstack add skill-juanmarchetto-agent-skills-migration-validator

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README — it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-juanmarchetto-agent-skills-migration-validator)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Migration Validator? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Migration Validation Checklist

Compilation Check

  • [ ] Rust code compiles with rustc --edition 2024
  • [ ] No errors, only warnings acceptable if minor
  • [ ] Clippy passes with 0 warnings (cargo clippy)

Safety Check

  • [ ] Count unsafe blocks (target: 0 for easy/medium, minimize for hard)
  • [ ] Every unsafe block has a // SAFETY: comment
  • [ ] No raw pointer dereferences without bounds checking
  • [ ] No transmute unless absolutely necessary
  • [ ] No unwrap() on user-controlled data

Semantic Equivalence

  • [ ] Same function signature (equivalent types)
  • [ ] Same behavior for all valid inputs
  • [ ] Same error conditions / edge cases
  • [ ] Overflow behavior matches (wrapping vs. checked)
  • [ ] Printf format matches exactly (especially %g → custom format_g())
  • [ ] Bool/int distinction preserved (C int 0/1 ≠ Rust bool)

Differential Testing

  • [ ] Compile C with cc -std=gnu11 -lm
  • [ ] Compile Rust with rustc --edition 2024
  • [ ] Run both with identical test inputs
  • [ ] Compare outputs byte-by-byte (not just "looks similar")
  • [ ] Test edge cases: empty input, max values, null/None, negative numbers
  • [ ] Float tolerance: exact match preferred, tolerance only for known precision differences

Idiomatic Score

Enhanced formula with positive AND negative signals:

  • Base: 100
  • Negative: - (unsafe_blocks * 10) - (clippy_warnings * 2) - (unwrap_count * 3) - (as_casts * 1)
  • Positive: + min(10, result_count * 2) + min(5, option_count) + min(5, iter_usage)
  • Ranges: 90-100 Excellent, 70-89 Good, 60-69 Acceptable, high-score non-compiling > c2rust fallback

Repair Loop Rules

  • Effective iterations scale with file size:
  • 2000 LOC: min(configured, 2)
  • Chunked translations: max(configured, 8) — chunks are small, repair is affordable
  • Stall detection: 2 unchanged error counts → re-translate at temp 0.7
  • Temperature ramp: base 0.2 + 0.1 per iteration (capped at 1.0)
  • Quality gate: if initial translation has >5 unsafe → re-translate at temp 0.5
  • P5: Idiomatic hints — when compiles + diff passes but score < threshold, repair agent gets refactoring hints instead of empty feedback (prevents wasted iterations)

Validated Production Migrations

These fixtures are regression-tested and represent known-good migrations: | File | LOC C→Rust | Score | Unsafe | Notes | |------|-----------|-------|--------|-------| | add, power, gcd, etc. | <50 | 100 | 0 | Simple arithmetic | | hashtable.c | 204→~200 | 81 | 0 | malloc/free → Box/Vec | | cjsoncombined.c | 520→319 | 100 | 0 | JSON parser, recursive data | | expreval.c | 1686→1446 | 100 | 0 | 74 functions, recursive descent | | cjsonfullcombined.c | 1696→1439 | 100* | 0 | Full cJSON library (49/78 fns) | | picohttpparser.c | 1102→1551 | 100 | 0 | HTTP parser, state machine | | genanncombined.c | 642→622 | 100 | 0 | Neural network, fn ptrs→enum, autonomous pipeline | | olivecombined.c | 1443→1176 | 100 | 0 | 2D graphics, pixel buffers, checksum diff test | | httpparsercombined.c | 3680→1492 | N/A | 0 | HTTP parser, goto state machine→line parsing, manual completion | | minizcore_standalone.c | 4429 | N/A | N/A | FallbackUnsafe (ceiling case) |


Powered by Noricum — autonomous C/C++ to Rust migration agent

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.