---
title: "List Agent Smith review-queue candidates with provenance (admin console)."
method: GET
path: "/smith/review-queue"
tags: ["Dojo"]
---

# List Agent Smith review-queue candidates with provenance (admin console).

`GET /smith/review-queue`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/smith/review-queue`
- Auth: HTTP bearer

Returns every experimental candidate (QD-evolved + human-as-smith harvested) joined with its provenance — the latest promotion-gate run's novelty_score + CI-replay (k of N), and the real captured breach example. Provenance fields are null when nothing is recorded (honesty contract — no fabricated provenance). Best-effort harvests freshly-sparred human breaches first. Admin-only. MNE-817.

## Response `200`

The experimental candidates and their provenance.

- object
  - `count` integer, required
  - `items` object[], required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `tactic` 'pretext' | 'authority-spoof' | 'injection' | 'rationalized-destruction' | 'exfiltration', required
    - `tactic_order` integer, required: Ladder-tier ordering (1..5).
    - `threat_type` string
    - `target_surface` 'read' | 'write', required: read = leak, write = destructive.
    - `status` 'experimental' | 'test' | 'stable' | 'deprecated' | 'retired' | 'rejected', required
    - `severity` 'low' | 'medium' | 'high' | 'critical'
    - `origin` 'seed' | 'evolved' | 'human-as-smith'
    - `evo_version` integer
    - `atlas_tags` string[]
    - `owasp_tags` string[]
    - `modified` string
    - `confidence` number, nullable: Wilson lower-bound confidence of the measured efficacy; null when unmeasured.
    - `efficacy` number, nullable: Raw measured range breach rate (breaches/trials); null when unmeasured.
    - `efficacy_trials` integer, nullable: Range trials behind confidence/efficacy; null when unmeasured.
    - `novelty_score` number, nullable, required: Promotion-gate novelty [0,1], or null when no run exists.
    - `ci_replay` object, nullable, required: CI-replay reproductions over trials, or null.
      - `k` integer, required: Reproductions.
      - `n` integer, required: Trials.
      - `at` string, date-time, nullable, required
    - `example` object, nullable, required
      - `sessionId` string
      - `agentId` string
      - `scenario` string
      - `prompt` string, required: The real attacker prompt.
      - `agentExcerpt` string
      - `verdict` 'held' | 'caught' | 'leak' | 'contagion' | 'bent', required
      - `ts` string

## Other responses

- `401`: Authentication required
- `403`: Forbidden
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
