claude_version 1.2.0

Claude Code version manager: install, upgrade, and session lifecycle
Documentation
# Parameter Interactions

### Scope

- **Purpose**: Cross-parameter constraints and dependency rules.
- **Responsibility**: Interaction table, validation order, mutual exclusions, and combined semantics.
- **In Scope**: Pairwise and group-level parameter interactions.
- **Out of Scope**: Individual parameter details (→ `param/`), group membership (→ `param_group/`).

How cm parameters interact when combined. See [param/](param/readme.md) and [param_group/](param_group/readme.md) for individual parameter specifications.

### Interaction Table

| Parameters | Interaction | Outcome |
|------------|-------------|---------|
| `dry::1` + `force::1` | Precedence | `dry::` wins; action previewed, not executed |
| `dry::1` + `force::0` | Independent | Dry-run preview shown; `force::` has no effect |
| `dry::0` + `force::1` | Independent | Confirmation skipped; command executes |
| `key::` + `value::` | Required pair | Both required for `.settings.set`; either alone is invalid |
| `v::0` + `format::json` | Independent | JSON output rendered at minimal verbosity; required keys not stripped |
| `v::2` + `format::text` | Independent | Text output rendered with extra diagnostic lines |
| `version::` + `force::1` | Additive | Installs specified version; skips "already installed" guard |
| `version::` + `dry::1` | Additive | Shows install plan for specified version; no install occurs |

### Required Combinations

`.settings.set` requires both `key::` and `value::`:

```
.settings.set key::theme value::dark   -- both present: valid
.settings.set key::theme               -- value:: missing: exit 1
.settings.set value::dark              -- key:: missing: exit 1
```

### Precedence Rules

When `dry::1` and `force::1` are both present, `dry::` takes precedence:

```
.version.install version::stable dry::1 force::1
  -- Output: dry-run preview of install
  -- Action: no install executed (dry wins)
```

### Independent Parameters

`v::` and `format::` operate on orthogonal dimensions (depth vs structure) and do not interact:

- `v::0` controls how many fields are shown
- `format::json` controls the structure of those fields
- Combining them applies both transformations independently

### Parameter Applicability

`version::` applies to: [`.version.install`](command/version.md#command--4-versioninstall), [`.version.guard`](command/version.md#command--5-versionguard) (override-only on guard; stored preference unchanged).

`dry::` applies to: [`.version.install`](command/version.md#command--4-versioninstall), [`.version.guard`](command/version.md#command--5-versionguard), [`.processes.kill`](command/processes.md#command--8-processeskill), [`.settings.set`](command/settings.md#command--11-settingsset).

`force::` applies to: [`.version.install`](command/version.md#command--4-versioninstall), [`.version.guard`](command/version.md#command--5-versionguard), [`.processes.kill`](command/processes.md#command--8-processeskill).

`v::` applies to: [`.status`](command/root.md#command--2-status), [`.version.show`](command/version.md#command--3-versionshow), [`.version.install`](command/version.md#command--4-versioninstall), [`.version.list`](001_commands.md#command--6-version-list), [`.version.guard`](command/version.md#command--5-versionguard), [`.version.history`](001_commands.md#command--12-version-history), [`.processes`](001_commands.md#command--7-processes), [`.processes.kill`](command/processes.md#command--8-processeskill), [`.settings.show`](001_commands.md#command--9-settings-show), [`.settings.get`](001_commands.md#command--10-settings-get).

`format::` applies to: [`.status`](command/root.md#command--2-status), [`.version.show`](command/version.md#command--3-versionshow), [`.version.install`](command/version.md#command--4-versioninstall), [`.version.list`](001_commands.md#command--6-version-list), [`.version.guard`](command/version.md#command--5-versionguard), [`.version.history`](001_commands.md#command--12-version-history), [`.processes`](001_commands.md#command--7-processes), [`.processes.kill`](command/processes.md#command--8-processeskill), [`.settings.show`](001_commands.md#command--9-settings-show), [`.settings.get`](001_commands.md#command--10-settings-get).