Engineering notes on AI governance
Research, analysis, and implementation notes on architectural drift prevention and governance for AI-assisted software development.
Start with the latest analysis, jump to a topic, or browse the full archive. New essays land most weeks; the seven topic hubs collect the cornerstone and supporting pieces for each area. Architectural drift prevention for the AI SDLC is the lead topic.
Featured
The Emerging AI Agent Infrastructure Stack
Agent systems are separating into layers: models, tools, orchestration, memory, observability, governance, provenance, verification. Each answers a different reliability question — and the defining question is no longer model capability.
The Software Factory Is Finally Here. Its Decision Layer Is Missing.
Bob Bemer proposed the software factory in 1968. Coding agents finally supply the production capacity. Architectural control is the part still missing.
AI Engineering ROI: How to Measure the Real Return From AI Coding
AI spend is up 28x. Feature delivery is flat. Where the value leaks between generation and delivered software, and how to measure it in three layers instead of one.
Latest analysis
Behavioral Equivalence Is Not Architectural Compliance: Verifying an AI-Assisted Migration
GitHub's 800,000-line Copilot Rust port compiled and passed its tests, yet shipped regressions. Acceptance needs behavioral evidence and decision compliance.
Migrating from Node.js to Go: The Architectural Decisions That Must Survive the Rewrite
Uber's Go gateway migration took two years; Grab cut over one endpoint at a time. The decisions a Node.js to Go rewrite must keep: scope, authority, evidence.
AI Legacy Modernization: What Must Survive the Rewrite?
AI tools now extract business rules from legacy code. Before a rewrite, decide which recovered behavior is observed, inferred or approved, and who approves it.
Advancing Coding in Low-Resource Programming Languages: What OpenAI's COBOL Benchmark Does Not Measure
OpenAI reports 97.9% on a COBOL migration evaluation requiring byte-for-byte output parity. Passing it does not settle which decisions must survive the rewrite.
How the Claude Code Team Does Code Review: The Rule a Pull Request Must Not Rewrite
Claude Code Review reads REVIEW.md from the base branch, never from the PR. Five GitHub checks that keep a PR from rewriting the rules that judge it.
When Kubernetes Works but the Application Still Fails
Kubernetes autoscaling can add pods past what PostgreSQL accepts. Treat a connection budget as an architecture decision, and see which tool enforces each part.
Browse by topic
Architectural drift prevention
The lead topic: what architectural drift prevention is, where drift comes from across the AI SDLC, and which deterministic enforcement mechanisms hold.
Architectural governance
What architectural governance is, why intent decays as agents generate, and what deterministic enforcement looks like before a change lands.
Maintaining architectural intent
How to keep system-level decisions, constraints, and engineering standards intact as AI coding agents plan and generate code in agent-first workflows.
AI coding agents
How governance applies across Claude Code, Cursor, Copilot, Devin, code review, and the agentic SDLC.
Agent infrastructure
Memory, orchestration, harnesses, registries, runtimes, and protocols — and why each layer still needs governance.
Engineering performance
DORA, SPACE, METR, rework, and verification cost: how AI-assisted engineering is measured and what to track once agents do the work.
Software migrations & modernization
Keeping AI coding agents on the target architecture while legacy and migrated code share one repository.
Start here
Architectural Drift Prevention
The discipline, defined: keeping AI-generated changes aligned with existing architectural decisions across the AI SDLC. Start here before the essays.
Review Is Not Governance
CodeRabbit helps review AI-generated code. Mneme helps govern what the AI generates in the first place. Two different layers of the same problem.
Prompt Engineering Is Not Governance
Prompt templates can nudge an LLM toward better output. They cannot enforce architectural invariants, resolve decision conflicts, or prevent drift across a multi-engineer codebase.
Models Are Temporary. Architectural Intent Is Not.
Models change. Agents change. IDEs change. Architectural intent should not. The case for keeping AI governance outside the model — and the second kind of lock-in (governance lock-in) that most teams discover too late.