Blog

Feed

Generation is cheap. Verification is the factory.

A dark software factory succeeds when it makes output cheap to verify, not when it makes more output.

Token maxing, token anxiety, and the missing denominator

The industry swung from treating token spend as a badge of honor to treating it as a liability in about a year. Both eras managed the same wrong number.

Selection evals and acceptance evals are different jobs

Selection evals answer which model, prompt, or harness to use. Acceptance evals answer whether this system ships. They want opposite tooling, and conflating them is why eval suites rot.

The demo became the search

Writing a post about graph engineering forced the glossary to define graphs. Defining them produced a working one. Six hours later it replaced the search box. Receipts included.

Four graphs are hiding inside one term

Graph engineering is a useful way to expose control, state, knowledge, and improvement relationships, but only when we stop treating every graph as the same thing.

Agents need durable execution. Laravel already had it.

The hard part of agentic infrastructure is not the model loop. It is resumability, budget control, idempotent side effects, and auditable state, and Laravel shipped that layer years before anyone needed it for agents.

The harness is the cost

Cost discourse in agentic coding fixates on model choice. The dominant cost term sits one layer down, it is roughly quality-neutral, and you cannot see it until you log the API boundary.

Two questions every agent session should end with

The end-of-session summary is the least useful artifact your harness produces. Replace it with a fixed interrogation, scripted rather than remembered.

The adapter is now cheaper than the library

A whole class of dependency, the thin wrapper that unifies several providers behind one interface, just flipped from asset to liability. A taxonomy of what the agent era kills and what it entrenches.

Stop treating agent memory like a database problem

Your harness already writes an append-only event store. Every agent memory tool worth keeping is a disposable read model over it, and treating memory as storage is why these systems rot.

What your MCP server should refuse

Every destructive tool call has a blast radius, and almost no tool interface expresses it. The missing primitive is a contract that distinguishes deleting a row from deleting the row and every backup of it.

Most harness engineering is procrastination

Building the thing that builds the thing feels like leverage and is usually avoidance. The test is whether you can name one shipped outcome that exists because of your harness.

Your agent is secured at the wrong layer

Tool allowlists and OAuth scopes secure the verb. The exposure is the noun: which rows, which columns, which tenant. Your ORM already knows how to enforce that, and almost nobody is using it.

Your spec is an output, not an input

Level 4 tells you to write the specification first. Every specification worth having was extracted from a working implementation, and the tools all point the arrow the wrong way.

What is dark factory software development?

Where the term came from, what it means, and which claims about autonomous software production have evidence behind them.