ctl-core 0.6.19

Shared clap chassis for the *ctl CLIs
Documentation
# shared-rust-tasks Specification

## Purpose
Every ctl repository runs the same standard Rust tasks from one file that
ctl-core ships, included at a pinned ctl-core release, so a fix to a shared
task reaches every repository by bumping the ref.

## Requirements

### Requirement: ctl-core ships the standard Rust tasks as one TOML task file

`tasks/rust.toml` SHALL define `check:toolchain`, `format`, `lint`, `test`,
`test:doc`, `deny`, `deny:advisories`, `deps`, `semver`, and `verify`, and
ctl-core's `mise.toml` SHALL include it by path.

#### Scenario: ctl-core's own tasks

- **WHEN** `mise tasks info verify --json` runs in ctl-core
- **THEN** the task's source is `tasks/rust.toml` and its dir is the
  repository root

### Requirement: verify depends on the repository's own check:features

`verify` SHALL depend on `check:features` by name, so it runs the task the
including repository defines.

#### Scenario: A consumer with its feature sets

- **WHEN** a repository includes `tasks/rust.toml` by `git::` URL at a
  release tag and defines `check:features`
- **THEN** `mise tasks deps verify` lists `check:features`, and
  `mise run verify` runs the repository's feature checks

#### Scenario: Experimental off

- **WHEN** a repository includes the file with mise's `experimental` setting
  off
- **THEN** `mise run verify` fails with a missing task, not a pass

### Requirement: verify depends on the repository's own check:repo

`verify` SHALL depend on `check:repo` by name, so it runs the checks the
including repository adds to the shared ones.

#### Scenario: A consumer with checks of its own

- **WHEN** a repository includes `tasks/rust.toml` at `v0.6.14` and defines
  `check:repo` with `depends = ["specs", "lint:typos"]`
- **THEN** `mise tasks deps verify` lists `check:repo`, and
  `mise run verify` runs `specs` and `lint:typos`

#### Scenario: A repository without check:repo

- **WHEN** a repository includes `tasks/rust.toml` at `v0.6.14` and does not
  define `check:repo`
- **THEN** `mise run verify` fails with a missing task, not a pass