Outside-voice Claude-subagent fallback is mislabeled as "cross-model coverage"
When Codex is absent, not authed, or fails at runtime, the plan-review skills (plan-eng-review, plan-devex-review, plan-ceo-review) fall back to dispatching a Claude subagent for the "outside voice" pass. The messaging around that fallback oversells it as independent/cross-model review, when it's actually the same model family reviewing itself (and under some configurations, a lighter member of that family):
not_installed status line: "Codex not installed — using Claude subagent. Install for cross-model coverage: npm install -g @openai/codex."
- Fallback framing:
"Dispatch via the Agent tool. The subagent has fresh context — genuine independence."
- Summary bullet:
"Outside Voice (optional): Independent plan review from a different AI model."
These lines appear (with identical wording) in:
plan-eng-review/sections/review-sections.md (~lines 376, 378, 435)
plan-devex-review/sections/review-sections.md (~lines 281, 340, 649)
plan-ceo-review/sections/review-sections.md (~lines 295, 354, 675)
A Claude subagent reviewing a Claude-authored plan is not "cross-model coverage" or "genuine independence" — it's same-family review. That's still useful (fresh context, no memory of the original plan's rationale), but the current copy actively misleads users into thinking they got outside-model verification when Codex wasn't available.
Suggested fix:
- Drop "cross-model coverage" from the
not_installed/not_authed status lines — replace with something like "using a same-family Claude subagent (fresh context, not an outside model)."
- Print the resolved subagent's model in the fallback status line, so users can see exactly what ran (e.g. "using Claude subagent (model: )").
- Reword "genuine independence" → something like "fresh context, but same model family — not a substitute for Codex's outside view."
- Update the "Outside Voice" summary bullet to note the fallback is same-family, not cross-model, when Codex isn't available.
Happy to send a PR with the wording fix if useful — flagging here first since it's copy across 3 files and I wanted to check the preferred phrasing before touching all three.
Outside-voice Claude-subagent fallback is mislabeled as "cross-model coverage"
When Codex is absent, not authed, or fails at runtime, the plan-review skills (
plan-eng-review,plan-devex-review,plan-ceo-review) fall back to dispatching a Claude subagent for the "outside voice" pass. The messaging around that fallback oversells it as independent/cross-model review, when it's actually the same model family reviewing itself (and under some configurations, a lighter member of that family):not_installedstatus line:"Codex not installed — using Claude subagent. Install for cross-model coverage: npm install -g @openai/codex.""Dispatch via the Agent tool. The subagent has fresh context — genuine independence.""Outside Voice (optional): Independent plan review from a different AI model."These lines appear (with identical wording) in:
plan-eng-review/sections/review-sections.md(~lines 376, 378, 435)plan-devex-review/sections/review-sections.md(~lines 281, 340, 649)plan-ceo-review/sections/review-sections.md(~lines 295, 354, 675)A Claude subagent reviewing a Claude-authored plan is not "cross-model coverage" or "genuine independence" — it's same-family review. That's still useful (fresh context, no memory of the original plan's rationale), but the current copy actively misleads users into thinking they got outside-model verification when Codex wasn't available.
Suggested fix:
not_installed/not_authedstatus lines — replace with something like "using a same-family Claude subagent (fresh context, not an outside model)."Happy to send a PR with the wording fix if useful — flagging here first since it's copy across 3 files and I wanted to check the preferred phrasing before touching all three.