---
title: "Choose the one proposed behavior whose interpretation would most change what gets built, and return it as a product question with a recommendation, bound to an exact repository-body revision."
method: POST
path: "/api/v1/intents/{id}/review-focus"
tags: ["proposal review"]
---

# Choose the one proposed behavior whose interpretation would most change what gets built, and return it as a product question with a recommendation, bound to an exact repository-body revision.

`POST /api/v1/intents/{id}/review-focus`

The model sees only server-loaded intent and source data, and its output is revalidated before it is returned: claimKey must name a real behavior on this revision, and a sourceQuote is dropped unless those exact bytes occur in the workspace-owned document. Source text is untrusted product input, never an instruction. analysis reads generated or fallback, and a fallback is honest rather than a guess dressed as analysis. The question belongs to the revision, not the viewer: it is cached against the intent, the revision and the exact source text, so only a miss consumes AI conversation allowance and a second reviewer of the same proposal reads the same question. A fallback is never cached, so one model outage cannot become the stored question. Nothing here authorizes implementation or changes the repository.

## Path parameters

- `id` string, required

## Query parameters

- `workspace_id` string, required

## Request body

- object
  - `expectedRepoBodyRevision` string, required — The 64-character repository-body revision the reviewer is looking at. A mismatch is refused rather than answered against newer wording.

## Response `200`

Returns one question. analysisUnavailable: true accompanies a fallback focus when analysis could not run.

- object

## Other responses

- `400` — Invalid intent ID or revision payload, checked before any query
- `403` — An API key attempted the call, or the session lacks read scope
- `404` — Intent not found in this workspace
- `409` — The intent is not repository-owned, or code REPO_BODY_REVISION_CONFLICT: the proposal changed before review and currentRepoBodyRevision is returned
- `429` — ai bucket rate limit
- `500` — Failed to prepare the review

## Changes

- **2026-09-12** `c7d545bf359b` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/pathmode/apis/pathmode-api/changes/api/v1/intents/:id/review-focus/post.md)

---

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