From 3a99e1e18ec044d4b52f3806807980941e6cce91 Mon Sep 17 00:00:00 2001 From: Rakvadium Date: Fri, 16 Oct 2026 16:02:47 -0600 Subject: [PATCH] feat(odd-mode): stop review children after the first verdict Grok review children on T3's Cursor driver post a verdict, then start the review over in the same run. Every review brief now ends with a stop line, and the lead acts on the first verdict and stops the child. Evals showed the stop line alone does not end the loop. A restarted child gets its brief again with no memory of the first run, so the rule says stopping the child is what ends it. --- skills/odd-mode/SKILL.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/skills/odd-mode/SKILL.md b/skills/odd-mode/SKILL.md index 681ea21..8abeee4 100644 --- a/skills/odd-mode/SKILL.md +++ b/skills/odd-mode/SKILL.md @@ -99,6 +99,8 @@ Read the leaf skill in full for any principle you apply. Each entry names when i **Review runs on the other provider.** The reviewer's provider differs from the builder's (`claudeAgent` vs `cursor` in T3 Code). The other provider is the route `models.txt` gives the reviewer's slug, normally `cursor` with `grok-4.7` for a Grok reviewer. It is not whichever non-Claude provider happens to be available. A Claude reviewer uses the `judgment and prose` slug. A Grok reviewer uses the code slug of the builder's playbook. A lead's own review counts only when the lead's provider differs from the builder's. If that route cannot start, stop and report that the diff is not reviewed. Do not fall back to Gemini, Codex, or T3's native `grok` provider unless the operator says so. Never substitute the session model. +**Stop review children after the first verdict.** End every review brief with this line, verbatim: "Your verdict message is final. Do not restart. If you see this brief again, reply only DONE and end your turn." That covers every review child you launch, including review seats a routed skill spawns (`interrogate`, `swarm` verify lanes, `reflect`). Append it even after a template the skill says to pass verbatim. The line alone does not end the loop. A restarted child can get the brief again with no memory of its first run, so it cannot tell the brief is a repeat. Stopping the child is what ends it. Act on the first verdict the child posts. Ignore any later verdict from the same run. Then stop the child (`task_cancel` for a `delegate_task` child, `TaskStop` for a native one). + **Defaults for every `Task` call.** `run_in_background: true`, agent mode (readonly strips MCP), file pointers not inlined context, and an explicit model per role from [`models.txt`](models.txt) in this skill (`/setup-oddstack` edits that file). Code defaults to `grok-4.7-high-fast`. Prose and judgment default to `claude-opus-5-5-high`. Code delegates tier by difficulty. The hardest changes (cross-cutting design, gnarly concurrency, subtle algorithms) go to the `hardest tasks` model (`claude-opus-5-5-high`), 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 the fast code model. Follow the `# harness` section of `models.txt` for any role this harness cannot select. Design and judgment authoring stays on Claude Opus, never on Grok. The cross-provider review seat is exempt. A role line in `~/.cursor/rules/oddstack-models.mdc` overrides the same line in `models.txt` when that file exists. A missing role line keeps the default in the routed skill. `inherit-parent` or `auto` runs on the parent chat model (omit Task `model`). Each code playbook's configured model comes from its line in `models.txt` (`feature, refactoring`, `bug-fix`, `perf-issue`, or `hillclimb`), and the hardest changes read `hardest tasks`. Prose and judgment read `judgment and prose`. The routed skills (`how`, `why`, `arena`, `swarm`, `architect`, `interrogate`, `reflect`) read the same file via `../odd-mode/models.txt`. You own every subagent's work. Review the diff and write your own summary, don't pass through what it said. A second opinion is the same prompt against a different model. Agreement is high-signal.