Ken Muse
Let Copilot Explain Itself With Chronicle and Troubleshoot
Reading agent logs by hand is slow, and the raw event files are far too big to paste into a chat. VS Code and GitHub Copilot CLI ship built-in skills that do the reading for you. In this post, you’ll learn how both work, why the log folder is deliberately hard for the agent to reach, and what makes selective access such a clever design choice.

Read this article

Sharing with Copilot using Agent Plugins
If you’ve built custom Copilot agents, skills, and MCP servers, you may know some of the benefits of using plugins to distribute this content. You may also know how quickly the setup starts to become complicated across AI harnesses. The new Agent Plugins specification gives you a portable core for shared skills and servers while keeping client-specific features in a cleaner, separate namespace. In this post, I walk through the new layout and show how to keep your reusable AI tooling portable without giving up the features that make each client worth using.

Read this article

Meet the Built-In Agents in GitHub Copilot CLI
Copilot CLI may feel like a personal assistant, but it is actually more like a team of specialists. If you provide the right prompt, you can have those specialists introduce themselves and describe how they can each help you to get more done.

Read this article

Make Agent Skill Scripts Load Efficiently in GitHub Copilot
Relative script paths look like the portable choice for an Agent Skill – right up until Copilot runs one from the workspace root and spends another turn recovering. A small SKILL.md convention can help the model resolve the real script path before execution, avoiding the failed call and making your skill load more efficiently.

Read this article

Why Reusing AI Instructions Costs You More Tokens
That line in your agent file that says “see shared-setup.md for details” looks harmless. In code, it’s a free pointer – the compiler resolves it at build time and you never think about it again. In AI instructions, it’s a request for the model to make a choice that may have unexpected performance (and pricing) considerations. Whether that cost is worth paying depends on what you’re referencing – and the answer isn’t always what you’d expect.

Read this article

Why AI Agents Are Bad at Scoring and How to Fix It
You gave the AI a rubric: score this issue from 1 to 10 based on impact, urgency, and risk. It gave you a 7. You ran it again on the exact same issue. This time it said 4. You tried a third time: 9. The criteria didn’t change. The input didn’t change. But your scores are all over the map. What just happened? And more importantly, what do you actually build when you need scores you can rely on?

Read this article

What Your AI Agent Really Did Behind the Scenes
You prompted your AI to do something. It came back and said “Done.” Tests pass, the files look right. But did it actually follow your instructions, or did it take shortcuts, ignore skills, and waste tokens reading scripts instead of executing them? Today we look at how logs enable you to make your agentic setup more reliable and avoid those kinds of surprises.

Read this article

Isolating GitHub Copilot With Docker Sandboxes
Letting AI coding agent run autonomously with access to your network, your secrets, and your entire machine is risky. One rogue call is all it takes. One way to help protect yourself is to use microVM isolation to control the environment and what the agent can access. Docker Sandboxes is one such solution. I’ll walk you through setting it up and exploring some of its file system, network management, and monitoring capabilities.

Read this article

Guaranteed Copilot Context with Hooks
Ever set up a Copilot skill that worked perfectly – except when the model decided not to load it? Skills are optional by design; the model picks them up or it doesn’t. When you need context present every single time without exception, that’s a gap skills simply can’t fill. And that’s what hooks are for. I’ll walk through how to wire up a hook that fires automatically on every single prompt, injecting exactly the right context before the model sees your request – and when a session-level hook makes more sense instead.

Read this article

Dynamic Instructions for Copilot
Ever written a Copilot skill that started clean – then became a sprawling mess of conditionals as you define how to work with different versions of some product? You’re not alone. I’ll show you how a tiny wrapper script can detect your environment and hand Copilot only the instructions that actually apply, keeping your skills small and your model focused. I’ll also unpack the supply-chain security question this technique forces you to take seriously.

Read this article