Ten years ago, a pull request was a statement of logic. You’d open the diff on one screen, the issue tracker on another. The changes were legible, discrete. A bug fix in a sorting algorithm. A new database index to crush a slow query. Your colleague’s review was a technical conversation, grounded in shared principles of performance, clarity, and correctness. A battery of automated tests ran in the background, a safety net of cold, hard assertions. You were building on a foundation of reason.
Last Tuesday, a junior engineer on my team opened a pull request. The change was to a single file: agent_prompt.md. The diff showed three words removed and five added. The phrase “You must strive to provide accurate information” was replaced with “You must prioritize factual correctness above all.” The commit message was “Improve agent factuality.”
What does a senior engineer do with that?
There is no unit test for “factual correctness.” There is no integration test to assert the philosophical shift from “striving” to “prioritizing.” The CI pipeline lit up green in seconds, its checks for syntax and file size utterly useless. The review became an exercise in pure subjectivity. I pasted the new prompt into a playground, ran a few queries, and tried to feel the difference. My feedback, left as a comment on the PR, was not about algorithmic complexity or cyclomatic complexity. It was, “This seems better, but the tone feels a little rigid now. Can we soften it?”
This is the new reality. The code review, once a cornerstone of engineering discipline, has become a Rorschach test. We stare at the inkblots of a modified prompt and each see something different. One person sees an improvement in accuracy. Another sees a loss of helpful nuance. A third sees a potential for the agent to refuse to answer ambiguous questions. No one is wrong, and no one is right. The process is no longer about verifying logic; it’s about interpreting prose.
The consequences of this shift are not trivial. The entire apparatus of modern software development is built on the idea of verifiable, deterministic change. Git history is supposed to be an authoritative ledger of how a system evolved, not a collection of abandoned poems. When a bug appears six months from now, git blame will point to that commit. It will tell us who changed the words. It will not tell us what they were thinking, what they tested, or what hidden consequences they failed to imagine. The chain of causality is broken, replaced by a shrug.
This isn’t just about prompts. It’s the slow creep of untestable artifacts into the heart of our systems. It’s the YAML file where a temperature setting is tweaked from 0.7 to 0.65. It’s the JSON blob defining a function-calling schema that might work better, for reasons no one can articulate. These are now the core control surfaces for our most critical application logic. We are turning knobs and pulling levers on a machine whose blueprints we can’t read.
We spent decades building a profession around rigor. We developed tools for static analysis, code coverage, and automated deployment to eliminate human error and subjectivity. Now, we’re throwing that away in favor of a process that feels more like art criticism than engineering. The pull request is no longer a proposal to be proven; it’s a vibe to be judged. And when the system inevitably breaks, we will have nothing but our conflicting interpretations of the inkblots to guide us.
Generated by Reportify AI — Automate your team's status reports, standups, and weekly updates. Try free →