The req script provides CLI prompts for requirements-driven software development.
The defined prompts are exposed as /req- commands within various CLIs and Agents.
This allows them to be run both as a Python package (installed as req, usereq, or use-req) and directly using uvx.
Quick Start | Feature Highlights | Prompts and Agents | Default Workflow | Supported CLIs, Agents, and Extensions | Known Issues | Legacy Mode
π§ DRAFT: πΎ Alpha Development πΎ - Work in Progress ποΈ π§
- Astral
uvtool is required to runscripts/req.shand project CLI workflows. - When needed, you can generate a
requirements.txtfile withuv export --format requirements-txt > requirements.txt. - Supported environment:
linux - Python 3.11+
- You will no longer need to read the codebase.
- It stops the Agent from asking more questions and makes it just do it.
- Drives development through requirement changes.
- Keeps development under control.
- Usable as skills, or agents, or prompts.
- Creates a common interface for different vendor CLIs and Agents.
- Creates Software Requirements Specification [SRS] file, optimized for LLM Agents, for new or existing projects.
- Keeps source code documentation updated and optimized for LLM Agents reasoning.
- Optimized credits usage.
- Use git worktree to parallelize tasks (only on clean git repositories)
- Provide source-code analysis tool, that supports different programming languages: Python, C, C++, C#, Rust, JavaScript, TypeScript, Java, Go, Ruby, PHP, Swift, Kotlin, Scala, Lua, Shell, Perl, Haskell, Zig, Elixir.
- Support static-code analysis with Pylance, Ruff or customizable Command-Line commands.
- Support customizable guidelines.
- Supports Conventional Commit Standards and is compatible with release-changelog-builder-action.
- Compatible with G/Git-Alias CLI.
| Prompt | Description |
|---|---|
write |
Produce a SRS draft based on the User Request description |
create |
Write a Software Requirements Specification using the project's source code |
recreate |
Reorganize and update the Software Requirements Specification based on source code analysis (preserve requirement IDs) |
renumber |
Deterministically renumber requirement IDs in the Software Requirements Specification without changing requirement text or order |
analyze |
Produce an analysis report |
change |
Update the requirements and implement the corresponding changes |
check |
Run the requirements check |
cover |
Implement minimal changes to cover uncovered existing requirements |
fix |
Fix a defect without changing the requirements |
implement |
Implement source code from requirements (from scratch) |
new |
Implement a new requirement and the corresponding source code changes |
refactor |
Perform a refactor without changing the requirements |
readme |
Write README.md from user-visible implementation evidence |
references |
Write a REFERENCES.md using the project's source code |
workflow |
Write a WORKFLOW.md using the project's source code |
Click to zoom flowchart image.
- Supported environment:
linux - Python 3.11+
- Install the
uvtool from: https://docs.astral.sh/uv/getting-started/installation/
Here the typical project's tree, except for .req directory you can configurare the other directories according your project layout:
.
βββ .req/
β βββ useReq/req files
βββ docs/
β βββ REQUIREMENTS.md
β βββ REFERENCES.md
β βββ WORKFLOW.md
βββ guidelines/
β βββ User's guidelines
βββ src/
β βββ Source code
βββ tests/
βββ Unit tests suite
uvx --from git+https://github.com/Ogekuri/useReq.git req \
--base myproject/ \
--docs-dir myproject/docs/ \
--guidelines-dir myproject/guidelines_docs/ \
--tests-dir myproject/tests/ \
--src-dir myproject/src/ \
--provider codex:prompts \
--verbose --debuguv tool install usereq --force --from git+https://github.com/Ogekuri/useReq.gituv tool uninstall usereq- Install on a project in path
project_path, wheredocs/,guidelines/,src/, andtests/already created:
- Typical Install:
req \
--base "project_path" --docs-dir "docs/" --guidelines-dir "guidelines/" \
--src-dir "src/" --tests-dir "tests/" \
--provider claude:prompts,agents,skills \
--provider codex:prompts \
--provider github:prompts,agents,skills
- Full-Features Install:
req \
--base "project_path" --docs-dir "docs/" --guidelines-dir "guidelines/" \
--src-dir "src/" --tests-dir "tests/" \
--upgrade-guidelines \
--provider claude:prompts,agents,skills:enable-models,enable-tools \
--provider codex:prompts,skills \
--provider gemini:prompts,skills \
--provider github:prompts,agents,skills:enable-models,enable-tools \
--provider kiro:prompts,agents,skills:enable-models,enable-tools \
--provider opencode:prompts,agents,skills:enable-models,enable-tools \
--enable-static-check C=Command,cppcheck,--error-exitcode=1,\"--enable=warning,style,performance,portability\",--std=c11 \
--enable-static-check C=Command,clang-format,--dry-run,--Werror \
--enable-static-check C++=Command,cppcheck,--error-exitcode=1,\"--enable=warning,style,performance,portability\",--std=c++20 \
--enable-static-check C++=Command,clang-format,--dry-run,--Werror \
--enable-static-check Python=Pylance \
--enable-static-check Python=Ruff
- Use
/req-writeor/req-createto create requirements - Use
/req-implementto implement source-code from requirements, or/req-coverto cover new requirements (documentation). - Use
/req-workflowand/or/req-referencesto update project's documentation. - Star to use
/req-change,/req-new, and/req-fix.
- Run
reqto create or recreate useReq resources in your project repository (depending on enabled providers and artifact types). This can include:.codex,.claude,.github,.gemini,.kiro,.opencode,.req, and.vscode.- You can run
reqfrom any directory:- Use
--base <project-folder>to target a specific project directory. - Use
--hereto target the current working directory as the project root. - If you run it from inside the project directory, use
--here(you cannot omit both--baseand--herefor initialization); you must still provide--guidelines-dir,--docs-dir,--tests-dir, and--src-dir(all must exist under the project base) unless you use--update.
- Use
--docs-diris the requirements documentation directory (must exist under the project base); if it is empty,REQUIREMENTS.mdis generated from the packaged template.--guidelines-dirmust be an existing directory under the project base, and can contain the user's guideline files.--src-diris repeatable and can be provided multiple times to include multiple source directories (each must exist under the project base).- Use one or more
--provider SPECparameters (at least one is required) to configure provider activation, artifact types, and options:SPECformat:PROVIDER:ARTIFACTS[:OPTIONS]PROVIDER:codex,claude,gemini,github,kiro, oropencode.ARTIFACTS: comma-separated list from{prompts, agents, skills}.OPTIONS: (optional) comma-separated list from{enable-models, enable-tools, prompts-use-agents, legacy}.- Example:
--provider github:prompts,agents:enable-models,enable-tools
- Artifact types (specified within the
--providerspec):skillsartifact generates skill resources for the provider.promptsartifact generates prompts/commands resources for the provider.agentsartifact generates agent resources for the provider.
--enable-static-check SPECEnable static check configuration for a language (repeatable). SPEC format:LANG=MODULE[,CMD[,PARAM...]].- Supported
MODULEvalues:Dummy,Pylance,Ruff,Command(case-insensitive). - Entries are merged into
.req/config.jsonwithout replacing existing ones: existing entries are preserved, identity-duplicates are ignored, and only new non-duplicate entries are appended per language.
- Supported
- You can run
- You need to run
reqagain if you add or remove requirement-related files in the documentation directory or any files in theguidelines/directory. - Option
prompts-use-agents(within a--providerspec) generates prompt files as agent-only references (adds anagent:front matter field) where supported (GitHub prompts, Claude commands, and OpenCode commands). - Add
--verboseand--debugto get detailed and diagnostic output. - Add
--updateto update an existing installation (requires an existing.req/config.jsonunder the project base).- Add
--preserve-modelsto use and preserve.req/models.jsonduring installation.
- Add
- Option
legacy(within a--providerspec) enables the legacy mode support (see below). - Options
enable-modelsandenable-tools(within a--providerspec) includemodel:andtools:fields when available from centralized models configuration. - Add
--add-guidelinesto copy packaged guideline templates into--guidelines-dirwithout overwriting existing files. - Add
--upgrade-guidelinesto copy packaged guideline templates into--guidelines-dirand overwrite existing files. - Add
-h/--helpto print command help and exit. - Add
--ver/--versionto print the installed package version and exit. - Add
--removeto remove resources generated by useReq from the target project (requires--baseor--hereand an existing.req/config.json; removes.req/and generated provider artifacts). - Add
--upgradeto self-upgrade useReq viauv. - Add
--uninstallto uninstall useReq viauv.
-
Count tokens and chars for the given files (standalone, no --base/--here required).
--files-tokens FILE [FILE ...] -
Generate LLM reference markdown for the given files (standalone, no --base/--here required).
--files-references FILE [FILE ...] -
Generate compressed output for the given files (standalone, no --base/--here required).
--files-compress FILE [FILE ...] -
Find and extract specific constructs from the given files (standalone, no --base/--here required).
--files-find TAG PATTERN FILE [FILE ...] -
Run static analysis on the given files using tools configured in
.req/config.json(standalone, no --base/--here required).--files-static-check FILE [FILE ...] -
Count tokens and chars for files directly under configured
docs-dir(here-only project scan:--hereis implied when omitted,--baseis not allowed, and explicit--docs-diris ignored).--tokens -
Generate LLM reference markdown for git-tracked source files under configured
src-dirdirectories (here-only project scan:--hereis implied when omitted,--baseis not allowed).--references -
Generate compressed output for git-tracked source files under configured
src-dirdirectories (here-only project scan:--hereis implied when omitted,--baseis not allowed).
--compress -
Find and extract specific constructs from git-tracked source files under configured
src-dirdirectories (here-only project scan:--hereis implied when omitted,--baseis not allowed).--find TAG PATTERN -
Run static analysis on git-tracked source files under configured
src-dirdirectories using tools configured in.req/config.json(here-only project scan:--hereis implied when omitted,--baseis not allowed).--static-check -
Check repository integrity for the configured git path: clean working tree and valid HEAD (here-only project scan:
--hereis implied when omitted,--baseis not allowed).--git-check -
Check canonical docs presence in configured
docs-dir:REQUIREMENTS.md,WORKFLOW.md,REFERENCES.md(here-only project scan:--hereis implied when omitted,--baseis not allowed).--docs-check -
Create an isolated git worktree and branch with the provided name; also copies
.req/and active provider directories into the new worktree context (here-only project scan:--hereis implied when omitted,--baseis not allowed).--git-wt-create WT_NAME -
Remove the git worktree and branch identified by name (here-only project scan:
--hereis implied when omitted,--baseis not allowed).--git-wt-delete WT_NAME -
Print the configured
git-pathvalue from.req/config.json; if.req/config.jsonis missing, the command fails withError: .req/config.json not found in the project root(here-only project scan:--hereis implied when omitted,--baseis not allowed).--git-path -
Print the configured
base-pathvalue from.req/config.json; if.req/config.jsonis missing, the command fails withError: .req/config.json not found in the project root(here-only project scan:--hereis implied when omitted,--baseis not allowed).--get-base-path -
Add
--enable-line-numbersto include<n>:prefixes in--files-compress,--compress,--files-find, and--findoutput. -
Test static check configuration and execution (standalone).
--test-static-check {dummy,pylance,ruff,command} [FILES...]
- Python: CLASS, FUNCTION, DECORATOR, IMPORT, VARIABLE
- C: STRUCT, UNION, ENUM, TYPEDEF, MACRO, FUNCTION, IMPORT, VARIABLE
- C++: CLASS, STRUCT, ENUM, NAMESPACE, FUNCTION, MACRO, IMPORT, TYPE_ALIAS
- C#: CLASS, INTERFACE, STRUCT, ENUM, NAMESPACE, FUNCTION, PROPERTY, IMPORT, DECORATOR, CONSTANT
- Rust: FUNCTION, STRUCT, ENUM, TRAIT, IMPL, MODULE, MACRO, CONSTANT, TYPE_ALIAS, IMPORT, DECORATOR
- JavaScript: CLASS, FUNCTION, COMPONENT, CONSTANT, IMPORT, MODULE
- TypeScript: INTERFACE, TYPE_ALIAS, ENUM, CLASS, FUNCTION, NAMESPACE, MODULE, IMPORT, DECORATOR
- Java: CLASS, INTERFACE, ENUM, FUNCTION, IMPORT, MODULE, DECORATOR, CONSTANT
- Go: FUNCTION, METHOD, STRUCT, INTERFACE, TYPE_ALIAS, CONSTANT, IMPORT, MODULE
- Ruby: CLASS, MODULE, FUNCTION, CONSTANT, IMPORT, DECORATOR
- PHP: CLASS, INTERFACE, TRAIT, FUNCTION, NAMESPACE, IMPORT, CONSTANT
- Swift: CLASS, STRUCT, ENUM, PROTOCOL, EXTENSION, FUNCTION, IMPORT, CONSTANT, VARIABLE
- Kotlin: CLASS, INTERFACE, ENUM, FUNCTION, CONSTANT, VARIABLE, MODULE, IMPORT, DECORATOR
- Scala: CLASS, TRAIT, MODULE, FUNCTION, CONSTANT, VARIABLE, TYPE_ALIAS, IMPORT
- Lua: FUNCTION, VARIABLE
- Shell: FUNCTION, VARIABLE, IMPORT
- Perl: FUNCTION, MODULE, IMPORT, CONSTANT
- Haskell: MODULE, TYPE_ALIAS, STRUCT, CLASS, FUNCTION, IMPORT
- Zig: FUNCTION, STRUCT, ENUM, UNION, CONSTANT, VARIABLE, IMPORT
- Elixir: MODULE, FUNCTION, PROTOCOL, IMPL, STRUCT, IMPORT
- π GitHub Copilot π - Many models available
- π OpenCode π - Many models available. Does not support
tools:on agents/prompts. - βοΈ Claude Code βοΈ - Only supports Claude/Anthropic models.
- π OpenAI Codex π - Only supports OpenAI models. Does not support agents,
model:, ortools:on prompts. - π Kiro CLI π - Only supports Claude/Anthropic models. Does not support
$ARGUMENTSon prompts. - β’οΈ Gemini Code Assist β’οΈ - Only supports Google models. Does not support agents,
model:, ortools:. VS Code extension does not support agents or prompts.
- β
OpenAI Codex
- set environment variable CODEX_HOME to project's home before running the codex CLI
- β Claude Code
- β GitHub Copilot
- β OpenCode
- βοΈ Gemini Code Assist
- βοΈ Kiro CLI
| β supported | βοΈ partially supported | β issues | β not supported |
- β
OpenAI Codex: [
$req-create] - β
Claude Code: [
/req-create] - β
GitHub Copilot: [
/req-create] - β
OpenCode: [
/req-create] - β
Gemini: [
$req-create] - β Kiro: Does not work as expected
- β
OpenAI Codex: [
/prompts:/req-create] - β
Claude Code: [
/req:create] - β
GitHub Copilot: [
/agent β‘οΈ req-create β©οΈ]- Use
legacy(within a--providerspec) to not addmodel:on agents. - Slash command not supported.
- Defect #980 Model from agent.md isn't recognized #980
- Feature #618 β Feature Request: Support custom slash commands from .github/prompts directory #618
- Use
- β
OpenCode: [
/req-create] - β
Gemini: [
/req:create] - β Kiro: [
'@/req-create']- Does not work as expected
- Prompt parameters (
$ARGUMENTS) are not evaluated by the Kiro CLI. - no arguments supported for file-based prompts β Manage prompts
- Defect #4141 β Saved prompt with arguments only works when entire message is quoted in CLI (Spec Kit + Kiro CLI 1.21.0) #4141
- β OpenAI Codex
- β
Claude Code: [
@agent-req-create] - β GitHub Copilot
- βοΈ OpenCode: [
<TAB> β‘οΈ Req.Create β©οΈ]- Starts a new session (
/new) for every prompt.
- Starts a new session (
- βοΈ Kiro: [
/agent swap; select agent β‘οΈ /req-create; β©οΈ]- Does not work as expected
- Clears the context (
/clear) for every prompt.
- β
OpenAI Codex Extension for Visual Studio Code
- Skills: [
/ β‘οΈ Req.Create β©οΈ] - Prompts: [
/prompts:/req-create] - set environment variable CODEX_HOME to project's home before running VS Code
- Skills: [
- β
Claude Extension for Visual Studio Code
- Skills: [
/req-create] - Prompts: [
@agent-req-create] (does not highlight agent like the CLI)
- Skills: [
- βοΈ GitHub Copilot Agent Chat in Visual Studio Code
- Agents: [
gui; select agent β‘οΈ /req-create; β©οΈ] - Starts a new chat for every prompt.
- Agents: [
- βοΈ OpenCode in Visual Studio Code
- Supported with a windowed CLI
- βοΈ Gemini Code Assist Extension for Visual Studio Code
- Skills: [
$req-create] (does not highlight skills like the CLI) - Prompts/Agents not supported by the VS Code extension
- Skills: [
- β Kiro in VS Code is not supported
- Grok Code Fast 1 does not respect the TODO list and does not wait for user approval.
- Defect #3180 β Bug: Grok Code Fast 1 not update to do list correctly #3180
The enable-tools option (within a --provider spec) adds a tools: specification to prompts based on read/write requirements.
The enable-models option (within a --provider spec) adds a model: specification to prompts as detailed in the tables below.
| Model | Context Length | Reasoning [1] |
|---|---|---|
| Grok Code Fast 0 | 256K | |
| Claude Haiku 4.5 | 200K | |
| Claude Sonnet 4.5 | 1M | |
| Claude Opus 4.5 | 200K | Yes |
| Gemini 3 Flash (Preview) | 1.05M | |
| Gemini 3.1 Pro (Preview) | 1.05M | Yes |
| GPT-4.1 | 1.05M | No |
| GPT-5 mini | 400K | Yes |
| GPT-5.1 | 400K | Yes |
| GPT-5.1-Codex-Mini (Preview) | 400K | |
| GPT-5.1-Codex | 400K | |
| GPT-5.1-Codex-Max | 400K | |
| GPT-5.2 | 400K | Yes |
| GPT-5.2-Codex | 400K | Yes |
[1] Reasoning availability according to openrouter.ai [2] Claude Sonnet 4.5 supports a 1M token context window when using the context-1m-2025-08-07 beta header. Long context pricing applies to requests exceeding 200K tokens.
| Model | Cost |
|---|---|
| Grok Code Fast 0 | 0x |
| Claude Haiku 4.5 | 0.33x |
| Claude Sonnet 4.5 | 1x |
| Claude Opus 4.5 | 3x |
| Gemini 3 Flash (Preview) | 0.33x |
| Gemini 3.1 Pro (Preview) | 1x |
| GPT-5 mini | 0x |
| GPT-5.1 | 1x |
| GPT-5.1-Codex-Mini (Preview) | 0.33x |
| GPT-5.1-Codex | 1x |
| GPT-5.1-Codex-Max | 1x |
| GPT-5.2 | 1x |
| GPT-5.2-Codex | 1x |
| Prompt | Model |
|---|---|
analyze |
Gemini 3.1 Pro (Preview) (copilot) |
change |
GPT-5.3-Codex (copilot) |
check |
Gemini 3.1 Pro (Preview) (copilot) |
cover |
GPT-5.3-Codex (copilot) |
create |
Gemini 3.1 Pro (Preview) (copilot) |
fix |
GPT-5.3-Codex (copilot) |
implement |
GPT-5.3-Codex (copilot) |
new |
GPT-5.3-Codex (copilot) |
readme |
Gemini 3.1 Pro (Preview) (copilot) |
recreate |
Gemini 3.1 Pro (Preview) (copilot) |
refactor |
GPT-5.3-Codex (copilot) |
renumber |
GPT-5.3-Codex (copilot) |
workflow |
GPT-5.3-Codex (copilot) |
write |
Gemini 3.1 Pro (Preview) (copilot) |
| Model | Cost |
|---|---|
| Claude Haiku 4.5 | low |
| Claude Sonnet 4.6 | mid |
| Claude Opus 4.6 | high |
When using Claude Sonnet 4 or Sonnet 4.5 with the 1M token context window enabled, requests that exceed 200K input tokens are automatically charged at premium long context rates. [3]
# Example of using a full model name with the [1m] suffix
/model anthropic.claude-sonnet-4-5-20250929-v1:0[1m][3] The 1M token context window is currently in beta for organizations in usage tier 4 and organizations with custom rate limits. The 1M token context window is only available for Claude Sonnet 4 and Sonnet 4.5.
| Prompt | Model |
|---|---|
analyze |
haiku |
change |
sonnet |
check |
haiku |
cover |
opus |
create |
haiku |
fix |
opus |
implement |
opus |
new |
sonnet |
readme |
haiku |
recreate |
haiku |
refactor |
opus |
renumber |
opus |
workflow |
haiku |
write |
haiku |
| Model | Cost |
|---|---|
| Claude Sonnet 4.5 | 1.3x credit |
| Claude Sonnet 4 | 1.3x credit |
| Claude Haiku 4.5 | 0.4x credit |
| Claude Opus 4.5 | 2.2x credit |
| Prompt | Model |
|---|---|
analyze |
claude-haiku-4.5 |
change |
claude-sonnet-4.5 |
check |
claude-haiku-4.5 |
cover |
claude-sonnet-4.5 |
create |
claude-haiku-4.5 |
fix |
claude-sonnet-4.5 |
implement |
claude-sonnet-4.5 |
new |
claude-sonnet-4.5 |
readme |
claude-haiku-4.5 |
recreate |
claude-haiku-4.5 |
refactor |
claude-sonnet-4.5 |
renumber |
claude-sonnet-4.5 |
workflow |
claude-haiku-4.5 |
write |
claude-haiku-4.5 |
Models depend on the user's provider; useReq config uses the GitHub provider. OpenCode CLI does not support "tools:" on agents/prompts.
- github-copilot/claude-haiku-4.5
- github-copilot/claude-opus-4.5
- github-copilot/claude-opus-41
- github-copilot/claude-sonnet-4
- github-copilot/claude-sonnet-4.5
- github-copilot/gemini-3-flash-preview
- github-copilot/gpt-5-mini
- github-copilot/gpt-5.1
- github-copilot/gpt-5.1-codex
- github-copilot/gpt-5.1-codex-max
- github-copilot/gpt-5.2
- github-copilot/claude-opus-4.6
- github-copilot/gemini-2.5-pro
- github-copilot/gemini-3-pro-preview
- github-copilot/gpt-5.1-codex-mini
- github-copilot/gpt-4.1
- github-copilot/gpt-4o
- github-copilot/gpt-5
- github-copilot/gpt-5-codex
- github-copilot/grok-code-fast-1
- github-copilot/oswe-vscode-prime
| Prompt | Model |
|---|---|
analyze |
github-copilot/gemini-3.1-pro-preview |
change |
github-copilot/claude-opus-4.6 |
check |
github-copilot/gemini-3.1-pro-preview |
cover |
github-copilot/claude-opus-4.6 |
create |
github-copilot/gemini-3.1-pro-preview |
fix |
github-copilot/claude-opus-4.6 |
implement |
github-copilot/claude-opus-4.6 |
new |
github-copilot/claude-opus-4.6 |
readme |
github-copilot/gemini-3.1-pro-preview |
recreate |
github-copilot/gemini-3.1-pro-preview |
refactor |
github-copilot/claude-opus-4.6 |
renumber |
github-copilot/claude-opus-4.6 |
workflow |
github-copilot/claude-opus-4.6 |
write |
github-copilot/gemini-3.1-pro-preview |
Gemini CLI does not support "model:" or "tools:" on prompts.
OpenAI Codex CLI does not support "model:" or "tools:" on prompts.
This section describes the Git behavior when executing the commands provided by the scripts.
-
Required state before execution:
- Execute commands from a working branch (not in detached HEAD).
- Preferably, the working tree should be clean: avoid unintended changes in the repository before starting the scripts.
- Save all files and verify that you are in the correct project directory.
- IMPORTANT:
useReq/requses the.req/directory (including.req/config.json). Keep.req/tracked in the Git repository (do not ignore it), sogit worktreecheckouts include the same configuration; otherwise commands that depend on project configuration can fail.
-
What the scripts do to the repository:
- The scripts may modify, create, or remove files in the working tree (files on disk).
- They do not modify Git history (HEAD), branches, or tags automatically.
- The index (staging area) and history remain unchanged until the user manually performs staging/commit operations.
-
How to commit (recommended practice):
- Review changes generated by the scripts before including them in a commit.
- Manually add files to commit using
git add <file...>. - Execute the commit with a structured message, for example:
git commit -m "change(<COMPONENT>): <SHORT-DESCRIPTION> [<DATE>]". - Staging and commit operations are under the user's control; the scripts do not perform automatic commits or update Git references.
-
Practical warnings:
- Do not use destructive commands (e.g.,
git reset --hard,git clean -fd) to "clean" the repository without verifying the impact. - If you prefer to isolate changes, execute commands in a branch or a copy of the repository.
- Do not use destructive commands (e.g.,
The Legacy Mode can be enabled with --legacy.
In Legacy Mode the unsupported model: is not added to agents.
See: Defect #980 Model from agent.md isn't recognized #980