forgia · dev log
Engineering log for the forgia LMS platform.
- 24 Aug 26The Adjective Has Nowhere to Agree
Portuguese makes you pick a gender for the person you are talking to. English does not, so every msgid in this codebase is already neutral and every translation had quietly chosen masculine. Fixing the greeting was five minutes; the interesting part is that the fix generalizes to a rewriting rule, and that the rule turned out to be half-enforceable by the build.
i18ngettextadrcopyinclusive-designelixir - 18 Aug 26The Band That Never Drains
Eighty-one days of product backlog, reconstructed from 228 lifecycle events on disk. Thirty-nine items shipped, nine archived in a single afternoon, and one that was deleted the day it was written and came back three weeks later. The backlog ends larger than it started — and the Cumulative Flow Diagram shows why that is the healthy outcome, not the failure.
backlogmetricscfdprocessadr - 17 Aug 26The Arithmetic That Deleted a Rung
A Student who fails the same exercise three times has nothing left to reason with and starts permuting. The fix is to say more — but the screen already shows two numbers, and a third would have solved for everything. One proposed rung turned out to be informationless, and the rule that keeps the rest bounded is that a mark decays instead of re-evaluating.
liveviewadrfeedback-designsentence-selectionword-matchaccessibility - 16 Jul 26A Profile With No Name Yet
Greeting a Student in Portuguese before they've told us their name meant loosening an invariant that had held since the Profile aggregate was born — plus a single plug that resolves EN/PT-BR the same way for every request, forever.
i18ngettextliveviewectophoenixadrddd - 13 Jul 26A Certificate Remembers. A Review Forgets.
Two records hang off the same Enrollment. One freezes your name forever; the other refuses to store it at all. That contradiction is not an oversight — it is the whole design, and it decides what happens to your words when you ask to be erased.
ectoliveviewdddadraccessibility - 25 Jun 26A Certificate is a promise you can't take back
Students now earn a publicly verifiable Certificate the moment they complete every Lesson in a Course. The feature is small; the decision underneath it isn't. A credential that can be revoked retroactively — because the Instructor added a Lesson, or the Student renamed their Profile — is worthless. So the Certificate is a permanent, immutable snapshot. Plus the name gate that defers issuance, why issuance lives in the domain and not the LiveView, and a 320px overflow the design mockup didn't warn us about.
slicecertificateliveviewdddadrdesign-system