Articles
Original writing on getting more out of AI tools.
Knowing when to stop
Six hours in, one step left, everything green, and the incident that didn't happen
CLAUDE.md vs. skills: where should Claude Code instructions live?
CLAUDE.md carries persistent project context. Skills load reusable procedures when relevant. Separating stable facts from task-specific workflows keeps both easier to maintain.
Those are the other app's keys
Twenty minutes recovering secrets that never existed, and the one sentence from a human that ended it
How to use remote MCP servers with the OpenAI Responses API
An API request routing a model's tool call through an approval gate to a remote MCP server
The coverage audit before you delete the safety net
31 config keys, two audits, and why the first one was wrong in both directions
How to publish an MCP server to the official MCP Registry
The official MCP Registry stores standardized server metadata rather than package code. Publishers verify a namespace, describe installation or remote access, and submit immutable versions.
Rotating a leaked credential, in the right order
Everyone looks at the Dockerfile. The file that actually leaked the key was the project file.
MCP authentication explained: OAuth, scopes, and safe token handling
Remote MCP authorization uses established OAuth standards, but secure integration still requires issuer validation, least-privilege scopes, protected token handling, and server-side enforcement.
Byte-identical or bust
"Copy it over and switch the reference" is two steps, and the outage lives in the one nobody checks
MCP stdio vs. Streamable HTTP: which transport should you use?
stdio fits local processes and prototypes. Streamable HTTP fits hosted services and shared integrations. The right choice follows where the capability runs and who must reach it.
Never let the AI print a secret
The most important rule wasn't about what I could change. It was about what I was allowed to display.
MCP tools vs. resources vs. prompts: when to use each
Tools perform operations, resources expose readable context, and prompts provide reusable templates. Choosing the correct primitive makes an MCP server easier to understand and govern.
How to test an MCP server with MCP Inspector
Use MCP Inspector to connect to local or remote servers, inspect capabilities, call tools, read resources, test prompts, and diagnose failures before release.
How to build an MCP server in TypeScript: step-by-step
Build an MCP server in TypeScript with focused tools, validated schemas, local and remote transports, Inspector tests, and production security controls.
What is an MCP server? A practical guide
An MCP server exposes tools, resources, or prompts through a standard protocol so an AI application can discover and use external capabilities.
How to vet AI agent skills before installing them
Treat an AI agent skill as both an instruction package and a software dependency: inspect what it says, what it runs, what it can access, and how it updates.
How to add an MCP server to Claude Code safely
Add remote HTTP or local stdio MCP servers to Claude Code, choose the right scope, protect credentials, verify the connection, and test with least privilege.
Claude skills vs. connectors vs. plugins: what is the difference?
Skills teach Claude a repeatable method, connectors provide governed access to apps and live data, and plugins package related capabilities for installation and sharing.
AI agent skills vs. MCP servers: which should you build?
Use an agent skill to package reusable know-how and workflow instructions. Use an MCP server when an agent needs live, governed access to external data or actions.
Claude Code skills vs. slash commands: what changed
Custom commands and skills can both create a slash-invoked workflow in Claude Code. The important choice is how the workflow is discovered, shared, and permissioned.
10 best Claude skills for developers in 2026
A useful Claude skill solves one recurring engineering job, is easy to inspect, and saves more time than it creates in setup and review.
How to install Claude skills in Claude and Claude Code
Claude skills can live in your Claude account, your local Claude Code setup, or a repository. Install them where the sessions that need them can load them.
How to create an AI agent skill: a practical SKILL.md guide
Build a portable AI agent skill from one repeatable job: a precise description, concise instructions, focused resources, and tests that prove it works.
What are AI agent skills? How SKILL.md works
AI agent skills package instructions, scripts, references, and templates into portable folders an agent loads only when the task calls for them.