Product Requirements Document: [Project Name]
AI Context: This document is the PRIMARY source of truth for the AI agent. Read this BEFORE writing any code.
1. Introduction
- Purpose: [One sentence describing what this project does]
- Target Users: [Who will use this?]
- Status: Draft | In Development | Production Ready
2. Goals & Objectives
- Functional goal 1: [e.g., "Users can authenticate with email/password"]
- Functional goal 2: [e.g., "API response time < 200ms p95"]
- Functional goal 3: [e.g., "Support 10k concurrent users"]
3. Tech Stack
| Layer | Technology | Version |
|---|---|---|
| Frontend | [e.g., React, Vue, vanilla JS] | |
| Backend | [e.g., FastAPI, Node.js, Django] | |
| Database | [e.g., PostgreSQL, SQLite, MongoDB] | |
| Auth | [e.g., JWT, OAuth2, Session] | |
| Testing | [e.g., pytest, Jest, Vitest] | |
| Deployment | [e.g., Docker, Vercel, HF Spaces] |
4. Features & Functionality
Feature 1: [Feature Name]
- Description: [What it does in 1-2 sentences]
- User Story: As a [role], I want [goal], so that [benefit]
- Acceptance Criteria:
- Criterion 1
- Criterion 2
- API/Interface: [Endpoint or component signature]
- Edge Cases: [Error conditions, validation rules]
Feature 2: [Feature Name]
- [Repeat structure]
5. Data Models
Entity: User
- id: UUID (primary key)
- email: string (unique, validated)
- password_hash: string (bcrypt)
- created_at: datetime
- updated_at: datetime
Entity: [Next Entity]
- ...
6. API Specification
Endpoint: POST /api/v1/[resource]
- Description: [What it does]
- Request Body:
{ "field": "type // description" } - Response 200:
{ "id": "uuid", "field": "value" } - Response 400/401/404/500: [Error response schema]
- Auth Required: Yes/No
- Rate Limit: [If applicable]
7. Non-Functional Requirements
- Performance: [e.g., p95 latency < 200ms]
- Security: [e.g., OWASP Top 10 compliance, input sanitization]
- Scalability: [e.g., horizontal scaling strategy]
- Accessibility: [e.g., WCAG 2.1 AA]
- Browser Support: [e.g., Chrome 110+, Firefox 120+]
8. Constraints & Assumptions
- [Assumption 1: e.g., "Users have modern browsers"]
- [Constraint 1: e.g., "Must run on single VPS with 2GB RAM"]
9. Open Questions
- [Question the AI should clarify before implementing]