The first security review came with a problem. Before LearnLoop could run inside SUTD's learning platform, EduTech said the original setup would need a S$7K penetration test.
That was more than the project had raised.
I could have treated the review as paperwork, or argued that a student project deserved softer rules. Neither would make the product safer. So I changed the product.
The expensive part was the trust boundary
The original design owned student accounts, exposed public signup and asked for broader LMS access than the tutor needed. Each choice added another place to test and another credential to protect.
I removed public signup. Identity moved to SUTD's EASE SSO through LTI 1.3. The LMS handoff became a single-use code with a 60-second lifetime, consumed atomically with DELETE RETURNING. LearnLoop now requests only the course data required for the tutor.

The quoted penetration test was waived because the public website described in the first assessment no longer existed.
Shipping less was part of the fix
The AI tutor is live inside the LMS. It answers from the professor's own slides, cites the exact page and refuses to hand over a final answer when it should teach the method instead.
The grader is different. It touches assessment data, so it stays off while the DPO review is unresolved. That is not a missing toggle. It is the boundary between a useful pilot and an avoidable institutional risk.

The lesson was simple: a security review is product feedback. The cheapest system to secure is often the system that owns less.
