diff --git a/docs/models/recipe_coverage.yaml b/docs/models/recipe_coverage.yaml
deleted file mode 100644
index 3389bcf98..000000000
--- a/docs/models/recipe_coverage.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-# SPDX-License-Identifier: Apache-2.0
-# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
-
-# This registry is keyed by an exact Hugging Face checkpoint and task. A
-# Supported Models row may cover several checkpoints, but coverage entries must
-# be split whenever the example or recipe differs.
-version: 1
-
-# The registry is incrementally audited. An absent entry means that coverage
-# has not been audited yet; it is not evidence that no recipe exists. Do not
-# infer recipe coverage from the implementation or hardware columns in
-# supported_models.md.
-entries:
- - model: Qwen/Qwen3-Omni-30B-A3B-Instruct
- task: omni-serving
- examples:
- - docs/user_guide/examples/offline_inference/qwen3_omni.md
- - docs/user_guide/examples/online_serving/qwen3_omni.md
- recipe:
- status: repository
- repository_path: recipes/Qwen/Qwen3-Omni.md
- hardware: [nvidia]
-
- - model: Qwen/Qwen-Image
- task: text-to-image
- examples:
- - docs/user_guide/examples/offline_inference/text_to_image.md
- - docs/user_guide/examples/online_serving/text_to_image.md
- recipe:
- status: published
- published_url: https://recipes.vllm.ai/Qwen/Qwen-Image
- repository_path: recipes/Qwen/Qwen-Image.md
- hardware: [nvidia]
-
- - model: Qwen/Qwen-Image-2512
- task: text-to-image
- examples:
- - docs/user_guide/examples/offline_inference/text_to_image.md
- - docs/user_guide/examples/online_serving/text_to_image.md
- recipe:
- status: repository
- repository_path: recipes/Qwen/Qwen-Image-2512.md
- hardware: [nvidia]
-
- - model: Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice
- task: text-to-speech
- examples:
- - docs/user_guide/examples/offline_inference/text_to_speech.md
- - docs/user_guide/examples/online_serving/text_to_speech.md
- recipe:
- status: published
- published_url: https://recipes.vllm.ai/Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice
- repository_path: recipes/Qwen/Qwen3-TTS.md
- hardware: [nvidia]
-
- - model: bosonai/higgs-audio-v3-tts-4b
- task: text-to-speech
- examples:
- - docs/user_guide/examples/online_serving/text_to_speech.md
- recipe:
- status: published
- published_url: https://recipes.vllm.ai/bosonai/higgs-audio-v3-tts-4b
- repository_path: recipes/BosonAI/Higgs-Audio-V3-TTS.md
- hardware: [nvidia]
-
- - model: MiniMaxAI/MiniMax-H3
- task: video-audio-generation
- examples: []
- recipe:
- status: published
- published_url: https://recipes.vllm.ai/MiniMaxAI/MiniMax-H3
- repository_path: recipes/MiniMaxAI/MiniMax-H3.md
- hardware: [nvidia, amd]
diff --git a/docs/models/supported_models.md b/docs/models/supported_models.md
index ab9ae311b..055ba0925 100644
--- a/docs/models/supported_models.md
+++ b/docs/models/supported_models.md
@@ -96,42 +96,17 @@ th {
| `ErnieImagePipeline` | ERNIE-Image | `baidu/ERNIE-Image`, `baidu/ERNIE-Image-Turbo` | ✅︎ | ✅︎ | ✅︎ | ✅︎ | — |
|`HiDreamImagePipeline` | HiDream-I1-Full | `HiDream-ai/HiDream-I1-Full` | ✅︎ | ✅︎ | | | — |
-The `Recipe` column links the exact checkpoint/task entry from
-[`recipe_coverage.yaml`](https://github.com/vllm-project/vllm-omni/blob/main/docs/models/recipe_coverage.yaml).
-`Published` is preferred when a corresponding `recipes.vllm.ai` page exists;
-otherwise the link points to the repository recipe. `—` means that the exact
-checkpoint/task mapping has not been audited yet.
+The `Recipe` column links the corresponding deployment recipe. `Published` is
+preferred when a corresponding `recipes.vllm.ai` page exists; otherwise the
+link points to the repository recipe. `—` means that no recipe link has been
+added for that model row yet.
For rows with an audited recipe link, the hardware checkmarks reflect hardware
explicitly documented in that recipe. Other rows retain the implementation
-support metadata until their recipe coverage is audited.
+support metadata until their recipe is audited.
✅︎ indicates the model is supported on that backend. Empty cells mean not listed as supported on that backend.
-## Recipe and Example Coverage
-
-The table above describes implementation and backend support. It does not
-imply that a model has a validated deployment recipe.
-
-Recipe and example coverage is tracked per exact Hugging Face checkpoint and
-task in the machine-readable
-[`recipe_coverage.yaml`](https://github.com/vllm-project/vllm-omni/blob/main/docs/models/recipe_coverage.yaml).
-The registry is populated as coverage is audited and is the source of truth
-for mapping exact checkpoints and tasks to links. Recipe files under
-[`recipes/`](https://github.com/vllm-project/vllm-omni/tree/main/recipes) remain
-the source of truth for commands and validation details. It uses the following
-link precedence:
-
-1. `published`: link to the published `recipes.vllm.ai` page.
-2. `repository`: link to the in-repository recipe until a published page exists.
-3. `no_validated_recipe_yet`: show `No validated recipe yet` only when that
- result has been explicitly audited.
-4. A checkpoint/task without an entry: coverage has not been audited yet.
-
-Split entries whenever checkpoints, tasks, examples, or validation evidence
-differ. A single Supported Models row may therefore map to multiple registry
-entries.
-
H3 MiniMax H3 AMD GPU support is validated on gfx942 (MI300X) and
gfx950 (MI350) in BF16, using the AITER `FLASH_ATTN` diffusion attention backend.
Other AMD SKUs (e.g. MI325X) are not listed until their
diff --git a/recipes/README.md b/recipes/README.md
index 005b62ce5..334f44c30 100644
--- a/recipes/README.md
+++ b/recipes/README.md
@@ -19,11 +19,10 @@ add files for this repo. Use one Markdown file per model family by default.
> Individual pages resolve at `https://recipes.vllm.ai//`,
> e.g. [`bosonai/higgs-audio-v3-tts-4b`](https://recipes.vllm.ai/bosonai/higgs-audio-v3-tts-4b).
-The exact checkpoint/task mapping used by the Supported Models documentation
-is tracked in
-[`docs/models/recipe_coverage.yaml`](../docs/models/recipe_coverage.yaml).
-This registry records link precedence; the recipe files in this directory
-remain the source of truth for commands and validation details.
+The `Recipe` column in the Supported Models documentation links to the
+published recipe when available and otherwise to the corresponding recipe in
+this directory. The recipe files remain the source of truth for commands and
+validation details.
Example layout:
diff --git a/tests/docs/test_recipe_coverage.py b/tests/docs/test_recipe_coverage.py
deleted file mode 100644
index 6425dd4ad..000000000
--- a/tests/docs/test_recipe_coverage.py
+++ /dev/null
@@ -1,142 +0,0 @@
-# SPDX-License-Identifier: Apache-2.0
-# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
-
-import re
-from pathlib import Path
-
-import pytest
-import yaml
-
-pytestmark = [pytest.mark.core_model, pytest.mark.cpu]
-
-ROOT_DIR = Path(__file__).parents[2]
-COVERAGE_PATH = ROOT_DIR / "docs/models/recipe_coverage.yaml"
-SUPPORTED_MODELS_PATH = ROOT_DIR / "docs/models/supported_models.md"
-VALID_STATUSES = {"published", "repository", "no_validated_recipe_yet"}
-VALID_HARDWARE = {"nvidia", "amd", "ascend", "intel"}
-HARDWARE_COLUMNS = {
- "nvidia": 4,
- "amd": 5,
- "ascend": 6,
- "intel": 7,
-}
-
-
-def load_entries() -> list[dict]:
- data = yaml.safe_load(COVERAGE_PATH.read_text(encoding="utf-8"))
- assert data["version"] == 1
- assert isinstance(data["entries"], list)
- return data["entries"]
-
-
-def supported_model_ids() -> set[str]:
- model_ids = set()
- for line in SUPPORTED_MODELS_PATH.read_text(encoding="utf-8").splitlines():
- if not line.startswith("|"):
- continue
- columns = line.split("|")
- if len(columns) <= 3:
- continue
- model_ids.update(re.findall(r"`([^`]+/[^`]+)`", columns[3]))
- return model_ids
-
-
-def supported_model_recipe_cells() -> dict[str, str]:
- recipe_cells = {}
- in_table = False
- for line in SUPPORTED_MODELS_PATH.read_text(encoding="utf-8").splitlines():
- if line.startswith("| Architecture |"):
- in_table = True
- continue
- if in_table and not line.startswith("|"):
- break
- if not in_table:
- continue
-
- columns = line.split("|")
- if len(columns) <= 8 or columns[1].strip().startswith("-"):
- continue
- for model_id in re.findall(r"`([^`]+/[^`]+)`", columns[3]):
- recipe_cells[model_id] = columns[8].strip()
- return recipe_cells
-
-
-def expected_recipe_link(entry: dict) -> str:
- recipe = entry["recipe"]
- if recipe["status"] == "published":
- return recipe["published_url"]
- if recipe["status"] == "repository":
- return f"https://github.com/vllm-project/vllm-omni/blob/main/{recipe['repository_path']}"
- return "No validated recipe yet"
-
-
-def supported_model_hardware_cells() -> dict[str, list[str]]:
- hardware_cells = {}
- in_table = False
- for line in SUPPORTED_MODELS_PATH.read_text(encoding="utf-8").splitlines():
- if line.startswith("| Architecture |"):
- in_table = True
- continue
- if in_table and not line.startswith("|"):
- break
- if not in_table:
- continue
-
- columns = line.split("|")
- if len(columns) <= 8 or columns[1].strip().startswith("-"):
- continue
- cells = [columns[index].strip() for index in HARDWARE_COLUMNS.values()]
- for model_id in re.findall(r"`([^`]+/[^`]+)`", columns[3]):
- hardware_cells[model_id] = cells
- return hardware_cells
-
-
-def test_registry_keys_are_exact_supported_checkpoints():
- entries = load_entries()
- keys = [(entry["model"], entry["task"]) for entry in entries]
-
- assert len(keys) == len(set(keys))
- assert all(entry["model"] in supported_model_ids() for entry in entries)
-
-
-def test_supported_models_render_registry_recipe_links():
- recipe_cells = supported_model_recipe_cells()
-
- for entry in load_entries():
- assert expected_recipe_link(entry) in recipe_cells[entry["model"]]
-
-
-def test_registry_entries_have_explicit_recipe_precedence():
- for entry in load_entries():
- assert set(entry) >= {"model", "task", "examples", "recipe"}
- assert isinstance(entry["examples"], list)
-
- recipe = entry["recipe"]
- status = recipe["status"]
- assert status in VALID_STATUSES
- assert set(recipe.get("hardware", [])) <= VALID_HARDWARE
-
- if status == "published":
- assert recipe["published_url"].startswith("https://recipes.vllm.ai/")
- elif status == "repository":
- assert recipe["repository_path"].startswith("recipes/")
- assert "published_url" not in recipe
- else:
- assert "published_url" not in recipe
- assert "repository_path" not in recipe
-
- paths = [*entry["examples"], recipe.get("repository_path")]
- for relative_path in filter(None, paths):
- path = Path(relative_path)
- assert not path.is_absolute()
- assert (ROOT_DIR / path).is_file(), relative_path
-
-
-def test_supported_models_render_recipe_hardware():
- hardware_cells = supported_model_hardware_cells()
-
- for entry in load_entries():
- recipe_hardware = set(entry["recipe"].get("hardware", []))
- cells = hardware_cells[entry["model"]]
- for hardware, cell in zip(HARDWARE_COLUMNS, cells, strict=True):
- assert (cell == "✅︎") == (hardware in recipe_hardware)