Skip to content

Require exact certifying verdict literals in Fable review prompt #172

Closed

Description

@BaseInfinity

Goal

Make the required Fable High review prompt and strict verdict validator share one explicit closed contract, so normal valid reviews can certify without accepting aliases or relying on model inference.

Release-blocking evidence

Two independent required Fable High attempts for #86 failed closed on 2026-08-23:

  1. Candidate tree 4180c396002b8a3b2dbc7f8b9569dcd89ff36ae6 returned parseable review JSON with P2/P3 findings, verdict: "pass", confidence 78.
  2. Corrected candidate tree 2e06247acd75b36dea95dd16d199e3f7d3b986be returned parseable review JSON with P3-only findings, verdict: "pass", confidence 78.

The strict validator correctly accepts only CERTIFIED or NOT CERTIFIED, classifies pass as non-transient INVALID_VERDICT, recommends no retry, cancels the incomplete Sol peer, and emits a partial non-certifying receipt. The Fable prompt says to return a verdict field but does not state the two required literal values. Blind retry, alias normalization, fallback, or a review exception would weaken the gate and are not allowed.

Acceptance criteria

  • RED coverage proves the Fable initial and reconciliation prompts explicitly name the only allowed verdict literals: CERTIFIED and NOT CERTIFIED.
  • The prompt states CERTIFIED is allowed only with no P0/P1 findings and NOT CERTIFIED is required when any P0/P1 exists.
  • Runtime validation remains strict and continues to reject aliases such as pass, lowercase variants, extra fields, and contradictory findings/verdict combinations.
  • Fable remains tool-free, candidate-bound, High effort, and subject to the existing identity checks.
  • Partial failure receipts remain explicitly non-certifying and do not recommend retry for invalid verdicts.
  • Focused supervisor/adapter proof and one canonical proof suite pass.
  • Required Sol High + Fable High review certifies the exact candidate with no exception.

Boundary

This is prompt/validator contract alignment only. Do not loosen validation, normalize aliases, add retries, use Opus fallback for malformed output, or reuse any prior review exception. #86 remains parked at its proven staged candidate until this blocker integrates.

Activity

  1. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Start checkpoint

    • Clean worktree: /Users/stefanayala/codex-sdlc-issue172
    • Branch: fix/issue-172-fable-verdict-contract
    • Base/HEAD: 2a682e2f4a5e31c503c32563efd87cf3fceac561 (origin/main)
    • Root dirty checkout remains read-only and untouched. No GOALS.md.
    • Confidence: HIGH. Two real Fable High attempts returned the same unsupported pass alias, while source audit shows the strict validator enum but no literal enum instruction in either independent or reconciliation prompts.
    • Scope: explicit prompt literals + strict alias-rejection regression + ROADMAP/milestone synchronization. No validator loosening, alias normalization, retry, fallback broadening, or review exception.
    • Proof plan: narrow prompt/supervisor RED→GREEN, roadmap RED→GREEN, focused adapter proof, self-review, one canonical 11/11 proof, then normal Sol High + Fable High review.
  2. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Focused GREEN / frozen candidate

    Starting one canonical 11/11 proof on this frozen candidate.

  3. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Canonical proof checkpoint

    • Candidate tree: 6be1982a0012b609319f8e25d6505e8d07d01c51
    • Patch SHA-256 vs origin/main: bd8b31f8440870fc8180db659e81c1fbdad91614512423795ad914a6b5b482f6
    • Exact command: node .codex/hooks/git-guard.cjs prove --reviewed --check "node scripts/run-proof-suite.cjs"
    • Result: PASS 11/11.
    • Durations: diff 22ms; adapter 321.4s; packaging 15.4s; npm 78.1s; skill 1.8s; release 441ms; roadmap 2.1s; benchmark 1.0s; e2e 19ms; setup 264.1s; update 632.4s.

    Proceeding to the normal required Sol High + Fable High review on this exact candidate. The live Fable response must use the strict literal contract; no exception or normalization is available.

  4. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Corrective round 1 after certified-review P2

    • Replaced source-layout inspection with direct calls to exported pure independentPrompt and reconciliationPrompt builders. Tests now assert the emitted prompt content for both phases.
    • Removed the semicolon/layout-coupled extraction regex.
    • Documented that alias rejection is the pre-existing strict validator boundary; prompt wording supplements rather than replaces enforcement.
    • Targeted supervisor proof and Node/diff checks pass.
    • New frozen candidate tree: 07d9b8893394b14c9af9da514858c4af097c1f60
    • New patch SHA-256: 33ba4712bcec7bf7415a232357ae7a14ae10d1eee0bad911959f130bdb8c8c99

    The prior proof/review receipt is stale. Starting a fresh canonical proof and normal review.

  5. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Fresh canonical proof after corrective round 1

    • Candidate tree: 07d9b8893394b14c9af9da514858c4af097c1f60
    • Patch SHA-256: 33ba4712bcec7bf7415a232357ae7a14ae10d1eee0bad911959f130bdb8c8c99
    • Exact command: node .codex/hooks/git-guard.cjs prove --reviewed --check "node scripts/run-proof-suite.cjs"
    • Result: PASS 11/11.
    • Durations: diff 27ms; adapter 342.7s; packaging 17.3s; npm 83.0s; skill 2.0s; release 459ms; roadmap 2.9s; benchmark 1.0s; e2e 31ms; setup 275.1s; update 645.9s.

    Proceeding to fresh normal Sol High + Fable High review on this exact candidate.

  6. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Required review certified

    • Exact candidate: 07d9b8893394b14c9af9da514858c4af097c1f60 / 33ba4712bcec7bf7415a232357ae7a14ae10d1eee0bad911959f130bdb8c8c99
    • Sol High: CERTIFIED, confidence 98, no findings.
    • Fable High: CERTIFIED, confidence 88, P3-only test-internal observations.
    • Joint verdict: CERTIFIED; no reconciliation, retry, fallback, or exception.
    • The prior P2 was resolved by asserting emitted prompt output. Remaining P3s do not affect runtime enforcement or release safety and are not promoted to standalone work.

    Afterhours check: Sunday 2026-08-23 13:43 PDT, so delivery is allowed. Proceeding through the candidate-bound GitHub delivery path.

  7. BaseInfinity commented on Aug 23, 2026

    @BaseInfinity
    OwnerAuthor

    Final integration checkpoint

    • PR: fix(review): require exact Fable verdict literals #173 (fix(review): require exact Fable verdict literals)
    • Merged/certified commit: b7c8d4590a483afa0be61f1bb9ed4408d3b520cd
    • origin/main matches that exact commit.
    • Pre-merge Windows CI: run 32665329728 — PASS.
    • Post-merge Windows CI: run 32665481864 — PASS (2m10s).
    • Issue closed automatically by the candidate-bound delivery path.
    • No review exception, alias normalization, fallback, or retry was used.

    Release train resumes #86 from current main. The old #86 candidate stays parked as recoverable evidence until the current-main carry is proven.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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