---
{
  "n": 68,
  "title": "Critic rounds with one command",
  "abstract": "",
  "refs": [
    "todo:2133",
    "message:12819",
    "message:12817",
    "doc:67"
  ],
  "seen": [
    "agent",
    "user"
  ],
  "data": {
    "buttons": [
      {
        "label": "Build it",
        "say": "I accept the critic rounds design",
        "choice": "answer"
      },
      {
        "label": "Change it first",
        "say": "I want changes to the critic rounds design first",
        "choice": "answer"
      }
    ],
    "environment": "main",
    "revisions": 1,
    "open_until": 1790805069.05317,
    "pressed": [
      "Build it"
    ]
  },
  "created": 1790803227.5937128,
  "updated": 1790857197.809789,
  "deleted": 0.0,
  "completed": 0.0,
  "outcome": "",
  "type": "doc"
}
---
Proposal for to-do 2133 (report 66, wish 3; message 12819): a design critique round, as rule 53 asks for every new design, becomes one command. Today each round is assembled by hand: a harness page, a login, one browser per critic, a lens each, their findings gathered by me into a report, and a recheck sent to the same critics. The journal seeds nothing itself (message 12817): the project names its app address and, if it has one, its own seed command.

## The command
journal critique round "<what changed>" --critics 3 --provider claude --model sonnet [--lenses first-time,access,native,words,edges]
- It opens a report for the round, writes the round's harness page, and dispatches one helper per critic (the helper dispatch you accepted), each named after a famous designer or scientist (law L5), with its model named (L1).
- It returns at once; the dispatcher is told once, when every critic has reported, with the round's report.
- journal critique recheck <round> sends the same critics a follow-up to look again after the designer's revision (L4), rather than new critics.

## What a critic is given
- The app address, from the project's setting critique.app (the phone app, a demo viewer, anything a browser opens), and the login it starts with (critique.login: a browser storage file), so no critic sees a sign-in page.
- One lens each: a first-time user, accessibility, native feel on a phone, the words on screen, edge cases (offline, long text, empty states). A lens the command names that is not in the list is refused with the list.
- The house brief: what changed this round, your standing rulings on design (plain words, controls that match the app), and the harness rules: only the app address, never another port, never a journal command, screenshots into its own folder.
- A browser: the round's page says how to start Playwright's WebKit with a phone, a theme and the login, from the folder critique.browsers names; a critic on a provider with its own browser tool uses that.

## Before a round
- If the project names critique.seed, that command runs first, from the project root, with a time limit; it is the project's own way to put demo data in place (message 12817). With none set, the round runs on the app as it is.
- A round refuses to start when the app address does not answer, and says so in plain words.

## What comes back
- Each critic ends with journal helper report, which lands in the chat as a message from it and as a section of the round's report, headed by the critic's name and lens, findings most important first, with screenshot paths.
- When the last one reports, the report is complete and the dispatcher is told with one line. The designer gets that report and decides (rule 53); what the designer declines is noted under the finding.
- The critics are packed away when the round's report is closed.

## What it costs
- Server: a critique feature with the round and recheck commands, four settings (app, login, seed, browsers), a harness page written per round, and the gathering of reports into the round's report. It reuses the helpers (dispatch, say, report) and reports.
- No viewer page of its own at first: the round's report is a report like any other, and the helpers list (being built now) shows the critics while they work.
- One test file: a round dispatches one helper per critic with its lens, refuses an unknown lens and a dead address, and gathers the reports into one.
