The pipeline runs at six in the morning. Nobody is watching. That is the design.
When it breaks, it does three things. It writes a failure report to data/failures/<date>.md. It opens a labeled issue on GitHub. It sends an email through Resend.
One signal would be enough if the world were honest. The world is not.
The runner can be down. Then the file does not get written, because there is no disk to write it to. The GitHub API can rate-limit. Then the issue does not open, because the door is shut. The email service can have a bad afternoon. Then the email does not arrive, because somewhere a queue is backed up and nobody told you.
Each channel has a failure mode. The failure modes are independent. That is the only thing that matters.
Three independent channels means the probability that all three fail at once is the product, not the sum. If each channel works ninety-nine times out of a hundred, one channel misses one alert in a hundred. Three channels miss one in a million. The arithmetic is not subtle. The arithmetic is the whole argument.
People call this paranoia. It is not paranoia. It is the contract.
The contract says: this pipeline runs without a human. In exchange, the pipeline owes the human a loud, redundant, unmissable signal when it cannot do its job. The cost of a missed signal is a day of bad output, or no output, or worse — output that looks fine and is not. The cost of building three channels is one afternoon.
One afternoon against every morning the pipeline runs from now until you turn it off. The asymmetry is not close.
The temptation, when you write the first version, is to pick the channel you like and trust it. Email feels personal. The issue tracker feels professional. The file on disk feels honest. Each one feels like enough on its own. None of them is.
You learn this the first time the alert does not come and the blog goes quiet for two days and a friend asks if you are okay. You were okay. The mailer was not.
So you write three. You let them be redundant. You let them feel like overkill on the days they all fire together.
On the day only one fires, you will know why you wrote three.
Hemingway kept two notebooks in case he lost one. He was not being careful. He was being correct about how often things get lost.