add-terminal-commandlisted
Install: claude install-skill KonH/GlobalStrategy
# add-terminal-command
The web client's debug terminal (`src/Game.WebClient/Terminal/`) discovers every
`ICommand` type in `src/Game.Commands/` via reflection (`CommandRegistry`) — a new
command ships with just a new build, no web-client code change required. Tab
completion, however, depends on every domain-id parameter being annotated so the
terminal knows what to suggest. This skill is the checklist for keeping that
contract intact whenever an `ICommand` type is added or changed.
## When this applies
- Adding a new `ICommand` record/struct to `src/Game.Commands/`.
- Adding a new field or record-positional property to an existing `ICommand` type.
- Changing a parameter's type on an existing `ICommand` type (e.g. `string` → `int`,
or widening a closed string set).
## Checklist
1. **Every domain-id parameter gets a `ParamSuggestionAttribute`.** A "domain-id
parameter" is any public field or record-positional property whose name ends in
`Id`, or is named `Locale`/`Interval` (the two known non-`Id` exceptions already
in the codebase). Pick the attribute from `src/Game.Commands/ParamSuggestion.cs`
that matches what the id refers to:
- `[CountryId]` — a country id (`CountryConfig.Countries`)
- `[OrgId]` — an organization id (`OrganizationConfig.Organizations`)
- `[ProvinceId]` — a province id (`ProvinceConfig.Provinces`)
- `[ActionId]` — an action id (`ActionConfig.Actions`)
- `[RoleId]` — a character role id (`CharacterConfig.Roles`)
- `[Chara