Files
claude-skills-reference/product-team/code-to-prd/references/prd-quality-checklist.md
Reza Rezvani 4b7a084ee3 feat(code-to-prd): expand to fullstack — add NestJS, Django, Express, FastAPI support
- Rename frontend_analyzer.py → codebase_analyzer.py — now detects backend
  frameworks via package.json (NestJS, Express, Fastify) and project files
  (manage.py, requirements.txt for Django, FastAPI, Flask)
- Add backend route extraction: NestJS @Controller/@Get decorators,
  Django urls.py path() patterns
- Add model/entity extraction: Django models.Model fields, NestJS @Entity
  and DTO classes
- Add stack_type detection (frontend / backend / fullstack) to analysis output
- SKILL.md: add Supported Stacks table, backend directory guide, backend
  endpoint inventory template, backend page type strategies, backend pitfalls
- references/framework-patterns.md: add NestJS, Express, Django, DRF, FastAPI
  pattern tables + database model patterns + backend validation patterns
- references/prd-quality-checklist.md: add backend-specific checks (endpoints,
  DTOs, models, admin, middleware, migrations)
- Update all descriptions and keywords across plugin.json, settings.json,
  marketplace.json, and /code-to-prd command

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 12:28:30 +01:00

2.9 KiB

PRD Quality Checklist

Use this checklist to validate generated PRDs before delivery.

Completeness

  • Every route/page has a corresponding document
  • All form fields listed with type, required, validation, default
  • All table columns listed with format, sortable, filterable
  • All action buttons documented with visibility conditions
  • All API endpoints listed with method, path, trigger, params
  • Mock vs integrated APIs clearly distinguished
  • All enums exhaustively listed with every value
  • Page load behavior documented for every page
  • Page relationships mapped (inbound, outbound, data coupling)

Accuracy

  • Route paths match actual code
  • Field names match UI labels (not variable names)
  • Validation rules match actual code logic
  • Permission conditions match auth guard implementations
  • API paths match actual service layer calls
  • Enum values match source constants (no fabrication)
  • Uncertain items marked [TBC] with explanation

Readability

  • Business language used (not implementation details)
  • Each page doc is self-contained
  • No component names used as page names
  • Interactions described as user action → system response
  • Modals/drawers documented within their parent page
  • README system overview written for non-technical reader

Structure

  • prd/README.md exists with system overview + page inventory
  • prd/pages/ contains numbered page files
  • prd/appendix/enum-dictionary.md exists
  • prd/appendix/api-inventory.md exists
  • prd/appendix/page-relationships.md exists
  • Cross-references use relative links

Backend-Specific Checks

  • All controller/view endpoints documented with method, path, auth
  • DTO/serializer fields listed with type, required, validation
  • Database model relationships mapped (FK, M2M, O2O)
  • Django admin customizations documented (list_display, actions, inlines)
  • Background tasks/Celery jobs documented with trigger and schedule
  • Middleware pipeline documented (auth, logging, rate limiting)
  • Environment-dependent behavior noted (dev vs prod differences)
  • Database migrations reviewed for field constraints and defaults

Common Issues to Watch

Issue How to Detect Fix
Missing modal content Search for Modal, Dialog, Drawer components Add as subsection in parent page
Undocumented field linking Search for conditional renders based on field values Add to interaction logic
Hidden permissions Search for v-if, v-show, role checks, auth guards Add visibility conditions
Stale mock data Compare mock shapes with API types/interfaces Flag as [Mock - verify with backend]
Missing error states Search for error boundaries, catch blocks, toast errors Add failure paths to interactions
Unlinked pages Cross-reference route params with navigation calls Complete page relationships