You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Require exact certifying verdict literals in Fable review prompt #172
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:
Candidate tree 4180c396002b8a3b2dbc7f8b9569dcd89ff36ae6 returned parseable review JSON with P2/P3 findings, verdict: "pass", confidence 78.
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.
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.
Runtime validator remains strict: pass is explicitly regression-tested as invalid. No alias normalization, retries, fallback broadening, or review exception.
Starting one canonical 11/11 proof on this frozen candidate.
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.
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.
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.
Activity
BaseInfinity commentedon Aug 23, 2026
Start checkpoint
/Users/stefanayala/codex-sdlc-issue172fix/issue-172-fable-verdict-contract2a682e2f4a5e31c503c32563efd87cf3fceac561(origin/main)GOALS.md.passalias, while source audit shows the strict validator enum but no literal enum instruction in either independent or reconciliation prompts.BaseInfinity commentedon Aug 23, 2026
Focused GREEN / frozen candidate
6be1982a0012b609319f8e25d6505e8d07d01c51origin/main:bd8b31f8440870fc8180db659e81c1fbdad91614512423795ad914a6b5b482f6passis explicitly regression-tested as invalid. No alias normalization, retries, fallback broadening, or review exception.Starting one canonical 11/11 proof on this frozen candidate.
BaseInfinity commentedon Aug 23, 2026
Canonical proof checkpoint
6be1982a0012b609319f8e25d6505e8d07d01c51origin/main:bd8b31f8440870fc8180db659e81c1fbdad91614512423795ad914a6b5b482f6node .codex/hooks/git-guard.cjs prove --reviewed --check "node scripts/run-proof-suite.cjs"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.
BaseInfinity commentedon Aug 23, 2026
Corrective round 1 after certified-review P2
independentPromptandreconciliationPromptbuilders. Tests now assert the emitted prompt content for both phases.07d9b8893394b14c9af9da514858c4af097c1f6033ba4712bcec7bf7415a232357ae7a14ae10d1eee0bad911959f130bdb8c8c99The prior proof/review receipt is stale. Starting a fresh canonical proof and normal review.
BaseInfinity commentedon Aug 23, 2026
Fresh canonical proof after corrective round 1
07d9b8893394b14c9af9da514858c4af097c1f6033ba4712bcec7bf7415a232357ae7a14ae10d1eee0bad911959f130bdb8c8c99node .codex/hooks/git-guard.cjs prove --reviewed --check "node scripts/run-proof-suite.cjs"Proceeding to fresh normal Sol High + Fable High review on this exact candidate.
BaseInfinity commentedon Aug 23, 2026
Required review certified
07d9b8893394b14c9af9da514858c4af097c1f60/33ba4712bcec7bf7415a232357ae7a14ae10d1eee0bad911959f130bdb8c8c99CERTIFIED, confidence 98, no findings.CERTIFIED, confidence 88, P3-only test-internal observations.Afterhours check: Sunday 2026-08-23 13:43 PDT, so delivery is allowed. Proceeding through the candidate-bound GitHub delivery path.
BaseInfinity commentedon Aug 23, 2026
Final integration checkpoint
fix(review): require exact Fable verdict literals)b7c8d4590a483afa0be61f1bb9ed4408d3b520cdorigin/mainmatches that exact commit.32665329728— PASS.32665481864— PASS (2m10s).Release train resumes #86 from current main. The old #86 candidate stays parked as recoverable evidence until the current-main carry is proven.