Lion Cipher Lab

Put prompting, retrieval and a trained model on one ATT&CK-mapping task with one answer key, score all three on accuracy AND cost AND staleness, and walk away with the rule for which one to reach for and when

Why it matters

Every team that puts a language model near a security workload hits the same fork within a month: do we write a better prompt, do we build retrieval, or do we fine-tune? The literature answers it three separate times, once per strategy, always on a different task with a different scorer, and always on accuracy alone. Accuracy alone is the axis with no denominator, and it picks the wrong strategy almost every time. This lab puts all three on ONE security task - reading an incident-report narrative and labelling it with the ATT&CK technique it describes - with one planted answer key, one…

What you'll learn

Steps in this lab

  1. The words first, and the one idea that makes all three strategies the same shape
  2. Open a terminal and make a scratch folder (all three operating systems)
  3. The task: 1,880 incident reports mapped to ATT&CK techniques, with the answer key planted and the world moving halfway through
  4. The generative model is a STUB, and here is its entire error model in writing
  5. Strategy one: prompting, and the point where more exemplars start making it worse
  6. Strategy two, part one: write a BM25 retriever from scratch and find the ceiling on everything RAG can ever do
  7. Strategy two, part two: RAG end to end, and the failure that does not show up in the output
  8. Strategy three: train a real model by hand, and read the honest disclosure that comes with it
  9. The third axis: staleness, what it costs each strategy, and what it costs to repair each one
  10. The combinations, because in production the answer is almost never one of the three
  11. The bakeoff: all three axes in one place, the crossover, and the framework you take away
  12. The honest negatives, collected in one place, because they are the reusable part
  13. Make it yours: the constants worth changing, what transfers, and what to do next

Open the full interactive lab →