Attachment "run-codex-task.md" to
tech note [821db8ab25]
added by
opus-ocx2
2026-10-19 18:30:55.
0000: 43 6f 64 65 78 2c 20 6f 6e 65 20 63 6f 64 69 6e Codex, one codin
0010: 67 20 74 61 73 6b 3a 20 69 74 20 63 68 65 63 6b g task: it check
0020: 73 20 6f 75 74 20 61 67 65 6e 74 2d 74 6f 6f 6c s out agent-tool
0030: 73 2c 20 6d 61 6b 65 73 20 74 68 65 20 63 68 61 s, makes the cha
0040: 6e 67 65 20 74 68 65 20 72 75 6e 27 73 20 6f 62 nge the run's ob
0050: 6a 65 63 74 69 76 65 20 6e 61 6d 65 73 2c 20 72 jective names, r
0060: 75 6e 73 20 74 68 65 20 67 61 74 65 2c 20 63 68 uns the gate, ch
0070: 65 63 6b 73 20 69 6e 20 6f 6e 20 69 74 73 20 6f ecks in on its o
0080: 77 6e 20 62 72 61 6e 63 68 20 63 6f 64 65 78 2f wn branch codex/
0090: 52 55 4e 31 30 20 6f 6e 6c 79 20 77 68 65 6e 20 RUN10 only when
00a0: 74 68 65 20 67 61 74 65 20 69 73 20 67 72 65 65 the gate is gree
00b0: 6e 2c 20 70 75 73 68 65 73 2c 20 61 6e 64 20 70 n, pushes, and p
00c0: 72 69 6e 74 73 20 61 20 73 75 6d 6d 61 72 79 20 rints a summary
00d0: 74 68 65 20 6e 6f 64 65 20 70 6f 73 74 73 20 77 the node posts w
00e0: 69 74 68 20 65 6e 64 65 64 2e 20 63 72 65 61 74 ith ended. creat
00f0: 65 20 61 64 64 73 20 74 68 65 20 6e 6f 64 65 2c e adds the node,
0100: 20 70 72 6f 63 65 73 73 2e 75 73 65 72 20 61 6e process.user an
0110: 64 20 74 68 65 20 6f 62 6a 65 63 74 69 76 65 2e d the objective.
0120: 0a 0a 60 60 60 6a 73 6f 6e 0a 7b 0a 20 20 22 77 ..```json.{. "w
0130: 6f 72 6b 73 70 61 63 65 22 3a 20 5b 0a 20 20 20 orkspace": [.
0140: 20 7b 0a 20 20 20 20 20 20 22 73 74 65 70 22 3a {. "step":
0150: 20 22 64 69 72 65 63 74 6f 72 79 22 2c 0a 20 20 "directory",.
0160: 20 20 20 20 22 61 74 22 3a 20 22 24 24 72 6f 6f "at": "$$roo
0170: 74 24 24 2f 24 24 75 73 65 72 24 24 2f 70 72 6f t$$/$$user$$/pro
0180: 6a 65 63 74 73 2f 24 24 70 72 6f 6a 65 63 74 24 jects/$$project$
0190: 24 2f 24 24 72 75 6e 24 24 22 0a 20 20 20 20 7d $/$$run$$". }
01a0: 2c 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 ,. {. "s
01b0: 74 65 70 22 3a 20 22 70 61 73 73 77 6f 72 64 22 tep": "password"
01c0: 0a 20 20 20 20 7d 2c 0a 20 20 20 20 7b 0a 20 20 . },. {.
01d0: 20 20 20 20 22 73 74 65 70 22 3a 20 22 63 6c 6f "step": "clo
01e0: 6e 65 22 2c 0a 20 20 20 20 20 20 22 69 6e 74 6f ne",. "into
01f0: 22 3a 20 22 24 24 77 6f 72 6b 73 70 61 63 65 24 ": "$$workspace$
0200: 24 2f 63 6c 6f 6e 65 22 0a 20 20 20 20 7d 2c 0a $/clone". },.
0210: 20 20 20 20 7b 0a 20 20 20 20 20 20 22 73 74 65 {. "ste
0220: 70 22 3a 20 22 63 68 65 63 6b 6f 75 74 22 2c 0a p": "checkout",.
0230: 20 20 20 20 20 20 22 6f 66 22 3a 20 22 61 67 65 "of": "age
0240: 6e 74 2d 74 6f 6f 6c 73 22 2c 0a 20 20 20 20 20 nt-tools",.
0250: 20 22 69 6e 74 6f 22 3a 20 22 24 24 77 6f 72 6b "into": "$$work
0260: 73 70 61 63 65 24 24 2f 74 72 65 65 22 0a 20 20 space$$/tree".
0270: 20 20 7d 0a 20 20 5d 2c 0a 20 20 22 73 61 6e 64 }. ],. "sand
0280: 62 6f 78 22 3a 20 7b 0a 20 20 20 20 22 75 69 64 box": {. "uid
0290: 22 3a 20 31 30 30 30 2c 0a 20 20 20 20 22 67 69 ": 1000,. "gi
02a0: 64 22 3a 20 31 30 30 30 2c 0a 20 20 20 20 22 63 d": 1000,. "c
02b0: 61 70 61 62 69 6c 69 74 69 65 73 22 3a 20 5b 5d apabilities": []
02c0: 2c 0a 20 20 20 20 22 6e 65 74 77 6f 72 6b 22 3a ,. "network":
02d0: 20 74 72 75 65 2c 0a 20 20 20 20 22 6f 77 6e 5f true,. "own_
02e0: 73 65 73 73 69 6f 6e 22 3a 20 74 72 75 65 2c 0a session": true,.
02f0: 20 20 20 20 22 65 6e 64 73 5f 77 69 74 68 5f 6e "ends_with_n
0300: 6f 64 65 22 3a 20 74 72 75 65 2c 0a 20 20 20 20 ode": true,.
0310: 22 72 65 61 64 5f 6f 6e 6c 79 22 3a 20 5b 0a 20 "read_only": [.
0320: 20 20 20 20 20 22 2f 75 73 72 22 2c 0a 20 20 20 "/usr",.
0330: 20 20 20 22 2f 62 69 6e 22 2c 0a 20 20 20 20 20 "/bin",.
0340: 20 22 2f 73 62 69 6e 22 2c 0a 20 20 20 20 20 20 "/sbin",.
0350: 22 2f 6c 69 62 22 2c 0a 20 20 20 20 20 20 22 2f "/lib",. "/
0360: 6c 69 62 36 34 22 2c 0a 20 20 20 20 20 20 22 2f lib64",. "/
0370: 65 74 63 2f 72 65 73 6f 6c 76 2e 63 6f 6e 66 22 etc/resolv.conf"
0380: 2c 0a 20 20 20 20 20 20 22 2f 65 74 63 2f 68 6f ,. "/etc/ho
0390: 73 74 73 22 2c 0a 20 20 20 20 20 20 22 2f 65 74 sts",. "/et
03a0: 63 2f 6e 73 73 77 69 74 63 68 2e 63 6f 6e 66 22 c/nsswitch.conf"
03b0: 2c 0a 20 20 20 20 20 20 22 2f 65 74 63 2f 73 73 ,. "/etc/ss
03c0: 6c 2f 63 65 72 74 73 22 2c 0a 20 20 20 20 20 20 l/certs",.
03d0: 22 24 24 72 65 6c 65 61 73 65 24 24 22 0a 20 20 "$$release$$".
03e0: 20 20 5d 2c 0a 20 20 20 20 22 72 65 61 64 5f 77 ],. "read_w
03f0: 72 69 74 65 22 3a 20 5b 0a 20 20 20 20 20 20 22 rite": [. "
0400: 24 24 77 6f 72 6b 73 70 61 63 65 24 24 22 0a 20 $$workspace$$".
0410: 20 20 20 5d 2c 0a 20 20 20 20 22 68 6f 6d 65 73 ],. "homes
0420: 22 3a 20 5b 0a 20 20 20 20 20 20 22 2f 72 6f 6f ": [. "/roo
0430: 74 2f 2e 63 6f 64 65 78 22 0a 20 20 20 20 5d 2c t/.codex". ],
0440: 0a 20 20 20 20 22 66 69 6c 65 73 22 3a 20 5b 0a . "files": [.
0450: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 {.
0460: 22 61 74 22 3a 20 22 2f 65 74 63 2f 70 61 73 73 "at": "/etc/pass
0470: 77 64 22 2c 0a 20 20 20 20 20 20 20 20 22 74 65 wd",. "te
0480: 78 74 22 3a 20 22 24 24 75 73 65 72 24 24 3a 78 xt": "$$user$$:x
0490: 3a 31 30 30 30 3a 31 30 30 30 3a 3a 24 24 77 6f :1000:1000::$$wo
04a0: 72 6b 73 70 61 63 65 24 24 3a 2f 62 69 6e 2f 73 rkspace$$:/bin/s
04b0: 68 5c 6e 22 0a 20 20 20 20 20 20 7d 0a 20 20 20 h\n". }.
04c0: 20 5d 2c 0a 20 20 20 20 22 70 72 6f 63 22 3a 20 ],. "proc":
04d0: 22 2f 70 72 6f 63 22 2c 0a 20 20 20 20 22 64 65 "/proc",. "de
04e0: 76 22 3a 20 22 2f 64 65 76 22 2c 0a 20 20 20 20 v": "/dev",.
04f0: 22 74 6d 70 22 3a 20 22 2f 74 6d 70 22 0a 20 20 "tmp": "/tmp".
0500: 7d 2c 0a 20 20 22 6c 69 6d 69 74 73 22 3a 20 7b },. "limits": {
0510: 0a 20 20 20 20 22 77 61 6c 6c 22 3a 20 22 34 68 . "wall": "4h
0520: 22 2c 0a 20 20 20 20 22 70 72 6f 63 65 73 73 65 ",. "processe
0530: 73 22 3a 20 34 30 39 36 0a 20 20 7d 2c 0a 20 20 s": 4096. },.
0540: 22 70 72 6f 63 65 73 73 22 3a 20 7b 0a 20 20 20 "process": {.
0550: 20 22 63 6f 6d 6d 61 6e 64 22 3a 20 5b 0a 20 20 "command": [.
0560: 20 20 20 20 22 2f 75 73 72 2f 6c 6f 63 61 6c 2f "/usr/local/
0570: 62 69 6e 2f 63 6f 64 65 78 22 2c 0a 20 20 20 20 bin/codex",.
0580: 20 20 22 65 78 65 63 22 2c 0a 20 20 20 20 20 20 "exec",.
0590: 22 2d 2d 65 70 68 65 6d 65 72 61 6c 22 2c 0a 20 "--ephemeral",.
05a0: 20 20 20 20 20 22 2d 2d 73 6b 69 70 2d 67 69 74 "--skip-git
05b0: 2d 72 65 70 6f 2d 63 68 65 63 6b 22 2c 0a 20 20 -repo-check",.
05c0: 20 20 20 20 22 2d 2d 64 61 6e 67 65 72 6f 75 73 "--dangerous
05d0: 6c 79 2d 62 79 70 61 73 73 2d 61 70 70 72 6f 76 ly-bypass-approv
05e0: 61 6c 73 2d 61 6e 64 2d 73 61 6e 64 62 6f 78 22 als-and-sandbox"
05f0: 2c 0a 20 20 20 20 20 20 22 59 6f 75 20 61 72 65 ,. "You are
0600: 20 6d 61 6b 69 6e 67 20 6f 6e 65 20 63 68 61 6e making one chan
0610: 67 65 20 74 6f 20 4f 43 58 2c 20 61 20 43 72 79 ge to OCX, a Cry
0620: 73 74 61 6c 20 70 72 6f 67 72 61 6d 20 6f 6e 20 stal program on
0630: 46 6f 73 73 69 6c 2c 20 69 6e 20 74 68 69 73 20 Fossil, in this
0640: 63 68 65 63 6b 6f 75 74 20 6f 66 20 69 74 73 20 checkout of its
0650: 62 72 61 6e 63 68 20 61 67 65 6e 74 2d 74 6f 6f branch agent-too
0660: 6c 73 2e 20 59 6f 75 72 20 73 74 61 6e 64 61 72 ls. Your standar
0670: 64 20 69 6e 70 75 74 20 68 6f 6c 64 73 20 61 20 d input holds a
0680: 6c 69 6e 65 20 7b 5c 22 72 75 6e 5c 22 2c 20 5c line {\"run\", \
0690: 22 6f 62 6a 65 63 74 69 76 65 5c 22 7d 3a 20 74 "objective\"}: t
06a0: 68 65 20 6f 62 6a 65 63 74 69 76 65 20 69 73 20 he objective is
06b0: 74 68 65 20 63 68 61 6e 67 65 2e 20 52 65 61 64 the change. Read
06c0: 20 41 47 45 4e 54 53 2e 6d 64 20 66 69 72 73 74 AGENTS.md first
06d0: 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 69 74 2e 20 and follow it.
06e0: 49 66 20 6c 69 62 2f 20 69 73 20 6d 69 73 73 69 If lib/ is missi
06f0: 6e 67 2c 20 72 75 6e 20 60 73 68 61 72 64 73 20 ng, run `shards
0700: 69 6e 73 74 61 6c 6c 60 2e 20 42 75 69 6c 64 20 install`. Build
0710: 61 6e 64 20 74 65 73 74 20 77 69 74 68 20 74 68 and test with th
0720: 65 20 67 61 74 65 2c 20 60 6e 69 63 65 20 2d 6e e gate, `nice -n
0730: 20 31 39 20 69 6f 6e 69 63 65 20 2d 63 33 20 63 19 ionice -c3 c
0740: 72 79 73 74 61 6c 20 72 75 6e 20 63 69 2e 63 72 rystal run ci.cr
0750: 60 2c 20 77 68 69 63 68 20 6d 75 73 74 20 65 6e `, which must en
0760: 64 20 67 72 65 65 6e 3b 20 6e 65 76 65 72 20 63 d green; never c
0770: 68 65 63 6b 20 69 6e 20 6f 74 68 65 72 77 69 73 heck in otherwis
0780: 65 2e 20 43 68 65 63 6b 20 69 6e 20 6f 6e 20 61 e. Check in on a
0790: 20 6e 65 77 20 62 72 61 6e 63 68 2c 20 60 66 6f new branch, `fo
07a0: 73 73 69 6c 20 63 6f 6d 6d 69 74 20 2d 2d 62 72 ssil commit --br
07b0: 61 6e 63 68 20 63 6f 64 65 78 2f 52 55 4e 31 30 anch codex/RUN10
07c0: 20 2d 4d 20 46 49 4c 45 60 2c 20 52 55 4e 31 30 -M FILE`, RUN10
07d0: 20 62 65 69 6e 67 20 74 68 65 20 66 69 72 73 74 being the first
07e0: 20 74 65 6e 20 64 69 67 69 74 73 20 6f 66 20 74 ten digits of t
07f0: 68 65 20 72 75 6e 27 73 20 68 61 73 68 2c 20 77 he run's hash, w
0800: 69 74 68 20 61 20 63 6f 6d 6d 65 6e 74 20 6f 66 ith a comment of
0810: 20 70 61 72 61 67 72 61 70 68 73 20 73 65 70 61 paragraphs sepa
0820: 72 61 74 65 64 20 62 79 20 6f 6e 65 20 62 6c 61 rated by one bla
0830: 6e 6b 20 6c 69 6e 65 3a 20 61 20 74 69 74 6c 65 nk line: a title
0840: 3b 20 5c 22 49 6e 74 65 6e 74 3a 5c 22 20 71 75 ; \"Intent:\" qu
0850: 6f 74 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 oting the object
0860: 69 76 65 3b 20 5c 22 45 78 70 72 65 73 73 69 6f ive; \"Expressio
0870: 6e 3a 5c 22 20 77 68 61 74 20 63 68 61 6e 67 65 n:\" what change
0880: 64 3b 20 5c 22 44 65 6d 6f 6e 73 74 72 61 74 65 d; \"Demonstrate
0890: 73 3a 5c 22 20 65 76 65 72 79 20 73 70 65 63 20 s:\" every spec
08a0: 62 79 20 69 74 73 20 66 75 6c 6c 20 70 61 74 68 by its full path
08b0: 2c 20 74 68 65 6e 20 74 68 65 20 67 61 74 65 27 , then the gate'
08c0: 73 20 72 65 73 75 6c 74 20 6c 69 6e 65 2e 20 54 s result line. T
08d0: 68 65 6e 20 60 66 6f 73 73 69 6c 20 70 75 73 68 hen `fossil push
08e0: 60 2e 20 4c 61 73 74 2c 20 70 72 69 6e 74 20 61 `. Last, print a
08f0: 20 73 68 6f 72 74 20 73 75 6d 6d 61 72 79 3a 20 short summary:
0900: 74 68 65 20 63 68 65 63 6b 2d 69 6e 27 73 20 68 the check-in's h
0910: 61 73 68 20 61 6e 64 20 77 68 61 74 20 79 6f 75 ash and what you
0920: 20 63 68 61 6e 67 65 64 2c 20 6f 72 20 77 68 79 changed, or why
0930: 20 79 6f 75 20 73 74 6f 70 70 65 64 2e 22 0a 20 you stopped.".
0940: 20 20 20 5d 2c 0a 20 20 20 20 22 63 77 64 22 3a ],. "cwd":
0950: 20 22 24 24 74 72 65 65 24 24 22 2c 0a 20 20 20 "$$tree$$",.
0960: 20 22 65 6e 76 22 3a 20 7b 0a 20 20 20 20 20 20 "env": {.
0970: 22 48 4f 4d 45 22 3a 20 22 24 24 77 6f 72 6b 73 "HOME": "$$works
0980: 70 61 63 65 24 24 22 2c 0a 20 20 20 20 20 20 22 pace$$",. "
0990: 55 53 45 52 22 3a 20 22 24 24 75 73 65 72 24 24 USER": "$$user$$
09a0: 22 2c 0a 20 20 20 20 20 20 22 50 41 54 48 22 3a ",. "PATH":
09b0: 20 22 24 24 72 65 6c 65 61 73 65 24 24 3a 2f 75 "$$release$$:/u
09c0: 73 72 2f 6c 6f 63 61 6c 2f 62 69 6e 3a 2f 75 73 sr/local/bin:/us
09d0: 72 2f 62 69 6e 3a 2f 62 69 6e 22 0a 20 20 20 20 r/bin:/bin".
09e0: 7d 2c 0a 20 20 20 20 22 6b 65 65 70 22 3a 20 7b },. "keep": {
09f0: 0a 20 20 20 20 20 20 22 73 74 64 65 72 72 22 3a . "stderr":
0a00: 20 22 32 4b 22 2c 0a 20 20 20 20 20 20 22 73 74 "2K",. "st
0a10: 64 6f 75 74 22 3a 20 22 38 4b 22 2c 0a 20 20 20 dout": "8K",.
0a20: 20 20 20 22 73 74 64 6f 75 74 5f 77 68 65 6e 22 "stdout_when"
0a30: 3a 20 22 61 6c 77 61 79 73 22 0a 20 20 20 20 7d : "always". }
0a40: 0a 20 20 7d 0a 7d 0a 60 60 60 0a . }.}.```.