When the core journeys your PRD promises do not exist as connected sequences of routes, components, and API handlers, users hit dead ends mid-flow: an onboarding that never reaches the dashboard, a checkout that cannot finalize, a sign-up that drops the user into a blank screen. This is the most direct form of product failure. It drives immediate refund requests, churn spikes, and one-star reviews, and it erodes trust in the product's core value proposition. From a user-experience perspective, broken core flows rank above every other severity class because they block the primary job-to-be-done the product exists to serve.
Critical because a missing or broken core user flow blocks the product's primary job-to-be-done and prevents any user from completing the journey the PRD promised.
Open the PRD alongside your routing tree (src/app/ for Next.js App Router or pages/ for Pages Router) and map each described journey to its routes, components, and API handlers. For every missing step, scaffold the route and wire navigation between adjacent steps:
// src/app/onboarding/payment/page.tsx
import { redirect } from 'next/navigation';
export default function PaymentStep() {
return <PaymentForm onComplete={() => redirect('/dashboard')} />;
}
Remove any TODO stubs and confirm each flow is navigable end-to-end before shipping.
goal-alignment.feature-completeness.core-user-flows-matchcritical"PRD defines an onboarding flow (profile setup → payment → dashboard) but no /onboarding route exists. Payment step also missing." Max 500 chars.src/app/ or pages/. For each missing step in a flow, create the necessary route and connect it to the adjacent steps with navigation logic.