Official agent skill

Cargo Anvil Adoption

by microsoft in microsoft/oxidizer

Complete cargo-anvil adoption in an existing Rust repository after the first cargo anvil run.

OfficialMITAuto-check passed

Install Cargo Anvil Adoption

skills CLI
$ npx skills add microsoft/oxidizer --skill cargo-anvil-adoption -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/oxidizer cargo-anvil-adoption --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/oxidizer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/cargo-anvil-adoption .claude/skills/cargo-anvil-adoption && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cargo-anvil-adoption
GitHub stars
178
Token cost
~2.2k tokens
SKILL.md length
1,139 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Complete cargo-anvil adoption in an existing Rust repository after the first cargo anvil run.

  • Works in 7 steps: Establish the adoption state → Inventory the existing build system → Align the repository to Anvil → …
  • Generated Anvil files coexist with legacy CI
  • SKILL.md covers Invariants, 1. Establish the adoption state, 2. Inventory the existing… and 3. Align the repository to Anvil, plus 4 more sections
  • Calls just and cargo

What it does

Cargo Anvil Adoption is an agent skill from microsoft/oxidizer, published by the product's own GitHub organization. Complete cargo-anvil adoption in an existing Rust repository after the first cargo anvil run. Use when generated Anvil files coexist with legacy CI, recipes, scripts, tool configuration, or validation failures.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Rust. The repository describes itself as: Oxidizer is a platform for Rust service development which bridges the gaps in the crate ecosystem to deliver a turn-key solution to enable the efficient creation of high-scale… The licence is MIT.

When your agent uses it

  • Generated Anvil files coexist with legacy CI
  • Tool configuration
  • Validation failures

Example prompts

  • “/cargo-anvil-adoption”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Establish the adoption state
  2. Inventory the existing build system
  3. Align the repository to Anvil
  4. Resolve generated-content conflicts
  5. Evaluate differences before deleting duplicates
  6. Remove duplicate infrastructure
  7. Final verification

What it can do on your machine

Read from SKILL.md and the folder at commit cb3ef36. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • just
    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cargo Anvil Adoption loads about 2.2k tokens when it runs. Until then it costs about 58 tokens; SKILL.md has 1,139 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~58
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/oxidizer at commit cb3ef36, republished under its MIT licence (© microsoft). 1,139 words, ~2,233 tokens.

Download SKILL.mdSave it as .claude/skills/cargo-anvil-adoption/SKILL.md (or your agent's skills folder).
name
cargo-anvil-adoption
description
Complete cargo-anvil adoption in an existing Rust repository after the first cargo anvil run. Use when generated Anvil files coexist with legacy CI, recipes, scripts, tool configuration, or validation failures.
license
MIT
<!-- GENERATED BY cargo-anvil. DO NOT EDIT DIRECTLY. -->

Complete cargo-anvil adoption

Use this skill after the first cargo anvil run in a repository that already contained Rust build and CI infrastructure. The goal is a clean, reviewable Anvil installation that adopts the Anvil catalog as its default build and validation contract, removes duplicate capabilities, and passes the generated checks.

Do the work in the repository. Do not stop at an audit or plan unless a decision genuinely requires the user.

Invariants

  • Read the repository's instructions and design documentation before editing.
  • Preserve unrelated working-tree changes. Never discard or rewrite user work.
  • Treat existing CI, scripts, configuration, and branch policies as evidence of prior behavior to evaluate, not as behavior that must be preserved.
  • Compare legacy and Anvil behavior across command arguments, operating systems, feature sets, toolchains, failure policy, outputs, schedules, permissions, and downstream consumers. Call out meaningful differences, then prefer the Anvil behavior unless a concrete repository requirement justifies divergence.
  • Migrate justified repository requirements to Anvil-supported configuration before deleting their old implementation. Do not preserve historical customization solely to maintain exact legacy behavior.
  • Keep release, deployment, packaging, compliance, code-signing, and other capabilities outside Anvil's scope. Keep repository-specific test automation only when it covers a documented requirement that the Anvil catalog does not satisfy.
  • Change cargo-anvil templates rather than generated copies when working in the cargo-anvil source repository, then regenerate.

1. Establish the adoption state

  1. Inspect the current branch, working tree, repository root, and remotes.
  2. Read AGENTS.md, nested instruction files, design docs, and contributor documentation.
  3. Inspect .anvil.lock, generated files, and any .anvil-proposed siblings.
  4. Run cargo anvil --dry-run. Classify every proposed update, refusal, customized file, disabled item, and stale manifest entry.
  5. If Anvil prerequisites are missing, run just anvil-setup and retry.

Do not use --force merely to make the run succeed. Use it only when the repository is intentionally switching from a different tool recorded in .anvil.lock.

2. Inventory the existing build system

Search for all local and cloud build surfaces:

  • GitHub Actions, Azure DevOps pipelines, reusable templates, composite actions, and scheduled jobs;
  • root and imported Justfiles, Makefiles, task runners, and developer scripts;
  • Rust toolchain files and independent tool-version lists;
  • rustfmt.toml, clippy.toml, Cargo lint tables, deny.toml, audit config, spelling dictionaries, coverage configuration, and impact configuration;
  • mutation, Miri, Loom, fuzzing, examples, documentation, semver, external-type, license, and dependency checks;
  • badges, contributor docs, agent instructions, branch protection, rulesets, required contexts, and merge queues.

Build a capability map from each legacy entry point to its Anvil counterpart. Record meaningful differences and unmatched behavior. For every retained repository-specific capability, document the requirement that prevents using the Anvil behavior.

3. Align the repository to Anvil

Resolve differences at the policy source:

  • Merge formatting and lint policy into the repository's normal Rust, rustfmt, and Clippy configuration outside Anvil-managed regions.
  • Preserve license, source, advisory, ban, and duplicate-dependency policy in deny.toml or the relevant tool configuration.
  • Move spelling exceptions into .spelling.
  • Express coverage thresholds and opt-outs through cargo-coverage-gate metadata or narrowly scoped source attributes. Do not preserve a second coverage exclusion list when the Anvil gate cannot read it.
  • Record intentional external public types in the package metadata understood by cargo-check-external-types.
  • Ensure the root MSRV and stable toolchain selection are intentional and compatible with Anvil's deterministic selection rules.
  • Represent Miri exclusions next to the affected tests, using profile-specific cfgs when only one scheduled profile needs an exception.
  • Represent Loom support structurally with a feature, a required-feature test target, and a cfg-gated dependency.
  • Mark interactive, credentialed, destructive, or long-running examples in [package.metadata.anvil.examples].no-run.

Prefer changing repository configuration or code to weakening a generated check. Never convert discovery errors or unsupported states into silent skips. When the legacy and Anvil behaviors differ, explain the resulting behavior change and recommend the Anvil standard. Preserve the legacy behavior only when the repository has a current, explicit requirement that Anvil cannot represent.

Show full SKILL.md (508 more words)Show less

4. Resolve generated-content conflicts

For every Anvil-owned file or managed region:

  1. Determine whether the repository edit encodes real policy or is an obsolete implementation detail.
  2. Prefer the catalog behavior. Move only justified repository policy to the supported configuration surface where possible.
  3. Revert the generated content to the catalog form by running cargo anvil.
  4. Take ownership of generated content only when the repository has a durable requirement the catalog cannot represent. Document why it must diverge.
  5. Re-run cargo anvil --dry-run until there are no unexplained proposals, refusals, or manifest changes.

Do not hand-edit emitted files when their source template is available.

5. Evaluate differences before deleting duplicates

Run the narrow Anvil recipe corresponding to each legacy capability and resolve its failures first. Examples:

  • just anvil-fmt
  • just anvil-clippy
  • just anvil-doc-build
  • just anvil-pr-test
  • just anvil-pr-msrv
  • just anvil-pr-runtime-analysis
  • just anvil-pr-mutants

When a check fails, fix the root cause and rerun that specific recipe instead of repeating the entire tier. Install missing prerequisites with the matching *-setup recipe or just anvil-setup.

Compare results with the legacy command where behavior is not obviously identical. Treat disagreements as migration decisions, not automatic Anvil defects: describe the impact and adopt Anvil's behavior unless the legacy behavior serves a current requirement outside the catalog. Account for impact scoping by using ANVIL_IMPACT=off when a deliberate full-workspace comparison is required.

6. Remove duplicate infrastructure

After equivalence is established:

  • delete legacy workflows, scheduled jobs, setup actions, recipes, and scripts whose complete behavior is now owned by Anvil;
  • remove duplicate tool-version files and updaters when justfiles/anvil/versions.just is the authoritative list;
  • update badges, contributor documentation, and agent instructions to name the Anvil workflows and recipes;
  • retain scripts and pipelines only for requirements outside Anvil's scope, and document the unmet requirement and why the catalog behavior is insufficient;
  • identify required status contexts or external rulesets that must change before the cleanup can merge.

Do not change hosted branch protection or organization policy without the required authorization. Report the exact old and new contexts for the maintainer when an atomic external update is necessary.

7. Final verification

  1. Run cargo anvil and then cargo anvil --dry-run; the second run must be clean.
  2. Run just anvil-pr-fast.
  3. Run just anvil-pr for the complete local PR tier. If that is impractical, and a generated CI backend will validate the current change, ask whether to stop after the fast tier and rely on PR checks for the remaining groups. A local-only installation must run the remaining groups locally. Never describe partial validation as complete.
  4. Confirm generated README files and documentation are current.
  5. Search again for deleted workflow names, stale badges, old recipe names, duplicate version lists, and orphaned scripts.
  6. Review the final diff for unrelated changes and accidental policy loss.

Finish with:

  • what Anvil now owns;
  • what legacy infrastructure was removed;
  • what repository-specific infrastructure remains, which requirement it serves, and why the Anvil behavior is insufficient;
  • any intentional behavioral differences;
  • any branch-policy or ruleset action required before merge;
  • the exact validation completed and anything left to cloud CI.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/cargo-anvil-adoption of microsoft/oxidizer.

Open the folder on GitHubat commit cb3ef36

Compare with similar skills

Cargo Anvil Adoption next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cargo Anvil Adoption compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cargo Anvil Adoption this skillmicrosoft/oxidizer178—~2.2kAutomated safety check: PassMIT
Update V8 Versionopeninterpreter/openinterpreter69k2 repos~845Automated safety check: PassApache-2.0
Firecrawl Page Scrape Integrationfirecrawl/firecrawl190k1 repos~944Automated safety check: PassISC
Migrate Core Code to Submodulestinyhumansai/openhuman42k—~2.6kAutomated safety check: PassGPL-3.0
Rust TDD Workflowrtk-ai/rtk83k—~753Automated safety check: NotesApache-2.0
OpenLogi macOS Permissions TriageAprilNEA/OpenLogi23k—~2.5kAutomated safety check: NotesApache-2.0

Similar skills

  • Update V8 Version

    openinterpreter/openinterpreter

    Bumps the pinned v8 and rusty_v8 versions in Codex, validates the release-candidate path with the v8-canary check, and traces failures to upstream build changes.

    69k GitHub starsUsed in 2 repos~845 tokens
    DevOps & CloudAuto-check passed
  • Adds Firecrawl's /scrape endpoint to application code to pull markdown, HTML, links, screenshots or structured data from a single known URL.

    190k GitHub starsUsed in 1 repo~944 tokens
    Data & AnalyticsAuto-check passed
  • Migrate Core Code to Submodules

    tinyhumansai/openhuman

    Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.

    42k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Enforces red-green-refactor for Rust work, with idiomatic test patterns, a naming convention and a pre-commit gate of cargo fmt, clippy and test.

    83k GitHub stars~753 tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.

    23k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check: notes
  • Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.

    5.6k GitHub starsUsed in 3 repos~1.1k tokens
    DevelopmentAuto-check passed

More from microsoft/oxidizer

  • Code Review

    microsoft/oxidizer

    Official

    Review guidance for pull requests in this repository. An agent skill from microsoft/oxidizer.

    178 GitHub stars~1.7k tokensUpdated today
    Auto-check passed

Works with

Questions about Cargo Anvil Adoption

What does Cargo Anvil Adoption do?

Complete cargo-anvil adoption in an existing Rust repository after the first cargo anvil run. Cargo Anvil Adoption is an agent skill from microsoft/oxidizer, published by the product's own GitHub organization. Complete cargo-anvil adoption in an existing Rust repository after the first cargo anvil run.

When should I use Cargo Anvil Adoption?

Cargo Anvil Adoption fits situations like: generated Anvil files coexist with legacy CI; tool configuration; validation failures.

How do I install Cargo Anvil Adoption in Claude Code?

Run `npx skills add microsoft/oxidizer --skill cargo-anvil-adoption -a claude-code`. Or copy the skill folder (.github/skills/cargo-anvil-adoption in microsoft/oxidizer) into .claude/skills/cargo-anvil-adoption in your project. Claude Code loads it when a task matches its description.

How do I install Cargo Anvil Adoption in Codex?

Run `npx skills add microsoft/oxidizer --skill cargo-anvil-adoption -a codex`. Or copy the skill folder (.github/skills/cargo-anvil-adoption in microsoft/oxidizer) into .agents/skills/cargo-anvil-adoption in your project. Codex loads it when a task matches its description.

Can I use Cargo Anvil Adoption in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/oxidizer --skill cargo-anvil-adoption -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cargo-anvil-adoption, .gemini/skills/cargo-anvil-adoption, .github/skills/cargo-anvil-adoption and .opencode/skills/cargo-anvil-adoption in your project.

What does Cargo Anvil Adoption need to run?

Going by SKILL.md and its folder, Cargo Anvil Adoption needs the command-line tools its instructions call (just and cargo).

Does Cargo Anvil Adoption access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Cargo Anvil Adoption safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cargo Anvil Adoption use?

Cargo Anvil Adoption is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cargo Anvil Adoption use?

About 2.2k tokens (SKILL.md is roughly 8.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cargo Anvil Adoption?

Skills that share tags, products or a category with Cargo Anvil Adoption: Update V8 Version (openinterpreter/openinterpreter, 69k stars), Firecrawl Page Scrape Integration (firecrawl/firecrawl, 190k stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars) and Rust TDD Workflow (rtk-ai/rtk, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cargo Anvil Adoption?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/oxidizer, which has 178 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/oxidizer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.