Abundant constraints > abundant implementation.

Lately, as I’ve been building more workflows, agents, and configurations around models, I’ve been wondering about the difference between ‘abundant implementation’ and ‘abundant constraints.’

Because we can now turn an idea into a prototype or a functional app so quickly, the natural instinct is to keep building. Ship more ideas, automate more work, and give the model more things to do. There is nothing wrong with that. The more important trait is not simply being able to implement abundantly. It is being able to create abundant constraints around that implementation.

When we ask a model to build something and leave the rest open, we give it far more control over the work than we realise. It decides how to interpret the problem, what choices to make, what quality looks like, and when the work is complete. Constraints are how we bring our own judgment back into that process. They can be examples, rules, evaluations, failure conditions, preferences, or simply a clearer definition of what “good” means. The point is not to make the model less capable. It is to guide that capability in the direction we actually want.

This has also changed how I think about the artifacts we create with AI. An artifact should not be something the agent produces once and the human immediately puts out into the world. One-time production mindset is partly why we have so many AI-generated documents and apps floating around that technically work, but do not feel considered. Artifacts are the most useful when they are continuously evolving. The agent produces something, the human reacts to it, a new preference or failure mode becomes visible, another constraint is added, and the artifact gets better.

Over time, the artifact starts capturing more than the original prompt. It begins to hold the decisions, edge cases, taste, and clarity that came out of the collaboration. The human is not simply reviewing the agent’s output at the end. Both the human and the agent are shaping the artifact throughout the process.

This is also why I’ve started to think that ‘coherence’ matters more than context. We talk a lot about giving models more context, building loops, and designing workflows. But more context does not automatically create better work. A model can know a great deal and still produce something fragmented. Coherence comes from making sure that every new piece connects to what has already been decided: the goal, the constraints, the earlier feedback, and the direction in which the artifact is evolving.

Perhaps that is the real work of building with AI. Not just giving the model enough information or using it to implement more quickly, but developing enough clarity to continuously constrain, react, and refine. Implementation gives us speed, but constraints give that speed the right direction. Coherence is what emerges when we keep doing both together.