Problem
The SDLC skill's Cross-Model Review section documents using codex exec for async review but doesn't document:
- The
advisor() built-in tool — exists in Claude Code but can be unavailable in some sessions
- Fallback pattern — when
advisor() returns "unavailable", the correct fallback is Agent(model="fable") (or whichever advisor model is configured)
- The distinction —
advisor() sends full conversation transcript automatically; Agent() requires a self-contained prompt. The fallback isn't free — you lose the auto-transcript and must brief the agent manually
What happened
Session had advisor() unavailable. Instead of spawning Agent(model="fable", prompt="review these recommendations...") as a fallback, Claude did a self-review — which defeats the purpose of cross-model adversarial review.
Suggested fix
Add a "Review Tool Availability" section to the SDLC skill that documents:
Review tool priority:
1. advisor() — sends full transcript, strongest review
2. Agent(model="fable") — manual briefing, still cross-model
3. Self-review — last resort, NOT equivalent to cross-model
And a note: "If advisor() returns unavailable, IMMEDIATELY fall back to Agent. Do not skip cross-model review."
Context
This is relevant for any project using the two-layer review model (Fable advisor + Codex safety net). The anticheat project's CLAUDE.md already documents "Spawned via Agent tool" as the Fable pattern, but the SDLC skill doesn't reinforce this.
Problem
The SDLC skill's Cross-Model Review section documents using
codex execfor async review but doesn't document:advisor()built-in tool — exists in Claude Code but can be unavailable in some sessionsadvisor()returns "unavailable", the correct fallback isAgent(model="fable")(or whichever advisor model is configured)advisor()sends full conversation transcript automatically;Agent()requires a self-contained prompt. The fallback isn't free — you lose the auto-transcript and must brief the agent manuallyWhat happened
Session had
advisor()unavailable. Instead of spawningAgent(model="fable", prompt="review these recommendations...")as a fallback, Claude did a self-review — which defeats the purpose of cross-model adversarial review.Suggested fix
Add a "Review Tool Availability" section to the SDLC skill that documents:
And a note: "If advisor() returns unavailable, IMMEDIATELY fall back to Agent. Do not skip cross-model review."
Context
This is relevant for any project using the two-layer review model (Fable advisor + Codex safety net). The anticheat project's CLAUDE.md already documents "Spawned via Agent tool" as the Fable pattern, but the SDLC skill doesn't reinforce this.