Inspiration
Education programs often focus on eligibility: who qualifies, which documents are required, and what deadline applies. But qualification does not guarantee a workable route through identity checks, devices, communication channels, documents, office hours, and dependent steps.
This gap has real consequences. The U.S. Government Accountability Office reported that technical and identity-verification problems prevented some families from accessing FAFSA during the 2024–25 rollout, while nearly three-quarters of calls to the support center went unanswered during its first five months. GAO-24-107407
We built AccessCrash around one idea: eligibility is not access. Before an institution publishes a process, it should be able to test whether an otherwise eligible person has any valid path to completion under bounded, functional constraints.
What it does
AccessCrash begins with fictional education-application instructions. For the demo, we use Pineglass Institute · Access Grant, a synthetic emergency-aid process.
- GPT-5.6 compiles the instructions into a strict process graph. Extracted rules retain inspectable candidate source citations and the result remains unconfirmed. V1 byte-matches normalized quotes for text sources; PDF excerpts remain explicitly review-bound. It does not attest document authenticity or semantic support. For the exact bundled Pineglass source only, validated grounded live extraction is then deterministically normalized to the documented fixture topology with a visible warning; general sources are not normalized.
- A human inspects citations plus each rule's prerequisites, capability routes, duration, and availability, then either confirms the displayed draft as-is or rejects it and recompiles. V1 has no graph editor and does not claim to correct a rule. Ambiguity remains visible rather than becoming model certainty.
- Deterministic code compares a standard synthetic profile with a capability-constrained twin. Only access conditions differ.
- The engine returns
REACHABLE,BLOCKED, orUNKNOWNand shows the valid route, exact blocker, relevant cycle, or unresolved evidence that produced it. - For the bundled default constrained twin, the demo applies a three-change
repair set of bounded in-memory alternatives — email verification, mobile
upload, and evening review — and runs the same profile again, producing a
clear BEFORE / AFTER recovery. If a judge selects another constraint that the
set does not address, the UI reports the actual remaining
BLOCKEDorUNKNOWNresult instead of claiming recovery.
The language model cannot decide reachability or eligibility because those fields are absent from its output contract. A graph is not eligible for authoritative evaluation until a human confirms it. Equal eligibility is a synthetic test assumption held outside AccessCrash; the product neither verifies it nor receives applicant eligibility data.
How we built it
AccessCrash is a TypeScript web application built with React, vinext, strict Zod contracts, the OpenAI Responses API, and a pure deterministic graph engine.
The compile endpoint accepts public or organization-owned non-personal process
text from 40 characters through 96 KiB, UTF-8 TXT/Markdown up to 96 KiB, or
one PDF up to 4 MiB. Student/applicant records, PII, and confidential case data
are prohibited. PDF file name, allowed MIME type, and %PDF- signature are
checked; the bytes remain in memory and are sent to the OpenAI Responses API as
an input_file data URL at detail: "low" for provider-side extraction. The
app does not crawl embedded links, execute document content, or persist the
file.
The model call uses exact gpt-5.6-sol with low reasoning, low text verbosity,
structured output, store: false, one call per accepted request, a 10,000-token
output cap, zero automatic retries, and a 60-second timeout.
Production fails closed to the explicit synthetic fallback unless the server-side live-model flag is enabled. That flag is not authentication or a quota; it must remain false until server-side identity and persistent per-user quota/rate controls are implemented and verified.
The result is validated twice: first for strict structure, then for authority
and graph invariants. The compile envelope is always confirmed: false, every
step begins unconfirmed, and the model contract contains no verdict. Missing
key, refusal, timeout, API failure, exact-Pineglass identifier/route-contract
drift, or invalid output produces a visibly labeled synthetic fallback instead
of pretending a live compile succeeded.
Graph invariants require the declared outcome to reference a step with
kind: "outcome" and every declared step to belong to that outcome's dependency
closure. Any unconfirmed declared step makes the deterministic result UNKNOWN;
it cannot be ignored because an apparent path does not traverse it.
After confirmation, a side-effect-free engine performs graph reachability, cycle and blocker analysis, capability-twin comparison, and before/after regression. The prototype has no application persistence. The public demo and fixtures are synthetic; runtime intake is limited to authorized, non-personal process documents.
Because each profile represents one person, a REACHABLE path must have a
proven non-overlapping serialized schedule inside its windows and deadline. If
bounded ordering remains ambiguous, the engine returns UNKNOWN rather than
assuming parallel work or declaring a false block. allOf is unordered and
canonicalized; cycle evidence uses a canonical representative. Deterministic
aggregate work budgets fail fast to analysis-limit UNKNOWN.
Report generation re-evaluates the exact process/profile and rejects a stale or forged caller-supplied assessment whose complete result differs. Before/after comparison requires the same declared outcome and identical capability-ID vocabulary, is capped at 64 profiles, and exposes blocker/unknown-reason IDs plus canonical assessment-evidence fingerprints on both sides, including content changes between two equal verdicts.
How Codex and GPT-5.6 were used
Codex was the build partner across product and engineering. It helped us:
- challenge several ordinary concepts and narrow the product to a real education-service failure mode;
- establish the critical model → human → deterministic authority boundary;
- design the graph contract, reachability and regression cases, and safe fallback behavior;
- implement the API, engine, responsive interface, fixtures, tests, and documentation in parallel;
- audit privacy, prompt injection, stale confirmation, model-failure, and overclaim risks;
- review the final build against the four equally weighted judging criteria.
Key product decisions remained explicit: we selected Education, prohibited real
student data, kept eligibility and fairness outside the product, and required
UNKNOWN whenever the graph cannot support a proof.
GPT-5.6 has a separate runtime role. It converts messy instructions into a source-grounded draft graph and surfaces ambiguity. It does not confirm the graph and cannot return the deterministic verdict.
Primary /feedback Codex Session ID:
019f7221-2421-78e3-b12e-f6082da1ed87
Challenges
Useful model reasoning without model authority
Process instructions are semantic, but a reachability verdict must be repeatable. We solved that by giving GPT-5.6 no verdict field, keeping every compile unconfirmed, requiring human review, and moving all path decisions into pure code.
Making uncertainty a real state
A binary pass/fail interface would force missing evidence into false
confidence. UNKNOWN is therefore a first-class deterministic outcome for any
unconfirmed declared step, unknown capability, unresolved timing/dependency, or
bounded exact-analysis limit.
Demonstrating impact without sensitive data
Education support can involve highly sensitive records. The Build Week version uses one fictional institution, program, source document, and capability set; it stores none of them. The product demonstrates process mechanics without claiming to evaluate a real student.
Keeping the fix honest
The Test 3-change repair set action swaps to a bounded in-memory state of the fictional process with three alternatives applied together. It does not edit an institution's policy. It opens the bundled default twin's route, but may leave a different selected twin blocked or unknown; the UI follows the actual engine result. A reachable graph does not certify that a real change is safe, fair, legal, or complete.
Accomplishments
- A complete source → draft → confirmation → crash-test → regression loop.
- An explicit three-part authority model: GPT compiles, a human confirms, deterministic code decides.
- Source-linked rules instead of opaque model prose.
- Capability twins that isolate operational access conditions without creating demographic personas.
- Three honest deterministic outcomes:
REACHABLE,BLOCKED, andUNKNOWN. - A reproducible Pineglass Institute · Access Grant baseline, repair, and regression.
- Transparent fallback behavior for every controlled model failure.
- Bounded PDF/TXT/Markdown intake with provider-side PDF extraction, no URL crawling, and no application persistence.
- Security, privacy, product, architecture, testing, and demo contracts in the public repository.
What we learned
The strongest use of a reasoning model was not the final decision. It was turning unstructured instructions into an inspectable candidate representation that a person and deterministic engine could challenge.
We also learned that “accessible page” and “reachable service” are different questions. A flow can have individually usable screens and still fail as a system because its channels, dependencies, or timing remove every route.
Finally, uncertainty deserves product treatment. UNKNOWN is not a weak
answer; it is the correct answer when the source cannot support a proof.
What's next
- pilot the workflow with education service designers using fully synthetic or approved de-identified process material;
- measure reviewer agreement, time to identify a dead end, and false positive/negative blocker findings;
- add versioned source and graph provenance without collecting applicant data;
- support collaborative review with an explicit retention and access model;
- expand capability predicates only through participatory research and safety review;
- validate proposed service changes through usability and accessibility testing, not graph analysis alone.
Built by Evaldas Vigelis at EV1 Labs · Explore the OpenAI Build Week collection.
Built With
- codex
- openai
- react
- typescript
- vinext
- zod
Log in or sign up for Devpost to join the conversation.