Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@ summary: Timeline of guardrail helper changes mirrored from Sweetistics and rela

# Changelog

## 2026-09-29: GPT-6.1 Sol routing
- Upgrade GPT-6 Sol implementation and synthesis roles to GPT-6.1 Sol high; replace Astra judgment, prose, hardest-task, and reflection roles with GPT-6 Sol high.
- Use GPT-6.1 Sol high, Opus 5.5 high, and Fable 5.1 high for Arena runners; keep Sol 6.1 high and Opus high in its cross-judge pool.
- Use GPT-6.1 Sol xhigh for Architect, Interrogate, and Codex Autoreview; keep Architect’s three candidates and one Sol reviewer alongside Opus xhigh in Interrogate.

## 2026-09-23: Opus design and review roles
- Use Opus 5.5 for Interrogate at xhigh and optional Claude Autoreview at high; add it to Arena’s cross-judge pool at high, with Claude CLI routing and a 2.1.280 minimum-version check.
- Replace Architect’s Astra low candidate with Opus 5.5 high through `claude -p`; retain GPT-6 Sol high, Fable 5.1 high, and the three-candidate requirement.
Expand Down
2 changes: 1 addition & 1 deletion skills/architect/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Skip Phase A only when the work is genuinely greenfield with no surrounding syst

Run the **arena** skill with the design-sketch task and the Phase A grounding artifacts. Pass `references/runner-prompt.md` as each runner's prompt. Each candidate produces a design package shaped per `references/rationale-template.md`.

Use `architect runners` from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` when present. Otherwise default to one each on `gpt-6-sol` at `high` reasoning, `claude-opus-5-5` at `high` reasoning, `claude-fable-5-1` at `high` reasoning. Pass this panel to Arena as the explicit runner list.
Use `architect runners` from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` when present. Otherwise default to one each on `gpt-6.1-sol` at `xhigh` reasoning, `claude-opus-5-5` at `high` reasoning, `claude-fable-5-1` at `high` reasoning. Pass this panel to Arena as the explicit runner list.

Design it three times. Require three structurally distinct candidates before synthesis, one from each configured Architect runner, even when the first looks sufficient. This is the **exhaust-the-design-space** principle skill made concrete. Whole-shape alternatives, not point fixes inside one shape.

Expand Down
4 changes: 2 additions & 2 deletions skills/arena/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ The N candidates will receive the same prompt, so the prompt is the contract.

1. State the artifact each candidate is producing.
2. Derive the rubric. State what success looks like for *this* task, then turn it into 3-6 concrete gradeable criteria. The rubric is the picker's tool in Phase D. Candidates only see the task.
3. Pick the runners. Honor an explicit runner list from the caller (including Architect); otherwise use `arena runners` from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` when present. Otherwise default to one each on `gpt-6-astra` at `medium`, `gpt-6-sol` at `high`, `gpt-5.6-sol` at `high`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high`. Spawn more when the arena covers multiple design directions. Same model N times when the work is generation-bound rather than judgment-sensitive.
3. Pick the runners. Honor an explicit runner list from the caller (including Architect); otherwise use `arena runners` from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` when present. Otherwise default to one each on `gpt-6.1-sol` at `high`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high`. Spawn more when the arena covers multiple design directions. Same model N times when the work is generation-bound rather than judgment-sensitive.
4. Assign output paths. Each candidate writes to its own location (a git worktree where possible, otherwise `/tmp/arena-<slug>/candidate-<n>/`), per the **separate-before-serializing-shared-state** principle skill.

## Phase B: Fan out
Expand All @@ -37,7 +37,7 @@ If a candidate fails to produce output, proceed with N-1 and note the dropout in

## Phase C: Cross-judge

After all Phase B candidates complete, choose one model from the `arena cross-judge pool` in `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` when present. Otherwise use `gpt-6-astra` at `medium` reasoning, `gpt-6-sol` at `high` reasoning, `claude-opus-5-5` at `high` reasoning. Prefer a different model family from the parent's. Launch one judge on that model using the Codex or Claude transport from Phase B; instruct it not to edit files or change repository state. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with the parent's reading in Phase D, not with the candidates themselves. Don't spawn the judge while candidates are still writing.
After all Phase B candidates complete, choose one model from the `arena cross-judge pool` in `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` when present. Otherwise use `gpt-6.1-sol` at `high` reasoning, `claude-opus-5-5` at `high` reasoning. Prefer a different model family from the parent's. Launch one judge on that model using the Codex or Claude transport from Phase B; instruct it not to edit files or change repository state. It sees the rubric and the candidates by path label, scores each criterion, and recommends a base with rationale. It runs in parallel with the parent's reading in Phase D, not with the candidates themselves. Don't spawn the judge while candidates are still writing.

## Phase D: Pick a base

Expand Down
18 changes: 9 additions & 9 deletions skills/autoreview/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: "Pre-commit/ship code review: Codex default; optional Claude or Pi.

Run the bundled structured review helper as a closeout check. This is code review, not Guardian `auto_review` approval routing.

Codex review is the default when no engine is set. It uses `gpt-6-astra` with `medium` reasoning. Opus 5.5 requires Claude Code 2.1.280+. Claude is an optional second reviewer and uses `claude-opus-5-5` with `high` reasoning by default. Use standard mode for Codex reviews (`--codex-speed default`); never use fast mode.
Codex review is the default when no engine is set. It uses `gpt-6.1-sol` with `xhigh` reasoning. Opus 5.5 requires Claude Code 2.1.280+. Claude is an optional second reviewer and uses `claude-opus-5-5` with `high` reasoning by default. Use standard mode for Codex reviews (`--codex-speed default`); never use fast mode.

For user-visible behavior, pair autoreview with `behavior-validator`. Autoreview is source-aware and judges the change bundle; behavior validation is source-blind and judges the running product or tool against a behavior contract. A clean autoreview is not proof that a UI, CLI, API, or generated artifact works from the user's perspective.

Expand Down Expand Up @@ -268,20 +268,20 @@ Run multiple reviewers against one frozen bundle:
Set reviewer models and thinking/effort explicitly:

```bash
"$AUTOREVIEW" --reviewers codex,claude --model codex=gpt-6-astra --thinking codex=medium --model claude=claude-opus-5-5 --thinking claude=high
"$AUTOREVIEW" --reviewers codex,claude --model codex=gpt-6.1-sol --thinking codex=xhigh --model claude=claude-opus-5-5 --thinking claude=high
```

Inline syntax is also supported for simple model IDs:

```bash
"$AUTOREVIEW" --reviewers codex:gpt-6-astra:medium,claude:claude-opus-5-5:high
"$AUTOREVIEW" --reviewers codex:gpt-6.1-sol:xhigh,claude:claude-opus-5-5:high
```

For models with slashes or extra colons, prefer keyed form:

```bash
"$AUTOREVIEW" --engine pi --model anthropic/claude-sonnet-4 --thinking high
"$AUTOREVIEW" --reviewers codex,pi --model codex=gpt-6-astra --model pi=anthropic/claude-sonnet-4
"$AUTOREVIEW" --reviewers codex,pi --model codex=gpt-6.1-sol --model pi=anthropic/claude-sonnet-4
```

`--reviewers all` covers Codex, Claude, and Pi. Droid, Copilot, Cursor, and OpenCode selections fail closed because their current CLI contracts cannot confine project instructions, filesystem reads, or network fetches to the review boundary.
Expand All @@ -294,14 +294,14 @@ Recommended model defaults:

| Engine | Default model | Source note |
| ------------------- | -------------------------------------------------- | ----------------------------------------------------- |
| **codex** (default) | `gpt-6-astra` | Primary review model |
| **codex** (default) | `gpt-6.1-sol` | Primary review model |
| **claude** | `claude-opus-5-5` | Optional independent second reviewer |

CLI flags and environment variables override these defaults. Pi does not get a built-in model default because its provider catalog may vary by installation. Droid, Copilot, Cursor, and OpenCode are currently refused.

| Engine | Model flag | Example model IDs | Thinking flag | Accepted levels |
| ------------------- | -------------------------- | ---------------------------------------------------------------------------- | ----------------------------- | ---------------------------------------------------------- |
| **codex** (default) | `codex --model X exec ...` | `gpt-6-astra` | `-c model_reasoning_effort=Y` | `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max` |
| **codex** (default) | `codex --model X exec ...` | `gpt-6.1-sol` | `-c model_reasoning_effort=Y` | `none`, `minimal`, `low`, `medium`, `high`, `xhigh`, `max` |
Comment thread
BramVR marked this conversation as resolved.
| **claude** | `claude --model X` | `claude-opus-5-5`, `claude-fable-5-1`, `claude-opus-4-8`, `claude-sonnet-4-6`, `claude-haiku-4-5` | `--effort Y` | `low`, `medium`, `high`, `xhigh`, `max` |
| **droid** | currently refused | Factory model IDs | `-r, --reasoning-effort Y` | `off`, `none`, `low`, `medium`, `high`, `xhigh`, `max` |
| **copilot** | currently refused | Copilot model aliases | not supported | n/a |
Expand All @@ -317,7 +317,7 @@ Examples matching current `main` behavior:

```bash
# Codex with explicit model and reasoning
"$AUTOREVIEW" --engine codex --model gpt-6-astra --thinking medium
"$AUTOREVIEW" --engine codex --model gpt-6.1-sol --thinking xhigh

# Codex standard mode; never request fast mode
"$AUTOREVIEW" --engine codex --codex-speed default
Expand Down Expand Up @@ -350,7 +350,7 @@ loader such as an untracked `.envrc`; the helper does not write a config file.
| `AUTOREVIEW_MODEL` | Override the built-in default `--model` for all engines |
| `AUTOREVIEW_THINKING` | Default `--thinking` for all engines |
| `AUTOREVIEW_FALLBACK_MODEL` | Default Claude `--fallback-model` chain |
| `AUTOREVIEW_<ENGINE>_MODEL` | Per-engine model override, for example `AUTOREVIEW_CODEX_MODEL=gpt-6-astra` |
| `AUTOREVIEW_<ENGINE>_MODEL` | Per-engine model override, for example `AUTOREVIEW_CODEX_MODEL=gpt-6.1-sol` |
| `AUTOREVIEW_<ENGINE>_THINKING` | Per-engine thinking override |
| `AUTOREVIEW_CODEX_CONFIG` | Safe Codex model/response tuning overrides, semicolon-separated, e.g. `service_tier="default"`; capability-bearing keys fail closed |
| `AUTOREVIEW_CODEX_SPEED` | Codex service tier override: `fast` (priority), `flex`, or `default`; silently standard when the model does not list the tier |
Expand Down Expand Up @@ -423,7 +423,7 @@ The helper:
- supports `--dry-run`, `--parallel-tests`, `--parallel-tests-shell`, `--prompt`, repo-relative `--prompt-file`, repo-relative `--dataset`, `--no-tools`, `--no-web-search`, repeatable Codex-only safe model/response tuning with `--codex-config key=value`, Codex-only `--codex-speed fast|flex|default`, and commit refs
- supports `--stream-engine-output` or `AUTOREVIEW_STREAM_ENGINE_OUTPUT=1` for live engine text while preserving structured validation; Codex and Claude hide tool/file event details, emit compact activity summaries, and report usage at turn completion
- supports opt-in review panels with `--panel` / `--reviewers`, plus per-engine `--model`, `--thinking`, and Claude `--fallback-model`
- uses built-in defaults `codex=gpt-6-astra` with `medium` reasoning and optional second reviewer `claude=claude-opus-5-5` with `high` reasoning; honors `AUTOREVIEW_MODEL`, `AUTOREVIEW_THINKING`, `AUTOREVIEW_FALLBACK_MODEL`, and per-engine `AUTOREVIEW_<ENGINE>_MODEL` / `AUTOREVIEW_<ENGINE>_THINKING` environment overrides when CLI flags are omitted
- uses built-in defaults `codex=gpt-6.1-sol` with `xhigh` reasoning and optional second reviewer `claude=claude-opus-5-5` with `high` reasoning; honors `AUTOREVIEW_MODEL`, `AUTOREVIEW_THINKING`, `AUTOREVIEW_FALLBACK_MODEL`, and per-engine `AUTOREVIEW_<ENGINE>_MODEL` / `AUTOREVIEW_<ENGINE>_THINKING` environment overrides when CLI flags are omitted
- gives Codex the bundle in an empty workspace with web search available; Claude receives the bundle plus WebSearch by default and optional domain-constrained WebFetch, and Pi receives the bundle with no tools
- runs Claude with `--safe-mode` (`v2.1.169+`), `--setting-sources user`, MCP and auto-memory disabled, no filesystem/shell tools, an empty external workspace, and `--fallback-model` when set
- refuses Droid, Copilot, Cursor, and OpenCode reviews until their CLIs expose the required project, filesystem, and network isolation
Expand Down
12 changes: 6 additions & 6 deletions skills/autoreview/scripts/autoreview
Original file line number Diff line number Diff line change
Expand Up @@ -781,11 +781,11 @@ TEST_ENV_ALLOWED_EXACT = {
}
TEST_ENV_ALLOWED_PREFIXES = ("AUTOREVIEW_FAKE_", "LC_")
DEFAULT_MODEL_BY_ENGINE = {
"codex": "gpt-6-astra",
"codex": "gpt-6.1-sol",
"claude": "claude-opus-5-5",
}
DEFAULT_THINKING_BY_ENGINE = {
"codex": "medium",
"codex": "xhigh",
"claude": "high",
}
THINKING_LEVELS_BY_ENGINE = {
Expand Down Expand Up @@ -11042,12 +11042,12 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--base")
parser.add_argument("--commit", default="HEAD")
parser.add_argument("--engine", choices=ENGINE_CHOICES, default=os.environ.get("AUTOREVIEW_ENGINE", "codex"))
parser.add_argument("--reviewers", help="Comma-separated review panel, e.g. codex,claude,pi or codex:gpt-6-astra:medium.")
parser.add_argument("--reviewers", help="Comma-separated review panel, e.g. codex,claude,pi or codex:gpt-6.1-sol:xhigh.")
parser.add_argument("--panel", action="store_true", help="Run a Codex/Claude review panel unless --engine changes the first reviewer.")
parser.add_argument(
"--model",
action="append",
help="Model for all reviewers or engine=model. Repeatable. Defaults: codex=gpt-6-astra, claude=claude-opus-5-5.",
help="Model for all reviewers or engine=model. Repeatable. Defaults: codex=gpt-6.1-sol, claude=claude-opus-5-5.",
)
parser.add_argument("--thinking", action="append", help="Thinking/effort for all reviewers or engine=level. Repeatable. Codex: none, minimal, low, medium, high, xhigh, max. Claude: low, medium, high, xhigh, max. Droid: off, none, low, medium, high. Pi: off, minimal, low, medium, high, xhigh. OpenCode: minimal, low, medium, high, max. Cursor: none.")
parser.add_argument(
Expand Down Expand Up @@ -11486,7 +11486,7 @@ def self_test_config_defaults() -> None:
for key in keys:
os.environ.pop(key, None)
default_codex = reviewer_args(reviewer_test_args(engine="codex"))[0]
if default_codex.model != "gpt-6-astra":
if default_codex.model != "gpt-6.1-sol":
raise SystemExit(f"self-test config defaults failed: default codex model={default_codex.model!r}")
if default_codex.fallback_model is not None:
raise SystemExit(f"self-test config defaults failed: default codex fallback={default_codex.fallback_model!r}")
Expand All @@ -11496,7 +11496,7 @@ def self_test_config_defaults() -> None:
explicit_sol = reviewer_args(reviewer_test_args(engine="codex", model=["gpt-5.6-sol"]))[0]
if explicit_sol.model != "gpt-5.6-sol" or explicit_sol.fallback_model is not None:
raise SystemExit("self-test config defaults failed: explicit Sol must stay pinned")
if default_codex.thinking != "medium":
if default_codex.thinking != "xhigh":
raise SystemExit(f"self-test config defaults failed: default codex thinking={default_codex.thinking!r}")
max_effort = reviewer_args(reviewer_test_args(engine="codex", thinking=["max"]))[0]
if max_effort.thinking != "max":
Expand Down
6 changes: 3 additions & 3 deletions skills/codex-first/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,12 @@ P=$(mktemp); cat >"$P" <<'EOF'
<goal, repo + key paths, constraints ("don't touch X"), non-goals, proof expected, output shape>
EOF
command codex exec --yolo -C <repo> \
-m gpt-6-sol \
-m gpt-6.1-sol \
-c model_reasoning_effort="high" \
-o /tmp/codex-last.md - <"$P" 2>/dev/null
```

- Model default: `gpt-6-sol`, effort `high` — pin both explicitly; don't rely on user config.
- Model default: `gpt-6.1-sol`, effort `high` — pin both explicitly; don't rely on user config.
- Never fast mode: no `--enable fast_mode`, on any route.
- `--yolo` is the house default; Codex may run commands/tests freely. Keep prompts scoped to the target repo.
- `command codex` bypasses any interactive shell alias. If codex isn't on PATH, it depends on how it was installed:
Expand Down Expand Up @@ -95,7 +95,7 @@ Follow-up fixes — cheaper than fresh runs, keeps context. `resume` has no `-C`
For runs you must not babysit, trade the stderr suppression for a log and watch its mtime; read only the `-o` file into context, never the log body.

```bash
command codex exec --yolo -C <repo> -m gpt-6-sol \
command codex exec --yolo -C <repo> -m gpt-6.1-sol \
-c model_reasoning_effort="high" \
-o "$OUT" - <"$P" > "$LOG" 2>&1
# Claude Code: run the line above as its own Bash run_in_background call
Expand Down
4 changes: 2 additions & 2 deletions skills/how/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ Each explorer gets the prompt in `references/explorer-prompt.md` with its angle

Spawn one agent that explores and explains in one pass:

- `model`: your configured `how explainer` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning)
- `model`: your configured `how explainer` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning)

Build its prompt from `references/explainer-prompt.md` without the explorer-findings section. Go to Step 4.

## Step 3. Synthesize (complex questions only)

Once all explorers have returned, spawn one agent to synthesize their findings into one explanation:

- `model`: your configured `how explainer` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning)
- `model`: your configured `how explainer` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning)

Build its prompt from `references/explainer-prompt.md` with every explorer's findings filled in.

Expand Down
5 changes: 2 additions & 3 deletions skills/interrogate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,8 @@ Launch Codex reviewers as collaboration agents with their model and reasoning ef

| Subagent | Default model |
|----------|---------------|
| Reviewer A | `gpt-6-astra` at `high` reasoning |
| Reviewer B | `gpt-6-sol` at `high` reasoning |
| Reviewer C | `claude -p --model claude-opus-5-5 --effort xhigh` |
| Reviewer A | `gpt-6.1-sol` at `xhigh` reasoning |
| Reviewer B | `claude -p --model claude-opus-5-5 --effort xhigh` |

For each reviewer:
- `model`: the configured `interrogate reviewers` entry, or the table default with no configured line
Expand Down
Loading
Loading