Back to JetBrains

Spec-Driven AI Development – Episode 2

JetBrainsFebruary 11, 20261h 7m
Topics59
Introduction to Spec-Driven AI Development Episode 20:11Session Goals and Format2:01AI Fatigue and Human-in-the-Loop Challenges3:30Managing Specification Volume5:30Industry Perspectives on Human-in-the-Loop7:30Spec-Driven Development Frameworks8:00Agent-Generated Large Projects10:00Building the Right Thing11:00Specification Volume Concerns13:01Agent OS Workflow14:00Minimal Specification Philosophy16:00Historical Precedents17:32Higher-Order Languages19:02Project Introduction20:00Clean Slate Workflow21:31Plan Product Command22:31Product Specification Details25:32Roadmap Discovery27:00Specification as Steering Document28:00Specifications as Contracts29:00Specification Hierarchy and Target Audiences29:34Specialized Agents and Sub-Agents30:31Markdown-First Development Process31:00Project Setup and Technology Stack31:31Working in Small Units32:31Open Platform Approach35:30Agent-Created Specifications36:02Human-in-the-Loop Balance36:30Feature Development Workflow38:00Plan Mode and Context Management39:31Future of Software Development Roles40:01Feature Specification Process41:31Agent-Driven Questions and Intent Clarification42:00Specifications as Source of Truth44:02Training Models Around Specifications46:00Iteration and Over-Specification46:34Industry Adoption at JetBrains46:34Skills Injection and Pattern Following47:31Foundational Learning Requirement49:02Planning Phase Output49:31Verification and Validation Steps50:32Type Checking Frequency52:00Code Simplification Skills52:31Higher-Order Code Analysis53:00Context Limitations of Agents55:00Real-Time Review Process55:30Implementation Completion Report57:00Human-in-the-Loop Refactoring58:01Documentation for Human Users58:32Human in the Loop and IDE Integration59:16Agent-Generated Tests Discussion59:30Automated Commit Messages and Merge Operations1:01:02Work Location Philosophy for 20261:01:30Language Support for Agent Development1:02:00Deterministic and Non-Deterministic Intersection1:02:31Developer Fatigue and System Understanding1:03:00Excitement for 2026 and AI Integration1:04:00Major Risks in AI-Assisted Development1:05:00Closing Remarks and Offer1:06:01
In a Nutshell

Spec-driven development keeps humans in the loop by having agents generate code only after humans review and approve specifications, rather than allowing direct commits. The main challenge shifts from generating code to managing hundreds of thousands of specification documents and preventing agents from bloating code with irrelevant edge cases. Working in small, reviewable units on branches with frequent commits, using plan mode for upfront decisions, and treating specifications as the source of truth enables effective human oversight while leveraging agent capabilities.

AI-Generated Notes

These notes were generated by AI and may contain inaccuracies.

Paul Everett, developer advocate at JetBrains, hosts this live stream as a follow-up to a previous session on spec-driven development. He is joined by colleague Dimitri Jemerov, known as the creator of PyCharm and a key architect of the IntelliJ platform.

Dimitri spent significant time working on the IntelliJ platform, transforming a single Java IDE into the product line including PyCharm, RubyMine, and other IDEs built on top. He was also involved in the early days of Kotlin and co-authored a book on Kotlin with Lana.

The session aims to demonstrate spec-driven development in action on a real project rather than a dashboard demo. The goal is to show the best of both worlds: agents can generate code, but humans remain in the loop to review and approve before committing to main. The human in the loop needs effective tools for working with large software development projects.

Dimitri raises the issue of AI fatigue as a major challenge. Agents can generate hundreds of thousands of lines of code at the cost of tokens without significant effort. The challenge shifts from generating code to determining whether the generated code meets actual needs and is appropriate for the application.

AI systems frequently generate code to handle edge cases that may not exist in the actual application. Examples include handling zero-width non-breaking joiner spaces in Unicode strings. This results in bloated code that could be solved with one-tenth the amount of code if written by a human. The volume of code makes it exhausting for developers to review and make decisions about each edge case.

Sign in to read the full notes

Get access to AI-generated notes, topic timestamps, and more.