mise Agent Rules

A Rust tool for managing development tools, environment variables, and project tasks.

Overview

Mise's guide covers registry acceptance, development commands, version resolution, Windows PATH handling, deprecations, and dependency updates. It also explains how pull-request text becomes release-note input.

Documents

├── 
├──  · symlink → AGENTS.md
├── docs
│   └── 
└── 

Techniques in this file

01 / Hard prohibitions

Name the domain assumption that breaks generic helpers

Date versions, channels, language-specific prereleases, and tool-defined latest values defeat a universal semver comparator. Resolution belongs to backend methods; lockfile versions remain opaque.

Source excerpt starting at line 311.
**Do not assume tool versions follow semver or any other orderable scheme.** mise manages hundreds of tools with wildly different versioning conventions:

02 / Contribution etiquette

Offer a supported alternative to a rejected contribution

The registry section requires evidence of popularity and maintenance for new shorthands. It also explains that explicit backend syntax already installs unlisted tools, separating registry acceptance from product capability.

Source excerpt starting at line 53.
6. **Suggest the alternative:** users can install any tool themselves via explicit backend syntax (`mise use aqua:owner/repo`, `mise use github:owner/repo`, `mise use cargo:name`, `mise use npm:name`, etc.) or by writing a [tool plugin](https://mise.jdx.dev/tool-plugin-development.html). The registry is *only* for shorthand convenience for popular tools — not for enabling installation.

03 / Verification by change type

Test PATH behavior beyond its rendered shape

Windows rules keep PATH native until an assignment is emitted into a positively identified emulator shell. Verification must execute through that PATH and inspect a native grandchild, rather than only matching a string.

Source excerpt starting at line 354.
- Windows activation tests must execute a command through the emitted PATH and verify a native Windows grandchild receives a valid semicolon-delimited PATH. Output-shape assertions alone are insufficient.

04

Tie removal to the start of user warnings

Deprecation normally warns immediately and removes after twelve months. A delayed warning is reserved for migrations that older supported clients cannot parse, and it moves the removal clock with it.

Source excerpt starting at line 303.
If a compatibility window is required, removal remains 12 months after `warn_at`, not 12 months after the initial documentation notice.

05 / Verification by change type

Unblock wrapper failures without weakening the check

When the transparent Cargo cache wrapper fails, the guide permits the equivalent command with the wrapper disabled. A successful bypass becomes diagnostic evidence to report, while permanent disabling is prohibited.

Source excerpt starting at line 14.
other sensitive or identifying details. Do not permanently disable the wrapper,and do not post externally without user authorization.

06 / Contribution etiquette

Treat PR prose as input to another product surface

Release notes come from pull-request titles and descriptions. Rewrite them when scope changes, and make behavior, examples, and adoption clear without the diff or screenshots.

Source excerpt starting at line 222.
Communique uses PR titles and descriptions to generate release notes. Write themfor a mise user who has not read the diff or this conversation.

Ideas for your repo

  1. Call out version formats that defeat generic ordering.
  2. Offer a supported path when a contribution is out of scope.
  3. Test shell behavior through real child processes.
  4. Start deprecation removal clocks from user-visible warnings.
  5. Provide an equivalent check when a cache wrapper fails.
  6. Write PR descriptions for their downstream release-note audience.
Sponsored byModem

Give your agents the whole story.

These instructions explain how to work in mise. Modem shows your agents what customers said, who is affected, and what changed.

See how Modem works