Oko/Docs

Command reference

oko tasks relate

Records duplicate-of, follows, blocked-by or part-of by identity; a task or defect may be part-of a current operator goal.

Invocation#

Command
oko tasks relate <task-id|defect-id> <kind> <task-id|defect-id|goal:id> --by (operator | <session>) [--reason TEXT] [--json]

Inputs and options#

  • The first end is a recorded task or defect. The second is another task or defect, or `goal:<id>` from the current operator goal snapshot for part-of only. Defect ids use the `defect-` prefix and eight characters printed by defects list.
  • --by names the actual recording operator or session; --reason explains a manual correction. Automatic graph placement records `oko:brama` and cites exact excerpts of both statements for duplicate-of or follows.

Output and state effect#

  • Writes one relation through the serialized task relation transaction. A part-of edge to `goal:<id>` puts the item under that root in `oko tasks map`; a duplicate takes its state from its original, and follows or blocked-by waits while the target is open. Relating an item does not settle it or edit a transcript. Remove a wrong edge with `oko tasks unrelate` before choosing a different parent.

Refusals and safe exits#

  • A missing author, unknown relation kind, unknown endpoint, self-relation or repeated edge is refused. A defect whose printed short end collides with another registered defect is not a known endpoint, even if its whole UUID was given: no relation may choose one of them arbitrarily. A goal cannot be the first end or a duplicate/follows/blocked-by target. A second part-of parent and a cycle are refused; remove the wrong relation explicitly first. A failed goal snapshot or defect-register read retains the actual cause; a relation row without a required endpoint or kind names that field and row rather than silently treating it as empty.

CLI reference#