Videos 504PvfXou5Y
BDD, ADR, PRD, WTF: Capturing Decisions for Humans and AI Alike — Michal Cichra, Safe Intelligence
Scene timeline
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
| 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
-
- AlEngineer0.98
- EUROPE1.00
-
- PRESENTINGSPONSOR1.00
- Google DeepMind1.00
-
- PLATINUM SPONSORS0.98
- # Braintrust0.96
- WorkOS OpenAI0.95
-
- BDD,ADR,PRD,WTF1.00
- Capturing decisions for humans and Al alike0.99
- Spec1.00
-
- BDD,PRD, ADR, WTF0.97
- WTF1.00
- Why does any of this matter?1.00
- ***0.59
- ADR1.00
- Architecture Decision Record1.00
- AIE1.00
- ★0.99
- ★1.00
- PRD1.00
- Product Requirements Document1.00
- ★1.00
- BDD1.00
- Behavior Driven Development1.00
- Bonus: design system1.00
- # Braintrust0.96
- WorkOS OpenAI0.96
-
- WTF1.00
- Humans and LLMs share one trait.1.00
- Questions pile up:0.99
- Limited context.1.00
- • Why do we have this flow?0.96
- AIE1.00
- ★1.00
- • Humans forget · people leave0.97
- • What problem is this solving?0.99
- ★1.00
- ★1.00
- ★1.00
- • LLMs compact·no memory0.97
- • Why is the code shaped like this?0.99
- between sessions1.00
- • Where does this belong?0.99
- You may not have the founding engineer to0.99
- answer.1.00
- AlEngineer0.97
- EUROPE1.00
-
- ADR1.00
- Architecture Decision Record.1.00
- • What decision was made0.97
- Record.Your.Decisions.1.00
- • WHY it was made0.97
- AIE1.00
- • HOW it is enforced0.95
- ★1.00
- ★1.00
- • ADR for the decision0.97
- • Reference docs for examples and detail0.99
- Engineering the future of Al1.00
-
- ADR: what it looks like0.97
- id:"038"0.97
- status: Accepted0.99
- enforced_by: import-linter0.99
- file_patterns:1.00
- AIE1.00
- "*/templates/**"1.00
- "*/templatetags/**"1.00
- ★1.00
- ★1.00
- # No ORM queries in templates0.99
- Context: Templates called .filter() and .count() directly,0.98
- making N+1 queries invisible until production.0.99
- Decision: Templates receive only pre-fetched typed data.0.99
- ORM models are banned from the template layer.1.00
- Enforced: import-linter blocks ORM imports in templates.0.99
- Engineering the future of Al1.00
-
- PRD: whatitlooks like0.99
- id:prd-0190.96
- status: Active0.96
- AIE1.00
- owner:"@mikz"1.00
- ★1.00
- ★1.00
- # Scheduled eval runs0.99
- Why: Regressions should be caught automatically.1.00
- Problem: Evals only run when someone remembers to trigger them.0.99
- Goal: Let users schedule evals and get alerted on failure.0.98
- Journey: connect model → set schedule → receive alert on regression.1.00
- AlEngineer0.97
- EUROPE1.00
-
- Enter Cucumber0.98
- Ancient technology, suddenly useful again.0.99
- Connects directly to PRDs and critical user journeys.1.00
- AIE1.00
- ★1.00
- ★1.00
- Feature: Executable spec0.99
- Spec-driven development does not fully close the loop.1.00
- BDD should.1.00
- Scenario: Close the loop0.97
- Given an executable specification exists0.99
- When Cucumber runs1.00
- Then the scenario passes1.00
- Engineering the future of Al0.99
-
- Enter Cucumber0.98
- Ancient technology, suddenly useful again.0.99
- Connects directly to PRDs and critical user journeys.0.99
- AIE1.00
- ★1.00
- ★1.00
- Feature: Executable spec0.99
- Spec-driven development does not fully close the loop.0.99
- BDD should.1.00
- Scenario: Close the loop0.96
- Given an executable specification exists0.99
- When Cucumber runs1.00
- Then the scenario passes1.00
- AlEngineer0.97
- EUROPE1.00
-
- Bonus: Design System0.98
- Design for UI components.0.96
- • Rules: one primary button per page, no exceptions0.99
- Rule.Your.UI.0.99
- • Components: all states previewed in Lookbook0.99
- AIE1.00
- • Built bottom-up, like code0.97
- ★1.00
- ★1.00
- Engineering the future of Al1.00
-
- The Loop Needs a Harness1.00
- Enforce how.1.00
- Enforce rules on commit, on push, on PR.0.99
- If you can't measure it,0.99
- Git hooks and Cl run the same commands.1.00
- ***0.56
- AIE1.00
- ★1.00
- you can't enforce it.1.00
- • Linters0.96
- ★1.00
- ★1.00
- • Architecture checks0.97
- • Type checks0.98
- • Quality checks0.99
- • Tests (not in hooks)0.99
- # Braintrust0.96
- WorkOS OpenAI0.94
-
- The Loop Needs a Harness1.00
- Enforce how.1.00
- Enforce rules on commit, on push, on PR.1.00
- If you can't measure it,0.97
- Git hooks and Cl run the same commands.1.00
- AIE1.00
- you can't enforce it.1.00
- • Linters0.90
- ★1.00
- ★1.00
- ★1.00
- • Architecture checks0.97
- • Type checks0.98
- • Quality checks0.99
- • Tests (not in hooks)0.99
- AlEngineer0.97
- EUROPE1.00
- AIEngi0.77
-
- Example: Enforced Architecture1.00
- We enforce import boundaries.1.00
- • BDD tests cannot talk directly to the0.98
- Rules link to ADRs.0.95
- database1.00
- AIE1.00
- ★1.00
- • Application code stays split into layers0.98
- ★1.00
- • Violations fail fast — at commit time0.99
- ★1.00
- Agent gets early feedback and works through it1.00
- to reach the goal.1.00
- AlEngineer0.97
- EUROPE1.00
-
- Example: Enforced Architecture1.00
- We enforce import boundaries.0.99
- • BDD tests cannot talk directly to the0.99
- Rules link to ADRs.0.95
- database1.00
- AIE1.00
- ★1.00
- ★0.99
- • Application code stays split into layers0.99
- ★1.00
- • Violations fail fast — at commit time0.99
- ★1.00
- ★ ★0.83
- Agent gets early feedback and works through it1.00
- to reach the goal.1.00
- Engineering the future of Al0.99
Transcript
148 cues· 1,795 words· 9,726 chars
- 0:14 Hi, I'm Michal.
- 0:17 Welcome to Capturing Decisions for Humans and AI Alike.
- 0:22 Yesterday, with a team from Safe Intelligence, we have released Pac-27, a new product to test agents.
- 0:29 Before that, I was in Microsoft Red Hat and spent 10 years working on a single product.
- 0:35 The consistency problems we face with AI and the story of capturing decisions show up in every product I have seen.
- 0:43 And these notes are distilled from that experience.
- 0:46 And you can find me at the booth.
- 0:49 So BDD, PRD, ADR, that's a lot of acronyms.
- 0:54 Why does any of that matter?
- 0:56 So let's unpack it from the end.
- 0:58 You probably know this story.
- 1:00 I hope it's not an urban legend.
- 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.
- 1:11 other monkeys beaten up the poor fella.
- 1:14 Then they replaced the monkeys one by one, and none of the originals remained.
- 1:19 And yet they have beaten up every monkey that tried to climb the ladder, not knowing why.
- 1:26 So humans and LLMs, they suffer from the same trait, limited context.
- 1:31 People forget, LLMs context compacts, humans leave, LLMs have no memory.
- 1:37 After a while of operating a product, the team starts asking, why do we have this flow?
- 1:44 Why is this goal of this feature?
- 1:46 Why is this code shaped like that?
- 1:49 Where does this belong?
- 1:51 And you might not have the founding engineer available to answer.
- 1:56 And these problems show in every org, maybe with AI much sooner than they used to.
- 2:03 So ADR is Architecture Decision Record.
- 2:07 It records why you do something and how you enforce it or how you want to do that.
- 2:13 And you can cover examples by reference docs and code snippets.
- 2:18 For example, we split code in layers to provide n plus 1 queries.
- 2:22 We enforce that split by linting imports in modules.
- 2:25 And we also enforce reading from database.
- 2:28 Returns plain shapes instead of ORM objects.
- 2:32 So we cannot make these queries to prevent duplication.
- 2:38 And also linting it by module imports.
- 2:41 And other like 50 ADRs that define the architecture of the product.
- 2:47 There is not a single format that you need to use.
- 2:49 It's just a concept.
- 2:53 It's a text, so there is no specific way how to enforce it.
- 2:58 You still need a tool to enforce it.
- 3:00 But the tool will tell you that this is the rule.
- 3:03 Why are you doing this?
- 3:05 And how are you supposed to fix it?
- 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.
- 3:15 Also, you can define which files it actually concerns to.
- 3:19 Is it some Python files or some folders?
- 3:22 and how you actually enforce it.
- 3:26 PRD is a product requirements document.
- 3:29 That's something lighter.
- 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.
- 3:45 It can be very light.
- 3:47 It doesn't need to be really long and exhaustive like a massive document.
loading