Skip to content

Limit codex to QA review in the /flow command (item 47) - #169

Merged
jposluns merged 4 commits into
mainfrom
item-47-flow-codex-role
Oct 29, 2026
Merged

jposluns merged 4 commits into
mainfrom
item-47-flow-codex-role

Conversation

@jposluns

@jposluns jposluns commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

What changes

.claude/commands/flow.md now matches the fleet codex rule and the installed orch-verify tiers.

  • Seeds go to claude and gemini, not codex. If one family is skipped, an independent second seed from the other family keeps the minimum of two; it gets the same facts with a different framing, in a separate clean context. If no seed family can run, the SEED step is held.
  • The Fable combine runs at --super-expensive. Its fallback, used when Fable is exhausted or unreachable, is claude at --expensive. These two are the only lawful combiners. Codex and gemini never combine, and if neither lawful combiner can run, the COMBINE step is held.
  • Implementation drafts go to claude workers only.
  • A new CODEX ROLE LIMIT paragraph says codex only does QA review, every codex leg sets ORCH_MAX_FAILOVERS=1, and a review that hunts for ways past a security control (defined in the text) never goes to codex. The orchestrator classifies each review when it writes the brief.
  • The QA tier text and the verifier-diversity paragraph follow the role limit. A family is still dropped only when it is genuinely unreachable. A codex seat barred by the role limit goes to gemini on a dual-family tier, or to an extra claude pass on a tri-family tier. Either way it is recorded as a fleet-rule substitution, not as an unavailability drop.

Why

The fleet rule limits codex to QA review legs. /flow still sent seed work and a combine fallback to codex, and it gave old models for each tier.

Not changed

The QA-round structure (up to 4 fixing rounds) is unchanged. A separate open decision (item 46) may replace it with the fleet DISCOVERY/VERIFY cycle.

Verification

  • Seeds came from claude and gemini, combined by Fable. Every quoted line was checked against the file.
  • Tri-family adversarial QA ran for 4 rounds with 3 fixing rounds. Round 4 on 9272954: claude PASS, codex PASS, and gemini PASS, each with per-check evidence. Every earlier finding is confirmed resolved.
  • LOW findings that need new structure are tracked separately as hardening item 48. They are not part of this PR.
  • All 24 CI gate commands exit 0 on 9272954. The required checks pass on 9272954, confirmed on two readings.

The fleet rule now limits codex to QA review legs. It sets ORCH_MAX_FAILOVERS=1
on every codex leg and keeps any review that hunts for ways past a security
control off codex. The /flow command still sent seeds and a combine fallback to
codex, and it named the old models for each orch-verify tier.

- Seeds now go to claude and gemini. If one family drops out, an independent,
  differently-primed second seed keeps the minimum of two.
- The Fable combine runs at --super-expensive. Its fallback is claude at
  --expensive, never codex or gemini.
- Implementation drafts go to claude workers only.
- A new CODEX ROLE LIMIT paragraph states the rule. The light and substantive
  QA text and the verifier-diversity paragraph refer to it.

The QA-round structure is unchanged, pending the separate DISCOVERY/VERIFY
decision (item 46).
- When no claude tier can combine, the COMBINE step is now held: the item is
  not execution-ready, the hold is recorded, and the run moves to the next
  independent item. Seed drop-out is never a block to seeding only.
- Only genuine unreachability drops a family. Gemini fills a codex seat barred
  by the role limit. A same-family pass is used only where the tier needs a
  third family and gemini already holds a seat. This matches the
  verifier-diversity rule.
- The role limit now defines a security-control bypass review, and the
  orchestrator classifies each review when it writes the brief.
- The substantive tier says gemini takes the weighted codex seat when codex is
  barred.
- The second seed gets the same facts with a different framing, in a separate
  clean context.
- The implementation lines are rewrapped to the width of the block.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Deploying cleanlanguageai with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9272954
Status: ✅  Deploy successful!
Preview URL: https://90768d33.ai-language.pages.dev
Branch Preview URL: https://item-47-flow-codex-role.ai-language.pages.dev

View logs

- When codex is barred, the substantive tier gives its extra weighting to
  gemini, and the codex seat is filled as the role limit states. Before this,
  the text could be read as giving gemini a second seat.
- Gemini fills a barred codex seat only where it does not already hold one.
  Otherwise the role limit fallback applies. Either way, the substitute is
  recorded as a fleet-rule substitution, not as an unavailability drop.
- If no seed family can run, the SEED step is held, as the COMBINE step is.
- The combine fallback applies when Fable is exhausted or unreachable. Fable
  and that fallback are the only lawful combiners.
- The re-combine wording names the returning family. The review
  classification is recorded in the item QA record. The verifier-diversity
  paragraph is rewrapped.
- The seed re-combine waits for the skipped family, not the reachable one.
- The extra claude pass in the codex role limit is recorded as a fleet-rule
  substitution, matching the verifier-diversity paragraph.
- Neither codex nor gemini may combine, of record or otherwise.
- The verifier-diversity paragraph names the role-limit claude pass directly.
@jposluns
jposluns merged commit d5f5cf3 into main Oct 29, 2026
5 checks passed
@jposluns
jposluns deleted the item-47-flow-codex-role branch October 29, 2026 05:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant