Process Over Agent: How I Put an ECC Harness Through a Real Refactor

A coding agent without a harness is a fast, forgetful junior. The problem isn’t generation speed — it’s the absence of process around it.

Eighteen months ago I would have written this post about speed. About how an agent drafts in a minute what used to take me an hour. Today I'm writing it about discipline — and that shift is the whole story of the past year and a half.

I've been living in a mode where a coding agent writes a significant portion of my code for about eighteen months now. First came exhilaration, then fatigue, then a sober realization: an agent without a harness is not an engineer. It is a very fast, very forgetful junior. It can draft in a minute what would take me an hour, but in that same minute it will cheerfully take out a neighboring module, skip the tests, invent a library method that doesn't exist, and forget what we agreed on five messages ago. As a technical manager, I look at this plainly: the problem is not code generation speed. The problem is the absence of process around that generation.

Continue reading “Process Over Agent: How I Put an ECC Harness Through a Real Refactor”

Why AI skills need onboarding if you can just copy them into the folder

Three skills are fine. Thirty — style drifts, shared state gets overwritten, behavior changes with no stack and no log line. Dropping markdown into `.claude/skills/` is a hire with no interview. Onboarding exists so you catch the conflict before it hits daily flow — not because process looks nice.

Because copying markdown into a folder is not installing a package. It is a hire: a new slice of behavior enters the assistant and will collide with its neighbors tomorrow. A skill here is an instruction pack for an AI assistant (Claude Code / Cursor): frontmatter, rules, declared reads/writes/calls. While the intake path is empty, every new file under .claude/skills/ is a silent hire with no interview and no record in the file.

Continue reading “Why AI skills need onboarding if you can just copy them into the folder”

How to secure an AI coding agent without relying on the system prompt

“Don’t delete prod” in a system prompt is not a security control. The real boundary is where the model physically cannot act: API surface, isolation, operation filter, audit. Working reference: enterprise-code-bastion.

A prompt is a wish. A perimeter is when the model physically cannot reach files or a shell: native tools off, an MCP intermediary, Docker per project+task, a filter before execution, an audit trail. Below is a working reference — and where the design gives way.

Continue reading “How to secure an AI coding agent without relying on the system prompt”