---
title: "Author a Skill for your Rust crate · skilld"
description: "Draft a Skill for your crate, include its files, and check the package with Cargo before publishing to crates.io."
canonical_url: "https://skilld.dev/learn/author-rust-package-skills"
last_updated: "2026-09-08T05:45:32.738Z"
meta:
  "og:description": "Draft a Skill for your crate, include its files, and check the package with Cargo before publishing to crates.io."
  "og:image": "https://skilld.dev/_og/d/a_~c2tpbGxkLCBhZ2VudCBza2lsbHMgd3JpdHRlbiBieSByZWFsIG1haW50YWluZXJz%2Cc_Page.takumi%2Cdescription_~Q3VyYXRlZCBhZ2VudCBza2lsbHMgYnkgaHVtYW5zLCB3cml0dGVuIGJ5IHJlYWwgbWFpbnRhaW5lcnMgaW4gdGhlaXIgb3duIEdpdEh1YiByZXBvcw%2Cp_Ii9sZWFybi9hdXRob3ItcnVzdC1wYWNrYWdlLXNraWxscyI%2Cs_tpp2_eLiW8z-ETOi.png"
  "og:image:alt": "skilld, agent skills written by real maintainers"
  "og:image:height": "600"
  "og:image:type": image/png
  "og:image:width": "1200"
  "og:title": "Author a Skill for your Rust crate"
  "twitter:image": "https://skilld.dev/_og/d/a_~c2tpbGxkLCBhZ2VudCBza2lsbHMgd3JpdHRlbiBieSByZWFsIG1haW50YWluZXJz%2Cc_Page.takumi%2Cdescription_~Q3VyYXRlZCBhZ2VudCBza2lsbHMgYnkgaHVtYW5zLCB3cml0dGVuIGJ5IHJlYWwgbWFpbnRhaW5lcnMgaW4gdGhlaXIgb3duIEdpdEh1YiByZXBvcw%2Cp_Ii9sZWFybi9hdXRob3ItcnVzdC1wYWNrYWdlLXNraWxscyI%2Cs_tpp2_eLiW8z-ETOi.png"
  "twitter:image:alt": "skilld, agent skills written by real maintainers"
---

> Index of every page on this site: [llms.txt](https://skilld.dev/llms.txt)

# **Author a Skill for your Rust crate**

Draft a Skill for your crate, include its files, and check the package with Cargo before publishing to crates.io.

Authoring guide

## 1. Draft your Skill

crates.io

[Choose your package](https://skilld.dev/make-skill?ecosystem=crates)

Open your agent in the package repository. Give it these instructions to draft your Skill.

[Read the authoring Skill](https://raw.githubusercontent.com/skilld-dev/skilld/main/skills/generate-package-skill/SKILL.md)

Read https://raw.githubusercontent.com/skilld-dev/skilld/main/skills/generate-package-skill/SKILL.md. Draft a Skill for the package I maintain, published through crates.io, using this repository. Read Cargo.toml, the public API, and the current official documentation. Show the draft for review before replacing existing Skills.

Point your agent at the crate directory containing `**Cargo.toml**`. For a workspace, use the member crate you maintain. Ask it to save the draft in `**skills/your-skill/SKILL.md**`.

Cover public exports, feature flags, error handling, and supported Rust versions. State which features each example needs. Explain ownership or lifetime constraints where they affect real usage.

## 2. Review the draft

Compile the examples with their stated features. Use [**the cross-Agent selection and task checks**](https://skilld.dev/learn/create-agent-skills#check-selection-and-task-completion-separately) before publishing the Skill. Check that they use public APIs from the release you plan to publish. Remove generic Rust advice and cite your crate documentation for specific rules. Review the draft before committing it.

## 3. Include and check the Skill

Check `**include**` and `**exclude**` under `**[package]**` in `**Cargo.toml**`. If you use an inclusion list, add `**skills/****` beside the existing release paths. Keep every file referenced by `**SKILL.md**`. See Cargo's [**include and exclude rules**](https://doc.rust-lang.org/cargo/reference/manifest.html#the-include-and-exclude-fields).

From the crate directory, list the archive contents:

```bash
cargo package --list
```

Confirm the list includes your Skill and its references. Then run the publishing checks without uploading:

```bash
cargo publish --dry-run
```

See the [**Cargo package**](https://doc.rust-lang.org/cargo/commands/cargo-package.html) and [**Cargo publish**](https://doc.rust-lang.org/cargo/commands/cargo-publish.html) references.

## 4. Publish and share

Commit the reviewed Skill and publish through your normal [**crates.io**](http://crates.io) release process. Link to its repository directory from the crate README. Adding the crate as a dependency does not automatically install the Skill into an agent. Review the Skill when public APIs, default features, or compiler requirements change.

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://skilld.dev/#website","@type":"WebSite","description":"Curated agent skills by humans, written by real maintainers in their own GitHub repos","name":"skilld","url":"https://skilld.dev/"},{"@id":"https://skilld.dev/learn/author-rust-package-skills#webpage","@type":"WebPage","description":"Draft a Skill for your crate, include its files, and check the package with Cargo before publishing to crates.io.","name":"Author a Skill for your Rust crate","url":"https://skilld.dev/learn/author-rust-package-skills","isPartOf":{"@id":"https://skilld.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://skilld.dev/learn/author-rust-package-skills"]}]}]}
```