Release-Coverage Advisor
Before you can ask "is this release ready?" you have to know what a release should even test. The Release-Coverage Advisor answers that: point it at a project (a release) and it tells you the test coverage each of its surfaces should have — and which of those checks are actually buildable right now.
It is read-only and deterministic. It creates nothing, runs nothing, and produces no verdict — it's purely the planning step, upstream of building tests and of readiness scoring.
What it does
For every surface under the project — an (app × environment × target) — it recommends coverage
keyed by the target's type:
| Surface | Recommended coverage |
|---|---|
| REST service with an OpenAPI spec | API contract · performance smoke · security sweep |
| REST service without a spec | (blocked — add a swagger path) |
| Web app | UI flow · crawl |
| Network / IP / hostname | security sweep |
Each recommended item comes back marked ready (buildable now) or with human-readable
blockers — e.g. "no OpenAPI spec", "app requires auth but no credential resolves in this
environment". Apps in the project that have no target to test show up under gaps.
What makes a REST surface "ready" for API contract testing: the application's
swaggerPathresolves to a reachable OpenAPI spec (the advisor uses the same resolver the generator does). Set the swagger path on the application — not just the target — soAPI_CONTRACTreportsready.
Using it
MCP:
recommend_release_coverage(project="User Management Platform")
recommend_release_coverage(project="User Management Platform", environment="staging")
REST:
GET /api/projects/{projectId}/release-coverage
GET /api/projects/{projectId}/release-coverage?environmentId={envId}
Example response (trimmed):
{
"projectName": "User Management Platform",
"surfaces": [
{
"app": "user-service",
"environmentName": "development",
"targetType": "REST_SERVICE",
"recommended": [
{ "kind": "API_CONTRACT", "ready": true, "blockers": [] },
{ "kind": "PERF_SMOKE", "ready": true, "blockers": [] },
{ "kind": "SECURITY_SWEEP","ready": true, "blockers": [] }
]
}
],
"gaps": [],
"summary": "1 surface(s) · 3 recommended check(s) · 0 blocked · 0 gap(s)"
}
From plan to tests
A ready item maps directly to the generator that builds it:
| Recommended kind | Build it with |
|---|---|
API_CONTRACT | create_scenario_from_swagger |
PERF_SMOKE | convert_api_to_performance_scenario |
UI_FLOW / CRAWL | crawl_by_target → then a UI test |
SECURITY_SWEEP | a security scan |
Once the recommended coverage is built and run, use readiness scoring (see How Scoring Works) to judge whether the release is ready to ship.
The advisor is a snapshot of what the release should test, taken when you ask. If the app's surfaces change later, re-run it to reconcile — it won't silently mutate a plan underneath you.