The recent catalogue extensions cover verification, supply chain, decision records, and Polonius migration. The short versions:
`nll-to-polonius` — migrate beyond NLL constraints
Use this skill when adopting -Zpolonius=next, auditing code for confirmed
NLL workarounds, or redesigning internal lookup and caching APIs around
returned borrows. It distinguishes lifetime limitations that Polonius can
remove from aliasing, async, and thread-boundary constraints that still
require ownership. Routine borrow errors continue to route to
rust-memory-and-state.
`rust-verification` — pick the right adversarial tool
Use this skill when you need to prove or disprove a property and are
unsure whether to reach for Miri, sanitizers, property tests,
cargo-mutants, loom, shuttle, turmoil, Kani, or Verus. The
skill's selection table maps failure modes to tools. From there it
routes into the proptest, kani, and verus deep dives.
`proptest` — property-based testing
Use this skill when a pure function has a property (round-trip,
idempotence, ordering, conservation) that is easier to state than to
enumerate, or when a parser or codec must round-trip across all
valid inputs. The skill covers strategy design with prop_compose!,
the filtering trap and its fix, regression-file discipline,
state-machine tests via proptest-state-machine, and the
proptest-derive vs test-strategy choice.
`rust-unit-testing` — unit-test shape and assertions
Use this skill when ordinary Rust unit tests need clearer structure:
rstest fixtures and parameterized cases, fallible setup helpers,
serial_test for genuine global-state isolation, rich matcher assertions
with googletest, diff-friendly equality with pretty_assertions, and
snapshot tests with insta. It also carries a worked example for splitting
one mixed assertion helper into extraction, pure comparison, and a thin
assertion wrapper.
`kani` — bounded model checking
Use this skill when writing a harness for a small, well-bounded
property: an arithmetic invariant, a parser corner case, or a state
machine with a small alphabet. Kani is unwind-bounded by default;
the skill describes how to set #[kani::unwind(n)], when to use
kani::any and kani::assume, and when to escalate to Verus instead.
`verus` — deductive verification
Use this skill when the property must hold for unbounded inputs, when
the bounded loop in Kani times out, or when the proof composes
several lemmas. The skill covers spec/proof/exec mode
discipline, trigger heuristics for the underlying Z3 solver, the
broadcast use pattern for sequence axioms, and the layout of a
proof project that mirrors a production module.
`arch-supply-chain` — dependency hygiene and audits
Use this skill when adding a dependency, tightening a lockfile policy,
configuring cargo-vet or cargo-deny, or wiring SemVer guardrails
(cargo-semver-checks, cargo-public-api) into release. The
references describe a decentralized audit setup with imports from
the Bytecode Alliance and Mozilla, plus a deny.toml policy template.
`arch-decision-records` — Y-Statement ADRs
Use this skill when capturing a decision that is hard to reverse —
a typestate, an unsafe invariant, a verification-tool choice, a
public API shape. The skill gives the six-clause Y-Statement template
and three worked Rust examples, and explains how to supersede an
earlier ADR cleanly.