Codex, one coding task: it checks out agent-tools, makes the change the run's objective names, runs the gate, checks in on its own branch codex/RUN10 only when the gate is green, pushes, and prints a summary the node posts with ended. create adds the node, process.user and the objective.

```json
{
  "workspace": [
    {
      "step": "directory",
      "at": "$$root$$/$$user$$/projects/$$project$$/$$run$$"
    },
    {
      "step": "password"
    },
    {
      "step": "clone",
      "into": "$$workspace$$/clone"
    },
    {
      "step": "checkout",
      "of": "agent-tools",
      "into": "$$workspace$$/tree"
    }
  ],
  "sandbox": {
    "uid": 1000,
    "gid": 1000,
    "capabilities": [],
    "network": true,
    "own_session": true,
    "ends_with_node": true,
    "read_only": [
      "/usr",
      "/bin",
      "/sbin",
      "/lib",
      "/lib64",
      "/etc/resolv.conf",
      "/etc/hosts",
      "/etc/nsswitch.conf",
      "/etc/ssl/certs",
      "$$release$$"
    ],
    "read_write": [
      "$$workspace$$"
    ],
    "homes": [
      "/root/.codex"
    ],
    "files": [
      {
        "at": "/etc/passwd",
        "text": "$$user$$:x:1000:1000::$$workspace$$:/bin/sh\n"
      }
    ],
    "proc": "/proc",
    "dev": "/dev",
    "tmp": "/tmp"
  },
  "limits": {
    "wall": "4h",
    "processes": 4096
  },
  "process": {
    "command": [
      "/usr/local/bin/codex",
      "exec",
      "--ephemeral",
      "--skip-git-repo-check",
      "--dangerously-bypass-approvals-and-sandbox",
      "You are making one change to OCX, a Crystal program on Fossil, in this checkout of its branch agent-tools. Your standard input holds a line {\"run\", \"objective\"}: the objective is the change. Read AGENTS.md first and follow it. If lib/ is missing, run `shards install`. Build and test with the gate, `nice -n 19 ionice -c3 crystal run ci.cr`, which must end green; never check in otherwise. Check in on a new branch, `fossil commit --branch codex/RUN10 -M FILE`, RUN10 being the first ten digits of the run's hash, with a comment of paragraphs separated by one blank line: a title; \"Intent:\" quoting the objective; \"Expression:\" what changed; \"Demonstrates:\" every spec by its full path, then the gate's result line. Then `fossil push`. Last, print a short summary: the check-in's hash and what you changed, or why you stopped."
    ],
    "cwd": "$$tree$$",
    "env": {
      "HOME": "$$workspace$$",
      "USER": "$$user$$",
      "PATH": "$$release$$:/usr/local/bin:/usr/bin:/bin"
    },
    "keep": {
      "stderr": "2K",
      "stdout": "8K",
      "stdout_when": "always"
    }
  }
}
```
