Five layers of injection defense guard a pipeline that reads your inbox for you.
u/pablooliva just shared the writeup for a daily news-scoring system built to take a pile of newsletters and hand you a single ranked digest. Not another “AI summarizes your email” toy. A real scoring pipeline that had to survive contact with reality.
Here’s the twist. The hard part wasn’t the summarizing. It was getting the model to actually rank things. Left alone, a scoring model parks every item at 6.5 and calls it a day. Useless for sorting anything. The fix was a rubric with worked examples, an 8 looks like this, a 2 looks like that, plus explicit “deprioritize” flags for funding announcements with no product angle, job listings, conference promos. That’s the difference between a model that scores and a model that judges.
The second problem is nastier. Every newsletter that lands in this pipeline is attacker-controlled content. Anyone can email it. So five layers of prompt injection defense sit between the inbox and the model, and every single response gets schema-validated before it’s trusted.
Mini-workflow if you’re building anything similar 🛠️:
- Write the rubric before you write the pipeline. Worked examples of high and low scores beat any instruction like “score 1-10.”
- Add explicit deprioritize categories. Tell the model what garbage looks like, not just what good looks like.
- Treat every external input as hostile. Email, RSS, scraped pages, all of it.
- Schema-validate every model response before it touches your pipeline. No exceptions.
- Layer your injection defenses. One filter is a suggestion. Five is a wall. 🧱
Pro tip: if your scores all cluster near the middle, that’s not a data problem, that’s a missing rubric. Fix the prompt before you touch the data 💡.
Grab the writeup, steal the rubric trick, and go make your own scoring pipeline actually rank something 🚀
N Newsletters to 1 Digest, Built for AI Engineers
by u/pablooliva in PromptEngineering