From 03b704403acf31d334c10d79dd2bb69842030ad7 Mon Sep 17 00:00:00 2001 From: Bram Date: Tue, 29 Sep 2026 21:53:19 +0200 Subject: [PATCH] feat(pstack): upgrade Sol routing and review defaults --- CHANGELOG.md | 5 ++++ skills/architect/SKILL.md | 2 +- skills/arena/SKILL.md | 4 +-- skills/autoreview/SKILL.md | 18 ++++++------ skills/autoreview/scripts/autoreview | 12 ++++---- skills/codex-first/SKILL.md | 6 ++-- skills/how/SKILL.md | 4 +-- skills/interrogate/SKILL.md | 5 ++-- skills/poteto-mode/SKILL.md | 2 +- skills/poteto-mode/playbooks/bug-fix.md | 2 +- skills/poteto-mode/playbooks/feature.md | 2 +- skills/poteto-mode/playbooks/hillclimb.md | 2 +- skills/poteto-mode/playbooks/perf-issue.md | 2 +- skills/poteto-mode/playbooks/refactoring.md | 2 +- skills/poteto-mode/references/models.md | 28 +++++++++---------- skills/poteto-mode/references/poteto-agent.md | 2 +- skills/reflect/SKILL.md | 8 +++--- skills/setup-pstack/SKILL.md | 28 +++++++++---------- skills/why/SKILL.md | 2 +- 19 files changed, 70 insertions(+), 66 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fbab54..2136c7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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. diff --git a/skills/architect/SKILL.md b/skills/architect/SKILL.md index 7e807bb..21dda66 100644 --- a/skills/architect/SKILL.md +++ b/skills/architect/SKILL.md @@ -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. diff --git a/skills/arena/SKILL.md b/skills/arena/SKILL.md index bd3f783..11b4cd9 100644 --- a/skills/arena/SKILL.md +++ b/skills/arena/SKILL.md @@ -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-/candidate-/`), per the **separate-before-serializing-shared-state** principle skill. ## Phase B: Fan out @@ -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 diff --git a/skills/autoreview/SKILL.md b/skills/autoreview/SKILL.md index fb81ddd..a84eda2 100644 --- a/skills/autoreview/SKILL.md +++ b/skills/autoreview/SKILL.md @@ -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. @@ -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. @@ -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` | | **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 | @@ -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 @@ -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__MODEL` | Per-engine model override, for example `AUTOREVIEW_CODEX_MODEL=gpt-6-astra` | +| `AUTOREVIEW__MODEL` | Per-engine model override, for example `AUTOREVIEW_CODEX_MODEL=gpt-6.1-sol` | | `AUTOREVIEW__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 | @@ -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__MODEL` / `AUTOREVIEW__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__MODEL` / `AUTOREVIEW__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 diff --git a/skills/autoreview/scripts/autoreview b/skills/autoreview/scripts/autoreview index 1ce026f..a597b10 100755 --- a/skills/autoreview/scripts/autoreview +++ b/skills/autoreview/scripts/autoreview @@ -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 = { @@ -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( @@ -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}") @@ -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": diff --git a/skills/codex-first/SKILL.md b/skills/codex-first/SKILL.md index 523bb2f..4790ee3 100644 --- a/skills/codex-first/SKILL.md +++ b/skills/codex-first/SKILL.md @@ -54,12 +54,12 @@ P=$(mktemp); cat >"$P" <<'EOF' EOF command codex exec --yolo -C \ - -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: @@ -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 -m gpt-6-sol \ +command codex exec --yolo -C -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 diff --git a/skills/how/SKILL.md b/skills/how/SKILL.md index 69d0b5a..963124a 100644 --- a/skills/how/SKILL.md +++ b/skills/how/SKILL.md @@ -28,7 +28,7 @@ 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. @@ -36,7 +36,7 @@ Build its prompt from `references/explainer-prompt.md` without the explorer-find 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. diff --git a/skills/interrogate/SKILL.md b/skills/interrogate/SKILL.md index d1ab95c..b96c369 100644 --- a/skills/interrogate/SKILL.md +++ b/skills/interrogate/SKILL.md @@ -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 diff --git a/skills/poteto-mode/SKILL.md b/skills/poteto-mode/SKILL.md index 130c395..556efb8 100644 --- a/skills/poteto-mode/SKILL.md +++ b/skills/poteto-mode/SKILL.md @@ -85,7 +85,7 @@ Read the leaf skill in full for any principle you apply. Each entry names when i **Use the `poteto-agent` instructions in `references/poteto-agent.md` for any subagent you spawn inside a playbook step** (code-writing delegates, ad-hoc helpers). `$poteto-mode` and `poteto-agent` route through the same wrapper. Routed workflow skills (`how`, `why`, `interrogate`, `reflect`, `swarm`) set their own subagent instructions for diverse-model review. Respect what the skill prescribes, don't override to `poteto-agent`. -**Defaults for every spawn.** `fork_turns: "none"` (Codex forks the whole parent context by default), concurrent when independent, file pointers not inlined context, explicit model per role (configurable via `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md`. Defaults `gpt-6-sol` at `high` reasoning for code, `gpt-6-astra` at `medium` reasoning for prose and judgment). Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment model (`gpt-6-astra` at `high` reasoning), whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code model. Per-role lines in `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` override these defaults and the model choices in the routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`). A role with no row keeps its default. +**Defaults for every spawn.** `fork_turns: "none"` (Codex forks the whole parent context by default), concurrent when independent, file pointers not inlined context, explicit model per role (configurable via `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md`. Defaults `gpt-6.1-sol` at `high` reasoning for code, `gpt-6-sol` at `high` reasoning for prose and judgment). Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to your strongest judgment model (`gpt-6-sol` at `high` reasoning), whether the task needs judgment on vague intent or is a precisely specified sequence of steps to execute to the letter. Trivial mechanical edits go to your fast code model. Per-role lines in `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` override these defaults and the model choices in the routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`). A role with no row keeps its default. You own every subagent's work. Review the diff and write your own summary, don't pass through what it said. Interrupt-chained resumes silently drop directives, so fire a fresh subagent with consolidated scope rather than trusting a "done" summary. A second opinion is the same prompt against a different model. Agreement is high-signal. diff --git a/skills/poteto-mode/playbooks/bug-fix.md b/skills/poteto-mode/playbooks/bug-fix.md index 960083d..e8653cd 100644 --- a/skills/poteto-mode/playbooks/bug-fix.md +++ b/skills/poteto-mode/playbooks/bug-fix.md @@ -6,7 +6,7 @@ Be scientific. Every shipped line traces to runtime evidence. Belt-and-suspender 1. Reproduce it yourself on the matching surface via the control skill (Non-negotiables). Don't hand the repro to the user. A debug or instrumentation protocol that says to ask the user does not override this. You drive the instrumented runtime. Ask the user only with a stated, specific reason the control surface cannot reach the target, and only after driving it as far as it goes. Won't reproduce directly, force it: synthesize the trigger, tighten conditions, or instrument until it fires. 2. Binary-search the cause. Form the candidate hypotheses, then rule them out until one survives. Seed them with `how` over the affected subsystem and the **why** skill for regression history. Each pass, take the split that cuts the most remaining problem space, get runtime evidence, eliminate. When program state is unclear, add instrumentation or logging and read it as the code runs. Don't guess. Drive a long or stubborn hunt with Codex's `/goal` command. Confirm the surviving *mechanism* with runtime evidence before the step-3 architect/interrogate fan-out. -3. Plan the fix. If it crosses a function boundary, `architect` first. Delegate implementation to a subagent using your configured `bug-fix` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) with a specific scope. Review the diff. +3. Plan the fix. If it crosses a function boundary, `architect` first. Delegate implementation to a subagent using your configured `bug-fix` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning) with a specific scope. Review the diff. 4. Verify on the same surface. The original repro now passes. "Inconclusive" or wrong-surface is not a pass. Flag it. Unit tests show branch behavior, not bug absence. 5. Stage the commits so the failing repro lands before the fix in git history. See the **tdd** skill for the failing-test-first cadence when the bug has a cheap local test path. Skip it when the test would be expensive, integration-heavy, or unclear. This is the canonical **sequence-verifiable-units** principle skill, the failing test first and the fix on top. diff --git a/skills/poteto-mode/playbooks/feature.md b/skills/poteto-mode/playbooks/feature.md index d86ef0a..0a35009 100644 --- a/skills/poteto-mode/playbooks/feature.md +++ b/skills/poteto-mode/playbooks/feature.md @@ -9,7 +9,7 @@ - **Independent workstreams.** Disjoint files, services, or layers parallelize. Shared writes serialize. - **Shared mutable state.** Default to splitting the target (the **separate-before-serializing-shared-state** principle skill). Serialize only for real invariants. - **Smallest safe decomposition.** If one worker is best, name why. -4. Delegate code-writing to a subagent using your configured `feature` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) with a specific scope (file paths, named data shape and its organizing structure per **principle-model-the-domain**, a state machine over scattered booleans, a table/registry over branching, a typed model over repeated shape assumptions, chosen before the delegate writes logic, and success criteria). Review its diff yourself. When the implementation admits multiple valid shapes (error handling, abstraction layer, test structure), delegate via the **arena** skill instead so the runners surface the alternatives and the cross-judge guards the pick. Mandatory: no skip-with-reason escape, and Laziness Protocol does not override it (the gain is review separation, not lines saved). You can spawn a subagent even though you are one. "The app is small" and "a subagent cannot spawn one" are both wrong. A subagent forbidden to spawn satisfies this by owning the diff directly with the same review separation. No "standing by" reply that waits on a nested agent. Comments per **Comments**. Surgical edits, re-ground against the source for upstream-derived files. Port shared-primitive improvements to all consumers and verify each. Commit liberally. +4. Delegate code-writing to a subagent using your configured `feature` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning) with a specific scope (file paths, named data shape and its organizing structure per **principle-model-the-domain**, a state machine over scattered booleans, a table/registry over branching, a typed model over repeated shape assumptions, chosen before the delegate writes logic, and success criteria). Review its diff yourself. When the implementation admits multiple valid shapes (error handling, abstraction layer, test structure), delegate via the **arena** skill instead so the runners surface the alternatives and the cross-judge guards the pick. Mandatory: no skip-with-reason escape, and Laziness Protocol does not override it (the gain is review separation, not lines saved). You can spawn a subagent even though you are one. "The app is small" and "a subagent cannot spawn one" are both wrong. A subagent forbidden to spawn satisfies this by owning the diff directly with the same review separation. No "standing by" reply that waits on a nested agent. Comments per **Comments**. Surgical edits, re-ground against the source for upstream-derived files. Port shared-primitive improvements to all consumers and verify each. Commit liberally. 5. Verify on the matching surface. "Inconclusive" or wrong-surface is not a pass. Flag it. 6. Rebase into small, ordered commits. Stack follow-ups. Use the **sequence-verifiable-units** principle skill, building, verifying, and committing each small unit before the next. diff --git a/skills/poteto-mode/playbooks/hillclimb.md b/skills/poteto-mode/playbooks/hillclimb.md index 52d8400..bd6abad 100644 --- a/skills/poteto-mode/playbooks/hillclimb.md +++ b/skills/poteto-mode/playbooks/hillclimb.md @@ -9,7 +9,7 @@ Core discipline: one change, one measurement, keep or revert. Never stack untest 3. Open the decision log via the **show-me-your-work** skill. A `decision.tsv`, one row per attempt: id, hypothesis, change, before, after, delta, tests, verdict (kept or reverted), note. Read it before each attempt. Keep it out of the tree (gitignored). 4. Ground each hypothesis in the architecture model from step 1, so it names a specific mechanism ("defer X off the boot path because it blocks first paint"), not "try memoizing something". 5. Loop, one hypothesis per iteration: - - Hand the change to a subagent using your configured `hillclimb` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) with a tight scope. Supervise and review the diff rather than typing it (the **guard-the-context-window** principle skill). When several independent hypotheses are live, fan them to parallel subagents, each in its own worktree (the **separate-before-serializing-shared-state** principle skill). + - Hand the change to a subagent using your configured `hillclimb` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning) with a tight scope. Supervise and review the diff rather than typing it (the **guard-the-context-window** principle skill). When several independent hypotheses are live, fan them to parallel subagents, each in its own worktree (the **separate-before-serializing-shared-state** principle skill). - Measure before and after with the frozen harness, and run the regression gate. - Accept only when the metric moves past noise and the gate stays green. Otherwise revert the change in full. A tweak that "might help" is not kept. - One commit per accepted fix, staging only the files you changed (`git add `, never `-A`). Log the row either way, kept or reverted. diff --git a/skills/poteto-mode/playbooks/perf-issue.md b/skills/poteto-mode/playbooks/perf-issue.md index 0722b46..3114bb6 100644 --- a/skills/poteto-mode/playbooks/perf-issue.md +++ b/skills/poteto-mode/playbooks/perf-issue.md @@ -13,7 +13,7 @@ - **Redundancy.** The wait hangs on one slow instance or attempt. Duplicate the work (replicas, hedged requests, speculative execution) and take the fastest result. The trace has to show the wait dominates and the system has headroom. - **Lazy evaluation.** Cost lands on results that are never used or not needed yet (eager init on the boot path, rendering offscreen items). Defer the work until first use. - **Scheduling.** The work must happen, but not during the interactive moment. Move it to where nobody is waiting: idle callbacks, a background warmup after boot, precompute before the user arrives, cleanup after the frame commits. The win is perceived latency, so measure the interactive path, not total work done. -3. Plan the fix from the trace. If it crosses a function boundary, `architect` first. Delegate implementation to a subagent using your configured `perf-issue` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning). Review the diff. Capture a post-fix trace. +3. Plan the fix from the trace. If it crosses a function boundary, `architect` first. Delegate implementation to a subagent using your configured `perf-issue` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning). Review the diff. Capture a post-fix trace. Apply the **sequence-verifiable-units** principle skill, verifying each attempt before trying the next. 4. Parse and compare the artifacts (JSON to sqlite, diff). "Inconclusive" or wrong-surface is not a pass. Flag it. 5. Cite the measurement in the PR. diff --git a/skills/poteto-mode/playbooks/refactoring.md b/skills/poteto-mode/playbooks/refactoring.md index 56dbb88..5522a7a 100644 --- a/skills/poteto-mode/playbooks/refactoring.md +++ b/skills/poteto-mode/playbooks/refactoring.md @@ -8,7 +8,7 @@ If the cleanup reveals a missing feature or a real bug, split it out and ship th 2. Name the structure the code is missing per **principle-model-the-domain**. Boring code stays when the shape is already clear and local. The reshape must delete branches or invalid states, not add indirection. 3. Name the target shape. State what the module layout, types, and call graph should be if built today (**principle-foundational-thinking**, **principle-redesign-from-first-principles**). If the target crosses a function boundary, run the **architect** skill for parallel design exploration of the shape before the move. 4. Subtract before you add. Delete dead code, collapse one-caller wrappers, drop redundant validators, and remove orphan references before introducing the new shape (**principle-subtract-before-you-add**). The smallest change that reaches the target shape ships (**principle-laziness-protocol**). A speculative cleanup that "might help" gets reverted. -5. Move in small behavior-preserving steps, each keeping the pin green. For API reshapes, migrate every caller and delete the old API in the same wave (**principle-migrate-callers-then-delete-legacy-apis**). No compatibility shims, no parallel old-and-new paths. Spot-check every rename against the actual files. Renames silently miss usages in strings, prose, and back-references. Delegate the mechanical edits to a subagent using your configured `refactoring` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) with a specific scope (file paths, the names being moved, the behavior to hold). Review the diff yourself. +5. Move in small behavior-preserving steps, each keeping the pin green. For API reshapes, migrate every caller and delete the old API in the same wave (**principle-migrate-callers-then-delete-legacy-apis**). No compatibility shims, no parallel old-and-new paths. Spot-check every rename against the actual files. Renames silently miss usages in strings, prose, and back-references. Delegate the mechanical edits to a subagent using your configured `refactoring` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning) with a specific scope (file paths, the names being moved, the behavior to hold). Review the diff yourself. 6. Prove behavior is unchanged on the real artifact, not "it compiles" (**principle-prove-it-works**). For larger reshapes, run an equivalence check: a script that diffs old-vs-new outputs, a recorded baseline replayed against the new code, or a smoke run on the matching surface via the relevant control skill. Own the verification yourself. Do not trust a delegate's "looks good" summary. 7. Confirm the change is worth keeping. The success measure is reduced reader load (**principle-minimize-reader-load**). If the diff does not lower reader load somewhere, revert it. 8. Rebase into small ordered commits. A subtraction commit, then the reshape, then any follow-on cleanup. Shape them with the **sequence-verifiable-units** principle skill, so each behavior-preserving slice stays green before the next. Run **Opening a PR**. diff --git a/skills/poteto-mode/references/models.md b/skills/poteto-mode/references/models.md index 71b5df4..48ad347 100644 --- a/skills/poteto-mode/references/models.md +++ b/skills/poteto-mode/references/models.md @@ -12,21 +12,21 @@ One line per role. Delete a line to fall back to the skill default. `` at ``: pass the slug as `model` and the effort as `reasoning_effort` on the collaboration agent. Claude entries run through `claude -p --model --effort `; `claude-opus-5-5` requires Claude Code 2.1.280 or newer. -- feature, refactoring: `gpt-6-sol` at `high` -- bug-fix: `gpt-6-sol` at `high` -- perf-issue: `gpt-6-sol` at `high` -- hillclimb: `gpt-6-sol` at `high` -- judgment and prose: `gpt-6-astra` at `medium` -- hardest tasks: `gpt-6-astra` at `high` +- feature, refactoring: `gpt-6.1-sol` at `high` +- bug-fix: `gpt-6.1-sol` at `high` +- perf-issue: `gpt-6.1-sol` at `high` +- hillclimb: `gpt-6.1-sol` at `high` +- judgment and prose: `gpt-6-sol` at `high` +- hardest tasks: `gpt-6-sol` at `high` - how explorer: `gpt-6-luna` at `high` -- how explainer: `gpt-6-sol` at `high` +- how explainer: `gpt-6.1-sol` at `high` - why investigators: `gpt-6-luna` at `high` -- why synthesizer: `gpt-6-sol` at `high` -- reflect tooling: `gpt-6-sol` at `high` -- reflect judgment, divergent, synthesizer: `gpt-6-astra` at `medium` -- arena runners: `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` -- arena cross-judge pool: `gpt-6-astra` at `medium`, `gpt-6-sol` at `high`, `claude-opus-5-5` at `high` +- why synthesizer: `gpt-6.1-sol` at `high` +- reflect tooling: `gpt-6.1-sol` at `high` +- reflect judgment, divergent, synthesizer: `gpt-6-sol` at `high` +- arena runners: `gpt-6.1-sol` at `high`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high` +- arena cross-judge pool: `gpt-6.1-sol` at `high`, `claude-opus-5-5` at `high` - swarm workers: `gpt-6-luna` at `high` -- architect runners: `gpt-6-sol` at `high`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high` -- interrogate reviewers: `gpt-6-astra` at `high`, `gpt-6-sol` at `high`, `claude-opus-5-5` at `xhigh` +- architect runners: `gpt-6.1-sol` at `xhigh`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high` +- interrogate reviewers: `gpt-6.1-sol` at `xhigh`, `claude-opus-5-5` at `xhigh` - Comment Sicko: `gpt-6-luna` at `high` diff --git a/skills/poteto-mode/references/poteto-agent.md b/skills/poteto-mode/references/poteto-agent.md index 43e65ba..3ec012a 100644 --- a/skills/poteto-mode/references/poteto-agent.md +++ b/skills/poteto-mode/references/poteto-agent.md @@ -5,4 +5,4 @@ description: Routing instructions for `$poteto-mode` and any request for poteto' # Poteto subagent -You are operating as poteto-mode's full agent style. Use `gpt-6-sol` at high reasoning for implementation. Use the model explicitly assigned by a routed judgment or review skill for those roles. Always use standard mode. Never use fast mode or substitute another model. Read the `poteto-mode` skill's `SKILL.md` in full before doing any work, including its inline Principles index. Navigate to a leaf `principle-*` skill whenever you apply that principle. +You are operating as poteto-mode's full agent style. Use `gpt-6.1-sol` at high reasoning for implementation. Use the model explicitly assigned by a routed judgment or review skill for those roles. Always use standard mode. Never use fast mode or substitute another model. Read the `poteto-mode` skill's `SKILL.md` in full before doing any work, including its inline Principles index. Navigate to a leaf `principle-*` skill whenever you apply that principle. diff --git a/skills/reflect/SKILL.md b/skills/reflect/SKILL.md index a8360d2..2b8b2a5 100644 --- a/skills/reflect/SKILL.md +++ b/skills/reflect/SKILL.md @@ -31,15 +31,15 @@ One message, three agent calls, explicit `model:` and `reasoning_effort` on each | Lens | `model` | Prompt template | |---|---|---| -| Judgment | your configured `reflect judgment` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-astra` at `medium` reasoning) | `references/judgment-reviewer.md` | -| Tooling | your configured `reflect tooling` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) | `references/tooling-reviewer.md` | -| Divergent | your configured `reflect judgment` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-astra` at `medium` reasoning) | `references/divergent-reviewer.md` | +| Judgment | your configured `reflect judgment` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) | `references/judgment-reviewer.md` | +| Tooling | your configured `reflect tooling` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning) | `references/tooling-reviewer.md` | +| Divergent | your configured `reflect judgment` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) | `references/divergent-reviewer.md` | Pass each template verbatim, substituting the transcript path or digest where marked. Reviewers return findings in the agent response body. ### 3. Synthesize -One agent call, using your configured `reflect judgment` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-astra` at `medium` reasoning). The synthesizer's quality check includes spot-verifying citations, which can require MCP access. Readonly strips MCPs. Use `references/synthesizer.md` verbatim, with each reviewer's full output inlined where marked. The synthesizer returns a structured Accepted / Rejected / Backlog list. +One agent call, using your configured `reflect judgment` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning). The synthesizer's quality check includes spot-verifying citations, which can require MCP access. Readonly strips MCPs. Use `references/synthesizer.md` verbatim, with each reviewer's full output inlined where marked. The synthesizer returns a structured Accepted / Rejected / Backlog list. ### 4. Structural enforcement check diff --git a/skills/setup-pstack/SKILL.md b/skills/setup-pstack/SKILL.md index 972c1d7..c4a4842 100644 --- a/skills/setup-pstack/SKILL.md +++ b/skills/setup-pstack/SKILL.md @@ -55,23 +55,23 @@ One line per role. Delete a line to fall back to the skill default. `` at ``: pass the slug as `model` and the effort as `reasoning_effort` on the collaboration agent. Claude entries run through `claude -p --model --effort `; `claude-opus-5-5` requires Claude Code 2.1.280 or newer. -- feature, refactoring: `gpt-6-sol` at `high` -- bug-fix: `gpt-6-sol` at `high` -- perf-issue: `gpt-6-sol` at `high` -- hillclimb: `gpt-6-sol` at `high` -- judgment and prose: `gpt-6-astra` at `medium` -- hardest tasks: `gpt-6-astra` at `high` +- feature, refactoring: `gpt-6.1-sol` at `high` +- bug-fix: `gpt-6.1-sol` at `high` +- perf-issue: `gpt-6.1-sol` at `high` +- hillclimb: `gpt-6.1-sol` at `high` +- judgment and prose: `gpt-6-sol` at `high` +- hardest tasks: `gpt-6-sol` at `high` - how explorer: `gpt-6-luna` at `high` -- how explainer: `gpt-6-sol` at `high` +- how explainer: `gpt-6.1-sol` at `high` - why investigators: `gpt-6-luna` at `high` -- why synthesizer: `gpt-6-sol` at `high` -- reflect tooling: `gpt-6-sol` at `high` -- reflect judgment, divergent, synthesizer: `gpt-6-astra` at `medium` -- arena runners: `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` -- arena cross-judge pool: `gpt-6-astra` at `medium`, `gpt-6-sol` at `high`, `claude-opus-5-5` at `high` +- why synthesizer: `gpt-6.1-sol` at `high` +- reflect tooling: `gpt-6.1-sol` at `high` +- reflect judgment, divergent, synthesizer: `gpt-6-sol` at `high` +- arena runners: `gpt-6.1-sol` at `high`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high` +- arena cross-judge pool: `gpt-6.1-sol` at `high`, `claude-opus-5-5` at `high` - swarm workers: `gpt-6-luna` at `high` -- architect runners: `gpt-6-sol` at `high`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high` -- interrogate reviewers: `gpt-6-astra` at `high`, `gpt-6-sol` at `high`, `claude-opus-5-5` at `xhigh` +- architect runners: `gpt-6.1-sol` at `xhigh`, `claude-opus-5-5` at `high`, `claude-fable-5-1` at `high` +- interrogate reviewers: `gpt-6.1-sol` at `xhigh`, `claude-opus-5-5` at `xhigh` - Comment Sicko: `gpt-6-luna` at `high` ``` diff --git a/skills/why/SKILL.md b/skills/why/SKILL.md index 7fec99d..53eecfa 100644 --- a/skills/why/SKILL.md +++ b/skills/why/SKILL.md @@ -120,7 +120,7 @@ If your scope assessment suggests a single-commit trivial target where the PR de Spawn one synthesizer subagent: -- `model`: your configured `why synthesizer` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6-sol` at `high` reasoning) +- `model`: your configured `why synthesizer` model from `${CODEX_HOME:-$HOME/.codex}/skills/poteto-mode/references/models.md` (default `gpt-6.1-sol` at `high` reasoning) - Codex has no read-only switch for collaboration agents; instruct the agent not to edit files, change repository state, or perform external writes. The synthesizer's quality check spot-verifies citations, which can require MCP access. Readonly/Ask mode strips MCPs and defeats that. The synthesizer gets: