Oko/Docs

Command reference

oko innovation propose

Records one proposal: the problem in words, the product that owns it, the measure that counts the problem, the figure it promises, its cost in executor hours and the operator's own words it answers.

Invocation#

Command
oko innovation propose --title T --problem TEXT --product P --measure signal:NAME|resources:POINTER|forecast:POINTER [--hours N] --expect FIGURE --cost-hours H --quote SESSION#ORDINAL... [--source TEXT]... --by WHO [--json]

Inputs and options#

  • --measure names an answer Oko owns: `signal:NAME`, a declared factory signal's largest figure (`oko reflection signals`); `resources:POINTER`, a figure of `oko work resources` over --hours at the JSON pointer (`/calls/build/hoursPerDay`); `forecast:POINTER`, a figure of `oko work forecast` (`/hours`). Every one counts what is wrong, so a proposal promises a lower figure.
  • --quote SESSION#ORDINAL names the operator's message number ORDINAL of that session, as `oko tasks messages` numbers them; at least one is required. --source names what else the proposal was read from.
  • The register is ~/Library/Application Support/Oko/innovations.json; OKO_INNOVATION_REGISTER moves it, and beside a moved OKO_DEFECT_REGISTER it is <register>.innovations.json.

Output and state effect#

  • Reads the measure now as the baseline and the quoted messages verbatim from the session's transcript; the proposal stores both, never a typed figure or a paraphrase.
  • Records a defect of the product (surface `innovation register`, found in `innovation:<id>`, its completion criterion `<measure> reads at most <expected> after the repair`), so the proposal enters `oko work` and an executor takes it like any other item.
  • Prints the innovation: {id, title, problem, product, measure, windowHours, baseline: {at, value}, expected, costHours, quotes: [{session, ordinal, at, words}], sources, defect, proposedBy, proposedAt, verdict: pending}.

Refusals and safe exits#

  • “an innovation answers the operator's own words: name at least one --quote SESSION#ORDINAL”; “--cost-hours takes executor hours above zero; got <n>”; “<measure> reads over a window; name it with --hours N”; “a measure is signal:NAME, resources:POINTER or forecast:POINTER; got <measure>” (exit 2).
  • “<measure> reads <baseline> now; an innovation promises a lower figure, and <expected> is not lower”; “<measure>: the answer carries nothing at <pointer>”; “<measure>: the signal read no subject now, so it has no figure”.
  • “session <session> holds <n> operator message(s); none is number <ordinal>”; “a quote is SESSION#ORDINAL, the operator's message number; got <text>” (exit 2).

CLI reference#