Each scenario is a goal someone has with OCX, in their own words, and the
steps that reach it today: commands at a terminal, actions on the web page,
or Fossil's own pages. Each step says whether it works and which slice built
it, or that it is done by hand, or that it is missing. A spec runs the steps
that work, and a guard holds this document to the code: each scenario names
its spec, and each ocx2 command it shows outside a missing step is a tool
(spec/guards/interfaces_spec.cr).
A scenario arrives as the maintainer's goal, in a post or here. An agent drafts its steps against the code, runs them, and marks what is missing; what is missing becomes a slice, built in the order the scenarios need it. USAGE.md says what each tool takes and answers, and protocol v1 what each artifact means. Since protocol v1, OCX's code knows no agent (HISTORY.md decisions 40 to 42): how Claude or Codex runs is the data of the runs people send and of the patterns they start from, and what an agent itself does with what it is given waits for the agent-specific work that follows v1.
Review check-ins with Codex in a run's sandbox
The goal, the maintainer's, 2026-10-07: "add an OCX Record to define a sandbox/workspace capable of running either Claude or Codex", "manually start a shell using that record from the CLI and run Codex within that shell to perform audit reviews of ocx2 checkins"; on the forum, not a ticket.
Who: the maintainer, with setup, at the served host's command line.
Spec: spec/scenarios/audit_spec.cr
| Step | How | Status |
|---|---|---|
| 1. A user for the reviewer's runs | Fossil's user page: a user made for runs, such as auditor, holding check-in, never admin or setup |
by hand |
| 2. The node | ocx2 hook --node lab-1 once, lab-1 a user holding no capability: the hook answers and runs the runs that name it |
works: v1.3, v1.5 |
| 3. A pattern for its runs | the wiki page run/codex, saved by a user holding admin or setup: Codex's program and arguments as command, its login files as homes, its env, and the run's other fields |
by hand |
| 4. A thread for its work | Fossil's forum page: a thread, such as "review ocx2 check-ins" | works: Fossil |
| 5. Its run | ocx2 create --pattern URL --to POST --user auditor --node lab-1 --objective TEXT --fields JSON, the fields checking out ocx2 and making it a manual session that hears you and is given each check-in on ocx2 |
works: create |
| 6. Started by hand | ocx2 run RUN: the node's watcher prepares it and starts Codex in its sandbox, its run on its standard input |
works: run |
| 7. Each check-in to review | the hook gives the session each check-in on ocx2, a line of JSON on its standard input |
works: v1.6 |
| 8. Codex's review and verdict | Codex reads what it is given and records an audited verdict with ocx2 audit |
missing: agent-specific, after v1 |
| 9. Stopping it | ocx2 stop RUN |
works: stop |
Talk to Claude on a forum thread of a project from GitHub
The goal, the maintainer's, at the terminal on 2026-10-09: "make a repo on github", "do an import by giving the url and be ready to use the new repo without other steps", "do a create to add a claude remote control workspace that waits for messages on the forum thread it created and have it respond to forum posts and remote control, without needing to fill in any fields but a drop down to select claude".
Who: the maintainer, with setup, on the web page and once at the served host's command line.
Spec: spec/scenarios/talk_spec.cr
| Step | How | Status |
|---|---|---|
| 1. A repository on GitHub | GitHub's own pages | by hand |
| 2. It, served here | the OCX page's import, or ocx2 import URL NAME: served beside the served repository, its public URL set, the hook installed, your login group joined, the patterns copied |
works: import |
| 3. Claude's program | Claude's program and arguments, remote control among them, its shared sign-in and environment: data for the pattern of step 4 | by hand |
| 4. A pattern for its runs | the wiki page run/claude, saved by a user holding admin or setup: a run's fields, Claude's program among them, a session hearing you, the network open; written once, used for every such run |
by hand |
| 5. Its thread and run | the OCX page's create, or ocx2 create --pattern URL --title TITLE --objective TEXT, URL the pattern page's: a new thread whose first post is the run, the pattern's fields written in it |
works: create |
| 6. Claude, started | by step 5 itself: this host's node acts on the run at once, and its watcher starts Claude in its sandbox, its run on its standard input | works: create, v1.5 |
| 7. Talking to it | a reply in its thread, given to Claude as a line of JSON on its standard input | works: v1.6 |
| 8. Claude's answers | Claude reads what it is given and answers in the thread with ocx2 post |
missing: agent-specific, after v1 |
| 9. Watching and steering it | claude.ai, through the remote control its run's arguments turn on | missing: agent-specific, after v1 |
| 10. Stopping it | the OCX page's stop, or ocx2 stop RUN |
works: stop |