MCPInstall

rust

Write and change Rust the way THIS workspace already does it, NOT by generic defaults — a systems-programming reference carrying the real crate boundaries, error model, and conventions for storage engines, binary formats, Arrow/DataFusion, search and vector indexing, async concurrency, testing, and unsafe discipline, so a change lands idiomatic and review-ready instead of merely compiling. Use when a task touches this workspace's Rust crates and should follow its systems-level conventions rather than boilerplate.

Installs
133
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/ulpi-io/skills --skill rust
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads rust automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

<EXTREMELY-IMPORTANT> This skill is the routing shell over the Rust reference set, not the whole systems handbook.

Non-negotiable rules:

  1. Identify the subsystem before coding. Load only the relevant references.
  2. Safe Rust by default. unsafe only when justified — every unsafe block gets a // SAFETY: comment.
  3. Zero-copy where possible. mmap'd segments, &str/&[u8] references into pages. Never copy data without reason.
  4. Error types per crate. thiserror enums in library crates. Never anyhow in libraries — only in binaries/tests.
  5. Async with tokio. All I/O is async. CPU-bound work on spawn_blocking. Never block the tokio runtime.
  6. Workspace crate structure. One crate per subsystem. Depend downward — never circular.
  7. Property tests for invariants. proptest for round-trips, type coercion, binary parsing. </EXTREMELY-IMPORTANT>

rust

Inputs

  • $request: The crate, subsystem, bug, feature, or review target

Goal

Route Rust work through the right subsystem conventions so changes follow the workspace’s systems-programming patterns instead of generic Rust defaults.

Step 0: Identify the subsystem

Decide which part of the Rust surface the task touches:

  • storage engine
  • binary formats
  • type system
  • Arrow or DataFusion
  • wire protocols
  • search or vectors
  • arena or graph code
  • geo indexing
  • async or concurrency
  • testing
  • unsafe or error design

Success criteria: The task is mapped to the right subsystem before references are loaded.

Step 1: Load only the relevant references

Use the routing table to pick the matching files. Do not bulk-load the full reference tree.

Task / AreaRead
Toolchain, workspace layout, key crates, Cargo conventionsreferences/stack.md
WAL, mmap, segments, MVCC, compaction, io_uring, backendsreferences/storage-engine.md
Custom on-disk formats, zero-copy parsing, packed structsreferences/binary-formats.md
Database type system, disk/exec types, Arrow interopreferences/type-system.md
DataFusion table providers, UDFs, Arrow RecordBatch, planningreferences/datafusion-arrow.md
pgwire server, MySQL protocol, dialect mapping, ORM compatreferences/wire-protocols.md
tantivy FTS, HNSW vectors, SIMD distance, hybrid searchreferences/search-vector.md
bumpalo arenas, graph adjacency, traversal algorithmsreferences/arena-graph.md
R-tree spatial index, geo predicates, WGS84 distancereferences/geo-rtree.md
tokio async, io_uring, crossbeam, lock-free structures, MVCCreferences/async-concurrency.md
proptest, deterministic testing, integration test patternsreferences/testing.md
thiserror hierarchies, unsafe patterns, safety invariantsreferences/error-unsafe.md

Multiple tasks? Read multiple files.

Success criteria: Only the subsystem-relevant Rust guidance is active.

Step 2: Implement with the core Rust guardrails

Keep these rules active:

  • safe Rust by default; unsafe only when justified with // SAFETY:
  • error types match crate boundaries (thiserror in libs, anyhow only in bins/tests)
  • async code does not block the runtime; CPU work on spawn_blocking
  • owned vs borrowed data choices are deliberate; prefer &[u8] over Vec<u8> in signatures
  • explicit use imports — no glob imports except in test modules
  • #[must_use] on functions returning Result or computed values
  • #[inline] only on small functions in hot loops — never on public API
  • Send + Sync bounds on trait objects crossing async boundaries
  • #[derive(Debug)] on all public types; #[derive(Clone)] only when cheap
  • feature flags for optional crate deps — #[cfg(feature = "...")]
  • tests match the risk: unit, integration, property, snapshot, or domain-specific verification

Success criteria: The implementation fits the workspace’s systems-level quality bar.

Step 3: Verify the change

Use the narrowest relevant verification loop:

  • cargo fmt
  • cargo clippy -- -D warnings
  • focused crate tests
  • subsystem-specific tests such as proptest or snapshots when appropriate

Success criteria: The Rust surface is validated the way this workspace expects.

Guardrails

  • Do not inline the whole Rust handbook in SKILL.md.
  • Do not skip subsystem identification.
  • Do not use anyhow in library crates unless the project specifically allows it there.
  • Do not add disable-model-invocation; this is a normal domain skill.
  • Do not leave unsafe invariants undocumented.

When To Load References

  • references/stack.md Use for workspace/toolchain context.

  • then only the task-relevant subsystem files under references/

Output Contract

Report:

  1. which Rust references were loaded
  2. the subsystem pattern applied
  3. the change made
  4. the verification run

FAQ

What does the rust skill do?

Write and change Rust the way THIS workspace already does it, NOT by generic defaults — a systems-programming reference carrying the real crate boundaries, error model, and conventions for storage engines, binary formats, Arrow/DataFusion, search and vector indexing, async concurrency, testing, and unsafe discipline, so a change lands idiomatic and review-ready instead of merely compiling. Use when a task touches this workspace's Rust crates and should follow its systems-level conventions rather than boilerplate.

How do I install rust?

Run npx skills add https://github.com/ulpi-io/skills --skill rust in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/rust/ (personal) or .claude/skills/rust/ (project).

Which AI agents can use rust?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is rust safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains rust?

It is published by ulpi-io in ulpi-io/skills. It has 133 recorded installs.

More from ulpi-io/skills

View all →

frontend-design-ui-ux

ulpi-io/skills

Produce a distinctive, LOCKED design language plus an implementation-ready UX/UI spec, written to .ulpi/design/: a per-brief visual identity (palette, type, signature), the design system to build on, user flows and states, component briefs, and accessibility constraints. Commits to a bold aesthetic direction, bans AI-slop by name, and locks the identity so every screen and future session stays consistent. Can visit inspiration links with the browse skill to extract real design DNA. Ends with a build handoff that a delegated engineering agent implements — a DESIGN-SPEC skill that produces the spec, never production UI code. Use for new features, redesigns, or design-system work where the build should follow a locked spec.

Frontend & Design2.4K installs

laravel-filament

ulpi-io/skills

Open the skill to read its SKILL.md instructions.

Backend & APIs444 installs

cost-estimate

ulpi-io/skills

Open the skill to read its SKILL.md instructions.

300 installs

browse

ulpi-io/skills

Open the skill to read its SKILL.md instructions.

277 installs

code-simplify

ulpi-io/skills

Open the skill to read its SKILL.md instructions.

185 installs

git-merge-expert

ulpi-io/skills

Open the skill to read its SKILL.md instructions.

Popular backend & apis skills

View category →

find-skills

vercel-labs/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

OfficialBackend & APIs4.1M installs

entra-app-registration

microsoft/azure-skills

Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.

OfficialBackend & APIs566.7K installs

This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).

Backend & APIs514.8K installs

embedded-captions

heygen-com/hyperframes

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Backend & APIs453.3K installs

entra-agent-id

microsoft/azure-skills

Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).

OfficialBackend & APIs336.6K installs

neon

neondatabase/agent-skills

Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.

Backend & APIs237.1K installs