Language note
I am a native Japanese speaker and I am not fluent in English. I reviewed and approved the meaning in Japanese, then used translation assistance to prepare this English version. The project decisions, implementation choices, and factual claims are my own.
Inspiration
Generative AI is changing what an assignment can actually measure. Most tools respond after a student submits work. I wanted to move the review earlier. Before an assignment is distributed, an educator should be able to inspect which parts of its design may be easy for an AI system to complete under a declared access profile. The goal is not to judge the student. It is to stress-test the assignment.
What it does
Before You Assign is a local-first prototype for source-based analytical assignments. The judge path in this submission uses project-generated synthetic fixtures that were authored separately in English and Japanese, together with a deterministic, metrics-only replay. The interface has four views: Setup, Vulnerability Board, Redesign Diff, and Verification.
Every score remains tied to the declared threat profile. Mapping rubric criteria to learning objectives requires human approval. When the evidence is not strong enough, the system can stop at INCONCLUSIVE. If replay data contains a prohibited private field, the browser returns REPLAY_REFUSED before showing any metrics.
The current release does not accept a teacher's own assignment, does not contact a model provider, and is not a hosted service. The visible scores are synthetic interface fixtures, not estimates of real-world product performance.
How I built it
I used Codex as the primary engineering environment. Codex helped implement the deterministic evaluator and verdict logic, the English and Japanese synthetic fixtures, controlled-contrast transformations, schema and hash binding, separation between evaluator and controller artifacts, fail-closed browser filtering, regression tests, and clean-checkout release verification.
GPT-5.6 was used inside the primary Codex build thread for product-critical reasoning. It helped narrow the product scope and claim boundaries, separate attack generation from grading, shape the controlled-contrast method, define what the product must not claim, and review important engineering and release evidence.
The submitted judge path is offline and deterministic. It requires no API key and makes no model-provider calls.
Challenges
The hardest part was not making the screen look decisive. It was preventing the prototype from claiming more than its evidence could support.
I had to separate directional controlled-contrast checks from absolute grading accuracy, prevent hidden transformation labels from leaking, keep English and Japanese as separate language-specific fixtures, and keep answer bodies and private references out of the browser. I also chose not to add a live teacher-supplied assignment path at the deadline. Doing so would have reopened the product scope and could have turned the demo into an answer-generation service.
Results and what I learned
The final verifier passed 287 tests, with one intentional skip for the optional SDK path. A human review of the Japanese semantic transformations confirmed all five checks. The local judge path made zero model-provider API calls, and paid API spend was $0.00.
These are engineering, boundary, and method results—not claims of real-world educational performance. The most important lesson for me was that INCONCLUSIVE and REPLAY_REFUSED are not failures of the interface. They are necessary outcomes when the evidence is insufficient or private data crosses the allowed boundary.
What's next
After the event, I would add model-provider evaluation with complete provenance, a carefully bounded workflow for teacher-supplied assignments, and matched holdout runs after a human-approved redesign. Those steps require separate decisions about safety, privacy, and cost, and they are not part of the current submission.
Built With
- codex
- javascript
- python
Log in or sign up for Devpost to join the conversation.