How to add a feature to an existing AI-built app without redesigning everything
Treat a feature request as a change to an existing system. State the new user outcome, inspect the boundaries it touches, name what must survive, and verify the old journey as well as the new one.
By Driftbreak · Published
In this guide
Start with what changes and what does not
A request to add teams, notifications, a subscription tier, or an AI assistant can quietly change more than the new screen. Explain the difference the user should experience and the promises that must remain intact. Adding team sharing, for example, raises ownership questions that changing a button color does not. Do not ask an agent to modernize the whole application simply because it needs to inspect the affected area.
Inspect the boundary that the feature actually touches
Trace the current user action, its saved records, access checks, and downstream consumers. Inspect enough code or behavior to understand the consequence, not every file by default. If repository access is unavailable, distinguish the user's description from implementation evidence. A useful screenshot can explain a workflow; it cannot establish that a server rejects unauthorized writes. Carry the unproven check explicitly rather than pretending it happened.
Example: sharing a project changes authority, not just navigation
In an illustrative single-owner app, only the creator can change a project. Adding a share button raises concrete questions: can another person view, edit, invite others, or delete? Does the original owner remain responsible? What happens to existing projects? The architecture should settle those rules before an implementation spreads a different answer across UI, API, and database permissions. Not every sharing feature needs a full enterprise organization system. Build the authority required by the actual sharing promise.
Give implementation one outcome with preservation duties
Ask for the complete change, not a separate human mission for each file. The agent should inspect, implement, run appropriate checks, view the relevant UI, and repair ordinary defects within the agreed boundary. Name the decisions it cannot make silently. A migration that discards customer information is different from a local refactor that preserves behavior.
- New journey: the intended user completes the new action.
- Old journey: existing users can still do what already worked.
- State: old records remain readable or are migrated deliberately.
- Access: the right actor can perform each consequential action.
- Failure: interruption or retry does not leave a misleading partial result.
Architecture can support continuation, not just recovery
You do not need to wait until the app is broken. An architecture pass can establish how the next phase fits the product already being built. The Terraria-in-Minecraft case is an existing implementation example: the delivered package connected the builder's larger roadmap with a bounded next playable milestone and the evidence needed around it. The published case does not establish that those implementation steps were subsequently completed.
When not to stop for a larger planning pass
If the feature is isolated, the intended behavior is clear, and the owner can be identified, implement it proportionately. The purpose of architecture is to expose consequential relationships, not to make ordinary development slower. Step back when the change alters ownership, persistence, protected behavior, or what the product actually promises, or when the available evidence does not support a safe choice.
Use this on your next session
Build the change without widening the mission
Add this outcome to the existing app. First identify the behavior, records, permissions, and interfaces it touches. Preserve the named existing journeys. Complete implementation and verification, including the UI. Do not redesign unrelated areas or change product rules without raising the decision.
Continue with the relevant evidence
Follow the relevant product decision, implementation guide, or approved case evidence.
AI keeps fixing one thing and breaking another: how to stop the loop
When each fix breaks something else, stop stacking patches. Reproduce one failure, identify the shared state or boundary involved, and require the repair to preserve the working journeys around it.
Read nextGuideApp architecture vs technical blueprint vs implementation plan: what do I need?
Architecture defines the system and its rules. The technical blueprint explains how those rules are implemented. The implementation plan orders complete outcomes and their verification. You need enough of each to build your actual product, not three large documents for their own sake.
Read nextGuideMy coding agent keeps forgetting decisions and rebuilding the wrong thing
A longer chat history is not a reliable product authority. Keep the governing product decisions, the current implementation state, and the next bounded outcome distinct, and make deliberate changes propagate between them.
Read nextCase studyTerraria in Minecraft: From an Ambitious Roadmap to a Coherent Build Direction
An ambitious mod. A clearer path into Hardmode. Driftbreak turned an existing roadmap and supplied audit into a defined product direction and an implementation-ready package.
Read nextNext step
Start with your idea, existing build, or intended change. Driftbreak helps resolve the decisions and turn the confirmed direction into architecture and implementation material.
See how Driftbreak works
Understand the route from an idea or an existing product to a confirmed direction and connected package.
See the package structure
Review what the architecture, blueprint, workflow, and coding sessions actually look like.
Open Driftbreak
Start a case once you want the bounded architecture and implementation handoff for your own app.
