# Development Tasks This project uses [mise][mise] to manage development tools and run common tasks. Mise ensures everyone uses the same tool versions and provides convenient commands for formatting, linting, testing, and more. Every task is a shell script in `scripts/`, so you can run one without mise too. ## Quick Reference ```bash mise run check # Check for compilation errors mise run test # Run tests with coverage mise run format # Format all files (Rust, TOML, Markdown, YAML, shell) mise run lint # Lint all files mise run audit # Audit dependencies for vulnerabilities mise run setup:agents # Link the agent config for your harness and version control ``` Run `mise tasks` for the full list, with aliases. ## Without Mise Run scripts directly from `scripts/`: ```bash ./scripts/format/rust # Instead of: mise run format:rust ./scripts/lint/rust # Instead of: mise run lint:rust ./scripts/test/rust # Instead of: mise run test:rust ./scripts/check/rust # Instead of: mise run check:rust ./scripts/audit/rust # Instead of: mise run audit:rust ``` When running scripts directly, ensure required tools are installed and available in your PATH. ## Toolchain Tools managed by mise (see `.config/mise.toml`, pinned in `.config/mise.lock`): - **Rust stable** with clippy and llvm-tools - **Rust nightly** with rustfmt (for unstable formatting options) - **cargo-audit** - Security vulnerability auditing - **cargo-llvm-cov** - Code coverage - **cargo-nextest** - Test runner - **cargo-outdated** - Dependency freshness checking - **cargo-sort** - Cargo.toml sorting - **editorconfig-checker**, **markdownlint-cli2**, **shellcheck**, **shfmt**, **taplo** and **yamlfmt** - Linters and formatters for everything that is not Rust - **gum** - Prompts for `mise run setup:agents` [mise]: https://mise.jdx.dev/