--- name: models description: List every model usable by each installed AI CLI (claude, codex, copilot, antigravity, kiro) and attach capability tags from references/model-tags.md. Syncs the tag table to $JSC_HOME/model-tags.tsv via tools/model-tags.sh so jsc-sdlc gates can be enforced in code, states which tags each SDLC stage requires (plan and analyze need reasoning-max, implement needs coding, maintain any), and resolves each stage's preferred model chain via tools/model-config.sh (project .jsc/models overrides $JSC_HOME/models.conf) for switch suggestions only. Use when checking model fitness, inventorying models, or reviewing stage gating; not for switching models or editing the config files. --- # models — list CLI models with capability tags ## Steps 1. Run `jsc-cli/tools/detect-clis.sh` to get the installed CLIs. 2. For each CLI, read the available models and the model currently in use. This step **MUST run as a sub agent**: | CLI | Source | | --- | --- | | claude | `model` in `~/.claude/settings.json`; known families are in the claude rows of model-tags.md | | codex | `model` in `~/.codex/config.toml` | | copilot | model options listed in the copilot config (`~/.config/copilot/`) | | antigravity | models listed in the agy config | | kiro | models listed in the kiro config | If a config is unreadable, list that CLI's known default models and mark each one with the literal label 「預設推定」 (assumed default). 3. Attach capability tags to every model per `references/model-tags.md`. Handle unlisted models per the closing rule of that file. 4. Output a table with four columns: CLI, model, tags, currently in use. 5. Run `tools/model-tags.sh sync` to write the tag table to `$JSC_HOME/model-tags.tsv`, and report the path. This file is what `jsc-hooks/hooks/sdlc-gate.sh` reads, so the SDLC gate stays broken until it exists. Done when the command prints the path. 6. Append the SDLC stage requirement table (plan and analyze need `reasoning-max`; implement needs `coding`; maintain accepts any), and state that gating is done in code by `sdlc-gate.sh lock {stage}` against the transcript's actual model id — **the models listed here are never allowed to self-assess their own tags**. 7. Run `jsc-cli/tools/model-config.sh list` and append a 「階段偏好模型」 table right after the stage requirement table, with three columns: stage, chain, source (`project` / `global`). State below the table that the chain does **not** grant passage: it only names the model to suggest switching to when the gate blocks, and expresses preference among models that already satisfy the required tags. Done when the table shows all four stages, with `-` for unconfigured ones.