<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Johannes Wachter</title><description>Writing about what building open source actually teaches me, and what we can all learn from it.</description><link>https://johanneswachter.dev/</link><language>en</language><item><title>The wrong debate: what PHP taught me about agentic software</title><link>https://johanneswachter.dev/blog/the-wrong-debate/</link><guid isPermaLink="true">https://johanneswachter.dev/blog/the-wrong-debate/</guid><description>MCP or CLI is the wrong fight. What PHP with Composer, PSR and Symfony already learned about building things together, one layer down.</description><pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate><category>ai</category><category>mcp</category><category>php</category><category>symfony</category><category>opinion</category></item><item><title>The last mile: distributing Agent Skills to real agents</title><link>https://johanneswachter.dev/blog/the-last-mile/</link><guid isPermaLink="true">https://johanneswachter.dev/blog/the-last-mile/</guid><description>The polyfill that bridges where the Agent Skills standard is heading and what agents can read today, and why distribution, not the protocol, was the real problem.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><category>ai</category><category>skills</category><category>symfony</category><category>mate</category><category>mcp</category></item><item><title>Skills over MCP: shipping Symfony know-how with Mate</title><link>https://johanneswachter.dev/blog/skills-over-mcp/</link><guid isPermaLink="true">https://johanneswachter.dev/blog/skills-over-mcp/</guid><description>What an Agent Skill actually is, how you serve one over MCP, and lessons from building a reference implementation against a spec that kept moving.</description><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><category>ai</category><category>mcp</category><category>skills</category><category>symfony</category><category>mate</category></item><item><title>What happens to innovation when implementation becomes almost free?</title><link>https://johanneswachter.dev/blog/when-implementation-becomes-free/</link><guid isPermaLink="true">https://johanneswachter.dev/blog/when-implementation-becomes-free/</guid><description>When code, design and content all get cheaper, maybe implementation was never the bottleneck. A note from the classroom on friction, the statistical mean, and where excellence shows up.</description><pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate><category>ai</category><category>innovation</category><category>teaching</category><category>opinion</category></item><item><title>Giving AI assistants eyes</title><link>https://johanneswachter.dev/blog/giving-ai-assistants-eyes/</link><guid isPermaLink="true">https://johanneswachter.dev/blog/giving-ai-assistants-eyes/</guid><description>Highlights from the Symfony Mate Q&amp;A: the dev-only MCP server that lets AI assistants look inside your running app, and why better context beats more context.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>ai</category><category>symfony</category><category>mcp</category><category>mate</category></item></channel></rss>