Oko/Docs

Command reference

oko defects category

Puts an item in the build-first pool: one whose repair decides the quality of all other work, because it gates delivery (CI/CD, install, push, the judge) or the rules agents work under (Tama's gates, supervision, stop loops). Product work — a new feature, a cleanup across a repository, anything a user of the product would see — is not in the pool, however urgent. `oko work` serves the pool before every other item, orphaned tasks included. While the operator's standing ban on building until every item is closed holds, his ruling that decides the item admits building, compiling, testing and installing it for its repair, and only it.

Invocation#

Command
oko defects category set <id> build-first --reason TEXT --ruling RULING --attest TEXT --by SESSION [--json] | oko defects category clear <id> [--json]

Inputs and options#

  • <id>: the defect, by whole id or unambiguous prefix.
  • --reason: why the item gates the rest, in the words of whoever puts it there — a supervisor, or the reflection routine from the item's effect.
  • --ruling: the operator's ruling that admits it; it must already decide the item (bind his message to it first with `oko rulings record --ordinal N --subject <id> --also`).
  • --attest: the attestation, in its author's own words, that the item's repair changes only what decides the quality of the work and no product behaviour. Nothing scores the words: they are kept on the item, signed, for every reader and reviewer to hold against the repair.
  • --by: the session (or `operator`) that attests it.

Output and state effect#

  • set binds the ruling to the item's scoped consents `build@<id>`, `compile@<id>`, `test@<id>` and `install@<id>`, so `oko admit build --purpose <id>` — and Tama's build gate and Stado's build, test and install routines, which ask it — admit that work while the item is open, and writes `category {kind, reason, ruling, attestation {by, text, at}}` on the defect with a note naming the attestation. clear unbinds those consents and removes the category with a note; the standing ban decides the item again. Prints the short id, then `category build-first by ruling <ruling>: <reason>` and `attested by <session>: <text>`, or `<id> is in no category`; --json prints the defect. `oko defects show` prints the same two lines.
  • A category kept before attestations were recorded has none: `oko defects show` prints `attested by nobody: kept before attestations were recorded, so the item is outside the pool until \`oko defects category set\` attests it`, and the item is neither listed by `--category build-first`, served first by `oko work`, nor admitted for building until it is set again with an attestation.
  • Oko Desktop → Defects → Build first lists the category with each item's attestation (or `Attested by nobody`) and sets or clears it through the native `defects` `category {id, category, reason, ruling, attestation, by}` action, attesting as `operator`.

Refusals and safe exits#

  • `oko defects category takes set <id> build-first --reason TEXT --ruling RULING --attest TEXT --by SESSION or clear <id>; got <words>`; `<word> is not a defect category; the category is build-first` (exit 2); `oko defects category requires --reason <text>` and the same for --ruling, --attest and --by; a blank value names what is missing (`the attestation, in its author's words, that the repair changes only what decides the quality of the work and no product behaviour`, `who attests the item`). The native action refuses `a category needs …` naming the same field.
  • `ruling <id> does not decide defect <id>; it decides <subjects>. Name the operator's ruling that admits this item, or bind it first with oko rulings record --also`; `ruling <id> was superseded by message #<n> of session <session> and decides nothing now`; `no ruling with id <id> is registered`; `no defect with id <id> is registered`.

CLI reference#