A fix that reproduced its own defect
The negation list was matched as a substring. The word for “a” contains the word for “not”, and a requested deck quietly disappeared.
A request naming three deliverables produced two. The parser was new, written specifically to stop a request from producing something it had not asked for.
#The cause
Negation was detected by substring search. In French, the indefinite article contains the negation particle: “une présentation” contains “ne”. The parser read a requested presentation as a refused one, and dropped it.
#The fix, and why it is small
Negation is matched on whole words, splitting on everything that is not alphanumeric, the apostrophe excepted. Two lines. The interesting part is what caught it: a test asserting that a combined request yields three distinct outputs, written before the parser was trusted.
#Two neighbouring lessons from the same pass
- A guard asserting that a tool exposes no file path failed because it read the tool’s human description, found the word “path” in the sentence explaining that there is none, and failed on its own explanation. It now inspects the declared schema keys.
- A test asserting that a blocked card starts no process failed at random, because its process counter was global and saw harmless helpers spawned by neighbouring tests. It now counts vendor processes only.
All three have the same shape: the check was looking at prose or at a global, when the property lived in a structure.
#Sources
- Deskworth OS — handover report 0.0.22DeskworthInternal document, not published
Read next