read-only demo

Videos 504PvfXou5Y

BDD, ADR, PRD, WTF: Capturing Decisions for Humans and AI Alike — Michal Cichra, Safe Intelligence

index_state ready data_status ok

AI Engineer· published 2026-06-03· 0:12:49· en-US· indexed 2026-08-10 19:52

Open on YouTube

Scene timeline

  1. Shot 0, 0:00 to 0:05, 1 of 1 keyframes kept
  2. Shot 1, 0:05 to 0:09, 1 of 1 keyframes kept
  3. Shot 2, 0:09 to 0:14, 1 of 1 keyframes kept
  4. Shot 3, 0:14 to 0:21, 1 of 1 keyframes kept
  5. Shot 4, 0:21 to 0:57, 1 of 1 keyframes kept
  6. Shot 5, 0:57 to 1:25, 0 of 1 keyframes kept
  7. Shot 6, 1:25 to 2:02, 1 of 1 keyframes kept
  8. Shot 7, 2:02 to 2:45, 1 of 1 keyframes kept
  9. Shot 8, 2:45 to 3:24, 1 of 1 keyframes kept
  10. Shot 9, 3:24 to 3:44, 0 of 1 keyframes kept
  11. Shot 10, 3:44 to 4:06, 1 of 1 keyframes kept
  12. Shot 11, 4:06 to 4:51, 0 of 1 keyframes kept
  13. Shot 12, 4:51 to 5:25, 1 of 1 keyframes kept
  14. Shot 13, 5:25 to 5:58, 1 of 1 keyframes kept
  15. Shot 14, 5:58 to 6:24, 1 of 1 keyframes kept
  16. Shot 15, 6:24 to 6:50, 0 of 1 keyframes kept
  17. Shot 16, 6:50 to 7:16, 0 of 1 keyframes kept
  18. Shot 17, 7:16 to 7:43, 0 of 1 keyframes kept
  19. Shot 18, 7:43 to 8:15, 1 of 1 keyframes kept
  20. Shot 19, 8:15 to 8:47, 1 of 1 keyframes kept
  21. Shot 20, 8:47 to 9:14, 1 of 1 keyframes kept
  22. Shot 21, 9:14 to 9:41, 1 of 1 keyframes kept
  23. Shot 22, 9:41 to 10:09, 0 of 1 keyframes kept
  24. Shot 23, 10:09 to 10:36, 0 of 1 keyframes kept
  25. Shot 24, 10:36 to 11:03, 1 of 1 keyframes kept
  26. Shot 25, 11:03 to 11:47, 1 of 1 keyframes kept
  27. Shot 26, 11:47 to 12:08, 1 of 1 keyframes kept
  28. Shot 27, 12:08 to 12:34, 1 of 1 keyframes kept
  29. Shot 28, 12:34 to 12:48, 1 of 1 keyframes kept

29 shot(s).

keyframes kept every frame deduplicated

What was stored

cues
148
whisperx 148
chunks
23
from 148 cues
keyframes
21
kept of 29 captured
frames with text
21
240 lines read
chapters
0
from the source metadata
keyframe bytes
2.5 MB
word timings on 148 cues

Provenance

Each pipeline stage, its state and the model that produced it
stage state model started took
fetch done 2026-08-10 15:00 1m 28s
stt done 2026-08-10 15:01 13s
chunk done 2026-08-10 15:02 0s
text_embed done 2026-08-10 19:52 1s
keyframe done 2026-08-10 15:02 59s
ocr done 2026-08-10 15:03 7s
frame_embed done 2026-08-10 19:52 3s

Frames, and what the machine read

  • 0:03 #0 done2 line(s)

    shot 0·sharpness 658.4

    1. AlEngineer0.98
    2. EUROPE1.00
  • 0:08 #1 done2 line(s)

    shot 1·sharpness 827.9

    1. PRESENTINGSPONSOR1.00
    2. Google DeepMind1.00
  • 0:13 #2 done3 line(s)

    shot 2·sharpness 907.7

    1. PLATINUM SPONSORS0.98
    2. # Braintrust0.96
    3. WorkOS OpenAI0.95
  • 0:16 #3 done3 line(s)

    shot 3·sharpness 191.8

    1. BDD,ADR,PRD,WTF1.00
    2. Capturing decisions for humans and Al alike0.99
    3. Spec1.00
  • 0:53 #4 done17 line(s)

    shot 4·sharpness 2351.9

    1. BDD,PRD, ADR, WTF0.97
    2. WTF1.00
    3. Why does any of this matter?1.00
    4. ***0.59
    5. ADR1.00
    6. Architecture Decision Record1.00
    7. AIE1.00
    8. 0.99
    9. 1.00
    10. PRD1.00
    11. Product Requirements Document1.00
    12. 1.00
    13. BDD1.00
    14. Behavior Driven Development1.00
    15. Bonus: design system1.00
    16. # Braintrust0.96
    17. WorkOS OpenAI0.96
  • 1:03 #5 skipped

    shot 5·duplicate of #4

  • 1:50 #6 done20 line(s)

    shot 6·sharpness 3791.7

    1. WTF1.00
    2. Humans and LLMs share one trait.1.00
    3. Questions pile up:0.99
    4. Limited context.1.00
    5. • Why do we have this flow?0.96
    6. AIE1.00
    7. 1.00
    8. • Humans forget · people leave0.97
    9. • What problem is this solving?0.99
    10. 1.00
    11. 1.00
    12. 1.00
    13. • LLMs compact·no memory0.97
    14. • Why is the code shaped like this?0.99
    15. between sessions1.00
    16. • Where does this belong?0.99
    17. You may not have the founding engineer to0.99
    18. answer.1.00
    19. AlEngineer0.97
    20. EUROPE1.00
  • 2:32 #7 done12 line(s)

    shot 7·sharpness 2767.0

    1. ADR1.00
    2. Architecture Decision Record.1.00
    3. • What decision was made0.97
    4. Record.Your.Decisions.1.00
    5. • WHY it was made0.97
    6. AIE1.00
    7. • HOW it is enforced0.95
    8. 1.00
    9. 1.00
    10. • ADR for the decision0.97
    11. • Reference docs for examples and detail0.99
    12. Engineering the future of Al1.00
  • 3:05 #8 done17 line(s)

    shot 8·sharpness 3847.1

    1. ADR: what it looks like0.97
    2. id:"038"0.97
    3. status: Accepted0.99
    4. enforced_by: import-linter0.99
    5. file_patterns:1.00
    6. AIE1.00
    7. "*/templates/**"1.00
    8. "*/templatetags/**"1.00
    9. 1.00
    10. 1.00
    11. # No ORM queries in templates0.99
    12. Context: Templates called .filter() and .count() directly,0.98
    13. making N+1 queries invisible until production.0.99
    14. Decision: Templates receive only pre-fetched typed data.0.99
    15. ORM models are banned from the template layer.1.00
    16. Enforced: import-linter blocks ORM imports in templates.0.99
    17. Engineering the future of Al1.00
  • 3:40 #9 skipped

    shot 9·duplicate of #6

  • 3:57 #10 done14 line(s)

    shot 10·sharpness 4242.4

    1. PRD: whatitlooks like0.99
    2. id:prd-0190.96
    3. status: Active0.96
    4. AIE1.00
    5. owner:"@mikz"1.00
    6. 1.00
    7. 1.00
    8. # Scheduled eval runs0.99
    9. Why: Regressions should be caught automatically.1.00
    10. Problem: Evals only run when someone remembers to trigger them.0.99
    11. Goal: Let users schedule evals and get alerted on failure.0.98
    12. Journey: connect model → set schedule → receive alert on regression.1.00
    13. AlEngineer0.97
    14. EUROPE1.00
  • 4:46 #11 skipped

    shot 11·duplicate of #7

  • 4:58 #12 done14 line(s)

    shot 12·sharpness 3482.3

    1. Enter Cucumber0.98
    2. Ancient technology, suddenly useful again.0.99
    3. Connects directly to PRDs and critical user journeys.1.00
    4. AIE1.00
    5. 1.00
    6. 1.00
    7. Feature: Executable spec0.99
    8. Spec-driven development does not fully close the loop.1.00
    9. BDD should.1.00
    10. Scenario: Close the loop0.97
    11. Given an executable specification exists0.99
    12. When Cucumber runs1.00
    13. Then the scenario passes1.00
    14. Engineering the future of Al0.99
  • 5:35 #13 done15 line(s)

    shot 13·sharpness 3473.6

    1. Enter Cucumber0.98
    2. Ancient technology, suddenly useful again.0.99
    3. Connects directly to PRDs and critical user journeys.0.99
    4. AIE1.00
    5. 1.00
    6. 1.00
    7. Feature: Executable spec0.99
    8. Spec-driven development does not fully close the loop.0.99
    9. BDD should.1.00
    10. Scenario: Close the loop0.96
    11. Given an executable specification exists0.99
    12. When Cucumber runs1.00
    13. Then the scenario passes1.00
    14. AlEngineer0.97
    15. EUROPE1.00
  • 6:19 #14 done10 line(s)

    shot 14·sharpness 2958.2

    1. Bonus: Design System0.98
    2. Design for UI components.0.96
    3. • Rules: one primary button per page, no exceptions0.99
    4. Rule.Your.UI.0.99
    5. • Components: all states previewed in Lookbook0.99
    6. AIE1.00
    7. • Built bottom-up, like code0.97
    8. 1.00
    9. 1.00
    10. Engineering the future of Al1.00
  • 6:45 #15 skipped

    shot 15·duplicate of #14

  • 7:03 #16 skipped

    shot 16·duplicate of #14

  • 7:39 #17 skipped

    shot 17·duplicate of #14

  • 7:59 #18 done18 line(s)

    shot 18·sharpness 3322.9

    1. The Loop Needs a Harness1.00
    2. Enforce how.1.00
    3. Enforce rules on commit, on push, on PR.0.99
    4. If you can't measure it,0.99
    5. Git hooks and Cl run the same commands.1.00
    6. ***0.56
    7. AIE1.00
    8. 1.00
    9. you can't enforce it.1.00
    10. • Linters0.96
    11. 1.00
    12. 1.00
    13. • Architecture checks0.97
    14. • Type checks0.98
    15. • Quality checks0.99
    16. • Tests (not in hooks)0.99
    17. # Braintrust0.96
    18. WorkOS OpenAI0.94
  • 8:19 #19 done18 line(s)

    shot 19·sharpness 3223.0

    1. The Loop Needs a Harness1.00
    2. Enforce how.1.00
    3. Enforce rules on commit, on push, on PR.1.00
    4. If you can't measure it,0.97
    5. Git hooks and Cl run the same commands.1.00
    6. AIE1.00
    7. you can't enforce it.1.00
    8. • Linters0.90
    9. 1.00
    10. 1.00
    11. 1.00
    12. • Architecture checks0.97
    13. • Type checks0.98
    14. • Quality checks0.99
    15. • Tests (not in hooks)0.99
    16. AlEngineer0.97
    17. EUROPE1.00
    18. AIEngi0.77
  • 8:58 #20 done15 line(s)

    shot 20·sharpness 3613.7

    1. Example: Enforced Architecture1.00
    2. We enforce import boundaries.1.00
    3. • BDD tests cannot talk directly to the0.98
    4. Rules link to ADRs.0.95
    5. database1.00
    6. AIE1.00
    7. 1.00
    8. • Application code stays split into layers0.98
    9. 1.00
    10. • Violations fail fast — at commit time0.99
    11. 1.00
    12. Agent gets early feedback and works through it1.00
    13. to reach the goal.1.00
    14. AlEngineer0.97
    15. EUROPE1.00
  • 9:38 #21 done16 line(s)

    shot 21·sharpness 3626.5

    1. Example: Enforced Architecture1.00
    2. We enforce import boundaries.0.99
    3. • BDD tests cannot talk directly to the0.99
    4. Rules link to ADRs.0.95
    5. database1.00
    6. AIE1.00
    7. 1.00
    8. 0.99
    9. • Application code stays split into layers0.99
    10. 1.00
    11. • Violations fail fast — at commit time0.99
    12. 1.00
    13. ★ ★0.83
    14. Agent gets early feedback and works through it1.00
    15. to reach the goal.1.00
    16. Engineering the future of Al0.99
  • 9:45 #22 skipped

    shot 22·duplicate of #21

  • 10:12 #23 skipped

    shot 23·duplicate of #14

Transcript

148 cues· 1,795 words· 9,726 chars

  1. 0:14 Hi, I'm Michal.
  2. 0:17 Welcome to Capturing Decisions for Humans and AI Alike.
  3. 0:22 Yesterday, with a team from Safe Intelligence, we have released Pac-27, a new product to test agents.
  4. 0:29 Before that, I was in Microsoft Red Hat and spent 10 years working on a single product.
  5. 0:35 The consistency problems we face with AI and the story of capturing decisions show up in every product I have seen.
  6. 0:43 And these notes are distilled from that experience.
  7. 0:46 And you can find me at the booth.
  8. 0:49 So BDD, PRD, ADR, that's a lot of acronyms.
  9. 0:54 Why does any of that matter?
  10. 0:56 So let's unpack it from the end.
  11. 0:58 You probably know this story.
  12. 1:00 I hope it's not an urban legend.
  13. 1:02 But scientists put five monkeys in a cage with bananas on a ladder, then gave them a cold shower every time a monkey tried to get a banana.
  14. 1:11 other monkeys beaten up the poor fella.
  15. 1:14 Then they replaced the monkeys one by one, and none of the originals remained.
  16. 1:19 And yet they have beaten up every monkey that tried to climb the ladder, not knowing why.
  17. 1:26 So humans and LLMs, they suffer from the same trait, limited context.
  18. 1:31 People forget, LLMs context compacts, humans leave, LLMs have no memory.
  19. 1:37 After a while of operating a product, the team starts asking, why do we have this flow?
  20. 1:44 Why is this goal of this feature?
  21. 1:46 Why is this code shaped like that?
  22. 1:49 Where does this belong?
  23. 1:51 And you might not have the founding engineer available to answer.
  24. 1:56 And these problems show in every org, maybe with AI much sooner than they used to.
  25. 2:03 So ADR is Architecture Decision Record.
  26. 2:07 It records why you do something and how you enforce it or how you want to do that.
  27. 2:13 And you can cover examples by reference docs and code snippets.
  28. 2:18 For example, we split code in layers to provide n plus 1 queries.
  29. 2:22 We enforce that split by linting imports in modules.
  30. 2:25 And we also enforce reading from database.
  31. 2:28 Returns plain shapes instead of ORM objects.
  32. 2:32 So we cannot make these queries to prevent duplication.
  33. 2:38 And also linting it by module imports.
  34. 2:41 And other like 50 ADRs that define the architecture of the product.
  35. 2:47 There is not a single format that you need to use.
  36. 2:49 It's just a concept.
  37. 2:53 It's a text, so there is no specific way how to enforce it.
  38. 2:58 You still need a tool to enforce it.
  39. 3:00 But the tool will tell you that this is the rule.
  40. 3:03 Why are you doing this?
  41. 3:05 And how are you supposed to fix it?
  42. 3:08 Then the agent will go and try to find this document, why this reason exists, and more information about how to fix it.
  43. 3:15 Also, you can define which files it actually concerns to.
  44. 3:19 Is it some Python files or some folders?
  45. 3:22 and how you actually enforce it.
  46. 3:26 PRD is a product requirements document.
  47. 3:29 That's something lighter.
  48. 3:30 When you're building a feature, you describe why that thing exists and what problems it solves and how user goes through the app to actually interact with it, what's the journey through the application.
  49. 3:45 It can be very light.
  50. 3:47 It doesn't need to be really long and exhaustive like a massive document.

Open at this second