Get Project Status
project_statusCheck how a project is doing: what is in flight, what shipped, what is stuck.
Returns lifecycle status, open task count, queued roadmap item count, runs
today, verification pass rate, open blockers, pause state, and freshness.
Zero `open_tasks` does not mean an empty roadmap: `queued_roadmap_items`
counts planned work awaiting expansion, including work held while the
scheduler is disabled. list_roadmap returns those items.
Delivery vs verification: `prs_merged_today` is the DELIVERY signal
(distinct PRs merged today). `pass_rate` is the local verification pass
rate over the last 14 days of dev/QA iterations - NOT a delivery measure.
`verify_decided_14d` is that ratio's denominator and `verify_errored_14d`
its sandbox-timeout share: when errored dominates, pass_rate measures the
verify budget, not the code. `open_escalations` is a COUNT; read
list_escalations for the rows.
Pause state is `scheduler_enabled`, `scheduler_paused_until` and
`pause_reason`. Freshness is `last_iter_at`, `last_pm_iter_at`, and
`last_successful_deploy_at` (a LEGACY pointer); read `deployment {merged,
deployed, verified, last_deploy_attempt}` for the three facts kept
separately, and treat only `verified` as a verified deployment.
`pm_lane {last_pm_iter_at, repo_access}` is the planning lane's live
health: repo_access 'failing' means that lane cannot read the repo from
GitHub even while runs still start and `github_connected` reads true (that
flag is presence-only).
`glm_peak_paused` is NOT a fault and sets no pause columns: it is the
ephemeral GLM peak-hours skip. True means clean PRs hold and runs stop
until `glm_peak_resumes_at`. It is an intentional cost gate, so the accurate
description is "waiting for off-peak", not a failure.
`ui_review` is absent while the ui-review autonomy ladder is enabled (the
default): the ladder owns that budget and the customer surface carries no
scenario or capture controls. In the legacy mode it is present for
`web_app` projects and reports scenarios/scenario_cap/captures/capture_cap
from the default branch's `ui-review.json` (both caps are enforced at push
time, not in your CI); it can mint a GitHub installation token to read it,
so the call is then not guaranteed to be a purely local read.
`model_roles` (only when the Researcher/Integrator feature is enabled for
the project) reports each optional stage's on/off configuration and last
outcome.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"project_id": "<project_id>"
},
"name": "project_status"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |