# decision

> **Tool `tools/llm/decision.py`** (program, Models). Ask a configured decision model bounded choice, yes-or-no and scoring questions.

Run it with `./gameframe run decision ARGS` or `python3 tools/llm/decision.py`. [Source on GitHub](https://github.com/tanepiper/game-frame/blob/main/tools/llm/decision.py).

## Its own help

This is the help text in the tool itself, as `./gameframe tool decision` prints it.

```text
Ask a configured decision model bounded choice, yes-or-no and scoring questions.

Usage:
  decision.py REQUEST.json [--model ID] [--url URL] [--timeout SECONDS]
  decision.py - [options] < REQUEST.json

REQUEST.json contains `state` and `questions`. State may be text, an object or an array.
Each question has `type` (`choice`, `noul` or `score`), `instructions`, and optional or
required `criteria`. Choice and score questions need 2 to 24 options.

The tool calls the System One decision endpoint at `/v1/systemone`. Set
GAMEFRAME_DECISION_ENDPOINT and GAMEFRAME_DECISION_MODEL to route it to a decision model. If no
decision endpoint is set, local mode builds one from GAMEFRAME_LLM_ENDPOINT. `--url` and
`--model` select a route for one call.
The endpoint and model are user choices. Local model use is the default; the tool never
switches to a paid provider. It asks before sending to a non-loopback endpoint and stops if no
confirmation is available. It does not start a server or download a model.

Example:
  {"state":"Static code only; no runtime comparison.","questions":{
    "next":{"type":"choice","instructions":"What should happen next?",
      "criteria":{"measure":"Run and compare the original.","none":"No listed step fits."}},
    "parity":{"type":"noul","instructions":"Is runtime parity proven?"},
    "evidence":{"type":"score","instructions":"How strong is the evidence?",
      "criteria":["Static code","Original measured","Parity test passed"]}}}

What it does not do: decide whether an agent should ask a person, write code, verify a claim or
treat confidence as the chance an answer is correct. Output is advisory. Check it against the
game's evidence.
```
