Skip to content

Run the D19 backlog reconciliation sweep on demand (console plane)

POST
/v1/admin/orgs/{org_id}/projects/{project_id}/categories/{id}/scan-backlog

Run the D19/§8 on-demand reconciliation sweep for a category: walk every QUEUED draft and INTEGER-COMPARE its composed_* rules-versions against the category’s CURRENT versions (with a tunable staleness tolerance). A current-enough draft is released through the M6 submit-time gate (the agent re-submits to deliver; the gate is re-run, never bypassed); a stale draft is nudged to redraft against current rules and stays queued. The human never hand-touches the backlog and no stale draft slips out. Deterministic, $0-LLM. Console-only (never an MCP tool, D17). A foreign id is 404.

org_id
required
string
project_id
required
string
id
required
string

The D19/§8 on-demand reconciliation sweep request (console). staleness_tolerance overrides the strict default (0 = must be at/above current); null = the default.

object
staleness_tolerance

How many rules-versions behind current a queued draft may be and still release.

integer

The reconciliation sweep result (per-message outcomes + counts).

The D19/§8 reconciliation sweep summary (console scan-backlog / graduate / rule-change). Records every per-message decision so the human never hand-touches the backlog and no stale draft slips out. Deterministic, $0-LLM.

object
category_id
required
string
trigger
required

What kicked off the sweep.

string
Allowed values: graduate rule_change scan_backlog
scanned
required
integer
released
required

Current-enough drafts released through the M6 gate (re-submit).

integer
stale
required

Stale drafts nudged to redraft against current rules (held, not released).

integer
held_by_gate
required

Current-enough drafts that a M6 gate diverted (transient re-supervision).

integer
current_category_rules_version
required
integer
current_house_style_version
required
integer
staleness_tolerance
required
integer
outcomes
required
Array<object>

One per-message reconciliation outcome (D19); WHY a queued draft released or was held. verdict is the integer-compare result; released is true only when a current-enough draft also passed the M6 gate; a stale draft is NEVER released as-is.

object
review_id
required
string
verdict
required
string
Allowed values: current_enough stale
released
required
boolean
gate_outcome

The M6 gate decision for a current-enough draft (auto_silent|auto_notify, or held:).

string
held_reason

The held token when a gate diverted a current-enough draft.

string
composed_category_rules_version
required
integer
composed_house_style_version
required
integer
current_category_rules_version
required
integer
current_house_style_version
required
integer
nudged
required

Whether a reprocess nudge was enqueued (redraft a stale draft, or re-submit a releasable one).

boolean

Invalid request.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope

Missing or invalid credential.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope

Authenticated but lacking the required scope, or out of quota.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope

Resource not found.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope