review-commands¶
raw source¶
The review act is fastest in the composer: the human watches a reading, and the judgment — "agreed" or
"disputed" — is a / command in the same box the remark goes in. A compact / button beside the
composer's @ and ** grammar hints makes that command surface visible; it types the same trigger the
hand would, never opening a second menu or creating another execution path. The interim standalone
human-ok button was retired because the command is the ONE dashboard door. No new verbs, no new writes:
the commands are doors onto acts the pane already has.
expanded spec¶
The trigger. In [[event-detail**'s docked remark composer, a /token at the start of the caret's
LINE opens a small command dropdown — the session ❯ box's leading-/ grammar, per-line so a stamped
▶ anchor (or a circled frame) above the caret never disarms it: circle → /refuse on the fresh line
below is the natural flow. The compact / action-row button inserts that exact trigger at the caret,
preserves the draft, refocuses the textarea, and on a command-eligible line opens the SAME dropdown; it
appears only when that home supplies commands, so issue composers remain untouched. Matching, row markup,
and keys (↑↓ · ⏎/Tab · Esc) are the console's own — the shared matchSlash/SlashMenu in mentions's
module, never a fork.
Kind 1 — built-in review verbs, one registry, one door. The registry (reviewCommands.js,
the session-console sessionCommands.js precedent) holds each verb's static identity + when gate;
the host binds the runner per render, and the typed command is the ONE dashboard entry to the act — the
gate lives in the registry alone, never re-judged at a call site. First member: /ok fires the exact
human-ok runner under the registry's gate (the viewed reading is the scenario's latest effective one
and not yet ok'd — the header shows only the settled ok'd mark, no button); outside the gate, typing /ok
offers nothing.
Kind 2 — preset prose from the review plugin surface. surface: review is one more value in
surface's field-driven enum, gathered by the same recursive loadSurface and served at
/api/plugins?surface=review. The instance shelf is .plugins's review/; its first resident,
refuse, is the human's dispute of the viewed verdict. Picking a preset PREFILLS the composer with
its body — {node} {scenario} {expected} filled at insert time, a stamped ▶ anchor head kept —
and the human edits and sends. The result is an ORDINARY remark on the (node, scenario) thread:
remark-teeth's aging pressure IS the refuse semantic, zero new write mechanism.
The surface deliberately does not include /drop — its delete-vs-retire design is still open.