Licious Engineering Bootcamp · 2026

AI-Native
Engineering

From coding assistants to software factories.

← → to navigate · S for speaker view · T for notes drawer · /skills for the workshop deck

Run of show · 150 minutes

Five acts. Four demos. Two exercises. One starter kit.

IThe Shiftwhy engineering itself is movingIIThe Engineerhow you work differently on MondayIIIThe Repositorymaking code legible to two readersIVThe SDLCthe lifecycle becomes machine-executableVThe Organizationcompounding judgment into infrastructure

Both can be true.

AI made engineers faster. AI made engineers slower.

The question was never whether AI is good for engineering.

It's under which conditions it amplifies work, and under which it amplifies friction.

Act I

The Shift

Why engineering itself is moving.

OpeningThe ShiftThe EngineerThe RepositoryThe SDLCThe OrganizationClosing

AI is an amplifier, not an exorcist.

It scales your engineering system. Including the ghosts.

your engineering systemAIyour engineering system, louder---- the ghosts, also louder

A bad abstraction can now be copied ten times faster.

Congratulations.

Four eras. The unit of work keeps getting bigger.

IAssistanceHuman drives. AI types.IICollaborationHuman and agent take turns.IIIDelegationYou assign work. You don't watch it.IVFactoryThe SDLC itself runs on machines.unit: a lineunit: a taskunit: a workstreamunit: the lifecycle

The bottleneck didn't disappear. It moved.

Upward. Into intent, context, environment, and evidence.

Everyone having Codex does not make you AI-native.

That's a procurement event.

AI-native ≠ AI writes code.

AI-native = the SDLC itself becomes machine-executable.

Model ≠ Agent.

The same model is brilliant in one harness and useless in another.

MODEL+INSTRUCTIONS+TOOLS+CONTEXT+ENVIRONMENT+VERIFICATION+FEEDBACK LOOP=AGENT

The model is getting better whether we do anything or not.

The harness is our engineering problem.

Reliability comes from the stack, not the model.

INTENTWhat should happen?KNOWLEDGEWhat already exists?SKILLSHow do we solve this class of problem?TOOLSWhat can the agent actually do?ENVIRONMENTWhere can it act safely and reproducibly?VERIFICATIONHow is the result proven correct?MODELWhat can it reason about?

Act II

The Engineer

What you do differently on Monday.

OpeningThe ShiftThe EngineerThe RepositoryThe SDLCThe OrganizationClosing

Don't ask an agent to solve a problem it hasn't proven it understands.

Inspection before implementation.

A prompt is a conversation. A Task Contract is an engineering artifact.

tap a section to see it filled in for the FEFO change

“Fix inventory reservations” is not a task.

It's a wish.

Demo 1 · One task, three levels

Same model. Different engineering system.

Casual prompt → structured investigation → task contract plus harness.

Context is attention, not storage.

Every token you add competes with every token already there.

Please do not write a 40,000-token AGENTS.md.

That's not context engineering. That's context littering.

Onboarding an agent by dumping every document on it is like onboarding an engineer by dropping Confluence on their head.

AGENTS.md should be a router, not an encyclopedia.

AGENTS.mdArchitecture?read ARCHITECTURE.mdTouching inventory?read context/inventory.mdProduction incident?use $incident-investigationKafka schema change?use $kafka-schema-changeBefore implementingwrite an execution planBefore finishingrun ./scripts/verify

Prompt engineering asks what to say.

Context engineering asks what the model should know right now.

Parallelize uncertainty, not dependency.

mainworktree-afind the simplest implementationworktree-bfind the safest backward-compatible oneworktree-cargue we shouldn't do this at allagent D: comparecomplexity · risk · blast radius

Branches isolate versions. Worktrees isolate workers.

Live demo · Three agents, three worktrees

Parallelize uncertainty. Watch it happen.

licious — worktree swarm
click to spawn three worktrees ▌

Never let the builder self-certify.

BUILDERimplements the changeATTACKER'your job is to break this'TEST CRITIC'what is still untested?'every arrow is a fresh context windowdifffindingsgaps → repair

The cheapest reviewer in the building is another fresh context window.

It augments human review. It does not replace judgment.

Demo 2 · Adversarial development

“Your job is to break this change.”

Builder → attacker → test critic → builder.

You can now start more work than you can inspect.

Attention is the new bottleneck. Delegation without verification is optimism with a budget.

Act III

The Repository

Your code now has two readers.

OpeningThe ShiftThe EngineerThe RepositoryThe SDLCThe OrganizationClosing

The repo is the prompt.

Your repository now has two readers: humans and agents.

If it isn't in the repo, it doesn't exist.

A Slack thread from 2024 isn't context. It's folklore.

Brownfield is archaeology with a pager.

At scale, coding is a search problem before it's a coding problem.

Can the agent find the right 0.01% of what your company knows?

Time complexity. Space complexity. Context complexity.

How much of the system must be understood to safely change one behaviour?

svc Asvc BDBcronKafkautilsvc Cto change one thing, understand everythinginterfaceimplto change one thing, understand one boundaryCONTEXT COMPLEXITY: HIGHCONTEXT COMPLEXITY: LOW

Good architecture just got a new customer.

Abstraction now reduces machine context load, not just human cognitive load.

Seven small files beat one giant one.

AGENTS.mdWhere am I? How do I work here? What do I read next?ARCHITECTURE.mdWhat are the components and the boundaries?context/domain-map.mdWhat do reservation, allocation, fulfilment actually mean here?context/invariants.mdWhat must never become false?context/known-weirdness.mdWhat looks wrong but exists for a reason?runbooks/How do we execute known procedures?skills/How do we solve recurring classes of problems?

Demo 3 · Context surgery

More context is not better. Better context is better.

Three short files. Count the tool calls.

before · bare repoclick to run
“Explain how order cancellation works.”
0
tool calls
0
files opened
0
wrong assumptions
after · three small filesclick to run
+ ARCHITECTURE.md · domain-map.md · known-weirdness.md (≈150 lines)
0
tool calls
0
files opened
0
wrong assumptions

A prompt is disposable. A Skill is institutional memory.

Tools answer “what can I do?” Skills answer “how would a senior engineer do it?”

TOOLS · WHAT CAN I DO?query_metrics()query_logs()search_code()git_diff()get_deployments()+SKILL · HOW WOULD A SENIOR DO IT?performance-regression/SKILL.md · promql/ · investigation-tree.mdperformanceengineer

Skills without tools produce consultants.

Skills plus tools produce engineers.

Demo 4 · Build a Skill live

We just turned how a senior engineer thinks into infrastructure.

Runbook in. Skill out. Incident triggered. Watch it follow the process.

Instructions ask agents to behave. Invariants make bad behaviour impossible.

inventory:
  - stock_count_must_never_be_negative
  - reservation_must_be_idempotent
  - expired_inventory_must_never_be_allocated

orders:
  - payment_capture_must_not_happen_twice
  - cancelled_orders_cannot_become_dispatched

events:
  - existing_consumers_must_survive_schema_evolution

services:
  - domain_layer_cannot_depend_on_transport_layer
each one becomes →

  a unit test
  a property test
  a contract test
  an architecture test
  a custom linter
  a reviewer instruction
  an eval criterion

and stops being
  a Slack message

Generation got cheap. Evidence got expensive.

Safe autonomy ∝ verification surface.

How much of an agent's work can the machine independently prove correct?

SYSTEM A"looksplausible"a human reviews everythingverification surface: tinySYSTEM Btypesunit testsproperty testscontractsarchitecture checksintegration envbrowser / e2eproduction metricsverification surface: huge → autonomy can be huge

A flaky test used to annoy one engineer.

Now it lies to fifty agents.

Before asking whether Codex is good at your repo, ask whether your repo is good at Codex.

Bootability
Testability
Legibility
Observability
Documentation
Determinism
Safety
Isolation
Skills
Invariants
agent readiness: 17 / 30
tap the dots to score your own repo

Exercise 1 · 8 minutes

Score your repo.

Ten dimensions. Zero to three each. Be honest. Nobody's watching. (I'm watching.)

Act IV

The SDLC

The lifecycle becomes machine-executable.

OpeningThe ShiftThe EngineerThe RepositoryThe SDLCThe OrganizationClosing

AI-native ≠ coding assistant.

It's the whole lifecycle, with humans placed where judgment lives.

incidentreproducediagnoseregression testfixadversarial reviewCIdeployobservehuman attention lands on judgment, not typing

Stretch demo · Incident to PR

p95 went from 180 ms to 1.8 s after release 8271. Investigate.

Metrics → trace → query → diff → hypothesis → regression test → fix → PR.

Reason once. Automate forever.

Repeated model reasoning should become deterministic software.

Corrections should not disappear into chat history.

Every expensive mistake should become a cheap future test.

4× code generation + 1× review = a very sophisticated queue.

code generationcode reviewCIQAdeployment← everything piles up here

Don't accelerate the coder. Accelerate the SDLC.

Nobody was ever promoted for lines of code.

Now nobody will be hired for them either. Measure attention-minutes per shipped change.

Act V

The Organization

Compounding judgment into infrastructure.

OpeningThe ShiftThe EngineerThe RepositoryThe SDLCThe OrganizationClosing

Autonomy is a dial, not a switch.

explainsuggestedit filesrun testscommitopen PRmerge low-riskdeployrespond to prodearn the next notch with evidence

Autonomy is earned through verification.

Risk × verification strength × reversibility × blast radius.

default · no approval
read source
search docs
run unit tests
modify worktree
create commit
open PR
query prod metrics✓ read-only
bounded · audited · gated
merge PR⚠ approval
modify feature flag⚠ approval
production deployment⚠ approval
execute DB migration✗ never
access secrets✗ never
production write✗ never

The same agents that generate entropy can collect it.

Technical-debt garbage collection. Nightly.

Agent Capital.

Knowledge that compounds instead of retiring.

timereusable knowledgeknowledge in headsforgets, leaves, retiresknowledge in skills · evals · invariants · toolsevery engineer + every agent run, forever3 hours on a Kafka edge case

Build your own SWE-Bench from your own engineering history.

Stop answering “is it better?” with vibes.

licious-agent-evals/
├── inventory/
│   ├── negative-stock/
│   ├── duplicate-reservation/
│   └── expired-product/
├── payments/
│   ├── retry-idempotency/
│   └── duplicate-capture/
├── events/
│   └── backward-compatible-schema/
└── architecture/
    ├── forbidden-dependency/
    └── service-boundary/
each case:
  task
  expected invariants
  expected subsystems touched
  forbidden behaviours
  tests
  scoring rubric

then compare, with numbers:
  harness A      vs  harness B
  skill v1       vs  skill v2
  huge AGENTS.md vs  router AGENTS.md
  model X        vs  model Y

The senior engineer stops scaling hands.

They start scaling judgment.

OLD LEVERAGEsenior engineera good abstraction100 engineers benefitAI-NATIVE LEVERAGEsenior engineerinvariant · skill · tool · eval100 engineers + 10,000 agent runs

Where the transformation actually happens.

ORGagent-skills · agent-evals · agent-toolsTEAMtask contracts · golden principles · autonomy matrixREPOAGENTS.md · ARCHITECTURE.md · invariants · runbooks · verifyENGINEERplan · delegate · verify · critique · parallelize

Every idea in this talk maps to something you can clone tonight.

ai-native-engineering-kit/
├── AGENTS.md
├── ARCHITECTURE.md
├── GOLDEN_PRINCIPLES.md
│
├── context/
│   ├── domain-map.md
│   ├── invariants.md
│   ├── glossary.md
│   └── known-weirdness.md
│
├── task-contracts/
│   ├── feature.md
│   ├── bug.md
│   ├── migration.md
│   └── incident.md
├── skills/
│   ├── incident-investigation/
│   ├── kafka-schema-change/
│   ├── service-extraction/
│   ├── database-migration/
│   ├── production-readiness/
│   └── performance-regression/
│
├── evals/
│   ├── inventory/
│   ├── payments/
│   ├── events/
│   └── architecture/
│
├── runbooks/
│   ├── deployment.md
│   └── rollback.md
├── agentic-ci/
│   ├── review-change.md
│   ├── find-test-gaps.md
│   └── architecture-guardian.md
│
├── worktrees/
│   └── spawn-agent.sh
│
├── autonomy/
│   └── permissions.md
│
├── scorecard/
│   └── agent-readiness.md
│
└── labs/
    ├── 01-bad-prompt/
    ├── 04-build-a-skill/
    └── 07-adversarial-review/

Exercise 2 · 8 minutes

Write a Task Contract for the last ticket you closed.

Then notice which section you couldn't fill in. That's where the bug was.

Ten ways to fail at this.

"Everyone has Codex, so we're AI-native."
Dumping every document into context.
The 40,000-token AGENTS.md.
Letting the builder grade its own work.
Counting PRs and calling it productivity.
Infinite parallel agents, zero decomposition.
Full autonomy with no verification surface.
Letting agents drift the architecture, unopposed.
Re-solving the same problem in chat every week.
Corrections that die in chat history.

The question keeps changing.

2023How much code can you write?2024How much code can AI help you write?2025How much work can you delegate?2026How well can you design a system where humans and agents build together?

The best AI-native engineer won't write the best prompts.

They'll build the best environment for intelligence to operate inside.

Thank you

From using AI to write software,
to engineering systems in which intelligence can operate.

Clone the kit. Score a repo. Write one contract. Build one skill. Then come find me.

github.com/licious/ai-native-engineering-kit · questions welcome

Opening1 / 4