exam-panic-rescue / docs /field-notes.md
HIMANSHUKUMARJHA's picture
Deploy student-first exam coach
1f332ab verified
|
Raw
History Blame Contribute Delete
4.79 kB
# Field Notes
Project: Exam Panic Rescue
## User Problem
Students often hit a point before an exam where they are not really studying anymore. They are rereading everything, switching topics, panicking, and losing the last useful hours.
The first target workflow is a student who has a test soon and can only describe the situation as a messy panic dump: what they half-know, what scares them, and how much time is left. The app names the panic pattern, gives one proof target, keeps the final artifact focused on stopping the spiral, provides a live coach for each study block, and produces a study receipt for the before/after.
Field Notes are judge-facing evidence only. They are intentionally not a visible app output, not part of the generated packet, and not a task for the student during panic mode.
## Hackathon Fit
- Track: Backyard AI.
- Core app: Gradio Space.
- Model constraint: default model target is `openbmb/MiniCPM-V-4_5`, under the `<=32B` rule.
- Sponsor target: OpenAI Codex track through Codex-built repo history and README linkage.
- OpenBMB fit: the default small-model path uses OpenBMB MiniCPM for text and syllabus-photo understanding when hardware is available.
- NVIDIA/Nemotron honesty: `nvidia/Nemotron-Mini-4B-Instruct` is selectable in the UI and should only be claimed with matching smoke evidence.
- Runtime honesty: CPU-only Hugging Face Spaces use the deterministic fallback by default; the current live Space is on ZeroGPU and model notes report exactly which engine ran.
## What Changed During Build
- Chose a relatable student panic workflow instead of a generic productivity assistant.
- Kept the app small: one panic dump in, one rescue packet out.
- Added a model-budget strip so judges can see that `<=32B` is a rule ceiling, while free CPU Space hardware still needs an honest fallback.
- Replaced the overflowing examples table with four large panic-case buttons after visual QA showed the table made the demo feel like a spreadsheet.
- Renamed the opaque reset block to `Reset: pick first target`.
- Upgraded the live coach from a simple countdown into a local deterministic companion with the current action, proof/stop condition, next block preview, manual advance, and a 20-second panic reset.
- Removed the old app-level reflection prompt from the student flow so the product does not ask for evidence while the student is trying to study.
## Bonus Quests
- Off-Brand: custom Gradio Blocks layout and CSS.
- Off-Brand evidence: the app includes clearly labeled sample scenarios, a study receipt, collapsed claim proof, and a final-sheet artifact with first-action, proof-before-stopping, and "Do not do" guardrails.
- Field Notes: this document is the concise public report for judges.
- Sharing is Caring: public-safe app traces are published at https://huggingface.co/datasets/build-small-hackathon/exam-panic-rescue-build-trace.
- Fine-tuning runway: `data/readiness_cases.jsonl` is a small public eval seed, but not a fine-tune claim.
- No-cloud-API runway: the app attempts local model inference and has no required external API key.
- Optional `llama.cpp` runway: possible through `USE_LLAMA_CPP=1`; local `llama-cli` is installed and the app-level OpenBMB MiniCPM4 0.5B GGUF smoke passed. Claim only if final demo/materials explicitly use or show that route.
## Validation Plan
- Local unit test: `python -m unittest discover -s tests`
- Demo case smoke: `python scripts/readiness_check.py`
- The same biology, physics, history, and math smoke cases are exposed in the app under "Try a sample scenario".
- The same cases are published as JSONL at `data/readiness_cases.jsonl` so reviewers can inspect the tiny eval seed. They are not presented as real-user outcomes.
- Local app smoke: `USE_LOCAL_MODEL=0 python app.py`
- Space smoke: run once and confirm the model note is truthful: either it reports model-backed OpenBMB MiniCPM output on CUDA/ZeroGPU-capable hardware or a CPU-only fallback note on free/basic hardware.
Latest verified checks on 2026-06-12:
- Unit tests: `46/46`.
- Demo readiness smoke: `24/24`.
- Staging readiness: `11/11`.
- Codex evidence check: `10/10`.
- Local Space smoke: `4/4`.
- Local browser smoke: generated the physics sample, advanced the coach manually, opened panic reset, confirmed study receipt/runtime, and confirmed no field-note prompt in the UI.
## Submission Checklist
- Public GitHub repo contains Codex-attributed commits.
- Space README links to the public GitHub repo.
- Demo video shows one panic dump becoming a rescue plan, drill deck, triage clock, panic-pattern readout, proof target, live coach, final sheet, and study receipt.
- Field Notes stay in public docs for judges, not in the student UI.
- Social post links to the Space and names the Backyard AI track.