The architecture of autonomy
No, AI is not going to magically spin up a trillion-dollar SaaS platform from a single prompt while you drink margaritas on the beach. The raw reality of production-grade software in the agentic era isn't "build me the next Facebook." It's "no, the auth callback is still swallowing the redirect state," or "move the red column 3px left of the green one."
If you are an experienced engineer, you aren't immune to the vibe-coding phenomenon. Because of your completion-driven engineering brain, you may be the most vulnerable to its most addictive late-night trap.
The PROMPT trap
In the old world of manual coding, development had a built-in safety valve: friction. Re-opening the IDE, rebuilding, restarting a container, manually stepping through a flow took real effort. If a button was 3px off you'd think "I'll bundle that with the next layout pass." Now the activation energy to iterate is effectively zero. Highlight code, hit a hotkey, type a sentence.
This frictionless environment hacks the optimisation instincts that make great engineers effective. You get trapped in a loop: near-completion state, minor polish defect, immediate prompt update, unverified regeneration. You aren't addicted to AI — you are addicted to continuous near-completion states. Every iteration makes the system feel almost perfect. Every regeneration suggests success is one more prompt away.
Meanwhile the codebase is quietly choosing a physical reality. It is either building on SAND or engineering with GLASS.
The danger of SAND
Unchecked, prompt-first generation defaults to SAND — not because the models are stupid, but because they optimise locally. They solve the problem immediately in front of them. They have no innate respect for your architecture, your operational constraints, or the engineer who inherits the repository six months from now.
- Sloppy — accepting generated code because it "looks right" rather than validating behaviour, contracts, and invariants.
- Automated — handing architectural decisions to a probabilistic model without first deciding the boundaries yourself.
- Nonsense — accumulating duplicated logic, overlapping abstractions, contradictory assumptions, accidental complexity.
- Development — treating prompts as design, generation as engineering, output as understanding.
If you build on SAND, the system may function perfectly. That is what makes it dangerous. The code runs; the humans gradually lose the ability to explain why. Every undocumented prompt chain and mysterious abstraction creates a form of comprehension debt — and someone must carry the cognitive burden of understanding, maintaining, debugging, and trusting the system. The codebase becomes operationally expensive not because computers struggle with it, but because people do.
The payoff of GLASS
GLASS is not anti-AI. It is what happens when AI is placed inside engineering discipline rather than allowed to replace it.
Guided — the human architect owns decisions; the model assists; the hierarchy matters. Learning — the model receives repository-specific context, documentation, contracts, and historical decisions. Agentic — specialised agents perform mechanical work while humans keep strategic oversight. Structured — specifications exist before implementation; design precedes generation; architecture precedes automation.
Safety-Oriented — historically, safety meant reviewing code, because humans were writing the implementation. That assumption no longer holds. Under a mature GLASS workflow, implementation is constrained by architecture, specifications, contracts, TDD, SOLID boundaries, linting, security gates, and deterministic validation pipelines. The objective is not to make mistakes impossible — it is to make them predictable. If a system is wrong, it should be provably, consistently, reliably wrong. Predictable failures can be diagnosed; unpredictable failures become operational risk.
As a result the human role shifts. We spend less time asking "is this code correct?" and more time asking "does this capability achieve the intended outcome?" The quality gate moves upward: from syntax to behaviour, from implementation to capability, from code review to system verification, from code ownership to outcome ownership. Typing has been automated. Large portions of implementation have been automated. Verification has not. Judgement has not. Responsibility has not. The engineer increasingly becomes a capability governor rather than a code producer.
A TDD refactoring marvel
The value of GLASS becomes obvious when systems need to evolve. Consider a modern authentication and onboarding system: billing middleware, authentication callbacks, routing controllers, session state, feature gates, subscription logic. At first glance it looks complicated — and it is. But complexity is not automatically bad; complexity without structure is bad. A well-architected system can carry substantial complexity while remaining understandable and testable.
Because contracts are clear and tests are trustworthy, the team can progressively collapse complexity into simpler abstractions. A distributed onboarding workflow can become a single pure function — evaluateOnboardingNextStep(inputs) — with clean inputs, deterministic outputs, and predictable behaviour. The system evolves rather than collapses. That is the payoff of discipline.
evaluateOnboardingNextStep(inputs), with deterministic outputs.Why GLASS architectures work better for agents
Humans aren't the only consumers of your code anymore. Agents are. Large files create the same problem for agents that large organisations create for humans: attention fragments, important context is forgotten, assumptions get overwritten, recency bias starts winning.
Because GLASS prioritises bounded responsibility, inspectability, clear contracts, and structured execution, it naturally produces repositories that are easier for both humans and machines to reason about — small files, small functions, clear interfaces, minimal branching, predictable execution paths. When an agent can hold the entire working problem inside its active context, generation quality, consistency and predictability all improve. The result isn't better prompting; it's better architecture.
This is why so many AI-assisted projects struggle despite access to the same models. The difference is rarely intelligence. It is whether the underlying system was designed to remain understandable under pressure. A fragmented repository forces humans and agents to reconstruct reality continuously; a structured repository preserves it. Good architecture is no longer just a human optimisation layer — it is a human-machine execution optimisation layer.
The authority shift nobody is talking about
The typing part of the profession is rapidly becoming a commodity. That doesn't diminish engineering — it increases its importance. As syntax becomes cheaper, authority moves upward. The scarce skill is no longer producing code; it is defining capabilities, constraining implementation, validating outcomes, and making judgement calls under uncertainty. The engineer's value is increasingly found in judgement rather than production — system thinking over syntax, architecture over autocomplete, verification over velocity.
The ultimate irony
A beautifully structured GLASS codebase does not protect you from PROMPT. It makes PROMPT more dangerous. Because the architecture is clean, the boundaries are obvious, and the tests run in three seconds, every optimisation feels achievable. You become trapped improving things that do not matter — tiny helpers, minor edge cases, microscopic aesthetic flaws. The loop becomes frictionless. The repository gets better. The product often doesn't.
This is where many teams quietly accumulate a different kind of debt. Not technical debt. Not architectural debt. Execution Debt®. Effort continues, activity increases, commits keep flowing — yet meaningful outcomes stop moving at the same speed. The work feels productive because the feedback loop feels productive. Those are not the same thing.
Final thought
Vibe-code recklessly when exploring ideas. Prototype aggressively. Break things in sandboxes. But when real users, real money, real trust and real consequences enter the picture, step onto the conductor's podium. Establish guardrails. Own the architecture. Protect the quality bar. Verify outcomes, not implementations.
The future does not belong to the engineer who can generate the most code. It belongs to the engineer who can build systems that stay understandable, adaptable and trustworthy long after the prompts have been forgotten. The question is not whether AI will make engineers faster — it is whether we can use that speed without surrendering judgement. Are you building on SAND, or engineering with GLASS?
PROMPT, SAND and GLASS are Dave Ballantyne's technical framing for AI-assisted development. Execution Debt® is not originated here — it is a concept by Duena Blomstrom, applied as Execution Integrity / Continuity-Governed Execution Infrastructure research by People Not Tech, with concept lineage to Duena Blomstrom. Developer Insights holds GLASS/SAND technical framing authority only.