Skip to content
SHAMPOO

Tool catalogue

reflect_review

Read · Advanced · Reflection

reflect_review

  • Category: reflection
  • Access: read
  • Audience: advanced (ordinary users do not normally call this directly)

Purpose

Paginated, filterable candidate list for human review. Call it to triage a run's candidates before deciding and applying.

Arguments

Required: run_id.

Optional: candidate_type_filter, decision_filter, limit, offset.

  • run_id: parent run id.
  • candidate_type_filter: optional category narrowing (e.g. 'stale_overdue_tasks'). Note: Narrows to one of the six audit categories.
  • decision_filter: empty | pending | accept | reject | defer. Note: Empty, pending, accept, reject, or defer; anything else is an error.
  • limit: max rows (clamped to 1000). Note: Defaults 100, clamped 1 to 1000.
  • offset: pagination cursor. Note: Pagination cursor; negative behaves as 0.

Result

Object with candidates array (candidate_id, run_id, type, suggested_action, target_kind, target_ref, evidence, confidence, decision fields, timestamps, already_applied), total, limit, offset, and the two filters.

Boundaries

Foreign runs read as the empty shape. Candidates additionally filter by evidence project, so pre-gate runs with cross-project candidates stay contained; scoped callers get the visible total.

Lifecycle / side effects

Pure read over persisted candidates with parsed evidence and an already_applied flag derived from apply snapshots.

Errors

Unknown decision_filter fails as unknown_decision_filter. Missing run_id rejected by validation. Backend failures return normal invalid_argument payloads.

Example

{
  "run_id": "<uuid>"
}

Result shape:

{
  "candidates": [
    {
      "already_applied": false,
      "candidate_id": "<uuid>",
      "candidate_type": "stale_overdue_tasks"
    }
  ],
  "limit": 100,
  "offset": 0,
  "total": 1
}

See also

reflect_decide, reflect_apply, reflect_status, reflect_audit.

On this page