The Third Argument Is `true`

Decide what you would do from the brief alone, including whether you would change anything at all. Everything below it is available, but the exercise stops working if you open it first.

The brief you were given

A helper is called as notify(user, true, false, true) in about fifty places. Nobody reading a call site can tell what any of it means without opening the function. Make the call sites readable.

The trap — the fix that looks like good design and is not

Converting the tail to an options object — notify(user, { immediate: true, includeAttachment: false, ccManager: true }) — and stopping. Every call site now reads clearly, the diff is mechanical, and review takes a minute; it is a real improvement to legibility and it is the one most teams ship. It changes nothing about the design. The eight-combination space is still there, five of them are still expressible and unreachable, the function still branches four ways internally, and the next requirement arrives as a fifth key in the bag. You have made an over-wide interface pleasant to read, which reduces the chance anyone will notice it is over-wide.

Read this even if you are confident. It is here rather than behind a button because it is the answer most teams actually ship, it passes review, and the cost of it does not arrive until the change after this one.