Skip to main content

No significant scope creep detected

ab-001543 · goal-alignment.scope-accuracy.no-significant-scope-creep
Severity: criticalactive

Why it matters

Scope creep in AI-generated code is a distinct failure mode from human-authored scope creep: the AI adds entire subsystems — admin dashboards, SSO flows, multi-tenancy layers — that were never requested, each carrying its own attack surface, maintenance cost, and regression risk. An unreviewed team collaboration system added without a PRD requirement means unapproved access control logic is live in production, and any bug in that logic is your liability. ISO 25010:2011 maintainability penalizes excess implementation directly: code that does not correspond to a requirement has no spec to validate it against and no owner to maintain it.

Severity rationale

Critical because unrequested subsystems introduce unreviewed security logic and maintenance burden with no specification to validate correctness against.

Remediation

Audit each out-of-scope addition before deciding whether to keep or remove it. For each flagged module:

  1. Check whether it is stable, covered by tests, and free of known vulnerabilities.
  2. If keeping it, add it to your PRD and ensure it has proper access control — check src/app/ routes for missing auth guards.
  3. If removing it, delete the route group, its components, and its schema models, then run a fresh migration:
# Remove the orphaned route and its data layer
rm -rf src/app/(admin)/teams
npx prisma migrate dev --name remove_teams_scope_creep

Leaving unrequested code in place means you own its security posture indefinitely.

Detection

  • ID: goal-alignment.scope-accuracy.no-significant-scope-creep
  • Severity: critical
  • What to look for: Enumerate every relevant item. After mapping PRD requirements to the codebase, identify any substantial features, modules, or subsystems in the codebase that have no corresponding requirement in the PRD. Look for: entire route groups with no PRD equivalent, complex UI components implementing functionality not described in the PRD, background jobs or scheduled tasks with no PRD origin, admin dashboards not mentioned in the PRD, additional authentication flows (e.g., SSO added when PRD only specified email auth). Small implementation details that naturally emerge from requirements (e.g., input validation, loading states, error messages) do not count as scope creep — they are implementation necessities.
  • Pass criteria: At least 1 of the following conditions is met. All substantial features and modules in the codebase can be traced to a PRD requirement, either directly or as a natural implementation necessity of a stated requirement. Minor additions (utility helpers, standard error boundaries, loading skeletons) do not constitute scope creep.
  • Fail criteria: One or more substantial features exist in the codebase with no corresponding PRD requirement and no clear necessity as an implementation detail of a stated requirement.
  • Do NOT pass when: The item exists only as a placeholder, stub, or TODO comment — partial implementation does not count as passing.
  • Skip (N/A) when: Never — scope creep evaluation always applies when a PRD is provided.
  • Cross-reference: For broader data handling practices, the Data Protection audit covers data lifecycle management.
  • Detail on fail: Name the specific features or modules that appear to be out-of-scope additions. Example: "PRD describes a simple note-taking app. Codebase includes a full team collaboration system (/teams, /invites, /permissions) not mentioned in PRD." Max 500 chars.
  • Remediation: Scope creep is not always bad — sometimes the AI added genuinely useful features. Before removing anything, evaluate whether each out-of-scope addition: (1) is stable and well-tested, (2) does not introduce security risk, and (3) is something you actually want. If you decide to keep it, update your PRD to reflect it. If you decide to remove it, delete the corresponding routes in src/app/, components, and database tables, then rerun migrations.

External references

Taxons

History