The cursor sat on the shared screen while the church tech lead’s finger hovered over the trackpad. One click and the entire volunteer onboarding spec filled the document—every permission tier, every reminder cadence, every fallback for a missed shift. The lines came straight from the model output. They read like something shipped already: clean states, graceful error paths, even a note about mobile push timing that matched the style guide. No one in the room mentioned the actual Saturday line at the welcome desk, the one where parents juggle coffee and name tags while two kids argue over the same blue sticker. The model had quietly chosen the safe path, and no one had noticed.
That paste replaced three sentences the team had written the week before. Those sentences described the moment a new volunteer stands at the table and asks which form to sign first, then waits while the tablet loads the wrong page. The model version never included the wait. It assumed the form would already be open and the signature field highlighted.
The difference showed up later when the same lead tested the flow on a borrowed phone during the actual sign-up hour. The polished steps collapsed at the handoff between printed name tag and digital check-in. The model had optimized for completion rate. It had never seen the table.
Tony Fadell built the first iPod and the early iPhone under the same constraint. He refused to let early usage data or simulated models dictate the v1 shape. Data at that stage only reflected what the team already knew how to measure. Real judgment came from standing in the room with the first users and noticing which physical action they performed before they ever touched the screen. Fadell treated that observation as the only reliable input for the first release.
A model-generated safe path always reads as finished, which is exactly why AI agents skip that observation by default. They optimize for the average documented flow across thousands of prior examples. The result is a v1 that looks complete because every listed edge case carries a solution. The edges that matter locally never appear in the training distribution.
The model removed the awkward handoff because awkwardness does not register as a measurable failure state. In the volunteer flow the handoff lasted eight seconds on average. Those seconds contained the only moment the new person decided whether they belonged in the room. The agent replaced them with an automatic redirect. The redirect worked in staging. It left the actual parent holding a tablet while their child reached for the sticker sheet.
Fadell’s stance makes the cost visible. He would have required the team to keep the handoff in the first version even when every metric suggested removing it. The metric only captured task completion. It missed the decision to return next week. Ministry products live or die on that second decision, not the first tap.
The same pattern appears whenever an agent generates an entire feature branch. The code passes every test the prompt described. It never contains the one condition the builder only notices after watching the real person hesitate.
Re-inserting that condition requires an explicit step the model cannot perform. The builder must name the single lived moment the spec still ignores. That moment becomes the required test before any other acceptance criteria are written. Everything else can stay generated. The one judgment stays manual.
This rule collides with current agent workflows because the safe path already satisfies the prompt. The model will happily generate five alternative versions, each one still missing the same lived detail. Only the builder who stood at the table can supply it. The model has no table.
The practice forces a smaller v1. The smaller surface makes the missing judgment impossible to overlook. It also makes the first user test cheaper. The team ships the awkward handoff on purpose, watches what happens, then decides whether the metric or the moment was right.
The moment the model handed me the safe path
The team had already run the generated flow against their internal checklist. Every required field existed. Every confirmation message matched the tone document. The only remaining task was to map the digital steps onto the physical table that actually existed on Saturday mornings.
When they tried the mapping, the redirect that looked efficient in Figma forced the volunteer to turn their back on the parent for three seconds. That turn broke the single point of eye contact that kept new people from walking away. The model had treated the turn as irrelevant because no ticket described it.
The handoff survived only because one person on the team refused to delete the three original sentences. Those sentences stayed in the spec as a separate acceptance criterion labeled “observed Saturday behavior.” Without that label the redirect would have shipped.
What Fadell’s v1 stance exposes in agent-built flows
Fadell treated early data as a mirror of existing assumptions rather than new information. The same mirror effect appears when an agent builds from prompt alone. The prompt already encodes what the team believes it needs. The generated flow therefore confirms the belief instead of challenging it.
The confirmation shows up most clearly in the edge cases the model adds. They are the edges that appeared in other products. They are rarely the edges that appear at 8:45 a.m. when the children’s check-in line backs up into the parking lot. Those edges only become visible after the builder watches the line form.
Keeping Fadell’s rule means the first version ships with fewer automated steps, not more. The reduced surface leaves room for the observation that the model cannot generate. The observation then becomes the actual scope for iteration two.
Re-inserting the judgment the safe path skips
The judgment usually hides inside a single sentence that describes a physical action rather than a screen state. In the volunteer flow the sentence was: “The parent sets the coffee cup down before they can sign.” That sentence dictated the height of the tablet stand and the size of the signature field. No model output contained it.
The builder must add the sentence after the agent finishes its work. The addition happens in the same document, not in a separate research file. Once the sentence exists, every subsequent change must preserve the action it describes or explicitly replace it with a better observed action.
This single addition prevents the safe path from becoming the only path. It also gives the team a concrete test: does the new volunteer complete the action without turning away? The answer arrives from the table, not from the analytics dashboard.
Your Turn: Apply This Today
- Open the current v1 spec you generated with an agent this week and highlight every paragraph that describes a screen state instead of a physical action the user performs first.
- Replace one of those paragraphs with a single sentence written from direct observation of the real moment the user hesitates.
- Mark that sentence as a non-negotiable acceptance criterion that must pass before any automated edge case is implemented.
- Run the revised spec past the person who will actually use the flow and ask them to change only that one sentence if it no longer matches what they do.
- Delete every generated step that now conflicts with the updated sentence, even if the deletion reduces the visible feature count.
- Ship the smaller version to a single location this week and record whether the observed hesitation disappears or changes form.
The Judgment Call No Dataset Will Make for Your v1 and The Months I Outsourced My Sense of What Counts as Finished both trace the same pattern of handing scope decisions to external sources before the builder has named the one moment that matters.
I consult with product leaders building AI features for ministry tools on v1 scoping, judgment integration, and agent-assisted flows. Let’s talk.

