When your data model does not cover entities the PRD requires, features that depend on that data silently degrade or fail at runtime. A missing join table for team membership means multi-user collaboration can never persist correctly. A missing audit_results relation means you cannot display scores — the kind of gap that surfaces only after launch, when fixing it requires a migration, a data backfill, and coordinated API changes. ISO 25010:2011 functional suitability defines this as a core quality dimension: software must fulfill its stated functional requirements. Any entity absent from the schema is a hard blocker, not a soft deficiency.
High because missing schema entities block entire feature areas from functioning, requiring migrations and coordinated changes to fix after data has been written.
Add the missing entities and relationships directly to your schema file. In Prisma, that means defining the model and its relations, then running prisma migrate dev:
// prisma/schema.prisma
model Team {
id String @id @default(cuid())
name String
members TeamMember[]
projects Project[]
}
model TeamMember {
teamId String
userId String
role String
team Team @relation(fields: [teamId], references: [id])
@@id([teamId, userId])
}
After migrating, update your RLS policies and permission checks in src/lib/auth/ to account for the new ownership model.
goal-alignment.feature-completeness.data-model-supports-requirementshigh"PRD requires team collaboration (multiple users per project) but schema has no teams table or user-project join table." Max 500 chars.prisma/schema.prisma, src/db/schema.ts). Run database migrations after updating the schema. Be aware that adding new entities mid-project may require updates to authentication/authorization logic (RLS policies, permission checks).Dynamic checks (generated from PRD content):
For each requirement you extracted in the PRD parsing step, generate one check following this template:
goal-alignment.feature-completeness.req-{N} where N is the sequential number of the requirement (1, 2, 3...) in the order you identified themcriticalhigh or medium (use high for features that directly support the core value proposition, medium for supporting features)low or info"PRD req: 'Users can export their data as CSV'. No export route or CSV generation logic found anywhere in codebase." Max 500 chars.src/app/ or src/components/ that need to be created or modified.Dynamic check severity distribution guidance: When assigning severities to dynamic checks, aim for this approximate distribution of the weight contributed by dynamic checks:
This ensures the combined static + dynamic check pool hits the required severity bands for the overall audit (Critical 20-50%, Warning 25-50%, Info 5-30% of total weight).