Deadline Sentinel

Tagline: Turn a renewal clause into a defensible deadline, with the exact page and words that support it.

Inspiration

I built Deadline Sentinel because the most expensive fact in an auto-renewing contract is often a single buried date: the last day notice can be given. Generic contract summaries are useful, but they can still sound confident when a document contains conflicting clauses, unsupported business-day language, or a citation that does not actually support the answer.

I wanted a workflow where the evidence is as important as the output—and where refusing to answer is considered a successful result when the contract is ambiguous.

What it does

Deadline Sentinel accepts an English, selectable-text PDF and focuses on one narrow workflow: contract exit and renewal notice deadlines.

It identifies the agreement's expiration or renewal anchor, finds the non-renewal notice period, and attaches every material fact to an exact quotation and page number. The application then verifies those citations against text extracted from the PDF. Only supported, conflict-free calendar-day terms reach deterministic date code.

When verification succeeds, Deadline Sentinel displays the calculated deadline, the supporting evidence, an editable notice draft, and a downloadable calendar event. When the document contains conflicting terms, business-day language, missing dates, or unverifiable evidence, it returns Needs review and creates no action-ready artifacts.

The submitted deployment uses two clearly labeled synthetic contracts in deterministic demo mode so judges can inspect the full workflow without credentials or private documents.

How I built it

The project is a stateless TypeScript application built with React, vinext, Vite, Tailwind CSS, Zod, unpdf, and the Temporal polyfill. The live extraction adapter uses the OpenAI Responses API with GPT-5.6 Sol, PDF input, medium reasoning, store: false, and a strict structured-output schema.

The model's output is treated as an untrusted claim. Local code checks that each quotation exists on the claimed source page, rejects conflicting or incomplete clauses, and performs the final date calculation. Uploaded document bytes are processed synchronously and are not persisted by the application.

How I used Codex and GPT-5.6

Codex was my build partner throughout the project rather than a one-time code generator. I used GPT-5.6-powered Codex sessions to explore the product concept, define the trust boundary, plan independent work packages, implement the UI and analysis pipeline, generate synthetic contract fixtures, design adversarial evidence tests, and complete security and architecture reviews.

One of the most valuable decisions from that collaboration was separating language understanding from authority. GPT-5.6 Sol extracts structured facts and citations; it does not own date arithmetic or the decision to create a notice. That separation made the system easier to test and made safe abstention a concrete engineering behavior.

Challenges

The hardest part was preventing a plausible-looking quotation from becoming an actionable result. Evidence matching alone was not enough: a sentence could contain the right number and date while negating the obligation, qualifying it on consent, or borrowing timing language from an unrelated clause. I added semantic qualification rules and adversarial regression tests for those cases.

The other challenge was scope. Business-day calculations require a governing calendar, amendments require precedence rules, and scanned PDFs require OCR. The submission handles none of those by guessing. It makes the supported boundary visible and routes everything else to human review.

Accomplishments

  • A complete evidence chain from PDF page to exact quote, verified fact, deterministic deadline, and user-controlled action.
  • Safe abstention for conflicts, unsupported units, incomplete clauses, and unverifiable citations.
  • A strict server-only GPT-5.6 Sol Responses API adapter with no document persistence.
  • Fifty-eight automated checks covering rendered behavior, API contracts, evidence attacks, date calculation, and acceptance scenarios.
  • A polished, accessible demo with two synthetic contracts and no secret or customer-data dependency.

What I learned

For high-consequence workflows, model quality is only one part of the product. The surrounding system has to make uncertainty visible, constrain what model output can authorize, and keep actions reversible and user-controlled.

What's next

The next architecture adds authenticated workspaces, private object storage, retention controls, durable jobs, reminder scheduling, and an audit trail. Product expansion would add OCR, amendment sets, configurable business calendars, and approved delivery integrations while preserving the same evidence gate.

Built with

Codex, GPT-5.6 Sol, OpenAI Responses API, TypeScript, React, vinext, Vite, Tailwind CSS, Zod, unpdf, Temporal, and OpenAI Sites.

Built With

Share this project:

Updates