Skip to content

Implement TC-L3-01..07 GuardrailDecision validators (RFC-0003) - #5

Merged
emmanuel-a-otchere merged 1 commit into
mainfrom
vibe/rfc0003-layer3-8eb746
Oct 31, 2026
Merged

emmanuel-a-otchere merged 1 commit into
mainfrom
vibe/rfc0003-layer3-8eb746

Conversation

@emmanuel-a-otchere

Copy link
Copy Markdown
Contributor

Summary

  • Implement src/contracts/layer3-integrity.ts: validators for TC-L3-01..07 -- GuardrailDecision well-formedness (rule URN, rationale presence, evaluated_at), outcome enum enforcement, rejection-requires-binding, annotation-not-binding, and the normative validation_status consistency rule (rejected -> superseded, escalated -> appealed)
  • Add the optional guardrail field and GuardrailDecision types to src/types.ts (COTS schema v1.3.0, RFC-0003)
  • Wire validateGuardrailDecisions into the runner
  • Add 9 Layer 3 fixtures (accepted/rejected/annotated/escalated well-formed, plus the five failure modes) and tests/layer3.test.ts (9 tests incl. two end-to-end runner tests)

Verification

  • npx vitest run: 46/46 tests pass
  • npx tsc --noEmit: clean

…C-0003

Co-authored-by: emmanuel-a-otchere <emmanuel-a-otchere@users.noreply.github.com>
@emmanuel-a-otchere
emmanuel-a-otchere marked this pull request as ready for review October 31, 2026 01:05
@emmanuel-a-otchere
emmanuel-a-otchere merged commit e90dfb4 into main Oct 31, 2026
1 check passed
@emmanuel-a-otchere
emmanuel-a-otchere deleted the vibe/rfc0003-layer3-8eb746 branch October 31, 2026 01:05
@emmanuel-a-otchere emmanuel-a-otchere self-assigned this Oct 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants