Skip to content

Commit 003b14c

Browse files
authored
Document exact model CLI review workflow (#255)
1 parent 57692db commit 003b14c

1 file changed

Lines changed: 186 additions & 11 deletions

File tree

‎MODELS.md‎

Lines changed: 186 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,14 @@ merging, releases, or changes to those controls.
99

1010
## Lineup
1111

12-
Use the lineup below, verifying current availability through the installed tools and
13-
official provider documentation. Record the actual model ID and tool version;
14-
report unavailable slots and substitutions explicitly. Do not claim a review
15-
ran merely because a CLI accepted a model name.
12+
Use these exact model IDs and CLI routes. This is the repository's selected
13+
lineup, not a request to discover the latest models. Start with the local
14+
commands below; do not repeat broad web searches to map model names to CLIs.
15+
Check installed CLI versions and actual authenticated execution. Consult the
16+
linked official documentation only when a command, access failure, deprecation,
17+
or requested lineup change needs investigation. Record requested IDs, identities
18+
reported by the tools, and tool versions separately. CLI acceptance of a name
19+
does not establish that a review ran.
1620

1721
| Step | Model | Java Encoder responsibility |
1822
| --- | --- | --- |
@@ -24,19 +28,173 @@ ran merely because a CLI accepted a model name.
2428
| 3. Independent review | Sonnet 5.5 (`claude-sonnet-5-5`, through Claude Code) | Checks Javadocs, examples and migration notes for accurate context selection, complete surrounding syntax, concision and plain US English. |
2529
| 4. Resolve and deliver | Astra (`gpt-6-astra`, through Codex) | Resolves findings with evidence, validates the final revision, and reports the verdict, remaining blockers and results to the operator. |
2630

31+
### Start here: scope and orchestration
32+
33+
The coordinating Codex agent owns the task and accepted edits. This workflow
34+
explicitly permits independent model reviews in parallel. Use the installed
35+
`codex` executable for OpenAI models and `claude` for Anthropic models; a Codex
36+
subagent cannot select a Claude model. Do not recursively launch this lineup
37+
from each reviewer.
38+
39+
For implementation, run Astra's build and Opus's second build sequentially,
40+
then freeze the revision for independent reviews. Use an isolated branch/checkout
41+
when the user's working tree has unrelated changes. Build agents may edit only
42+
their assigned checkout under the session's existing permissions and repository
43+
controls. Never bypass approval or sandbox controls for either CLI. The commands
44+
below are for reviews, not for granting build agents write access.
45+
46+
For an issue or proposed behavior review, skip the implementation steps and
47+
give the reviewers the same current SHA, proposal, and relevant source. State
48+
that no implementation diff exists. Opus can review feasibility and test gaps
49+
without making a second build. Do not create a fix, publish a comment, or promise
50+
a release merely because a review was requested.
51+
52+
1. Read this file and the repository guidance; record `git status --short` and
53+
`git rev-parse HEAD`. Preserve the user's uncommitted work.
54+
2. Prepare one immutable review packet outside the working tree. Include the
55+
reviewed SHA, task intent, complete diff (or explicit proposal), full relevant
56+
files with line numbers, callers/tests, repository guidance, and relevant
57+
primary-specification excerpts with retrieval dates and source links. Retain
58+
the packet and its SHA-256. If reviewing uncommitted changes, identify the SHA
59+
as the baseline and hash the captured diff too; do not call it a committed
60+
revision. Do not include credentials or unrelated private files.
61+
3. Record `codex --version` and `claude --version`. Check Codex's authenticated
62+
catalog once per review session using the `model/list` procedure below.
63+
Reuse that response for all Codex slots. Perform the Blue preflight once before
64+
its actual review. For Claude, a successful review result is also the access
65+
check; a separate greeting probe is unnecessary.
66+
4. Run independent reviews against that same packet. Keep each slot's role
67+
instruction separate from the shared evidence, then combine them into a
68+
retained per-slot input file. Require findings before other reviewers'
69+
conclusions are shared. Tell reviewers not to edit, publish, delegate, or run
70+
other models. The coordinator runs additional tests or retrieves specifications
71+
requested by any reviewer, then supplies that evidence for follow-up.
72+
5. Retain stdout, stderr, exit status, reported identity, and verdict per slot.
73+
Resolve findings against code, specifications, and tests. Send material fixes
74+
back to affected reviewers at the new SHA.
75+
6. Deliver the verdict and evidence with any unfilled slots and unrun checks.
76+
A review after a release is supplemental, never a retroactive release gate.
77+
78+
### CLI recipes
79+
80+
These routes were checked with **Codex CLI 0.163.0** and **Claude Code 2.1.304**
81+
on **2026-10-20**. Recheck local `--help` when the installed version changes or
82+
a flag fails; do not silently change models. The commands assume absolute
83+
`review_dir`, `review_packet`, and `review_role_file` paths. The packet contains
84+
shared evidence; the role file contains the slot's instructions. Use a fresh
85+
directory and one output basename per run, including follow-up reviews.
86+
87+
```sh
88+
codex --version
89+
claude --version
90+
mkdir -p "$review_dir/empty"
91+
```
92+
93+
After selecting `review_model` and its role file, prepare the per-slot input:
94+
95+
```sh
96+
review_model=gpt-6.1-sol
97+
review_input="$review_dir/$review_model.input.txt"
98+
cat "$review_role_file" "$review_packet" > "$review_input"
99+
shasum -a 256 "$review_packet" "$review_input"
100+
```
101+
102+
Use `gpt-6.1-sol` for independent review or `gpt-6-astra` for proposal analysis
103+
and resolution. Feed the input through stdin rather than embedding it in a shell
104+
argument. The final report and JSONL event log are separate artifacts:
105+
106+
```sh
107+
codex exec --ignore-user-config --ephemeral --skip-git-repo-check \
108+
-C "$review_dir/empty" -s read-only \
109+
-m "$review_model" -c 'model_reasoning_effort="high"' \
110+
--json -o "$review_dir/$review_model.txt" \
111+
< "$review_input" > "$review_dir/$review_model.jsonl" \
112+
2> "$review_dir/$review_model.stderr"
113+
review_status=$?
114+
printf '%s\n' "$review_status" > "$review_dir/$review_model.exit"
115+
```
116+
117+
For Claude, use exactly `claude-opus-5-5`, `claude-mythos-5-1`, or
118+
`claude-sonnet-5-5`. This packet-only recipe disables tools and MCP servers;
119+
provide source/specification/test evidence in the packet. Select the Claude ID
120+
and prepare its per-slot input as above before running:
121+
122+
```sh
123+
(
124+
cd "$review_dir/empty" || exit 1
125+
claude -p --model "$review_model" --effort high \
126+
--output-format json --tools "" \
127+
--strict-mcp-config --mcp-config '{"mcpServers":{}}' \
128+
--disable-slash-commands --no-session-persistence \
129+
< "$review_input" > "$review_dir/$review_model.json" \
130+
2> "$review_dir/$review_model.stderr"
131+
review_status=$?
132+
printf '%s\n' "$review_status" > "$review_dir/$review_model.exit"
133+
exit "$review_status"
134+
)
135+
```
136+
137+
Tool disabling is not full process isolation: installed settings, hooks and
138+
managed policies can still apply. Preserve required controls and record any
139+
behavior that adds context or affects the review. Do not use `--bare` as an isolation
140+
shortcut: in the verified version it disables OAuth/keychain authentication.
141+
Do not add `--fallback-model` or permission-bypass flags. `Opus 5.5 Cyber` is
142+
not a separate model ID in this lineup; use `claude-opus-5-5` and report any
143+
provider access program only if the tool actually attests it.
144+
145+
For every command, capture the exit code immediately. For Codex require a
146+
completed turn and a substantive final verdict; an empty output file or a
147+
`turn.failed` event is not a review. For Claude inspect `is_error`, `result`,
148+
and the `modelUsage` keys in the JSON response. Record the identity actually
149+
reported, including any unexpected model. A model's own claim about its name
150+
is not identity evidence. Codex CLI 0.163.0's observed JSONL turns did not expose
151+
an underlying backend model identity: retain the catalog match and requested ID,
152+
and record the backend as unreported. Do not invent an identity field. If a tool
153+
reports a different primary reviewer, mark the requested slot unfilled and
154+
describe the actual run; record auxiliary model usage separately. Do not claim
155+
tests ran based on an analysis-only response. No automatic model substitution
156+
is allowed.
157+
158+
Official references for troubleshooting:
159+
[Codex CLI](https://developers.openai.com/codex/cli/reference),
160+
[Codex app-server](https://developers.openai.com/codex/app-server),
161+
[Astra](https://developers.openai.com/api/docs/models/gpt-6-astra),
162+
[Sol 6.1](https://developers.openai.com/api/docs/models/gpt-6.1-sol),
163+
[Claude models](https://platform.claude.com/docs/en/models/overview),
164+
[Mythos 5.1](https://platform.claude.com/docs/en/models/mythos-5-1/overview),
165+
and [Claude CLI](https://code.claude.com/docs/en/cli-reference).
166+
27167
### Daybreak Blue preflight
28168

29169
This slot means the **Daybreak Blue entry in the Codex model picker**. Do not
30170
silently replace it with GPT-6 Sol plus Blue access: those are different model
31171
selections. The [API model catalog](https://developers.openai.com/api/docs/models/gpt-daybreak-blue-latest)
32-
marks the alias deprecated, but an operator may explicitly request the installed
33-
Codex picker entry. Check its availability for the current account instead of
172+
marks the alias deprecated, but this workflow selects the installed Codex picker
173+
entry with Blue access. When the user invokes this workflow, attempt this slot
174+
and report any failure; do not treat it as an optional substitute for Sol.
175+
Check its availability for the current account instead of
34176
inferring access from environment variables, configuration keys or API deprecation.
35177

36178
Record `codex --version` and inspect the authenticated Codex app-server
37179
`model/list` result: match the display name, model ID and
38-
`availableAccessPrograms.cyber`. Then use an empty temporary directory for this
39-
harmless probe (replace `/path/to/empty-directory`):
180+
`availableAccessPrograms.cyber`. Use `codex app-server --stdio` with newline
181+
delimited JSON-RPC. Send `initialize`, wait for its response, send `initialized`,
182+
then request `model/list`:
183+
184+
```json
185+
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"clientInfo":{"name":"encoder-review","version":"1.0"},"capabilities":{"experimentalApi":true}}}
186+
{"jsonrpc":"2.0","method":"initialized"}
187+
{"jsonrpc":"2.0","id":2,"method":"model/list","params":{"includeHidden":true}}
188+
```
189+
190+
Retain the catalog response and follow `nextCursor` if it is non-null. Match
191+
`displayName: "Daybreak Blue"`, `model: "gpt-daybreak-blue-latest"` and cyber
192+
access `daybreakBlue`. The CLI spelling is `daybreak_blue`; the app-server
193+
spelling is `daybreakBlue`. Close the catalog process after collecting results.
194+
Do not dump auth files or infer access from environment variables.
195+
196+
Then use an empty temporary directory for this harmless probe
197+
(replace `/path/to/empty-directory`):
40198

41199
```sh
42200
codex exec --ignore-user-config --ephemeral --skip-git-repo-check \
@@ -47,7 +205,22 @@ codex exec --ignore-user-config --ephemeral --skip-git-repo-check \
47205

48206
Require a completed turn with `READY`, not just CLI acceptance of the name.
49207
For the actual review, use the same explicit model and program with the immutable
50-
review packet required below; a preflight is not a code review. Keep repository
208+
review packet and a Blue role instruction; a preflight is not a code review.
209+
Prepare `review_input` for this slot as above:
210+
211+
```sh
212+
codex exec --ignore-user-config --ephemeral --skip-git-repo-check \
213+
-C "$review_dir/empty" -s read-only \
214+
-m gpt-daybreak-blue-latest --cyber-access-program daybreak_blue \
215+
-c 'model_reasoning_effort="high"' \
216+
--json -o "$review_dir/daybreak-blue.txt" \
217+
< "$review_input" > "$review_dir/daybreak-blue.jsonl" \
218+
2> "$review_dir/daybreak-blue.stderr"
219+
review_status=$?
220+
printf '%s\n' "$review_status" > "$review_dir/daybreak-blue.exit"
221+
```
222+
223+
Keep repository
51224
review and approval controls in force. Do not enable model/provider fallback.
52225
If using app-server directly, set `allowProviderModelFallback=false` on
53226
`thread/start` and `cyberAccessProgram=daybreakBlue` on `turn/start`.
@@ -65,7 +238,8 @@ Do not change account entitlements or silently substitute another model. Report
65238
an unfilled slot as a coverage gap, not a passing review.
66239

67240
On 2026-10-18, Codex 0.163.0 advertised the exact picker entry with Blue access,
68-
and its explicit probe completed successfully. The earlier #243 review had
241+
and its explicit probe completed successfully. The catalog and explicit probe
242+
were verified again on 2026-10-20 with the same CLI version. The earlier #243 review had
69243
not attempted that probe; its unavailable label did not establish an access
70244
failure. This dated result does not guarantee future access. Any review added
71245
after publication must be labeled supplemental, not retroactively counted as a
@@ -134,7 +308,8 @@ later edits.
134308
Require a **MERGE**, **REQUEST_CHANGES**, or **CLOSE** recommendation with severity,
135309
exact file/line locations, the failing context or contract, evidence, and a
136310
concrete fix. Separate introduced regressions from inherited issues and clearly
137-
label hypotheses. A MERGE recommendation is advisory, not permission to merge.
311+
label hypotheses. All model recommendations, including Astra's final synthesis,
312+
are advisory; none authorize merging, closing, or publication.
138313

139314
For security claims, read the primary specification or implementation and verify
140315
that it supports the claim. Identify the parser and version used by a test and

0 commit comments

Comments
 (0)