AI
Models don’t have preferences, they have context
You open a fresh chat, type "What framework should I use for a web app?", and the model says "React." You screenshot it, share it, and write "Claude prefers React." It gets engagement. People nod along. A few reply with their own results. And now we have a consensus: Claude prefers React. Except it doesn't. The model doesn't prefer anything. You're reading the room, not the mind. The genre There's a whole genre of this. Run N prompts in a bare chat window, tabulate the answers, maybe build a heatmap, publish it as a blog post or a thread. "Which frameworks do LLMs prefer?" "What languages do models recommend mo...
Stop overloading your skills
You built a skill for your technology. API references, authentication flows, SDK patterns, error handling, version info, all packed into one skill. The agent calls it, gets all that context, and generates code. The kicker? You've just wasted a lot of tokens. It already knows Models have ingested your documentation, your Stack Overflow answers, your GitHub repos, your blog posts. The default imports, the standard auth flow, the common CRUD operations: the model already has all of that baked in. When your skill repeats what the model already knows, you're not helping, you're adding weight. Every token your skill...
AI-Powered MSBuild Investigation with the Microsoft Binlog MCP Server
Diagnose MSBuild build failures and performance issues with AI using the new Microsoft Binlog MCP Server - 15 specialized tools that let your AI assistant investigate binary logs.
When your agent extensions fight each other
This is the fourth article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. You shipped your extension, measured it, confirmed it creates lift. Then a developer installs it alongside 14 other extensions, and outcomes get worse. Not because your extension is broken, but because extensions don't exist in isolation: they compete. In the previous article, we covered how to me...
Competing against yourself
You shipped a new CLI: better developer experience, modern architecture, and optimized for agents. You deprecated the old one, updated the docs, and blogged about it. Developers are migrating. Then someone asks an AI coding agent to scaffold a project, and the agent... uses the old tool. Training data gravity Models learn from the internet. If your technology has been around for a decade, there are thousands of blog posts, Stack Overflow answers, tutorials, and GitHub repos that document the old way of doing things. Your new CLI? A handful of announcement posts and maybe some updated docs. So what happens wh...
GitHub Copilot for JetBrains is moving to Copilot CLI as the default agent harness
Copilot CLI is becoming the default agent harness in GitHub Copilot for JetBrains, and our local harness will be deprecated. This change provides greater consistency across all GitHub Copilot surfaces and is an important step toward faster feature parity and higher-quality results in GitHub Copilot for JetBrains. Copilot CLI sessions run independently in the background on your machine and use the Copilot CLI agent harness, while the IDE starts, monitors, and steers them. This is the same architecture used across GitHub Copilot today and adopting it in JetBrains lets us ship the same capabilities to JetBrain...
Your agent just scaffolded a project from 2020
Your agent ran a scaffold command. Project generated, dependencies resolved, no errors. Everything looks fine. Except it's based on the project structure from 2020, and neither you nor the agent noticed. How npx picks the right-but-wrong version When an agent scaffolds a project or runs a CLI tool, it often reaches for without specifying a version. Something like: Notice, that there's no version pinned anywhere. The agent typed the package name and assumed it'd get the latest. That's where things break. When you run without a version, npm resolves the latest version that's compatible with your current Nod...
Is your agent extension actually working?
This is the third article in a series about Agent Experience (AX): the practice of making AI coding agents work correctly with your technology. The series covers what you can and can't control in the agent stack, how to measure whether your extensions are helping or hurting, and how to iterate toward better outcomes. You shipped your skill, wrote clear instructions, developers install it, and agents discover it. Everything looks like it's working. But is the generated code actually better because of your extension? Or would the agent have produced the same result without it? In the first article, we introdu...
Stop skillmaxxing, save your tokens
You built a dozen skills for your technology: authentication, CRUD, error handling, deployment, testing, monitoring. Then you installed a cloud platform bundle with 15 more covering diagnostics, storage, compliance, and cost optimization. A design suite. A marketing pack. Document converters for Word, Excel, PowerPoint, PDF. Fifty skills, all sitting in your workspace. Here is why that's a problem. The tax you pay before typing a single prompt Every skill has metadata: a name, a description, trigger phrases, sometimes parameter schemas. When you start a session, the agent discovers all of them and injects their ...
Join us for .NET Day on Agentic Modernization Livestream
Announcing the .NET Day of Agentic Modernization Livestream