<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Johannes Wachter · Shorts</title><description>Short notes on Symfony, open source and agentic development. One observation at a time.</description><link>https://johanneswachter.dev/</link><language>en</language><item><title>A test that saves object numbers tests PHP, not your code</title><link>https://johanneswachter.dev/shorts/a-test-that-saves-object-numbers-tests-php/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/a-test-that-saves-object-numbers-tests-php/</guid><description>One added line in a Symfony AI pull request broke 25 tests without any assertion changing. The tests were checking something nobody meant to check.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><category>php</category><category>testing</category><category>symfony</category></item><item><title>Adding AI to a project is mostly dependency work</title><link>https://johanneswachter.dev/shorts/the-ai-feature-was-the-short-part/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/the-ai-feature-was-the-short-part/</guid><description>Live on Never Code Alone we set up Sulu AI Intelligent Search. The feature itself took a few commands. The rest was the project around it.</description><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate><category>sulu</category><category>developer-practice</category></item><item><title>Who Symfony&apos;s new bundles are actually for</title><link>https://johanneswachter.dev/shorts/who-symfonys-new-bundles-are-actually-for/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/who-symfonys-new-bundles-are-actually-for/</guid><description>Symfony 8.2 is moving configuration out of FrameworkBundle and into 29 bundles shipped by the components that actually own it: Messenger, HttpClient, Cache, Scheduler, PropertyInfo and many others.</description><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><category>symfony</category><category>php</category><category>agentic-ai</category></item><item><title>Claude Code now falls back to AGENTS.md</title><link>https://johanneswachter.dev/shorts/claude-code-now-falls-back-to-agents-md/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/claude-code-now-falls-back-to-agents-md/</guid><description>Claude Code 2.1.277 now checks for an AGENTS.md file whenever a folder has no CLAUDE.md (there&apos;s a toggle for it in /config).</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><category>ai</category><category>agentic-ai</category><category>symfony</category></item><item><title>Somebody still has to read it</title><link>https://johanneswachter.dev/shorts/somebody-still-has-to-read-it/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/somebody-still-has-to-read-it/</guid><description>A post proposing AI;DR hit #1 on Hacker News: if you didn&apos;t read and edit what the model produced, don&apos;t expect the author to read it either. Producing a wall of text became free.</description><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate><category>ai</category><category>writing</category><category>code-review</category></item><item><title>How I Made Symfony&apos;s Maker Agentic</title><link>https://johanneswachter.dev/shorts/the-bug-agents-kept-finding-in-symfonys-makers/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/the-bug-agents-kept-finding-in-symfonys-makers/</guid><description>Twelve merged pull requests in one release, my first-ever contribution to Symfony&apos;s maker-bundle. All of them were about the same thing: agents kept running into make:* commands that only worked with a human answering prompts, and simply crashed otherwise.</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><category>symfony</category><category>php</category><category>ai-agents</category></item><item><title>The idea nobody could place</title><link>https://johanneswachter.dev/shorts/model-collapse-in-my-gradebook/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/model-collapse-in-my-gradebook/</guid><description>Coaching an innovation project this summer semester, one question had been sitting with me the whole time: whose idea was this, actually, and how much of it came from the model?</description><pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate><category>ai</category><category>teaching</category></item><item><title>Symfony Language Tools stopped taking patches</title><link>https://johanneswachter.dev/shorts/symfony-language-tools-stopped-taking-patches/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/symfony-language-tools-stopped-taking-patches/</guid><description>Symfony&apos;s new Language Tools repository closed its pull request tab. Contributors now start with an issue instead. Maintainers turn selected issues into code, usually with a coding agent doing much of the implementation work. Fabien&apos;s reasoning is what stuck with me.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><category>symfony</category><category>open-source</category><category>ai</category></item><item><title>Roots shipped inside its own deprecation window</title><link>https://johanneswachter.dev/shorts/roots-shipped-inside-its-own-deprecation-window/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/roots-shipped-inside-its-own-deprecation-window/</guid><description>MCP&apos;s 2026-07-28 specification deprecated Roots, Sampling and Logging, with at least twelve months before they become eligible for removal. On August 14th, my Roots support PR merged into the official PHP SDK. None of this was hidden.</description><pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate><category>mcp</category><category>php</category><category>open-source</category></item><item><title>Mate&apos;s MCP server is gone, and the numbers say that&apos;s fine</title><link>https://johanneswachter.dev/shorts/mates-mcp-server-is-gone/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/mates-mcp-server-is-gone/</guid><description>symfony/ai 0.13 shipped today, my first release as a core team member. The headline change for Mate is PR #2380: Mate drops its MCP server entirely and becomes a plain CLI with a discovery layer on top.</description><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate><category>symfony</category><category>ai</category><category>mate</category></item><item><title>Being neutral is easier without a price tag</title><link>https://johanneswachter.dev/shorts/being-neutral-is-easier-without-a-price-tag/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/being-neutral-is-easier-without-a-price-tag/</guid><description>Nvidia has reportedly agreed to buy Hugging Face for 12.9 billion dollars, according to The Information. Other reports put the talks above 13 billion, with no deal signed yet. Neither company has confirmed it. What catches me isn&apos;t the price, it&apos;s the buyer.</description><pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate><category>ai</category><category>open-source</category></item><item><title>Open weights don&apos;t tell you what&apos;s inside</title><link>https://johanneswachter.dev/shorts/the-passport-isnt-the-point/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/the-passport-isnt-the-point/</guid><description>A growing argument on my feed: switch to Chinese AI models, because they ship open weights and open beats closed. Open weights are a real property. You can download the file, inspect it, run it yourself. What they don&apos;t guarantee is what&apos;s actually baked into the answers.</description><pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate><category>ai</category><category>open-source</category></item><item><title>More instructions were not making Claude better</title><link>https://johanneswachter.dev/shorts/context-engineering-for-claude-5/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/context-engineering-for-claude-5/</guid><description>Anthropic cut more than 80% of Claude Code&apos;s system prompt for the Claude 5 generation models, with no drop in coding evals. What interests me isn&apos;t the number.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><category>ai</category><category>agentic-ai</category><category>context-engineering</category></item><item><title>Nobody has the answers yet, and that&apos;s the opening</title><link>https://johanneswachter.dev/shorts/nobody-has-the-answers-yet/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/nobody-has-the-answers-yet/</guid><description>A post going around traces this back to something Kent Beck keeps repeating on his podcast &quot;Still Burning&quot;: nobody has the answers.</description><pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate><category>ai</category><category>agentic-ai</category></item><item><title>The dangerous instruction was never in one tool call</title><link>https://johanneswachter.dev/shorts/no-single-message-says-the-dangerous-part/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/no-single-message-says-the-dangerous-part/</guid><description>A disclosed technique called GhostSplice shows that an MCP server does not need to put anything obviously dangerous in a single message.</description><pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate><category>ai</category><category>mcp</category><category>security</category></item><item><title>The repository was the easy part</title><link>https://johanneswachter.dev/shorts/the-repository-was-the-easy-part/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/the-repository-was-the-easy-part/</guid><description>GitHub spent almost eight hours on Monday returning errors across git operations, pull requests, Actions, Pages and Copilot. By the afternoon an Ask HN thread about alternatives to GitHub was on the front page with a few hundred comments.</description><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><category>open-source</category><category>developer-tooling</category><category>ai</category></item><item><title>I can manufacture anything except a sense of ownership</title><link>https://johanneswachter.dev/shorts/manufacture-everything-except-ownership/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/manufacture-everything-except-ownership/</guid><description>Helge Sverre had Claude and Suno write a song about a coding agent slowly taking over a team&apos;s daily standup. One line in the second verse says more than most articles on the subject.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate><category>ai</category><category>agentic-ai</category><category>culture</category></item><item><title>A Rector extension for Symfony Mate</title><link>https://johanneswachter.dev/shorts/rector-extension-for-symfony-mate/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/rector-extension-for-symfony-mate/</guid><description>The new Rector extension for Symfony Mate splits one tool into two: rector-preview runs dry-run enforced and cannot write, rector-apply is a separate tool that announces itself as a write operation. Inspecting code is never the thing that changes it. Contributed by mdjdev, not by me.</description><pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate><category>mate</category><category>php</category><category>ai</category></item><item><title>My first merge in symfony/ai</title><link>https://johanneswachter.dev/shorts/first-merge-in-symfony-ai/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/first-merge-in-symfony-ai/</guid><description>For the first time, I merged a pull request in symfony/ai myself. It was a small fix and not mine, PR #2404, the kind of change that takes a minute to read and no time at all to agree with.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate><category>symfony</category><category>ai</category><category>career</category></item><item><title>The Symfony language server, and who wrote it</title><link>https://johanneswachter.dev/shorts/the-symfony-lsp-and-who-wrote-it/</link><guid isPermaLink="true">https://johanneswachter.dev/shorts/the-symfony-lsp-and-who-wrote-it/</guid><description>Symfony&apos;s new official LSP server ships with a disclosure most projects still keep private: most of the code was written and reviewed by AI models.</description><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate><category>symfony</category><category>ai</category><category>open-source</category></item></channel></rss>