# Commit Message Template

Copy this structure for every commit. Lines starting with # are comments — do not include them.

```
<type>(<scope>): <short description in imperative mood, ≤72 chars, no period>

# --- BODY (optional) ---
# One blank line after subject.
# Explain WHY the change was made, not what was changed (the diff shows that).
# Wrap at 72 characters.
# Example:
# The previous implementation sent {"supportedFeatures": [...]} which the
# API rejected with HTTP 400. The correct payload includes a metadata
# object and a mode field.

# --- FOOTERS (optional) ---
# One blank line after body (or after subject if no body).
# Each footer on its own line.
# BREAKING CHANGE must be uppercase.
# Example footers:
#   BREAKING CHANGE: `quota` command renamed to `usage`; update any scripts.
#   Closes: #42
#   Reviewed-by: Alice
```

## Filled example — simple fix

```
fix(health): correct loadCodeAssist request body format

The API rejected the previous payload with HTTP 400 because it expected
a metadata object rather than a supportedFeatures array. Added the
required ideType, platform, and pluginType fields plus mode: HEALTH_CHECK
to prevent billing side-effects during validation.
```

## Filled example — breaking feature

```
feat(cli)!: rename `quota` subcommand to `usage`

Aligns command naming with the new used-percent framing introduced
in v0.3.0. The old `quota` name implied remaining quota, which was
the opposite of what the bar displayed.

BREAKING CHANGE: `switcher gemini quota` is now `switcher gemini usage`.
Update any shell aliases or scripts that reference the old name.
```

## Filled example — docs only

```
docs(readme): add pool sub-commands to command reference table
```
