- Published on
AI Can Write More of the Code. We Still Have to Engineer the System
- Authors

- Name
- DeepHorus
AI-assisted software development is shifting implementation work toward agents while leaving system-level judgment with engineers, a pragmatic perspective argues. The argument distinguishes producing an implementation from exploring a design or deciding whether a system solves the right problem. Automating one activity does not settle the others.
Agents can take on more coding and assist with analysis, design and testing, the perspective says. Engineers remain responsible for deciding what to build and what evidence suffices to accept it. That changes work, not responsibilities.
Conversations are convenient for exploring options but fragile as the only record of architectural decisions. Model context is bounded; long sessions may be summarized, compacted or resumed with selected information. A summary can preserve a conclusion while losing the condition that made it reasonable, such as why a local cache is needed for offline usability.
Anthropic’s account of long-running agents describes continuity problems across context windows and an approach using incremental work and persistent progress artifacts. It also reports that compaction can leave unclear instructions. The account is a vendor engineering report about a particular setup, not a universal comparison.
The recommended home for durable decisions is a small, reviewable file such as PROJECT_GUIDE.md. It might record product purpose and scope, explicit exclusions, system boundaries, reasons for architectural choices, quality expectations and checking commands. The filename has no special power, so teams should connect it through supported project instructions and verify the agent’s interpretation.
Simon Willison’s June 2025 discussion of context engineering frames choosing information for the next model step. The recommendation is to make that selection deliberate and inspect its consequences. A hypothetical mobile search screen illustrates the approach: define local search over existing items, exclude remote search and persistence changes, and set acceptance cases before implementation.