Skip to content

fix(review): fail closed on unavailable Fable and bind the actual reviewer identity #143

Description

@BaseInfinity

Feedback type

Bug / SDLC isolation defect.

Problem

A consumer repo can say "use Fable" in shared SDLC prose even when the Codex host has no configured Fable route. A driver can then invoke another Anthropic model and incorrectly record the result as Fable review. Policy text is being mistaken for executable provider configuration.

Observed 2026-08-15:

  • repo-local SDLC policy requested a Fable reviewer;
  • the Codex host exposed only Sol, Terra, and Daybreak subagent models;
  • model=fable, effort=high was rejected;
  • Claude Opus output was nevertheless mislabeled as Fable before the attribution was retracted.

Required behavior

  • Codex-owned reviewer adapters/config stay under Codex-owned surfaces.
  • Shared repo policy may declare "Fable High required," but must not imply availability or completion.
  • A named-reviewer gate fails closed when that reviewer cannot be invoked.
  • Review evidence records the actual provider, model, effort, invocation path, candidate identity, and terminal verdict from the runner—not from prose written by the implementing agent.
  • Never substitute Opus, Sol, or another model while retaining the Fable label.

Acceptance

  • A Fable-required test with no Fable adapter returns ReviewerUnavailable.
  • A non-Fable response cannot satisfy a Fable gate even if its prompt or output says "Fable."
  • Evidence is bound to actual runner metadata and the frozen candidate.
  • Codex setup/update does not install or infer Claude-owned advisor configuration.
  • Consumer guidance distinguishes policy declarations from executable reviewer configuration.
  • Cross-link the corresponding Claude harness issue.

Related: #137 (review runner metadata/liveness).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions