<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sourcelabs Blog</title><link>https://sourcelabs.nl/blog/</link><description>Sourcelabs engineering blog — articles on software development, AI, and cloud-native architecture.</description><generator>Sourcelabs B.V.</generator><language>en</language><lastBuildDate>Tue, 09 Jun 2026 06:19:06 +0000</lastBuildDate><atom:link href="https://sourcelabs.nl/blog/rss.xml" rel="self" type="application/rss+xml"/><item><title>Dad Mode Activated: An AI-Built European Capitals Game</title><link>https://sourcelabs.nl/blog/dad-mode-an-ai-built-european-capitals-game/</link><pubDate>Tue, 09 Jun 2026 06:19:06 +0000</pubDate><guid>https://sourcelabs.nl/blog/dad-mode-an-ai-built-european-capitals-game/</guid><description>&lt;p&gt;Sometimes the most useful AI demo doesn&amp;rsquo;t ship with a launch event or a glossy landing page. It shows up because somebody&amp;rsquo;s kid has a geography test next week.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s what happened on our team this week. One of us had a kid who needed to memorize the capitals of Europe for school, and the existing drill-and-kill online quizzes weren&amp;rsquo;t doing the job. So we did what any developer-parent would do in 2026: opened an AI chat and built our own.&lt;/p&gt;</description></item><item><title>Pragmatic Engineer Survey: How AI Tools Reshape Engineering Roles</title><link>https://sourcelabs.nl/blog/pragmatic-engineer-survey-how-ai-tools-reshape-engineering-roles/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/pragmatic-engineer-survey-how-ai-tools-reshape-engineering-roles/</guid><description>&lt;p&gt;Gergely Orosz recently published a &lt;a href="https://newsletter.pragmaticengineer.com/p/the-impact-of-ai-on-software-engineers-2026" target="_blank" rel="noopener noreferrer"&gt;detailed analysis of over 900 survey responses&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; on how AI tools are affecting software engineers and engineering leaders in 2026. The findings paint a nuanced picture: productivity gains are real, but so are the costs, the workflow disruptions, and the growing divergence in how different types of engineers respond to these tools.&lt;/p&gt;
&lt;h3 id="the-numbers-behind-the-hype"&gt;The Numbers Behind the Hype&lt;/h3&gt;
&lt;p&gt;The survey highlights several concrete data points worth paying attention to. Around 30% of respondents say they regularly hit token or usage limits on their AI subscriptions. Companies are spending $100 to $200 per month per engineer on tools like Claude Code and Cursor. And roughly 15% of responses explicitly call out cost sustainability as a concern.&lt;/p&gt;</description></item><item><title>What Is GSD? Spec-Driven AI Development</title><link>https://sourcelabs.nl/blog/what-is-gsd-spec-driven-ai-development/</link><pubDate>Wed, 08 Apr 2026 10:36:57 +0000</pubDate><guid>https://sourcelabs.nl/blog/what-is-gsd-spec-driven-ai-development/</guid><description>&lt;p&gt;If you&amp;rsquo;ve spent any time letting an AI agent write code for you, you probably know the feeling: things start great, but somewhere around the 15-minute mark the output starts drifting. Files get messy, requirements get silently dropped, and you end up spending more time fixing things than you saved. This problem has a name: context rot. And GSD is one attempt at solving it.&lt;/p&gt;
&lt;h3 id="so-what-is-gsd-exactly"&gt;So what is GSD exactly?&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://gsd.build/" target="_blank" rel="noopener noreferrer"&gt;GSD&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; (Get Shit Done) is a meta-prompting and context engineering framework for AI-assisted development. Created by Lex Christopherson, it provides a structured workflow that breaks your development work into phases, each running in a fresh context window with atomic commits.&lt;/p&gt;</description></item><item><title>APERTVS: Europe's Open &amp; Sovereign AI Foundation Model</title><link>https://sourcelabs.nl/blog/apertvs-europes-open-sovereign-ai-foundation-model/</link><pubDate>Wed, 08 Apr 2026 09:07:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/apertvs-europes-open-sovereign-ai-foundation-model/</guid><description>&lt;p&gt;A new open AI foundation model has entered the European landscape, and it comes with a bold promise: full transparency, sovereign control, and regulatory compliance out of the box. Meet &lt;a href="https://apertvs.ai/" target="_blank" rel="noopener noreferrer"&gt;APERTVS&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt;, a collaborative effort by the Swiss AI Initiative, bringing together &lt;a href="https://www.epfl.ch/" target="_blank" rel="noopener noreferrer"&gt;EPFL&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; (École Polytechnique Fédérale de Lausanne), a world-leading public research university in Lausanne, Switzerland consistently ranked in the QS top 15, renowned for its pioneering work in AI, robotics, and computer science; &lt;a href="https://ethz.ch/" target="_blank" rel="noopener noreferrer"&gt;ETH Zurich&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; (Swiss Federal Institute of Technology), one of the world&amp;rsquo;s top science and engineering universities in Zurich, ranked in the QS top 10 and home to 22 Nobel laureates including Albert Einstein; and the &lt;a href="https://www.cscs.ch/" target="_blank" rel="noopener noreferrer"&gt;Swiss National Supercomputing Centre (CSCS)&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt;, which provided over 10 million GPU hours on its &amp;ldquo;Alps&amp;rdquo; supercomputer to train the models.&lt;/p&gt;</description></item><item><title>Claude Code's LSP Integration: Real-Time Diagnostics for Better Code Generation</title><link>https://sourcelabs.nl/blog/claude-codes-lsp-integration-real-time-diagnostics-for-better-code-generation/</link><pubDate>Fri, 03 Apr 2026 08:44:27 +0000</pubDate><guid>https://sourcelabs.nl/blog/claude-codes-lsp-integration-real-time-diagnostics-for-better-code-generation/</guid><description>&lt;p&gt;If you are not using it yet, here&amp;rsquo;s an honest look at what it takes to get it working and where it actually pays off.&lt;/p&gt;
&lt;p&gt;Claude Code&amp;rsquo;s LSP (Language Server Protocol) integration gives the model access to real-time diagnostics from the same language tooling developers use in their IDEs: type errors, unresolved references, unused imports, and similar feedback.&lt;/p&gt;
&lt;p&gt;The documentation makes it sound easy. In practice, getting it to actually work required debugging session logs, adjusting where configuration files live, and adding explicit guidance to &lt;code&gt;CLAUDE.md&lt;/code&gt; before the model used it reliably. This post covers what worked, what didn&amp;rsquo;t, and where LSP is genuinely worth the setup effort.&lt;/p&gt;</description></item><item><title>Former GitHub CEO Thomas Dohmke Launches Entire</title><link>https://sourcelabs.nl/blog/former-github-ceo-thomas-dohmke-launches-entire/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/former-github-ceo-thomas-dohmke-launches-entire/</guid><description>&lt;p&gt;Thomas Dohmke, the former CEO of GitHub, has stepped out with something new. His startup &lt;a href="https://entire.io" target="_blank" rel="noopener noreferrer"&gt;Entire&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; launched in February with a $60 million seed round at a $300 million valuation, making it one of the largest seed rounds ever for a developer tools company.&lt;/p&gt;
&lt;p&gt;The pitch? Developer tooling needs to be rebuilt from scratch for a world where AI agents write most of the code.&lt;/p&gt;
&lt;h3 id="whats-the-problem"&gt;What&amp;rsquo;s the problem?&lt;/h3&gt;
&lt;p&gt;Dohmke&amp;rsquo;s argument is pretty straightforward: the tools we use to manage software (git, pull requests, CI/CD pipelines) were all designed around the assumption that humans write code. That assumption is rapidly becoming outdated. As he &lt;a href="https://www.axios.com/2026/02/10/former-github-ceo-ai-coding-startup" target="_blank" rel="noopener noreferrer"&gt;told Axios&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt;, &amp;ldquo;Soon, developers won&amp;rsquo;t look at the code anymore, as agents will write way more than humans can review.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Agentic AI and the Death of Your Sprint Rituals</title><link>https://sourcelabs.nl/blog/agentic-ai-and-the-death-of-your-sprint-rituals/</link><pubDate>Mon, 30 Mar 2026 05:41:42 +0000</pubDate><guid>https://sourcelabs.nl/blog/agentic-ai-and-the-death-of-your-sprint-rituals/</guid><description>&lt;p&gt;Remember when the biggest debate in your sprint planning was whether that story was a 5 or an 8? Good times. Simpler times. Times that are about to get very, very weird.&lt;/p&gt;
&lt;p&gt;Agentic AI (the kind that doesn&amp;rsquo;t just autocomplete your for-loops but actually goes off, &lt;a href="https://sourcelabs.nl/blog/github-claudomator-automated-dev-backlog/"&gt;reads your Jira tickets, writes the code, runs the tests, and opens a pull request&lt;/a&gt; while you&amp;rsquo;re still arguing about acceptance criteria) is changing how software gets built. And that means the rituals we&amp;rsquo;ve built around building software are due for a serious shake-up.&lt;/p&gt;</description></item><item><title>Context Anchoring: Making AI Decisions Persist Across Sessions</title><link>https://sourcelabs.nl/blog/context-anchoring-making-ai-decisions-persist-across-sessions/</link><pubDate>Thu, 26 Mar 2026 06:22:56 +0000</pubDate><guid>https://sourcelabs.nl/blog/context-anchoring-making-ai-decisions-persist-across-sessions/</guid><description>&lt;p&gt;If you&amp;rsquo;ve spent any meaningful time building software with AI coding assistants, you&amp;rsquo;ve lived through this scenario: you open a new chat, spend twenty minutes re-explaining your architecture, your constraints, and the decisions you made yesterday — only to watch the AI confidently suggest an approach you already rejected in your previous session. The context is gone. The reasoning evaporated. You&amp;rsquo;re starting from zero.&lt;/p&gt;
&lt;p&gt;This isn&amp;rsquo;t a minor inconvenience. It&amp;rsquo;s a fundamental friction point in AI-assisted development, and it&amp;rsquo;s one that &lt;a href="https://martinfowler.com/articles/reduce-friction-ai/context-anchoring.html" target="_blank" rel="noopener noreferrer"&gt;Rahul Garg from Thoughtworks recently addressed&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; on Martin Fowler&amp;rsquo;s site with a pattern he calls &lt;strong&gt;Context Anchoring&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Hardening Docker Containers for Autonomous Claude Code</title><link>https://sourcelabs.nl/blog/hardening-docker-containers-for-autonomous-claude-code/</link><pubDate>Fri, 20 Mar 2026 15:21:42 +0000</pubDate><guid>https://sourcelabs.nl/blog/hardening-docker-containers-for-autonomous-claude-code/</guid><description>&lt;h3 id="where-we-left-off"&gt;Where We Left Off&lt;/h3&gt;
&lt;p&gt;In &lt;a href="https://sourcelabs.nl/blog/from-sandbox-to-docker-headless-claude-code/"&gt;part one&lt;/a&gt;, we migrated from OS-level sandboxing to Docker isolation for running Claude Code in headless mode. Docker solved the friction: no PATH hacks, no global settings, no sandbox diagnostics. Each Claude invocation runs inside a container with pre-installed tools, a non-root user, and persistent state across pipeline stages.&lt;/p&gt;
&lt;p&gt;But &amp;ldquo;runs inside a container&amp;rdquo; is a starting point, not an endpoint. Our containers were running with Docker&amp;rsquo;s defaults: full Linux capabilities, writable root filesystem, unrestricted network access. A prompt injection in a GitHub issue could tell Claude to exfiltrate source code, install a reverse shell, or consume all available resources.&lt;/p&gt;</description></item><item><title>From Sandbox Struggles to Docker Bliss: Running Headless Claude Code in Production</title><link>https://sourcelabs.nl/blog/from-sandbox-to-docker-headless-claude-code/</link><pubDate>Thu, 19 Mar 2026 09:27:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/from-sandbox-to-docker-headless-claude-code/</guid><description>&lt;h3 id="the-idea"&gt;The Idea&lt;/h3&gt;
&lt;p&gt;What if you could point Claude at your GitHub project board and have it autonomously assess tickets, plan implementations, write code, run tests, and open PRs, while you sip coffee?&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s what we built: &lt;strong&gt;GitHub Claudomator&lt;/strong&gt;, an automated pipeline that picks up GitHub issues from a Project board, assesses and plans them using Claude Code in &lt;a href="https://code.claude.com/docs/en/cli-reference" target="_blank" rel="noopener noreferrer"&gt;headless mode&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt;, and implements them as pull requests. All controlled via a real-time Next.js dashboard.&lt;/p&gt;</description></item><item><title>Koog for Java: JetBrains Ships an Enterprise AI Agent Framework for the JVM</title><link>https://sourcelabs.nl/blog/koog-for-java-jetbrains-ships-an-enterprise-ai-agent-framework-for-the-jvm/</link><pubDate>Wed, 18 Mar 2026 03:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/koog-for-java-jetbrains-ships-an-enterprise-ai-agent-framework-for-the-jvm/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been building AI agents in Java, you know the drill. You either shoehorn Python libraries into your stack via microservices and REST bridges, or you pick one of the handful of JVM-native options and hope it does what you need. JetBrains just made that choice a lot more interesting.&lt;/p&gt;
&lt;p&gt;This month, &lt;a href="https://blog.jetbrains.com/ai/2026/03/koog-comes-to-java/" target="_blank" rel="noopener noreferrer"&gt;JetBrains announced&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; that &lt;strong&gt;Koog&lt;/strong&gt; — their AI agent framework originally built for Kotlin — now ships with a fully idiomatic Java API. No Kotlin knowledge required. No wrapper hacks. Just plain Java builder patterns, thread pool executors, and the kind of enterprise-grade plumbing that makes architects sleep at night.&lt;/p&gt;</description></item><item><title>Why Did Your AI Agent Call That Tool? Spring AI Has an Answer</title><link>https://sourcelabs.nl/blog/explainable-ai-agents-capturing-llm-reasoning-in-spring-ai-tool-calls/</link><pubDate>Sat, 14 Mar 2026 01:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/explainable-ai-agents-capturing-llm-reasoning-in-spring-ai-tool-calls/</guid><description>&lt;p&gt;When an AI agent decides to call a tool, it makes a choice. It picks one function over another, constructs specific arguments, and proceeds — all in a black box. In most frameworks, you see the input and the output, but the &lt;em&gt;why&lt;/em&gt; is lost. Spring AI&amp;rsquo;s Tool Argument Augmenter changes that, and it&amp;rsquo;s one of the most underappreciated features in the framework today.&lt;/p&gt;
&lt;h3 id="the-problem-with-opaque-tool-calls"&gt;The problem with opaque tool calls&lt;/h3&gt;
&lt;p&gt;Tool calling (or function calling) is the mechanism that lets LLMs interact with external APIs. The model receives a set of tool definitions with their parameter schemas, decides which tool to invoke, and provides the arguments. The application then executes the tool and sends the result back.&lt;/p&gt;</description></item><item><title>Claude Code Review: AI checking AI</title><link>https://sourcelabs.nl/blog/claude-code-review-ai-reviewing-ai/</link><pubDate>Thu, 12 Mar 2026 01:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/claude-code-review-ai-reviewing-ai/</guid><description>&lt;p&gt;Anthropic just shipped one of its most interesting features yet: Code Review for Claude Code. &lt;a href="https://claude.com/blog/code-review" target="_blank" rel="noopener noreferrer"&gt;Announced on March 9&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; by Boris Cherny, Claude Code&amp;rsquo;s product lead, the feature dispatches a team of AI agents to review every pull request for bugs, security issues, and logic errors. It is currently in &lt;a href="https://code.claude.com/docs/en/code-review" target="_blank" rel="noopener noreferrer"&gt;research preview&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; for Team and Enterprise customers.&lt;/p&gt;
&lt;p&gt;On the surface this sounds like just another AI-assisted development tool. But when you dig into the architecture and the reasoning behind it, something more fundamental emerges about where software engineering is heading.&lt;/p&gt;</description></item><item><title>Unboxing Java 26: What Developers Need to Know Before Upgrading</title><link>https://sourcelabs.nl/blog/unboxing-java-26-what-developers-need-to-know-before-upgrading/</link><pubDate>Thu, 12 Mar 2026 01:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/unboxing-java-26-what-developers-need-to-know-before-upgrading/</guid><description>&lt;p&gt;JDK 26 is shipping this month. If you&amp;rsquo;re planning an upgrade from JDK 25, there&amp;rsquo;s a solid mix of finalized features, continued previews, and a handful of removals that deserve your attention. Here&amp;rsquo;s the breakdown based on the &lt;a href="https://inside.java/2026/03/12/podcast-051/" target="_blank" rel="noopener noreferrer"&gt;Inside Java podcast&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; and the official JEP list.&lt;/p&gt;
&lt;h3 id="finalized-features"&gt;Finalized features&lt;/h3&gt;
&lt;p&gt;Five JEPs have graduated to final status in this release:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;JEP 517 — HTTP/3 for the HTTP Client API.&lt;/strong&gt; The &lt;code&gt;java.net.http.HttpClient&lt;/code&gt; now supports HTTP/3 (QUIC) out of the box. HTTP/3 solves two long-standing problems with TCP-based HTTP: head-of-line blocking — where a single lost packet stalls all streams on a connection — and connection migration, where moving between networks (Wi-Fi to mobile, for example) previously required a full reconnection. With QUIC as the transport layer, streams are independent and connections survive network changes. If you&amp;rsquo;re already using the HTTP Client API introduced in Java 11, you benefit from these improvements without changing a single line of code. The client automatically negotiates HTTP/3 when the server supports it and falls back to HTTP/2 or HTTP/1.1 otherwise. The practical impact is most noticeable for mobile clients on unstable connections, high-latency network paths, and microservice-to-microservice communication where multiplexed streams reduce tail latency.&lt;/p&gt;</description></item><item><title>Evaluating Spring AI Applications with Dokimos</title><link>https://sourcelabs.nl/blog/evaluating-spring-ai-applications-with-dokimos/</link><pubDate>Wed, 11 Mar 2026 01:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/evaluating-spring-ai-applications-with-dokimos/</guid><description>&lt;p&gt;If you&amp;rsquo;re building AI features with Spring AI, you&amp;rsquo;ve probably run into this question: how do you know your LLM responses are actually good? Unit testing a deterministic function is straightforward. Testing something that produces different output every time, and where &amp;ldquo;correct&amp;rdquo; is a spectrum rather than a binary — that&amp;rsquo;s a different problem entirely.&lt;/p&gt;
&lt;p&gt;This is where LLM evaluation (evals) comes in, and &lt;a href="https://dokimos.dev/" target="_blank" rel="noopener noreferrer"&gt;Dokimos&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; is a new open-source framework that brings structured evaluation to Java and Spring AI applications. Think of it as a testing framework specifically designed for the non-deterministic world of LLM outputs.&lt;/p&gt;</description></item><item><title>GitHub Claudomator: How We Let Claude Code Handle Our Entire Dev Backlog</title><link>https://sourcelabs.nl/blog/github-claudomator-automated-dev-backlog/</link><pubDate>Fri, 06 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/github-claudomator-automated-dev-backlog/</guid><description>&lt;p&gt;At Sourcelabs, we spend a lot of time turning well-defined GitHub issues into pull requests. It&amp;rsquo;s satisfying work — but it&amp;rsquo;s also repetitive. Write a ticket, plan the implementation, scaffold the code, run the tests, open the PR. Repeat. So we asked ourselves: what if Claude Code could do all of that for us?&lt;/p&gt;
&lt;p&gt;The result is &lt;strong&gt;github-claudomator&lt;/strong&gt;, an automated pipeline that picks up tickets from a GitHub Project board, plans and implements them using Claude Code, and delivers ready-to-review pull requests — all controlled through a simple web dashboard.&lt;/p&gt;</description></item><item><title>OpenAI this week: Pentagon, GPT-5.3 and Codex on Windows</title><link>https://sourcelabs.nl/blog/openai-this-week-pentagon-gpt53-and-codex-on-windows/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/openai-this-week-pentagon-gpt53-and-codex-on-windows/</guid><description>&lt;p&gt;It&amp;rsquo;s been a wild week over at OpenAI. Between a Pentagon deal that blew up in their face, a model update aimed at making ChatGPT less insufferable, and their coding app finally landing on Windows, there&amp;rsquo;s quite a bit to unpack. Here&amp;rsquo;s what happened and why it matters.&lt;/p&gt;
&lt;h3 id="the-pentagon-deal"&gt;The Pentagon deal&lt;/h3&gt;
&lt;p&gt;This is the big one. OpenAI announced a deal with the Department of Defense on Friday - hours after the Trump administration &lt;a href="https://fortune.com/2026/03/02/openai-ceo-sam-altman-defends-decision-to-strike-pentagon-deal-amid-backlash-against-the-chatgpt-maker-following-anthropic-blacklisting/" target="_blank" rel="noopener noreferrer"&gt;directed federal agencies to stop using Anthropic&amp;rsquo;s tools&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt; and hours before the U.S. carried out strikes on Iran. The timing alone raised eyebrows, but the actual content of the contract is where things got uncomfortable.&lt;/p&gt;</description></item><item><title>Planning your AI-assisted development with OpenSpec</title><link>https://sourcelabs.nl/blog/planning-your-ai-assisted-development-with-openspec/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/planning-your-ai-assisted-development-with-openspec/</guid><description>&lt;p&gt;Planning. Arguably one of the most undervalued aspects of AI-assisted development. We&amp;rsquo;ve all been there - you fire up your AI coding agent, describe what you want, and before you know it you&amp;rsquo;re staring at a pile of generated code that technically works but doesn&amp;rsquo;t quite fit the bigger picture. What if there was a way to think things through before the code starts flowing?&lt;/p&gt;
&lt;h3 id="what-we-will-be-covering"&gt;What we will be covering&lt;/h3&gt;
&lt;p&gt;I am going to take you along with my experience using &lt;a href="https://openspec.dev/" target="_blank" rel="noopener noreferrer"&gt;OpenSpec&lt;/a&gt; &lt;i class="fas fa-external-link-alt fa-xs"&gt;&lt;/i&gt;, a lightweight spec-driven framework that acts as a universal planning layer for AI coding agents. If you&amp;rsquo;re using tools like Claude Code, Cursor, GitHub Copilot, Gemini CLI or any of the other 30+ supported agents, OpenSpec slots right in. It&amp;rsquo;s open source, requires no API keys and does not depend on MCP, which means you can get started with minimal friction.&lt;/p&gt;</description></item><item><title>Spring AI: the rise of Java in the AI era</title><link>https://sourcelabs.nl/blog/spring-ai-the-rise-of-java-in-the-ai-era/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/spring-ai-the-rise-of-java-in-the-ai-era/</guid><description>&lt;p&gt;If you&amp;rsquo;re a Java developer who has been watching the AI space from the sidelines, waiting for the ecosystem to catch up, that wait is over. Spring AI has gone from an early experiment to a fully supported, production-grade framework in under two years. With version 1.1 GA shipped in November 2025 and 2.0 milestones already landing, this is the right time to take a serious look.&lt;/p&gt;
&lt;h3 id="why-spring-ai-matters"&gt;Why Spring AI matters&lt;/h3&gt;
&lt;p&gt;The AI application landscape has been dominated by Python. LangChain, LlamaIndex, the OpenAI SDK - everything assumes you&amp;rsquo;re writing Python. For teams running Java in production, this created an awkward choice: either maintain a separate Python service for AI features, or cobble together raw HTTP calls to model APIs and handle all the plumbing yourself.&lt;/p&gt;</description></item><item><title>Claude in 2026: the features that matter</title><link>https://sourcelabs.nl/blog/claude-in-2026-the-features-that-matter/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/claude-in-2026-the-features-that-matter/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been following the AI space at all, you&amp;rsquo;ve probably noticed that things are moving fast. Anthropic&amp;rsquo;s Claude has gone through several major iterations in a short time, and the features that shipped in the last few months are genuinely changing how we work with these models day-to-day. Rather than listing every announcement, I want to focus on the features that actually matter when you&amp;rsquo;re building software.&lt;/p&gt;
&lt;h3 id="what-we-will-be-covering"&gt;What we will be covering&lt;/h3&gt;
&lt;p&gt;I am going to walk you through the Claude features that I find most impactful for the kind of work we do at Sourcelabs. We will be looking at:&lt;/p&gt;</description></item><item><title>Sandboxing in Claude Code</title><link>https://sourcelabs.nl/blog/sandboxing-in-claude-code/</link><pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/sandboxing-in-claude-code/</guid><description>&lt;p&gt;If you&amp;rsquo;ve been using Claude Code for a while, you&amp;rsquo;ve probably developed a somewhat complicated relationship with its permission system. Every bash command requires approval, every file write needs a click. It&amp;rsquo;s the right default - you don&amp;rsquo;t want an AI agent running arbitrary commands on your machine unsupervised - but in practice it leads to approval fatigue. You end up clicking &amp;ldquo;approve&amp;rdquo; on autopilot, which kind of defeats the purpose.&lt;/p&gt;</description></item><item><title>Running Claude Code headless</title><link>https://sourcelabs.nl/blog/running-claude-code-headless/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><guid>https://sourcelabs.nl/blog/running-claude-code-headless/</guid><description>&lt;p&gt;Most people interact with Claude Code through its interactive terminal, typing prompts and approving actions one at a time. That&amp;rsquo;s great for exploration, but once you know what you want Claude to do, there&amp;rsquo;s a more powerful way to use it: headless. No interactive session, no permission prompts, just a command that runs and produces output. This is what makes Claude Code useful in scripts, CI pipelines and automation workflows.&lt;/p&gt;</description></item></channel></rss>