AI Engineer Europe 2026

Context Is the New Code

Slide chapters

19 slide and demo groups · Timestamps are approximate. 20 additional groups were omitted from this pass.

AI Engineer Europe

AI Engineer Europe logo in white on black.

Text in image
AI Engineer
EUROPE

Presenting sponsor

Google DeepMind is the presenting sponsor.

Text in image
PRESENTING SPONSOR
Google DeepMind

Platinum sponsors

Braintrust, WorkOS, and OpenAI are listed as platinum sponsors.

Text in image
PLATINUM SPONSORS

Braintrust
WorkOS
OpenAI

Context is the new Code

Patrick Debois introduces the Context Development Lifecycle as an unpolished thought about what may come next.

Text in image
Context is the new Code

Context Development Lifecycle

AI Engineer London 2026 - Patrick Debois

AIE
Google DeepMind
AI Engineer EUROPE
2026

Thinking in parallels

Patrick Debois pairs his 2009 question about making Ops like Dev with a 2025 question: what if Context was like Code? He asks how to handle context more consistently.

Text in image
I ♥ to think in parallels

2009 - What if Ops was like Dev
2025 - What if Context was like Code

Patrick Debois - Product Devrel Tessl

AIE

AI Engineer
EUROPE

Stage text:
AI Engineer
EUROPE
2026

Context Development Lifecycle

Patrick Debois asks what a development lifecycle for context might look like, drawing a parallel with the software development lifecycle.

Text in image
CDLC
Context Development Lifecycle

AIE
Engineering the future of AI
AI Engineer EUROPE
AI Engineer EUROPE 2026

Context Development Lifecycle

The infinity loop connects generating, evaluating, distributing and observing context. What teams learn from use feeds back into adapting and regenerating it.

Text in image
Context Development Lifecycle

1 Generate
Making implicit knowledge explicit

2 Evaluate
TDD for context

3 Distribute
Context as a package

4 Observe
Learn from use in the wild

https://tessl.io/blog/context-development-lifecycle-better-context-for-ai-coding-agents/

Interface text:
AIE
AI Engineer EUROPE
Engineering the future of AI

Today's Agenda

The talk follows context from creation and quality checks through packaging and production monitoring, then uses observations to adapt and regenerate it.

Text in image
Today's Agenda

01 ✨ Generate — create & curate context
02 🔍 Evaluate — test & measure context quality
03 📦 Distribute — package & share context
04 👁️ Observe — monitor & improve in production

AIE
AI Engineer EUROPE
2026
Engineering the future of AI

Generate

The speaker introduces generating context through the familiar act of typing prompts.

Text in image
Generate

Interface text:
AIE
AI Engineer EUROPE
2026
Engineering the future of AI

Prompts - Humans as context engine

Given Patrick’s identity as context, Claude Code fetches the AI Engineer website and returns the time and track of his talk.

Text in image
Prompts - Humans as context engine

Tell me when my talk is at AI engineer - https://www.ai.engineer/europe

Fetch(https://www.ai.engineer/europe)
  Received 447KB (200 OK)

Your talk "Context Is the New Code" is on April 10 (Day 3) at 11:15am in the Westminster track.

https://www.ai.engineer/europe

Interface text:
Claude Code v2.1.96
Welcome back Patrick!
Opus 4.6 (1M context) · Claude Team · Tessl AI Limited
~/dev/aie
Tips for getting started
Ask Claude to create...
Recent activity
No recent activity

AIE
AI Engineer EUROPE

4:09Completed build

Show 2 builds
  1. 3:54

    A coding assistant answers a prompt about the speaker's conference talk after fetching the event website.

    Text in image
    Prompts - Humans as context engine
    
    Tell me when my talk is at AI engineer - https://www.ai.engineer/europe
    
    Fetch(https://www.ai.engineer/europe)
      Received 447KB (200 OK)
    
    Your talk "Context Is the New Code" is on April 10 (Day 3) at 11:15am in the Westminster track.
    
    https://www.ai.engineer/europe
    
    Interface text:
    Claude Code v2.1.96
    Welcome back Patrick!
    Opus 4.6 (1M context) · Claude Team · Tessl AI Limited
    ~/dev/aie
    Tips for getting started
    Ask Claude to create...
    Recent activity
    No recent activity
    
    AIE
    AI Engineer EUROPE
    Engineering the future of AI
  2. 4:09

    Claude Code answers a prompt asking when the speaker’s conference talk is scheduled.

    Text in image
    Prompts - Humans as context engine
    
    Tell me when my talk is at AI engineer - https://www.ai.engineer/europe
    
    Fetch(https://www.ai.engineer/europe)
      Received 447KB (200 OK)
    
    Your talk "Context Is the New Code" is on April 10 (Day 3) at 11:15am in the Westminster track.
    
    https://www.ai.engineer/europe
    
    Interface text:
    Claude Code v2.1.96
    Welcome back Patrick!
    Opus 4.6 (1M context) · Claude Team · Tessl AI Limited
    ~/dev/aie
    Tips for getting started
    Ask Claude to create...
    Recent activity
    No recent activity
    
    AIE
    AI Engineer EUROPE

Rules, Instructions - Agent.md

AGENTS.md gives coding agents reusable project context and instructions, such as setup commands and code conventions, in a dedicated file alongside the human-focused README.

Text in image
Rules, Instructions - Agent.md

AGENTS.md
A simple, open format for guiding coding agents, used by over 60k open-source projects.

Think of AGENTS.md as a README for agents: a dedicated, predictable place to provide the context and instructions to help AI coding agents work on your project.

# AGENTS.md

## Setup commands
- Install deps: `pnpm install`
- Start dev server: `pnpm dev`
- Run tests: `pnpm test`

## Code style
- TypeScript strict mode
- Single quotes, no semicolons
- Use functional patterns where possible

Why AGENTS.md?

README.md files are for humans: quick starts, project descriptions, and contribution guidelines.

AGENTS.md complements this by containing the extra, sometimes detailed context coding agents need: build steps, tests, and conventions that might clutter a README or aren't relevant to human contributors.

We intentionally kept it separate to:
Give agents a clear, predictable place for instructions.
Keep READMEs concise and focused on human contributors.
Provide precise, agent-focused guidance that complements existing README and docs.

Rather than introducing another proprietary file, we chose a name and format that could work for anyone. If you're building or using coding agents and find this helpful, feel free to adopt it.

Agent.md

Interface text:
Explore Examples
View on GitHub
AIE
AI Engineer EUROPE
2026

Context from code and docs

Context7, Ref, and Context Hub bring documentation into an agent’s context. The speaker suggests supplying current, version-specific library docs to help agents generate code for the right version.

Text in image
Context from code and docs

Context7
Up-to-date Docs
for LLMs and AI code editors
Get the latest documentation and code into Cursor, Claude, or other LLMs
https://context7.com/

Ref.
Context for your agent.
Stop hallucinations by searching public and private docs. No context bloat.
https://ref.tools/

Context Hub
Coding agents hallucinate APIs and forget what they learn in a session. Context Hub gives them curated, versioned docs, plus the ability to get smarter with every task. All content is open and maintained as markdown in this repo — you can inspect exactly what your agent reads, and contribute back.
license MIT
npm v0.1.3
node >=18
Quick Start
https://github.com/andrewyng/context-hub

Interface text:
Search a library (e.g. Next, React)
or
Chat with Docs
plan  docs  mcp  blog  dashboard
NEW  Plan — orchestrate coding agents across large projects. Try it free
AI Engineer EUROPE
2026

Context Connectors

The GitHub MCP registry lists tools that connect models to files, APIs and databases. Unblocked illustrates connections to knowledge sources such as GitHub, GitLab and Slack.

Text in image
Context Connectors

Connect models to the real world
Servers and tools from the community that connect models to files, APIs, databases, and more.

All MCP servers 88
Markitdown
Convert various file formats (PDF, Word, Excel, images, audio) to Markdown.
By microsoft ☆ 90,861
Netdata
Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
By netdata ☆ 78,095

Connect Unblocked to your knowledge sources
Install the Unblocked MCP plugin

Github MCP - https://github.com/mcp
https://getunblocked.com/unblocked-mcp/

Engineering the future of AI

Interface text:
MCP Registry
Search MCPs
Install
Unblocked
How It Works
API
AI Engineer EUROPE
2026
AIE

Spec Driven Development

Kiro and GitHub Spec Kit illustrate specification-driven development: write prompts as specifications, then have an agent break them into a plan and step-by-step prompts.

Text in image
Spec Driven Development

Kiro
Specs

What are specs?

Specs or specifications are structured artifacts that formalize the development process for features and bug fixes in your application. They provide a systematic approach to transform high-level ideas into detailed implementation plans with clear tracking and accountability.

With Kiro’s specs, you can:
• Break down requirements into user stories with acceptance criteria
• Build design docs with sequence diagrams and architecture plans
• Track implementation progress across discrete tasks
• Collaborate effectively between product and engineering teams

Core Structure

Every spec generates three key files that form the foundation of your specification:
• requirements.md (or bugfix.md) - Captures user stories, acceptance criteria, or bug analysis in structured notation
• design.md - Documents technical architecture, sequence diagrams, and implementation considerations
• tasks.md - Provides a detailed implementation plan with discrete, trackable tasks

🌱 Spec Kit
Build high-quality software faster.
An open source toolkit that allows you to focus on product scenarios and predictable outcomes instead of vibe coding every piece from scratch.

Kiro - http://kiro.dev/docs/specs/
Gitub Speckit - https://github.com/github/spec-kit

Engineering the future of AI
AI Engineer EUROPE
2026

Interface text:
On this page
README  Code of conduct  Contributing  MIT license  Security
Create Release  failing  Stars  78k  license  MIT  docs  GitHub Pages

Today's Agenda

After generating context, the talk turns to evaluating its quality: even changing two lines in CLAUDE.md raises the question of how to test their impact.

Text in image
Today's Agenda

01 ✅ Generate — create & curate context
02 🔍 Evaluate — test & measure context quality
03 📦 Distribute — package & share context
04 👁️ Observe — monitor & improve in production

Interface text:
AIE
AI Engineer EUROPE
2026

Evaluate

Evals test code context to see its impact.

Text in image
Evaluate

Background numbers: 155,8; 24,57; 935,6; 730,9; 42,65; 9.30

AIE
AI Engineer EUROPE
2026

Skill review ~ Linting

A skill linter checks structure and formatting against the spec. This Terraform skill passes all 11 validation checks, including its line count and YAML frontmatter.

Text in image
Skill review ~ Linting

Validation 100%
Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 11 / 11 Passed
Validation for skill structure

CRITERIA | DESCRIPTION | RESULT
skill_md_line_count | SKILL.md line count is 354 (≤ 500) | Pass
frontmatter_valid | YAML frontmatter is valid | Pass
name_field | 'name' field is valid: 'terraform-style-guide' | Pass
description_field | 'description' field is valid (165 chars) | Pass
compatibility_field | 'compatibility' field not present (optional) | Pass
allowed_tools_field | 'allowed-tools' field not present (optional) | Pass
metadata_version | 'metadata' version not present (optional) | Pass
metadata_field | 'metadata' field not present (optional) | Pass

https://docs.tessl.io/evaluate/evaluating-skills

Interface text:
Warnings & errors only
AIE
AI Engineer EUROPE 2026
Engineering the future of AI

Skill syntax check ~ Grammarly

Like Grammarly for context, the discovery review scores a Terraform skill description at 75% and suggests adding concrete actions and common trigger terms so an agent can find and select it.

Text in image
Skill syntax check ~ Grammarly

Discovery 75%

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is a solid description with clear ‘what’ and ‘when’ clauses and good distinctiveness for Terraform-specific work. The main weaknesses are moderate specificity (lacks concrete action examples) and limited trigger term coverage (missing common user phrases like ‘IaC’ or ‘.tf files’).

Suggestions

Add specific concrete actions like ‘create modules, define resources, configure providers, set up backends’ to improve specificity

Expand trigger terms to include common variations: ‘infrastructure as code’, ‘IaC’, ‘.tf files’, ‘terraform modules’, ‘cloud infrastructure’

Dimension | Reasoning | Score
Specificity | Names the domain (Terraform HCL) and mentions style conventions and best practices, but doesn't list specific concrete actions like ‘create modules’, ‘define resources’, ‘configure providers’, or ‘set up state backends’. | 2 / 3
Completeness | Clearly answers both what (‘Generate Terraform HCL code following HashiCorp's official style conventions and best practices’) and when (‘Use when writing, reviewing, or generating Terraform configurations’) with explicit trigger guidance. | 3 / 3

https://docs.tessl.io/evaluate/evaluating-skills

Interface text:
AIE
AI Engineer EUROPE
2026
Google DeepMind

8:03Completed build

Show 2 builds
  1. 7:36

    A skill discovery review scores a description at 75% and suggests more specific actions and trigger terms.

    Text in image
    Skill syntax check ~ Grammarly
    
    Discovery 75%
    
    Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
    
    This is a solid description with clear ‘what’ and ‘when’ clauses and good distinctiveness for Terraform-specific work. The main weaknesses are moderate specificity (lacks concrete action examples) and limited trigger term coverage (missing common user phrases like ‘IaC’ or ‘.tf files’).
    
    Suggestions
    
    Add specific concrete actions like ‘create modules, define resources, configure providers, set up backends’ to improve specificity
    
    Expand trigger terms to include common variations: ‘infrastructure as code’, ‘IaC’, ‘.tf files’, ‘terraform modules’, ‘cloud infrastructure’
    
    Dimension | Reasoning | Score
    Specificity | Names the domain (Terraform HCL) and mentions style conventions and best practices, but doesn't list specific concrete actions like ‘create modules’, ‘define resources’, ‘configure providers’, or ‘set up state backends’. | 2 / 3
    Completeness | Clearly answers both what (‘Generate Terraform HCL code following HashiCorp's official style conventions and best practices’) and when (‘Use when writing, reviewing, or generating Terraform configurations’) with explicit trigger guidance. | 3 / 3
    
    https://docs.tessl.io/evaluate/evaluating-skills
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
    Engineering the future of AI
  2. 8:03

    A skill evaluation reports a 75% discovery score and suggests more specific actions and trigger terms.

    Text in image
    Skill syntax check ~ Grammarly
    
    Discovery 75%
    
    Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
    
    This is a solid description with clear ‘what’ and ‘when’ clauses and good distinctiveness for Terraform-specific work. The main weaknesses are moderate specificity (lacks concrete action examples) and limited trigger term coverage (missing common user phrases like ‘IaC’ or ‘.tf files’).
    
    Suggestions
    
    Add specific concrete actions like ‘create modules, define resources, configure providers, set up backends’ to improve specificity
    
    Expand trigger terms to include common variations: ‘infrastructure as code’, ‘IaC’, ‘.tf files’, ‘terraform modules’, ‘cloud infrastructure’
    
    Dimension | Reasoning | Score
    Specificity | Names the domain (Terraform HCL) and mentions style conventions and best practices, but doesn't list specific concrete actions like ‘create modules’, ‘define resources’, ‘configure providers’, or ‘set up state backends’. | 2 / 3
    Completeness | Clearly answers both what (‘Generate Terraform HCL code following HashiCorp's official style conventions and best practices’) and when (‘Use when writing, reviewing, or generating Terraform configurations’) with explicit trigger guidance. | 3 / 3
    
    https://docs.tessl.io/evaluate/evaluating-skills
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
    Google DeepMind

Judge checks an API endpoint

The judge checks the /awesome route convention, then runs a curl request to verify that the endpoint returns HTTP 200 and valid JSON. Both checks pass.

Text in image
JUDGE PROMPT

CLAUDE.md rule: “All API routes must use the /awesome prefix.”

CHECK 1  URL contains /awesome ? → static check, inspect the curl command below
static
CHECK 2  Execute curl -X POST /awesome/user and verify response is HTTP 200 with valid JSON

bash — eval runner

$ curl -X POST http://localhost:8000/awesome/user \
    -H "Content-Type: application/json" \
    -d '{"name": "alice"}'

HTTP/1.1 200 OK
body: {"id": 42, "name": "alice", "status": "saved" }

judge evaluates both checks

✓ PASS
✓ URL contains /awesome — convention respected
✓ Endpoint returned HTTP 200 with valid JSON body

Both checks pass → rule is enforced and endpoint is live

Read the talk

Context Is the New Code

Reusable instructions need the same engineering care as software: evaluation, distribution, dependency management and feedback from the agents and teams that use them.

From a talk by Patrick Debois

Before you start: Familiarity with coding agents, repository instruction files and basic software testing will help you follow the examples.

Code becomes reusable context

What happens when the reusable artifact you maintain is an instruction rather than a function? Patrick Debois introduces this as an exploratory direction: he increasingly requests changes from a coding agent instead of editing code himself. The next step is to turn existing helpers into skills, so context does more than generate code—it becomes the reusable workflow.

Consider onboarding developers whose agents live in Python, Node.js and different packaging ecosystems. Encoding every combination requires many branches and helpers. Debois describes replacing that approach with a skill whose procedure is straightforward:

  1. Identify the user’s package manager.
  2. Identify the surrounding ecosystem.
  3. Carry out the appropriate onboarding steps with the user.

He reports that this handled more variation than their coded helpers could reasonably cover. The reusable asset is the procedure for discovering and adapting to the environment, rather than a fixed implementation for every environment.

Slide titled “Context is the new Code” shows a prompt generating code on the left and code packaged as a skill with best practices and evals on the right.Open full source frame
From prompt to code, and from code to a reusable skill.
1:021:14
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

1:02 · section reference included

A lifecycle for context

The analogy starts with DevOps. In 2009, Debois asked what would happen if operations looked more like development; collaboration and deployment practices followed from taking that question seriously. Applying the same move to context raises a maintenance question: if instructions now influence what gets built, how should teams develop them consistently?

A context development lifecycle follows the familiar infinity loop. Generate context, evaluate it, distribute it to colleagues or other parts of the organization, then observe whether it works. Those observations feed adaptation and regeneration. Writing the first instruction is only the beginning; maintaining its usefulness closes the loop.

An infinity-loop diagram connects Generate and Evaluate in green with Distribute and Observe in purple.Open full source frame
The context development lifecycle: Generate, Evaluate, Distribute and Observe.
2:372:46
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

2:37 · section reference included

Generate and gather the working context

Context creation begins with ordinary prompting. Debois asked an agent when his AI Engineer talk was scheduled, and it fetched the website and found the session. The request worked with identity information he had already supplied: the agent knew he was Patrick. Even a short request depends on the information surrounding it.

Repeated requests become reusable instructions. Files such as AGENTS.md give those instructions a recognizable home; Debois contrasts that emerging convention with CLAUDE.md. Library documentation supplies another kind of context. When a model is uncertain whether an API belongs to version two or version three, retrieving documentation for the relevant version—preferably in an agent-friendly form—can guide generation toward the library actually in use.

Retrieval extends beyond documentation. MCP can bring in material from GitLab, GitHub and Slack, while the ticket describing a task is itself context. Spec-driven development adds a further transformation: write a specification, let the agent break it into a plan, then work through the resulting step-by-step prompts. Context can therefore be authored, retrieved or generated from another piece of context.

3:474:03
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

3:47 · section reference included

Test structure, then clarity

Change two lines in CLAUDE.md: do you know what behavior changed? Switch coding agents: do those same instructions still work? These are regression questions. Evals are familiar in AI engineering, but Debois wants them applied to the context used for everyday coding, rather than treating a plausible-looking edit as sufficient validation.

The first layer resembles linting. A skill validator can check that required metadata exists and that a description stays within the format’s permitted length. These checks establish structural validity before asking whether the instructions produce useful behavior.

The next layer resembles Grammarly: can the agent understand what the author means? A two-word instruction may omit too much to act on. Asking a model to assess the context can expose implicit assumptions, incomplete requirements or missing details. Debois finds voice coding helpful here because speaking makes him more expansive than typing with two fingers; the practical benefit is fuller instructions, not merely faster input.

6:026:20
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

6:02 · section reference included

Evaluate a company convention

A behavioral eval needs a rule, a task and an observable expectation. Debois’s example puts a company convention in AGENTS.md: every API endpoint must use the awesome prefix. Given a request to add an endpoint that saves a user, the expected generated path is /awesome/user.

The instruction can be expressed directly in the repository’s Markdown:

markdown

# API conventions

Every API endpoint must use the `/awesome` path prefix.

The user’s task need not repeat the convention; applying the repository context is the behavior under test.

An LLM judge can inspect the generated code and decide whether the endpoint starts with /awesome. A regex is sufficient for this particular rule, as Debois acknowledges; the judge illustrates how a broader criterion could be evaluated. Without the company instruction, there is no reason to expect that arbitrary prefix. The eval checks whether local knowledge actually affected the artifact.

The same suite can reveal differences when switching between Gemini and Copilot. Context that works with one coding system may need adjustment for another. Collecting these checks creates something like unit tests for context: criteria for generated application code, infrastructure as code and configuration files, all checked repeatedly against the conventions they should obey.

8:438:56
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

8:43 · section reference included

Run the endpoint, then improve the context

Finding /awesome/user in a file does not establish that the endpoint works. Give the judge tools and a sandbox, and it becomes an agent capable of running the application and issuing a request. For a local service accepting a JSON user record, that test could include:

bash

curl --fail-with-body --show-error \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{"name":"Ada"}' \
  http://localhost:3000/awesome/user

The local address and record make the request concrete; the important change is from inspecting generated text to exercising the running system. A full scenario must assess whether the response and resulting behavior meet the task’s requirements.

Versioning makes those scenarios more useful. Select a repository commit, supply a particular piece of context and run the scenario to ask whether that context made a difference. Commit instructions alongside code so the evaluated input can be identified. Once tests produce feedback about failures or missing requirements, a code action can use that feedback to propose a context revision. Evaluation supplies a target for improvement instead of relying on another round of unguided wording changes.

10:4410:53
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

10:44 · section reference included

CI/CD needs repeated trials

Tests and optimization naturally suggest CI/CD, but agent evaluations do not always produce the same result on successive runs. A single pass or failure can make the pipeline difficult to interpret and failures difficult to reproduce. Debois proposes an illustrative procedure: run an eval five times and count how many runs succeed. A case might succeed in all five runs, while another varies; that observation describes the trials rather than guaranteeing future reliability.

Error budgets provide a way to express how much variation matters. Give critical test sets very little failure tolerance, while allowing more variation in less consequential cases. Context edits can change which tests succeed, so evaluate the pattern of results across the suite rather than treating every check as an ordinary deterministic test.

12:2612:40
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

12:26 · section reference included

Distribute context as a library

Checking context into a repository already distributes it: a colleague checks out the project and receives the instructions. Reuse across projects or teams calls for something closer to a library. Package the front-end guidelines or other shared conventions so each project can install the pieces it needs. A registry then answers the discovery question, as in the Tessl Skills Registry and skill marketplaces.

Discovery does not establish quality. Debois uses “99.9” as a rhetorical dismissal of skill quality, not a measured ecosystem statistic. His practical concern is that many published skills do not meet a useful standard when evaluated, even if reading them offers ideas. Teams may consequently want their own maintained registries.

The package contains more than a prompt. A skill can bundle instructions, scripts and documents; plugins can also include MCP integrations. Support across coding agents makes skills an emerging package-format convention for distributing these assets together.

13:5213:59
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

13:52 · section reference included

Packages bring dependencies and supply-chain risk

Install multiple context packages and their instructions can conflict. A general front-end package might disagree with a React-specific package: dependency hell now includes incompatible guidance. Matching context-package versions to library versions helps keep the instructions aligned with the code they describe.

Published packages also introduce a trust problem. Debois points to OpenClaw as a moment when people became more aware of running strangers’ material on their laptops. His Snyk context-scanning example shows findings labeled Improper Credential Handling and Third-Party Content Exposure. These are flagged risks, not a claim that the scanner manages credentials or makes external content safe.

Slide titled “Context security scan” shows a Snyk scan result with two issues: Improper Credential Handling and Third-Party Content Exposure.Open full source frame
A context security scan flags two issues.

Provenance is the next question: who built the skill, how was it built and which model contributed? Debois proposes an AI SBOM analogy—a record of the origins and composition of the context package, extending the questions software teams already ask about their dependencies.

16:1616:33
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

16:16 · section reference included

Observe what agents are missing

Maintaining context for other people creates an obligation beyond sharing a snippet over Slack: find out whether it still works for its consumers. Agent logs are one feedback channel. An individual developer can notice an agent’s mistake and add the missing instruction. Debois briefly compares that response to TDD, then qualifies the analogy—it is a reaction to a discovered problem, not necessarily a test-first process.

At organizational scale, look for repeated gaps. If multiple agents report that the same information is missing, author it once and distribute it to everyone. The improvement then reaches people who have not yet encountered the failure. Debois points to emerging log standardization as an aid to this feedback channel: logs can reveal both missing context and whether supplied context was actually used.

17:4217:54
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

17:42 · section reference included

Turn review and production failures into feedback

A correction on a generated pull request is also an opportunity to examine the context that produced it. Repeatedly arguing about the same omission in review fixes individual outputs; improving the originating instructions can prevent the next iteration from repeating it. Production adds evidence that review may miss, because the generated code must handle real inputs after approval.

Debois describes a wrapper-like tool that instruments code and sends it to production. When something fails, it identifies changed code and the input/output behavior that went wrong. That failure can become a test case, feeding a concrete regression scenario back into development. The loop connects observed behavior to a test and then to the context used for subsequent changes.

19:2419:44
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

19:24 · section reference included

Trace execution and inspect incoming context

Runtime observation also needs to detect unexpected agent behavior. In a sandboxing experiment, Debois asked an agent to find useful ways to break out of the system. It used environment variables; after he removed a secret, it turned to memory files. The example motivates tracing what an agent accesses, rather than assuming its resourcefulness ends at the first restriction.

Execution isolation and instruction intake are different boundaries. Debois describes coding agents loading AGENTS.md and SKILL.md without an intervening restriction; the exact behavior depends on the agent and its trust configuration. His architectural concern is that sandboxing execution alone does not inspect the instructions being consumed. He proposes a context filter, analogous to a web application firewall, that examines incoming material for suspicious patterns and prompt injection.

BoundaryPurpose
Execution sandboxRestrict what agent actions can access or do
Proposed context filterInspect instructions entering the agent

The filter addresses an input path that execution isolation does not by itself validate.

Harness engineering brings these observations together: logs, traces and feedback explain how an agent behaves inside its operating environment. That information is useful for training, but also for running and improving an organization’s own agent workflows.

20:3120:49
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

20:31 · section reference included

Connect the authoring loop to the organization

Two loops emerge. The inner loop is library authoring: create context and test it. The outer loop begins when somebody else uses that library: distribute it, observe whether it remains useful across consumers and feed that evidence into the next revision. Debois compares the continuing improvement process to a Sonar/CI/CD model for context.

Personal Markdown craftsmanship can grow into a team habit: when information is missing, add it to the maintained context. Across a team of teams, one correction can become reusable knowledge for everyone else. This is the organizational benefit of closing the loop rather than leaving each developer to rediscover the same conventions.

Debois’s closing analogy is an engine and its fuel. Models and coding agents are the engine; context is what the user supplies to it. He cannot directly change the underlying model he is given, but he can improve its context. Context is an engineering surface under the team’s control, and it deserves more than copying, pasting and hoping.

22:3322:38
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

22:33 · section reference included

Consistency tests—and the work of designing evals

The audience question extends evaluation beyond code conventions. One attendee is building a system that scopes architectural problems into precise definitions, objectives and tests. Their proposed consistency check starts with a loose plan, runs independent attempts in parallel to sharpen it and compares the resulting definitions.

If the definitions diverge widely, the original plan may be too ambiguous: return to first principles or ask an architect to clarify it. If they agree, the attendee proposes proceeding downstream. Agreement is a signal of consistency, not proof that the shared interpretation is correct. The question is whether other unusual forms of context or evaluation could be useful beyond code and conventional evals.

Debois does not offer a specific solution to that architectural case. Instead, he identifies the cost hidden in the move from code to context: apparent savings in implementation can become time spent designing the right evaluations. There is no longer just one task prompt to get right; all the eval prompts require care too. Advanced practitioners build processes for constructing evaluations around their business cases. The engineering work shifts into defining what good behavior means and how to recognize it reliably.

24:5425:09
Suggest correction

This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.

24:54 · section reference included

Resources

From the talk

Read the complete timestamped transcript

19 slide groups. Extracted from the recording; expand builds to follow changes. Timestamps are approximate. 20 additional groups were omitted from this pass.

  1. 0:00

    [upbeat music] There's, uh, there's a few people who wanna start earlier.

  2. AI Engineer Europe

    AI Engineer Europe logo in white on black.

    Text in image
    AI Engineer
    EUROPE
  3. Presenting sponsor

    Google DeepMind is the presenting sponsor.

    Text in image
    PRESENTING SPONSOR
    Google DeepMind
  4. Platinum sponsors

    Braintrust, WorkOS, and OpenAI are listed as platinum sponsors.

    Text in image
    PLATINUM SPONSORS
    
    Braintrust
    WorkOS
    OpenAI
  5. 0:17

    Uh, I don't know, I'm gonna take the opportunity to officially open kind of the, uh, architect track. There's no track host, so I do it myself. So thank you for coming here.

  6. 0:26

    I hope you already had, like, a good conference. Um, it's amazing that, like, so many people showed up. Um, maybe before I start, um, who's used any AI coding agent in this room?

  7. 0:38

    Raise your hand. Like, lower it who hasn't. Raise your hand.

  8. 0:44

    Okay, my kind of people. Perfect. All right. [laughs]

  9. 0:48

    Um, okay. Context is the new code, um, or context development lifecycle. Um, I feel honored to be here every time I try to do a different talk at the AI Engineer.

  10. 1:02

    So this is a little bit of, um, you know, thinking ahead. It's an unpolished thought. It's not like everything's there, but is there anything there in AI anyway? But

  11. Context is the new Code

    Patrick Debois introduces the Context Development Lifecycle as an unpolished thought about what may come next.

    Text in image
    Context is the new Code
    
    Context Development Lifecycle
    
    AI Engineer London 2026 - Patrick Debois
    
    AIE
    Google DeepMind
    AI Engineer EUROPE
    2026
  12. 1:14

    , so let's start. I assume you all are now vibe coding with prompts. I barely touch anymore kind of the code. I just tell the AI to do something different.

  13. 1:28

    So I would co-- say, like, okay, you know, context is the new code because it's being generated. A little bit more advanced maybe is, I see myself having a tendency is I had large pieces of code that I was using, maybe some helpers and some other pieces, and I just turned them into a skill.

  14. 1:50

    We had that in our-- into our product. It was an onboarding from, you know, uh, AI agents. Uh, people have Python, Node.js, all the various things. Then they have different tools for packaging, and it is impossible to actually code that.

  15. 2:06

    Like, it will require a lot of coding. But if I just say, a skill says, "Please first figure out what their package manager is, then figure out what their ecosystem is, and then do these steps together with the user," you know, it solved a lot more problems that we could ever code.

  16. 2:24

    So that is another piece that I would say code is also transforming back into context as a skill as well, as a workflow that's reusable. Anyway, leave that with you.

  17. Thinking in parallels

    Patrick Debois pairs his 2009 question about making Ops like Dev with a 2025 question: what if Context was like Code? He asks how to handle context more consistently.

    Text in image
    I ♥ to think in parallels
    
    2009 - What if Ops was like Dev
    2025 - What if Context was like Code
    
    Patrick Debois - Product Devrel Tessl
    
    AIE
    
    AI Engineer
    EUROPE
    
    Stage text:
    AI Engineer
    EUROPE
    2026
  18. 2:37

    I like to think in parallels. In two thousand nine, I don't know if there's any DevOps people in the room, it was kinda me saying, like, "What if ops looked more like dev?"

  19. 2:46

    And then we got, like, hey, collaboration, kind of, uh, deployment, all that stuff. So kind of, you know, last year I started thinking, what if context is the code?

  20. 2:58

    How do we deal with this in a more consistent way?

  21. 3:03

    And it's basically saying, if we have a software development lifecycle, how does a context development lifecycle look like? Because we're basically shifting somewhere else. It's context, it's not code.

  22. Context Development Lifecycle

    Patrick Debois asks what a development lifecycle for context might look like, drawing a parallel with the software development lifecycle.

    Text in image
    CDLC
    Context Development Lifecycle
    
    AIE
    Engineering the future of AI
    AI Engineer EUROPE
    AI Engineer EUROPE 2026
  23. Context Development Lifecycle

    The infinity loop connects generating, evaluating, distributing and observing context. What teams learn from use feeds back into adapting and regenerating it.

    Text in image
    Context Development Lifecycle
    
    1 Generate
    Making implicit knowledge explicit
    
    2 Evaluate
    TDD for context
    
    3 Distribute
    Context as a package
    
    4 Observe
    Learn from use in the wild
    
    https://tessl.io/blog/context-development-lifecycle-better-context-for-ai-coding-agents/
    
    Interface text:
    AIE
    AI Engineer EUROPE
    Engineering the future of AI
  24. 3:16

    How does it look like? I came up with this, you know, of course, an infinity loop with some DevOps background. But the whole idea is that we generate a lot of context, then hopefully we test the context, we distribute the context maybe to some colleagues, to some other parts of the organization.

  25. 3:34

    We observe whether it works, and if it doesn't work or works, we kinda like, you know, adapt and regenerate the context and then go from there. So that's kind of the loop of the talk that I'll be going for with some examples.

  26. Today's Agenda

    The talk follows context from creation and quality checks through packaging and production monitoring, then uses observations to adapt and regenerate it.

    Text in image
    Today's Agenda
    
    01 ✨ Generate — create & curate context
    02 🔍 Evaluate — test & measure context quality
    03 📦 Distribute — package & share context
    04 👁️ Observe — monitor & improve in production
    
    AIE
    AI Engineer EUROPE
    2026
    Engineering the future of AI
  27. 3:47

    So step by step, going through. Generate. It's probably the one that you're all most familiar with because you're all prompting. You're like the human context creation, typing things, right?

  28. Generate

    The speaker introduces generating context through the familiar act of typing prompts.

    Text in image
    Generate
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
    Engineering the future of AI
  29. Prompts - Humans as context engine

    Given Patrick’s identity as context, Claude Code fetches the AI Engineer website and returns the time and track of his talk.

    Text in image
    Prompts - Humans as context engine
    
    Tell me when my talk is at AI engineer - https://www.ai.engineer/europe
    
    Fetch(https://www.ai.engineer/europe)
      Received 447KB (200 OK)
    
    Your talk "Context Is the New Code" is on April 10 (Day 3) at 11:15am in the Westminster track.
    
    https://www.ai.engineer/europe
    
    Interface text:
    Claude Code v2.1.96
    Welcome back Patrick!
    Opus 4.6 (1M context) · Claude Team · Tessl AI Limited
    ~/dev/aie
    Tips for getting started
    Ask Claude to create...
    Recent activity
    No recent activity
    
    AIE
    AI Engineer EUROPE
    Engineering the future of AI
  30. 4:03

    I was actually amazed that I just asked, "Tell me when my talk is at AI Engineer," that it would fetch the website and would just say, "Here's your talk."

  31. Prompts - Humans as context engine

    Given Patrick’s identity as context, Claude Code fetches the AI Engineer website and returns the time and track of his talk.

    Text in image
    Prompts - Humans as context engine
    
    Tell me when my talk is at AI engineer - https://www.ai.engineer/europe
    
    Fetch(https://www.ai.engineer/europe)
      Received 447KB (200 OK)
    
    Your talk "Context Is the New Code" is on April 10 (Day 3) at 11:15am in the Westminster track.
    
    https://www.ai.engineer/europe
    
    Interface text:
    Claude Code v2.1.96
    Welcome back Patrick!
    Opus 4.6 (1M context) · Claude Team · Tessl AI Limited
    ~/dev/aie
    Tips for getting started
    Ask Claude to create...
    Recent activity
    No recent activity
    
    AIE
    AI Engineer EUROPE
  32. 4:10

    Like, blew my mind. But hey, I, I said, like, the context that I've given it, I'm Patrick, all that stuff, right? So very simple context. It's what you do probably a lot, uh, in your setup.

  33. Rules, Instructions - Agent.md

    AGENTS.md gives coding agents reusable project context and instructions, such as setup commands and code conventions, in a dedicated file alongside the human-focused README.

    Text in image
    Rules, Instructions - Agent.md
    
    AGENTS.md
    A simple, open format for guiding coding agents, used by over 60k open-source projects.
    
    Think of AGENTS.md as a README for agents: a dedicated, predictable place to provide the context and instructions to help AI coding agents work on your project.
    
    # AGENTS.md
    
    ## Setup commands
    - Install deps: `pnpm install`
    - Start dev server: `pnpm dev`
    - Run tests: `pnpm test`
    
    ## Code style
    - TypeScript strict mode
    - Single quotes, no semicolons
    - Use functional patterns where possible
    
    Why AGENTS.md?
    
    README.md files are for humans: quick starts, project descriptions, and contribution guidelines.
    
    AGENTS.md complements this by containing the extra, sometimes detailed context coding agents need: build steps, tests, and conventions that might clutter a README or aren't relevant to human contributors.
    
    We intentionally kept it separate to:
    Give agents a clear, predictable place for instructions.
    Keep READMEs concise and focused on human contributors.
    Provide precise, agent-focused guidance that complements existing README and docs.
    
    Rather than introducing another proprietary file, we chose a name and format that could work for anyone. If you're building or using coding agents and find this helpful, feel free to adopt it.
    
    Agent.md
    
    Interface text:
    Explore Examples
    View on GitHub
    AIE
    AI Engineer EUROPE
    2026
  34. 4:23

    If you get a little bit more advanced, you say, "Lab prompting is tedious. I wanna have reusable prompts." So, you know, depending on the flavor of your coding agents, they call it instructions.

  35. 4:34

    Luckily, there's a little bit of a standardization now happening where it's like an AGENTS.md and some pieces like that. Boo, Claude, for still calling it CLAUDE.md. But anyway, you get the picture.

  36. 4:45

    There's, like, reusable prompts, reusable pieces of context that we're doing.

  37. Context from code and docs

    Context7, Ref, and Context Hub bring documentation into an agent’s context. The speaker suggests supplying current, version-specific library docs to help agents generate code for the right version.

    Text in image
    Context from code and docs
    
    Context7
    Up-to-date Docs
    for LLMs and AI code editors
    Get the latest documentation and code into Cursor, Claude, or other LLMs
    https://context7.com/
    
    Ref.
    Context for your agent.
    Stop hallucinations by searching public and private docs. No context bloat.
    https://ref.tools/
    
    Context Hub
    Coding agents hallucinate APIs and forget what they learn in a session. Context Hub gives them curated, versioned docs, plus the ability to get smarter with every task. All content is open and maintained as markdown in this repo — you can inspect exactly what your agent reads, and contribute back.
    license MIT
    npm v0.1.3
    node >=18
    Quick Start
    https://github.com/andrewyng/context-hub
    
    Interface text:
    Search a library (e.g. Next, React)
    or
    Chat with Docs
    plan  docs  mcp  blog  dashboard
    NEW  Plan — orchestrate coding agents across large projects. Try it free
    AI Engineer EUROPE
    2026
  38. 4:51

    We can also bring other context in. If we have documentation of libraries that we use day to day, we wanna pull that in, because the LLMs might not have the latest documentation.

  39. 5:03

    And so it's hallucinating. Is it version two, version three? We don't know. So we give it the context and say, "Please download the documentation," hopefully then agent optimized, and then they will do a better job at generating the code for that version of the library.

  40. 5:18

    Another piece of getting better context and creating context from libraries.

  41. 5:24

    And of course, it wouldn't be, uh, complete if we would say, "Pull context from wherever." MCP has been instrumental. Get it from your GitLab, GitHub, kind of Slack, all context.

  42. Context Connectors

    The GitHub MCP registry lists tools that connect models to files, APIs and databases. Unblocked illustrates connections to knowledge sources such as GitHub, GitLab and Slack.

    Text in image
    Context Connectors
    
    Connect models to the real world
    Servers and tools from the community that connect models to files, APIs, databases, and more.
    
    All MCP servers 88
    Markitdown
    Convert various file formats (PDF, Word, Excel, images, audio) to Markdown.
    By microsoft ☆ 90,861
    Netdata
    Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
    By netdata ☆ 78,095
    
    Connect Unblocked to your knowledge sources
    Install the Unblocked MCP plugin
    
    Github MCP - https://github.com/mcp
    https://getunblocked.com/unblocked-mcp/
    
    Engineering the future of AI
    
    Interface text:
    MCP Registry
    Search MCPs
    Install
    Unblocked
    How It Works
    API
    AI Engineer EUROPE
    2026
    AIE
  43. 5:36

    We're pulling in, we're creating. Even the ticket is creating context because we're pulling that in while we go there.

  44. Context Connectors

    The GitHub MCP registry lists tools that connect models to files, APIs and databases. Unblocked illustrates connections to knowledge sources such as GitHub, GitLab and Slack.

    Text in image
    Context Connectors
    
    Connect models to the real world
    Servers and tools from the community that connect models to files, APIs, databases, and more.
    
    All MCP servers 88
    Markitdown
    Convert various file formats (PDF, Word, Excel, images, audio) to Markdown.
    By microsoft ☆ 90,861
    Netdata
    Real-time infrastructure monitoring with metrics, logs, alerts, and ML-based anomaly detection.
    By netdata ☆ 78,095
    
    Connect Unblocked to your knowledge sources
    Install the Unblocked MCP plugin
    
    Github MCP - https://github.com/mcp
    https://getunblocked.com/unblocked-mcp/
    
    Engineering the future of AI
    
    Interface text:
    MCP Registry
    Search MCPs
    Install
    Unblocked
    How It Works
    API
    AI Engineer EUROPE
    2026
    AIE
  45. Spec Driven Development

    Kiro and GitHub Spec Kit illustrate specification-driven development: write prompts as specifications, then have an agent break them into a plan and step-by-step prompts.

    Text in image
    Spec Driven Development
    
    Kiro
    Specs
    
    What are specs?
    
    Specs or specifications are structured artifacts that formalize the development process for features and bug fixes in your application. They provide a systematic approach to transform high-level ideas into detailed implementation plans with clear tracking and accountability.
    
    With Kiro’s specs, you can:
    • Break down requirements into user stories with acceptance criteria
    • Build design docs with sequence diagrams and architecture plans
    • Track implementation progress across discrete tasks
    • Collaborate effectively between product and engineering teams
    
    Core Structure
    
    Every spec generates three key files that form the foundation of your specification:
    • requirements.md (or bugfix.md) - Captures user stories, acceptance criteria, or bug analysis in structured notation
    • design.md - Documents technical architecture, sequence diagrams, and implementation considerations
    • tasks.md - Provides a detailed implementation plan with discrete, trackable tasks
    
    🌱 Spec Kit
    Build high-quality software faster.
    An open source toolkit that allows you to focus on product scenarios and predictable outcomes instead of vibe coding every piece from scratch.
    
    Kiro - http://kiro.dev/docs/specs/
    Gitub Speckit - https://github.com/github/spec-kit
    
    Engineering the future of AI
    AI Engineer EUROPE
    2026
    
    Interface text:
    On this page
    README  Code of conduct  Contributing  MIT license  Security
    Create Release  failing  Stars  78k  license  MIT  docs  GitHub Pages
  46. 5:45

    And then maybe the new kid on the block is, okay, what if we start, like, writing our prompts as specifications, spec-driven development, which then gets broken down by the agent into a planning mode, into step-by-step kind of prompts that it then kind of runs through.

  47. 6:02

    So a lot creation happening in that field. You know, simple. This is probably what you're closest to. But when you're typing all that context and creating all that context, you change two lines in your CLAUDE.md,

  48. Today's Agenda

    After generating context, the talk turns to evaluating its quality: even changing two lines in CLAUDE.md raises the question of how to test their impact.

    Text in image
    Today's Agenda
    
    01 ✅ Generate — create & curate context
    02 🔍 Evaluate — test & measure context quality
    03 📦 Distribute — package & share context
    04 👁️ Observe — monitor & improve in production
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
  49. Today's Agenda

    After generating context, the talk turns to evaluating its quality: even changing two lines in CLAUDE.md raises the question of how to test their impact.

    Text in image
    Today's Agenda
    
    01 ✅ Generate — create & curate context
    02 🔍 Evaluate — test & measure context quality
    03 📦 Distribute — package & share context
    04 👁️ Observe — monitor & improve in production
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
  50. 6:20

    do you know the impact? Is it like YOLO? Looks good to me, let's do it. You have to think about, how do we test things? It's not just about we have a piece of code and we have a piece of context now, we need to write tests to see what is the impact.

  51. 6:38

    New coding agent, we don't know whether the lines still work. Now, it's not new in the world of AI engineering, but it's not that common yet in the world of coding with AI that you start writing evals for-- uh, which are tests for your kind of code context.

  52. Evaluate

    Evals test code context to see its impact.

    Text in image
    Evaluate
    
    Background numbers: 155,8; 24,57; 935,6; 730,9; 42,65; 9.30
    
    AIE
    AI Engineer EUROPE
    2026
  53. 6:59

    Uh, a little bit hard to read, but, you know, if you think in parallels, we have different levels of testing in code, and the simple one could be linting.

  54. Skill review ~ Linting

    A skill linter checks structure and formatting against the spec. This Terraform skill passes all 11 validation checks, including its line count and YAML frontmatter.

    Text in image
    Skill review ~ Linting
    
    Validation 100%
    Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
    
    Validation — 11 / 11 Passed
    Validation for skill structure
    
    CRITERIA | DESCRIPTION | RESULT
    skill_md_line_count | SKILL.md line count is 354 (≤ 500) | Pass
    frontmatter_valid | YAML frontmatter is valid | Pass
    name_field | 'name' field is valid: 'terraform-style-guide' | Pass
    description_field | 'description' field is valid (165 chars) | Pass
    compatibility_field | 'compatibility' field not present (optional) | Pass
    allowed_tools_field | 'allowed-tools' field not present (optional) | Pass
    metadata_version | 'metadata' version not present (optional) | Pass
    metadata_field | 'metadata' field not present (optional) | Pass
    
    https://docs.tessl.io/evaluate/evaluating-skills
    
    Interface text:
    Warnings & errors only
    AIE
    AI Engineer EUROPE 2026
    Engineering the future of AI
  55. 7:09

    Your IDE is-- has the squiggly lines, like, "Hey, this is not..." Like, you know, there's some incorrect syntax or you could do better like that. Here's an example of a validation of a skill where we say, "Well, you need to have the description.

  56. 7:24

    It can only be so long." So it's validating according to the spec of the format of the context, in this case. Simple analogy, simple linter that you can run.

  57. Skill syntax check ~ Grammarly

    Like Grammarly for context, the discovery review scores a Terraform skill description at 75% and suggests adding concrete actions and common trigger terms so an agent can find and select it.

    Text in image
    Skill syntax check ~ Grammarly
    
    Discovery 75%
    
    Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
    
    This is a solid description with clear ‘what’ and ‘when’ clauses and good distinctiveness for Terraform-specific work. The main weaknesses are moderate specificity (lacks concrete action examples) and limited trigger term coverage (missing common user phrases like ‘IaC’ or ‘.tf files’).
    
    Suggestions
    
    Add specific concrete actions like ‘create modules, define resources, configure providers, set up backends’ to improve specificity
    
    Expand trigger terms to include common variations: ‘infrastructure as code’, ‘IaC’, ‘.tf files’, ‘terraform modules’, ‘cloud infrastructure’
    
    Dimension | Reasoning | Score
    Specificity | Names the domain (Terraform HCL) and mentions style conventions and best practices, but doesn't list specific concrete actions like ‘create modules’, ‘define resources’, ‘configure providers’, or ‘set up state backends’. | 2 / 3
    Completeness | Clearly answers both what (‘Generate Terraform HCL code following HashiCorp's official style conventions and best practices’) and when (‘Use when writing, reviewing, or generating Terraform configurations’) with explicit trigger guidance. | 3 / 3
    
    https://docs.tessl.io/evaluate/evaluating-skills
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
    Engineering the future of AI

    7:36

    Show 2 builds
    1. 7:36

      A skill discovery review scores a description at 75% and suggests more specific actions and trigger terms.

      Text in image
      Skill syntax check ~ Grammarly
      
      Discovery 75%
      
      Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
      
      This is a solid description with clear ‘what’ and ‘when’ clauses and good distinctiveness for Terraform-specific work. The main weaknesses are moderate specificity (lacks concrete action examples) and limited trigger term coverage (missing common user phrases like ‘IaC’ or ‘.tf files’).
      
      Suggestions
      
      Add specific concrete actions like ‘create modules, define resources, configure providers, set up backends’ to improve specificity
      
      Expand trigger terms to include common variations: ‘infrastructure as code’, ‘IaC’, ‘.tf files’, ‘terraform modules’, ‘cloud infrastructure’
      
      Dimension | Reasoning | Score
      Specificity | Names the domain (Terraform HCL) and mentions style conventions and best practices, but doesn't list specific concrete actions like ‘create modules’, ‘define resources’, ‘configure providers’, or ‘set up state backends’. | 2 / 3
      Completeness | Clearly answers both what (‘Generate Terraform HCL code following HashiCorp's official style conventions and best practices’) and when (‘Use when writing, reviewing, or generating Terraform configurations’) with explicit trigger guidance. | 3 / 3
      
      https://docs.tessl.io/evaluate/evaluating-skills
      
      Interface text:
      AIE
      AI Engineer EUROPE
      2026
      Engineering the future of AI
    2. 8:03

      A skill evaluation reports a 75% discovery score and suggests more specific actions and trigger terms.

      Text in image
      Skill syntax check ~ Grammarly
      
      Discovery 75%
      
      Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
      
      This is a solid description with clear ‘what’ and ‘when’ clauses and good distinctiveness for Terraform-specific work. The main weaknesses are moderate specificity (lacks concrete action examples) and limited trigger term coverage (missing common user phrases like ‘IaC’ or ‘.tf files’).
      
      Suggestions
      
      Add specific concrete actions like ‘create modules, define resources, configure providers, set up backends’ to improve specificity
      
      Expand trigger terms to include common variations: ‘infrastructure as code’, ‘IaC’, ‘.tf files’, ‘terraform modules’, ‘cloud infrastructure’
      
      Dimension | Reasoning | Score
      Specificity | Names the domain (Terraform HCL) and mentions style conventions and best practices, but doesn't list specific concrete actions like ‘create modules’, ‘define resources’, ‘configure providers’, or ‘set up state backends’. | 2 / 3
      Completeness | Clearly answers both what (‘Generate Terraform HCL code following HashiCorp's official style conventions and best practices’) and when (‘Use when writing, reviewing, or generating Terraform configurations’) with explicit trigger guidance. | 3 / 3
      
      https://docs.tessl.io/evaluate/evaluating-skills
      
      Interface text:
      AIE
      AI Engineer EUROPE
      2026
      Google DeepMind
  58. 7:38

    And then you can do other things, like, and, and I haven't found maybe the good coding equivalent, but think of this as a Grammarly, right? So if you write context, um, is it actually-- c- can the agent understand what you're writing?

  59. 7:53

    If you write two words, it's not verbose enough for it to actually understand the context. So what you can do is you can say, uh, ask these, like, "Okay, you know, given this context, what do you think about-- uh, do you understand this?"

  60. 8:07

    And then you can get feedback like, oh, it's not explicitly enough written, or it's not complete, like you're missing pieces. So that's kind of feedback that you can get out from tools as well.

  61. 8:21

    So whenever you're writing now your context, you get a Grammarly saying, "Hey, do this." Uh, that's why I like to voice code. For some reason, I'm way more elaborate voice coding than typing.

  62. 8:32

    I'm a bad typer, two fingers, still after so many years. But when I talk, I was like, you know, I see the, the sentences come on the screen, but it helps to get good context there.

  63. 8:43

    All right, another kind of test. So imagine you put in your CLAUDE.md, or AGENTS.md, I should say. Uh, um, every API point must use the prefix awesome, right?

  64. 8:56

    You have some convention in your company, right, which is great. So your prompt will be then, "Add me a new endpoint to save a user." And you expect actually your coding agent to just say the code that's being generated has kind of /a- awesome/user.

  65. 9:15

    That's great. But the way we can test this is by asking then

  66. 9:22

    an LLM, the code that was generated, does it actually start with /awesome? Now you could do that with regex. I know, this is just for example purposes, but you can ask it to kind of judge your code based on your criteria and whether it did the right thing, right?

  67. 9:41

    So imagine you would ask the same question without your context above. No LLM is ever gonna prefix URL with awesome. So that's kind of where your content or your company-specific, your team-specific things come in, and that's why you still write those tests to see if this still works.

  68. 10:00

    Now, maybe Gemini kind of, uh, reacts differently than Copilot or something, and in your company, you need to make it more, you know, switchable of context. With this, you run the test, and you can actually tell that's the difference.

  69. 10:16

    And then you can make like whole suites, and I would compare that almost to unit tests. I have a bunch of these tests, and they tell me whether that's actually, you know, good code, the code is following the rules, and everything's fine.

  70. 10:28

    In this case, it's even kind of infrastructure as code. It doesn't need to be code only. It could be various things, could be config files as well. And I just have-- It's hard to read, but a bunch of kind of criteria that I just run every time to do that.

  71. Judge checks an API endpoint

    The judge checks the /awesome route convention, then runs a curl request to verify that the endpoint returns HTTP 200 and valid JSON. Both checks pass.

    Text in image
    JUDGE PROMPT
    
    CLAUDE.md rule: “All API routes must use the /awesome prefix.”
    
    CHECK 1  URL contains /awesome ? → static check, inspect the curl command below
    static
    CHECK 2  Execute curl -X POST /awesome/user and verify response is HTTP 200 with valid JSON
    
    bash — eval runner
    
    $ curl -X POST http://localhost:8000/awesome/user \
        -H "Content-Type: application/json" \
        -d '{"name": "alice"}'
    
    HTTP/1.1 200 OK
    body: {"id": 42, "name": "alice", "status": "saved" }
    
    judge evaluates both checks
    
    ✓ PASS
    ✓ URL contains /awesome — convention respected
    ✓ Endpoint returned HTTP 200 with valid JSON body
    
    Both checks pass → rule is enforced and endpoint is live
  72. 10:44

    But if you wanna test, you know, whether an endpoint has /awesome/user,

  73. 10:53

    there's a real test that we wanna run, which is I wanna test the endpoint. I just don't want only to check the code, I want to have it running.

  74. 11:03

    So when you give the judge a tool and the judge becomes an agent and it can do things in a sandbox and execute stuff,

  75. 11:14

    it can actually do c- do the curl. So you can bind LLM as a judge with kind of some tooling, and then you can have multitude of tests. Actually, you know, in this case, it kind of ends up being an end-to-end test, right?

  76. 11:28

    Because it's not just looking at the file, it's actually running the piece with everything that it's supposed to do.

  77. 11:36

    And then I can do this, like given a certain commit in my repo, I wanna run this scenario. Given this piece of context, did it make a difference, yes or no?

  78. 11:48

    So you're kind of like building this up while you're committing context also within your repo.

  79. 11:55

    And because we now have tests and it gives us feedback whether it's working yes or no or what it's missing, we can optimize context. So that's kind of the, you know, you-- we can put that in a code action or something that says like, "Okay, fix this context.

  80. 12:11

    Improve this context." With all the feedback the LLM has given us- To improve that. So, you know, again, coding, uh, improvements, but we start thinking more in testing that piece as well.

  81. 12:26

    Uh, one of the first reactions is once you have tests and optimizations, can we run this in a CI/CD system? Because that's perfect, right? That's where we run all of our tests and their test suites and do that.

  82. 12:40

    Now, there's a little bit of a weird thing. If you run evals,

  83. 12:46

    you run it once, you run it another time, it might not give the same results. Remember, undeterministic things.

  84. 12:54

    So you cannot say, "Well, run it once, and then if it passes or not," you're gonna be in for a treat because it's like, "Oh, I can't debug that."

  85. 13:03

    So think about this like you run it five times, and out of five, how many times does it succeed? And, you know, maybe in several cases it hits 100% all the time, which is great, but in others not.

  86. 13:19

    And depending on how you change your context, it will influence which tests actually work or not. I find it personally helpful to think about this as error budgets. I give a set of tests an error budget that I really care about, so it, it's only allowed like, you know, to fail minimally, and other pieces are okay.

  87. 13:41

    So that's how you have to think about testing context. You cannot do like exact testing all the time. It's a different way that this works.

  88. Today's Agenda

    After generating context, the talk turns to evaluating its quality: even changing two lines in CLAUDE.md raises the question of how to test their impact.

    Text in image
    Today's Agenda
    
    01 ✅ Generate — create & curate context
    02 🔍 Evaluate — test & measure context quality
    03 📦 Distribute — package & share context
    04 👁️ Observe — monitor & improve in production
    
    Interface text:
    AIE
    AI Engineer EUROPE
    2026
  89. 13:52

    All right. So generate, hopefully you understood what the testing could do for you,

  90. 13:59

    and distribute. Maybe that's also something you already did. If you maybe have checked context into your repo, right? Which is great, you know. All of a sudden it becomes available, your colleague checks it out, uh, zero friction.

  91. 14:13

    I can push, I can share. But we have another mechanism for doing things. Think of this like imagine you have a reusable context that you wanna reuse across multiple projects, across multiple teams.

  92. 14:30

    We had the concept of a library. So what if we package kind of pieces of context, and then we are able to install pieces of context that we need for this project?

  93. 14:43

    Guidelines, front-end, it doesn't matter for that. And then if we take it up a notch, how to discover what packages exist, that's a registry, right? Now, in that way, it's no surprise that you'll see things like skills and kind of the Tessl registry and the marketplace

  94. 15:05

    where you can find a multitude of skills. Now, the reality is

  95. 15:09

    99.9, and I mean that in a very sincere way, of the skills is crap.

  96. 15:17

    But it's good to learn from others to see what they're doing. But hardly of them, if you run kind of any set of evals on there, is actually up to a quality standard.

  97. 15:29

    Now, that will likely improve, but there's also a tendency is that a lot of the skills and pieces, people actually want to put that in their own registry.

  98. 15:41

    So I'll come to that later again, but... So you start seeing the gist. A skill not only contains context, it can contain scripts, it can contain documents, contain a bunch of things.

  99. 15:56

    So is this kind of the package format? Probably, you know, plugins could now also contain MCP, but you see there's like a standard coming in. Skills all of a sudden, when that came out, all the coding agents said, "We're supporting this as almost like a package format for people to distribute their context on."

  100. 16:16

    And then when I have one piece of context, I have dependencies. And I'm sorry, but also with context, we're gonna have dependency hell, right? [chuckles] I, I'm, I'm gonna download this for front-end, and maybe it's conflicting what is in the React context package.

  101. 16:33

    And so you start having to deal with that as well. So you start seeing also, uh, packages that, uh, mirror your library versions, your code ver- like your context versions, and kind of pull that in as well.

  102. 16:49

    And of course, when we have packages and people are publishing things in registry, we need security, right? OpenClaw. Thank you for that. Like everybody all of a sudden became aware that we need more secure things because we are able to run things on our laptop that are not and coming from strangers, right?

  103. 17:06

    So Snyk has a way of scanning context, right? It's doing some credential handling. It's, uh, exposing some third-party pieces. So you start seeing those scanners on the context as well.

  104. 17:22

    And then when you think about security, who actually built this skill? How was it built? With what model was this built? So all kind of capturing what we learned in maybe, uh, with packaging, like the SBOM, is kind of the AI SBOM, like the package of context that we're putting in.

  105. Today's Agenda

    The talk follows context from creation and quality checks through packaging and production monitoring, then uses observations to adapt and regenerate it.

    Text in image
    Today's Agenda
    
    01 ✨ Generate — create & curate context
    02 🔍 Evaluate — test & measure context quality
    03 📦 Distribute — package & share context
    04 👁️ Observe — monitor & improve in production
    
    AIE
    AI Engineer EUROPE
    2026
    Engineering the future of AI
  106. 17:42

    So you've seen... Still on the path, right? We generate, evaluate, distribute. Let's move into observe.

  107. 17:54

    When you are making libraries of skills and context for others, and I don't mean copy and paste this over Slack or something, but when you actually wanna maintain this as something somebody else can use, similar to a library, um, when they start using that, how do you get feedback whether that still works?

  108. 18:15

    Now, a great place to get feedback is actually by looking at the agent logs. So-

  109. 18:25

    Imagine developer one coding on the project, and the agent is not doing what they want.

  110. 18:33

    They could put this into their context, which is great, right? Okay. Let, let me do the TDD almost like, you know, I hit a problem. It's not TDD, but you get my gist.

  111. 18:43

    Um, or what if we at a team or an organization scale would look at the logs every time an agent said, "We're missing this piece." And we surface that and say, "If everybody's missing this piece, we should create context for this," and then we distribute the context to everybody, and all of a sudden, the impact of improvement

  112. 19:06

    is for everybody. Luckily, like the AGENTS.md, there's now a standards becoming for logs. So we can read from logs, and that's part of our feedback channel to see if the agent is actually using or missing some of the context.

  113. 19:24

    Any feedback you get on a PR that's not complete, that's feedback on your context because that PR was created with certain pieces of context. If you say this is not correct, you can kind of keep arguing on the PR, or you can just say, "Let's improve the context," so the next iteration actually improves, uh, and you don't

  114. 19:44

    hit that same problem again. What about running code in production that was generated from context and that's not correct? Because yes, we do our PR reviews and we say thumbs up, thumbs down, and we give the feedback, but the actual feedback is also in production when it's running.

  115. 20:04

    So this is a tool that actually instruments your code,

  116. 20:08

    pushes it out. It's almost like a wrapper. It pushes it out to production. When it fails, it says, "These pieces of code were changed and were failing. Hey, in this case, input, output, it did something wrong.

  117. 20:23

    Can we create a test case for this so the next time we don't hit this again in production?" Feedback loop.

  118. 20:31

    Now, these are all kind of pretty trivial, like missing pieces of context or improvements. But if you run agents and the equivalent of scanning maybe, you know, in the CI/CD is you need to make sure when it's running in production,

  119. 20:49

    is it not doing strange things? So we need kind of a way of looking at that. Now,

  120. 20:55

    I've been toying myself with, uh, you know, sandboxing agents, and it is very resourceful at finding things.

  121. 21:03

    I like, "Okay, you know, run this thing, try to figure out like anything useful to get break out of the system." And okay, it uses my environment variables. Okay, stupid.

  122. 21:15

    Well, let's-- let me remove the secret. Let me look at your memory files. So you have to really make, make sure that like whatever it's doing, you can have a way of tracing this as well.

  123. 21:28

    And, uh, apologize again for kind of the slide, but

  124. 21:33

    the gist is we can have a sandbox where the agent runs inside.

  125. 21:39

    But your coding agent, by default, without any restrictions, loads your AGENTS.md, you loads your SKILL.md.

  126. 21:49

    Like nothing is blocking that. So if you download this, immediately it's loaded. So you can't filter that with sandboxes. You need to have another way. I call that a context filter.

  127. 22:04

    Think of this as a web application firewall that just filters out any patterns or prompt injections or stuff that is coming in directly in that piece.

  128. 22:13

    And if you take that, there's a lot of talk here as well on harness engineering. Harness engineering itself also has this kind of full observability, looking at logs, looking at traces, looking at feedback.

  129. 22:25

    So it's kind of, you know, useful for training pieces, but as much useful for running your own piece as well.

  130. 22:33

    Those were the pieces for me today. I would say

  131. 22:38

    for a lot of people, there's like create context, test context. Think of this as your library authoring tool loop. And then when you push this into the enterprise, there's an organizational loop.

  132. 22:51

    "Hey, I made a library. Somebody else is using it. I'm looking whether that's useful, whether that's still working, whether that's still working for all the other pieces." So that's kinda like the kind of

  133. 23:04

    improvement, almost like sonar CI/CD model for context. And then

  134. 23:11

    you're currently probably doing a lot at the individual solo model. You're improving, you're honing, crafting your own kind of markdown. What if you start doing this more with your team?

  135. 23:21

    Make that a reflex. If it's missing, add some context. What if you put that out to a team of teams and you start having a flywheel? You know, if you fix it here, the other team can reuse it and, and that's kinda like, you know, scaling things out into the organization as well.

  136. 23:39

    And so there's a lot of talk about LLMs and coding agents, and I all love them, but the way that I see it is they're just the engine. If you give the engine the wrong fuel, which is context,

  137. 23:52

    they're not gonna perform. So... And you can't do anything on the LLMs, at least not me, right? I'm just using the coding agent. I'm using whatever they give me, but I can optimize my context.

  138. 24:03

    Um, and that's I think the message, uh, doing this more in an engineered way than just copy and pasting things and hoping for the best in there.

  139. 24:13

    If you like this talk, connect on LinkedIn for the slides. Um, give me some feedback, good and bad. If you wanna try Tessl where we implement some of the pieces of this, uh, have a go.

  140. 24:26

    And if you're also interested in another conference, I know you can never have enough conferences, uh, visit, uh, AI DevCon, which I curate the content for, uh, here in London, 1st and 2nd of June.

  141. 24:38

    And that's it. I can maybe take a few questions. [audience applauding]

  142. 24:49

    Any questions?

  143. 24:51

    I do have a question.

  144. 24:53

    Sure.

  145. 24:54

    So I wonder if you have any thoughts about, like, more exotic forms of context, like, you know, as the traditional ones. So for example, one of the things I'm working on is an automated system for, uh, scoping out architectural problems and, like, trying to create hard definitions for them so we can feed that to the agent and,

  146. 25:09

    you know, create actual objectives, uh, tests. Oh, cool.

  147. 25:14

    Yeah.

  148. 25:15

    Microphones. Um, and one of the things I've been testing out is, like, the ability to create consistency as a form of context or as a form of eval. So, um, given this rough, like, very loose definition of what the plan is, if c- you put that, if you try that agent system, turn that into a really crisp

  149. 25:32

    definition, and you just have that done in parallel, how often do you get the same crisp definition? And if they're all over the place, then the original definition was so poor and you'd, like, go back to basic principles or to an architect.

  150. 25:44

    But if they're all the same, then it's probably a pretty good definition and you can carry on with the downstream process.

  151. 25:50

    Yeah.

  152. 25:50

    So I guess, like, besides just code and typical evals, um, any other sources of context or generating context that you think is useful?

  153. 25:58

    Um, I don't have maybe a, a specific answer to your, like, exotic-

  154. 26:02

    Yeah, yeah, yeah

  155. 26:03

    ... you know, case. But, uh, I would say the, the, maybe the piece that people underestimate is that once you, you know, you thought you were gonna save time by writing actually your context, uh, instead of all your code.

  156. 26:14

    Mm-hmm.

  157. 26:15

    But if you take this rigorously, you're gonna spend time on writing the right evals.

  158. 26:19

    Right.

  159. 26:20

    And that's kinda like, you know, a lot of work to kind of ... Because n- now you don't only have one prompt [laughs] that you're trying to get right. It's, like, all the prompts of the evals.

  160. 26:30

    And that, like, if people do almost like a, like, the more advanced people, they almost have their own process, and they, they build their own process on top of, like, for building the right evals-

  161. 26:41

    Yep

  162. 26:41

    ... on your business case as well. So yeah. Good question. Thank you. Any other questions?

  163. 26:49

    If not, I'll be around. Um, say hi. I'm also gonna be at the Tessl booth. So thank you very much, and I'm gonna make space for the next speaker.

  164. 26:57

    Thank you. [audience applauding] [upbeat music]