Inspiration
A policy rarely lives in one place. Once a clause is approved, the same rule may appear in a support SOP, a request form, a customer-response template, a QA checklist, and a training guide. Manually finding, reviewing, and proving every follow-on update is slow and difficult to audit.
CascadeOps borrows the mental model of a compiler: treat the approved policy as source, trace its bounded dependencies, propose exact target edits, require human decisions, compile isolated candidates, and verify them before producing evidence.
What it does
The focused demo changes a refund window from 30 days to 14 days. CascadeOps compares the original and revised clause, traces five dependent artifacts, and produces five source-cited patch proposals tied to exact anchors. Every proposal requires an explicit approve or reject decision.
Any pending or rejected proposal blocks compilation. Once all five are approved, CascadeOps atomically compiles isolated in-memory candidate copies, runs 20 deterministic assertions for stale-value absence, new-value presence, anchor integrity, and untouched-block equality, then exports a JSON receipt with decision evidence, assertion evidence, and a SHA-256 content checksum.
Candidate compilation and verification are separate. CascadeOps never labels a candidate verified until deterministic assertions pass.
How it works
CascadeOps exposes two explicit provider modes:
- Simulated Replay is the default public judging path. It is deterministic, fixture-backed, visibly labelled as simulated, and requires no credentials.
- Live GPT-5.6 uses the OpenAI Responses API with Structured Outputs and request storage disabled. Responses must satisfy strict Zod schemas plus application-level citation and grounding validation. Provider or validation errors fail closed, with no silent Replay fallback.
GPT-5.6 is bounded to impact analysis and patch proposal generation. Deterministic TypeScript owns known-ID validation, citation checks, approval enforcement, atomic candidate compilation, verification, and receipt construction.
P0 operates only on in-memory fixture artifacts. It does not write external enterprise systems, provide legal advice, or certify compliance.
How we built it
Codex acted as principal engineer and product integrator across architecture, strict contracts, compiler and API implementation, UI integration, worker coordination, tests, live proof, and final evidence audit. Claude and agy handled bounded worker tasks in isolated worktrees; Codex reproduced all verification before integration.
The product is a strict Next.js and TypeScript application with Zod contracts. Vitest covers contracts, compiler behavior, API state transitions, and the deterministic demo. Playwright exercises the complete Replay path on desktop and mobile, including axe accessibility checks. GitHub Actions reproduces lint, typecheck, 24 tests, production build, and browser smoke flows from a clean checkout.
Challenges
Grounding model output
The main risk was allowing a model to invent a location or edit outside the approved clause. Every impact and proposal is checked against known artifact IDs, exact anchors, the changed clause, and the source before-text. Invalid payloads stop with typed errors.
Preserving human authority
Approval could not be decorative. The state machine permits re-decisions before compilation, but any pending or rejected proposal blocks compilation, verification, receipt generation, and export.
Separating compilation from proof
Manual browser QA caught verification language appearing too early. We separated candidate compilation and deterministic verification in both contracts and visible states, then added a browser regression assertion.
Honest public delivery
The public experience must work without exposing a key. Replay is the credential-free golden path. The optional live implementation was proven separately with one bounded local GPT-5.6 smoke run whose evidence contains no secret or raw payload.
Accomplishments
- Complete five-artifact golden path with exact source and target citations.
- Genuine fail-closed human approval gate and atomic candidate compiler.
- Separate deterministic verifier producing 20 assertions.
- Bounded GPT-5.6 Structured Outputs proof with no silent fallback.
- 24 passing tests plus desktop/mobile Playwright and accessibility checks.
- Public MIT repository, clean GitHub Actions, and verified public demo.
What we learned
LLMs are useful for bounded structured analysis, but authorization and proof should be deterministic. Schemas alone are insufficient: IDs, citations, source text, state transitions, and unchanged content need application-level validation too.
We also learned that copy is part of the safety system. Proposed, candidate compiled, and verified are different states, and the interface must preserve those distinctions.
What's next
- User-supplied Markdown and DOCX ingestion with explicit trust and size boundaries.
- Configurable artifact schemas and verification rules.
- Review queues, decision history, and signed-in team workspaces.
- Preview-first connectors with an additional explicit authorization gate before any external write.
Built With
- next.js
Log in or sign up for Devpost to join the conversation.