Review session titles (how an AI reviewer session is named)
How a session started to act as an AI reviewer is titled: one fixed shape, `[<Kind> Review] <AI>: <what it reviews>`, where the app writes the review type and the AI's name and the agent that asked for the review writes the subject. Covers what each part means, where the titles appear, and what an agent sends to get one.
What it is
When an agent starts a separate session to review its work — a plan review, a code review — that session is titled in one fixed shape:
[<Kind> Review] <AI>: <What it reviews>
For example [Code Review] GLM: Fix the login redirect, or [Plan Review] DeepSeek: Nightly backup retry.
The point is the session list. Reviewer sessions arrive in batches and are short-lived, and before this each agent improvised its own wording — "glm review (plan)", "GLM review — code: …", "GLM plan review - …" — so two reviews of the same work rarely looked alike. The fixed shape answers three questions at a glance:
[<Kind> Review]— what sort of review it is: Code or Plan.<AI>— which AI is doing the review, spelled the way the app spells it everywhere else (GLM, DeepSeek, Codex, Gemini, Claude, …).<What it reviews>— the work under review, in a few words written by the agent that asked for the review.
Where to find it
The title appears on the reviewer's own session row — in the session list, the inbox, and anywhere else that session is listed. There is no screen to open: the title is set when the reviewer session starts. Most reviewer sessions come from the Dev Pipeline's AI Code Review phase and its cross-vendor peer review.
How it behaves
- The fixed part is written by the app. The review type is capitalised and "Review" appears once inside the brackets, and the AI's name comes from the app's own list of engines — never from how the agent happened to type it.
- The subject always starts with the asking agent's words. The app never guesses it from the reviewer's instructions; a request without one is turned down with a message asking the agent to write it. When several reviewers look at the same thing and the agent did not give each one its own angle, the app appends one from a fixed rotation ("security", "test coverage", …) so their titles still read apart.
- Titles stay within 100 characters. When a subject is long, only the subject is shortened (it
ends in
...); the[<Kind> Review] <AI>:part stays whole. - A bad request costs nothing. A review with a blank subject or an unrecognised review type is refused before any reviewer starts — there is no way to send a review with a hand-written title instead, or one that is not a locked session.
- The title sticks. The AI auto-titler only renames sessions still carrying a placeholder name, so a review title is never rewritten.
- Only review sessions change. Sessions you start yourself, Overseer workers, mission crew members and every other kind of session keep the naming they had. Sessions that already exist keep their old titles.
For agents
A review's title is built from two things you send to POST /reviews — never a name you write
yourself, and never a separate lock field; every review Omniscio starts is a locked session:
{
"kind": "code",
"subject": "Fix the login redirect",
"work": "<the diff, or the plan>",
"readRoot": "<your worktree's absolute path>",
"stage": "build"
}
subject— up to 200 characters, yours to write: what the review is about, in a few words. Every reviewer's title starts with it.reviewers[].focus— up to 500 characters, optional, one per named reviewer: that reviewer's own angle ("security", "the retry path"). Leave it out and Omniscio appends one from a fixed rotation instead, so several reviewers of the same subject still read apart in the session list.kind— exactly"plan"or"code"— supplies the[Plan Review]/[Code Review]part.- The AI named in the title is whichever engine actually reviews — the one a
reviewersentry names, or the one a Dev Pipelinestageresolves to — never how you happened to type it.
There is no way to hand-write a review session's title, and no way to start a review that is not a locked reviewer.
The composing function is formatReviewSessionTitle in src/shared/review-session-title.ts; the
promises it keeps are in .claude/memory/contracts/review-session-title-contract.md. Starting a
review at all — the full request shape, stage vs reviewers, and what comes back — is
.claude/memory/contracts/review-service-contract.md.
Related
- dev-pipeline.md — the Dev Pipeline, whose AI Code Review phase and cross-vendor peer review start most reviewer sessions.
- overseer-worker-titles.md — the matching fixed title shape for workers an Overseer spawns.
- rename-a-session.md — renaming any session by hand.
Last verified 2026-09-27