← All articles

The Sentence That Was True When You Wrote It


I built a learning platform this year and then spent a week trying to break it. I found fourteen things that looked right and were not. This essay is about four of them, because the four were the same defect wearing different clothes, and because I am certain the same defect is sitting in a course you are responsible for right now.

The exam that lied politely

The exam page opened with a sentence for the learner: "This assessment has 9 questions." The assessment had sixteen.

Not a typo. On the day the sentence was written, nine was true. Two weeks later the question bank grew to cover every learning objective, and everything that depended on the bank updated itself: assembly, scoring, the results page. The sentence did not, because the sentence was not depending on anything. It was a string someone had typed.

Every test passed. Every page worked. Nothing was broken. The page simply made a false statement to every person who read it, and had been doing so for weeks.

Once I knew the shape, I found it three more times:

→ A badge reading "Under construction — Week 1" over a finished six-week product
→ A status file telling every new work session that week 1 was the next step, long after it shipped
→ The flagship lesson, the one every page points at as proof the whole idea works, telling readers its practice exercise "ships in Week 3" while the exercise had been live since week 3, two clicks away

The last one was the most serious thing in the entire record. The other defects undermined a feature or a metric. This one undermined the evidence for the central claim, and it was made of correct, deliberate, well-formatted text.

Why this is worse than a bug

A bug announces itself eventually. Someone opens the page, something is visibly wrong, a report gets filed. A fact that has stopped being true has no such moment. It renders correctly, in the right font, in the right place. The change that falsified it happened somewhere else entirely, to the thing the sentence describes, and no mechanism connects the two.

If you work in learning rather than software, you have met this in every form:

→ A slide that says "under current company policy" about a policy revised a year ago
→ "This video is 12 minutes" after it was cut to eight
→ "In the next module we will cover…" a module that was removed from the curriculum
→ A participant guide listing 20 questions for a bank that now holds 35
→ A statistic in the course introduction, computed once in 2023 and displayed ever since

Each was true when written. Nobody reviews them because nothing about them looks like it needs reviewing.

Why "be more careful" does not work

Because the failure is not one of attention. It is structural. When you type a number into a sentence, you create a second copy of a fact that already lives somewhere authoritative: the question bank, the policy document, the video file's metadata. Nothing links the two copies. One of them updates because the system runs on it. The other stays as it was because people read it, and reading does not write.

Restating a fact creates a second copy that nothing keeps in sync. The copy that drifts is almost always the one written for humans, because that is the one nothing executes.

Database engineers have a name for the principle that prevents this: normalisation. Store each fact once; everyone who needs it reads it from there. The only thing new here is applying it to sentences.

The fix, in three strengths

1. Where you can, read the fact from its source instead of restating it. The exam page now interpolates the question count from the assessment record. It cannot disagree with the bank, because it no longer holds an opinion of its own. Most learning platforms expose variables like this, for module counts, durations, instructor names. Use them. A number typed by hand is a number that will be wrong.

2. Where you cannot, the sentence needs an owner and a date. "Under current policy" with no date and no owner is a postponed lie. Put the date in the sentence: "under the March 2026 policy." At minimum the reader knows when to be suspicious, and you have a search term for the day the policy changes again.

3. A placeholder is a promise with a date on it. If you ship "coming soon", either something fails when the date passes or you do not ship it. On the day the real thing arrives, nothing will force the sentence announcing it to leave. In my platform, a lesson now resolves its knowledge checks from the item bank or refuses to build, and a structural test forbids any component from carrying a "Week N" promise again.

The question to ask your course tomorrow

Open any course you currently maintain and look for a number, a date, or a "soon" that a human typed. For each one, ask: if the thing this sentence describes changed, who would know?

If the answer is "nobody", the sentence will lie one day. The question is not whether. It is when.


→ The platform, no sign-up: masar.mostafafathy.com. The full failure log, all fourteen entries with numbers: what-failed.md ↗

→ Related: The Course Production Pipeline, on where human review belongs in an AI-assisted process.