Command reference
oko rulings record
Records one operator message, read from the session's transcript on this machine, as the ruling on the named tasks or defects, or on how every session holding a role works. The words are copied from the transcript, never typed in, and the answer quotes the words it bound, so a ruling bound to the wrong message shows at once.
Invocation#
oko rulings record --session ID [--ordinal N] (--subject ID [--subject ID ...] | --role ROLE) --by SESSION [--also] [--json]Inputs and options#
- --session names the session he said it in. Without --ordinal the newest operator message of that session is bound — the one just said; --ordinal N binds his message #N instead. --subject, repeatable, names each task identity or defect id it decides, or his build consent: `build` (every product) or `build:<product>`, withdrawn by a newer ruling on `no-build` or `no-build:<product>`. The consent binds every session that reads the register, compacted or new, so a consent he gave once is not asked of him again; for each product the newest ruling among `build`, `build:<product>`, `no-build` and `no-build:<product>` decides. `no-model:<name>` withdraws a model `models.json` declares (`model:<name>` consents to it again; the newer of the two decides): `oko sessions start --model`, the model the declared mix would choose and `oko sessions model` never start or move a session onto a withdrawn model, and their refusal quotes the ruling. `verdict:worst:<session>#<ordinal>` records his verdict that the answer that session gave just before message #N earns the worst standing there is: `oko scorecard standing` and `oko sessions scorecard` then give that session and the model of the answer the lowest standing and frustrated wording, beside his words; each message is its own subject, so one verdict never replaces another. --by names the session recording it.
- --also adds the subjects to a message that already rules on others; without it that is refused, so a message is never bound to a second subject by a guessed number.
- --role supervisor|executor binds the message as a ruling on that session role, under its own subject `role:<role>:<session>#<ordinal>`, so it stands beside the role's other rulings instead of replacing them; it may be given with --subject. The same subject typed as --subject, or in Oko Desktop's Record a ruling form (an empty message number binds the newest), records it the same way.
Output and state effect#
- Writes the ruling with the message's text and time and its author — the signed-in member, with their id, email, organization and central role from the organization's register (`list_org_members_for_org`) — and prints `ruling <id> stands on <subjects>: message #<n> "<first line of his words>"`; --json prints the ruling with `said`. Naming subjects the message already decides changes nothing; --also adds new ones to the existing ruling instead of a second one.
Refusals and safe exits#
- `oko rulings record does not take <flags>; it takes --session, --ordinal, --subject, --role, --by, --also, --json`, `oko rulings record requires --session <text>` and the same for --by, `oko rulings record --ordinal takes the number of the operator's message, not <word>: <cause>` (exit 2).
- `the newest operator message of session <id>, #<n> "<words>", is already ruling <id> on <subjects>; name the message to bind with --ordinal` when no --ordinal is given and the newest message is bound: nothing is written.
- `operator message #<n> of session <id> "<words>" is already ruling <id> on <subjects>; pass --also if it decides <new subjects> too`.
- `a ruling needs at least one --subject or a --role: the task, defect or session role it decides`; `<subject> is neither a task identity, a registered defect, an action constraint (…), a declared model (model:<name> and its no- withdrawal), a verdict:worst:<session>#<ordinal> verdict, a hook:<installed-id> decision nor a role:<role>:<session>#<ordinal> ruling`; `no-model:<name> names no declared model: a model ruling is model:<name> or no-model:<name> for one of <declared names>`; `verdict:worst names no message: a verdict is verdict:worst:<session>#<ordinal>, the message he gave it in`; `<role> is not a session role; oko sessions role records supervisor or executor`; `role:<role>:… names no message: a role ruling is role:<role>:<session>#<ordinal>`; `no transcript of session <id> on this machine`; `session <id> holds no operator message`; `session <id> has no operator message #<n>`.
- `<email> (<member>, <role> of organization <org>) may not record a standing decision: the organization's register gives steering to its owners, and to another member only through Oko's grant of steering.decide (oko_member_permissions), which an owner records with oko rulings steering grant <member>`; `organization <org>'s register lists no member <member>`.