One Word, Two Meanings: The Tag Disaster
A developer intended to add two tags to a heavily tracked ticket. They typed ntk update -t x,b. They forgot the + prefix.
The CLI didn’t throw an error. It interpreted the command as a destructive replace operation. Six existing, critical tags were silently wiped out and replaced with two new ones. The ticket instantly fell out of multiple tracking views and automation pipelines.
In the NTK ticket manager, the update command used the -t flag for tags. The design was intended to save keystrokes:
ntk update -t a,breplaced all existing tags.ntk update -t +x,bappended tags.
The logic was simple: if the first character is a +, it’s an additive operation. Otherwise, it’s destructive.
The Cost of Cleverness
The bug wasn’t a missing null check or a database lock. The danger was semantic ambiguity: dual meanings for near-identical syntax.
When identical syntax shapes (a comma-separated list of strings) dictate drastically different semantic intents based on a single prefix character, data loss is inevitable. A tool should never guess between a safe append and a destructive replace.
If you need both behaviors, force explicit intent:
--set-tagsfor replacement--add-tagsfor appending
Clever syntax makes for good demos. Explicit syntax makes for tools that don’t destroy your data at 2 AM.
Next in the NTK series: how another attempt to “make it nicer” resulted in the CLI lying to users in Graceful Handling Turns Into Lying.