Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

resolve_question

Append an adjudication from a source in the frozen question contract.

Contract

Resolution must occur at or after resolve_after. Unresolved may be followed by a later adjudication. Yes, no and void are terminal; void requires a reason. The caller establishes the factual outcome.

Fields

FieldTypeRequired
keyKeyYes
op"resolve_question"Yes
resolutionResolutionYes

Setup

Start a fresh --memory process and send these requests, one per line, before the example. The same sequence also works with a new SQLite database.

{"version":1,"id":"setup-1","command":{"op":"create_question","question":{"id":"doc-launch","version":1,"proposition":"Release before timestamp 100","opens_at":0,"deadline":100,"resolve_after":110,"yes_rule":"Archive confirms release strictly before 100","no_rule":"Complete archive confirms no qualifying release","void_rule":"Archive permanently unavailable","resolution_sources":["official archive"]}}}
{"version":1,"id":"setup-2","command":{"op":"append_forecast","key":{"question_id":"doc-launch","version":1},"forecast":{"id":"f1","as_of":1,"evidence_cutoff":1,"probability":0.3,"previous_id":null,"change":"initial","method":"empirical outside view","rationale":"12 of 40 comparable attempts","assumptions":["cases are comparable"],"next_review_trigger":"readiness test","evidence":[]}}}

Request

Send this object on one line. It is expanded below for readability.

{
  "version": 1,
  "id": "example",
  "command": {
    "op": "resolve_question",
    "key": {
      "question_id": "doc-launch",
      "version": 1
    },
    "resolution": {
      "at": 120,
      "source": "official archive",
      "rationale": "synthetic archive confirms release",
      "outcome": {
        "status": "yes"
      }
    }
  }
}

Response

This response is generated by executing the example against the current binary. Commit timestamps, when present, are shown as <runtime UTC seconds>; the actual protocol returns integer UTC seconds.

{
  "version": 1,
  "id": "example",
  "result": {
    "event": {
      "kind": "resolution",
      "resolution": {
        "at": 120,
        "outcome": {
          "status": "yes"
        },
        "rationale": "synthetic archive confirms release",
        "source": "official archive"
      }
    },
    "key": {
      "question_id": "doc-launch",
      "version": 1
    },
    "recorded_at": "<runtime UTC seconds>",
    "sequence": 3
  }
}

Verification

The documentation gate executes the setup and request, then checks the following result fields against independently specified expectations:

JSON pointer within resultExpected
/sequence3
/event/resolution/outcome/status"yes"

Float comparisons use a 1e-12 tolerance. Request schema validation and cross-record validation still apply. See errors and recovery for failure handling.