- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24) - apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004) - apps/web: React 19 + Vite 8 (ESM) - libs/shared/api-interface: Zod contract base - Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit - WDS artifacts: - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs) - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact) - Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md - AGENTS.md + README.md como entrada para devs/agentes Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
219 lines
4.5 KiB
Markdown
219 lines
4.5 KiB
Markdown
# Platform Requirements: {{project_name}}
|
|
|
|
> Technical Boundaries & Platform Decisions
|
|
|
|
**Created:** {{date}}
|
|
**Author:** {{user_name}}
|
|
**Related:** [Product Brief](./product-brief.md)
|
|
|
|
---
|
|
|
|
## Technology Stack
|
|
|
|
### Core Platform
|
|
|
|
**CMS/Framework:** {{cms_framework}}
|
|
**Approach:** {{tech_approach}}
|
|
|
|
{{tech_approach_details}}
|
|
|
|
### Key Technologies
|
|
|
|
| Layer | Technology | Rationale |
|
|
|-------|------------|-----------|
|
|
| **Frontend** | {{frontend_tech}} | {{frontend_rationale}} |
|
|
| **Styling** | {{styling_tech}} | {{styling_rationale}} |
|
|
| **CMS/Backend** | {{backend_tech}} | {{backend_rationale}} |
|
|
{{#if database_tech}}| **Database** | {{database_tech}} | {{database_rationale}} |{{/if}}
|
|
{{#if hosting_tech}}| **Hosting** | {{hosting_tech}} | {{hosting_rationale}} |{{/if}}
|
|
|
|
---
|
|
|
|
## Plugin/Package Stack
|
|
|
|
{{#if plugins}}
|
|
| Plugin | Purpose | Status |
|
|
|--------|---------|--------|
|
|
{{#each plugins}}
|
|
| {{this.name}} | {{this.purpose}} | {{this.status}} |
|
|
{{/each}}
|
|
{{else}}
|
|
*To be determined during development*
|
|
{{/if}}
|
|
|
|
---
|
|
|
|
## Integrations
|
|
|
|
### Required Integrations
|
|
|
|
{{#each integrations}}
|
|
- **{{this.name}}:** {{this.purpose}}
|
|
{{/each}}
|
|
|
|
### Future Integrations
|
|
|
|
{{#each future_integrations}}
|
|
- **{{this.name}}:** {{this.purpose}} *({{this.timeline}})*
|
|
{{/each}}
|
|
|
|
---
|
|
|
|
## Contact Strategy
|
|
|
|
### Primary Contact Method
|
|
|
|
{{contact_strategy}}
|
|
|
|
### Contact Channels
|
|
|
|
| Channel | Priority | Implementation |
|
|
|---------|----------|----------------|
|
|
{{#each contact_channels}}
|
|
| {{this.channel}} | {{this.priority}} | {{this.implementation}} |
|
|
{{/each}}
|
|
|
|
### Future: AI Integration
|
|
|
|
{{ai_integration_notes}}
|
|
|
|
---
|
|
|
|
## UX Constraints
|
|
|
|
*These constraints inform what's possible in Phase 4 (UX Design)*
|
|
|
|
### Platform Limitations
|
|
|
|
{{#each ux_constraints}}
|
|
- {{this}}
|
|
{{/each}}
|
|
|
|
### Performance Targets
|
|
|
|
| Metric | Target | Rationale |
|
|
|--------|--------|-----------|
|
|
| **Mobile First** | {{mobile_first}} | {{mobile_rationale}} |
|
|
| **Page Load** | {{page_load_target}} | {{load_rationale}} |
|
|
| **Offline Support** | {{offline_support}} | {{offline_rationale}} |
|
|
|
|
---
|
|
|
|
## Multilingual Requirements
|
|
|
|
{{#if multilingual}}
|
|
**Languages:** {{languages}}
|
|
|
|
**Implementation:** {{multilingual_implementation}}
|
|
|
|
**URL Structure:**
|
|
```
|
|
{{url_structure}}
|
|
```
|
|
|
|
**Translation Workflow:** {{translation_workflow}}
|
|
{{else}}
|
|
*Single language site*
|
|
{{/if}}
|
|
|
|
---
|
|
|
|
## SEO Requirements
|
|
|
|
### Technical SEO
|
|
|
|
{{#each seo_requirements}}
|
|
- {{this}}
|
|
{{/each}}
|
|
|
|
### Structured Data
|
|
|
|
| Page Type | Schema Type | Key Properties |
|
|
|-----------|-------------|----------------|
|
|
{{#each structured_data}}
|
|
| {{this.page_type}} | {{this.schema_type}} | {{this.properties}} |
|
|
{{/each}}
|
|
|
|
### Local SEO (if applicable)
|
|
|
|
{{#if is_local_business}}
|
|
- [ ] Google Business Profile claimed and verified
|
|
- [ ] NAP consistency (Name, Address, Phone) across all pages
|
|
- [ ] Business category set correctly
|
|
- [ ] Service area defined
|
|
- [ ] Photos uploaded
|
|
{{else}}
|
|
*Not a local business*
|
|
{{/if}}
|
|
|
|
### Performance & Infrastructure
|
|
|
|
| Metric | Target |
|
|
|--------|--------|
|
|
| **Largest Contentful Paint (LCP)** | < 2.5 seconds |
|
|
| **First Input Delay (FID)** | < 100ms |
|
|
| **Cumulative Layout Shift (CLS)** | < 0.1 |
|
|
| **Page Load (4G)** | < 3 seconds |
|
|
| **Total Page Weight** | < 3MB |
|
|
| **Individual Image Size** | < 200KB (hero < 400KB) |
|
|
| **Mobile-Friendly** | Yes |
|
|
| **Favicon** | All sizes (16, 32, 180, 192px) |
|
|
|
|
### Security Headers
|
|
|
|
| Header | Purpose |
|
|
|--------|---------|
|
|
| **Strict-Transport-Security (HSTS)** | Force HTTPS |
|
|
| **Content-Security-Policy (CSP)** | Prevent XSS |
|
|
| **X-Content-Type-Options** | Prevent MIME sniffing |
|
|
| **X-Frame-Options** | Prevent clickjacking |
|
|
| **Referrer-Policy** | Control referrer info |
|
|
| **Permissions-Policy** | Restrict browser features |
|
|
|
|
### SEO Plugin/Tools
|
|
|
|
{{seo_tools}}
|
|
|
|
---
|
|
|
|
## Maintenance & Ownership
|
|
|
|
| Aspect | Owner | Notes |
|
|
|--------|-------|-------|
|
|
| **Content Updates** | {{content_owner}} | {{content_notes}} |
|
|
| **Technical Maintenance** | {{tech_owner}} | {{tech_notes}} |
|
|
| **Plugin Updates** | {{plugin_owner}} | {{plugin_notes}} |
|
|
|
|
---
|
|
|
|
## Development Handoff Notes
|
|
|
|
*For Phase 6 (Deliveries)*
|
|
|
|
### Environment Setup
|
|
|
|
{{environment_setup}}
|
|
|
|
### Deployment Process
|
|
|
|
{{deployment_process}}
|
|
|
|
### Key Considerations
|
|
|
|
{{#each dev_considerations}}
|
|
- {{this}}
|
|
{{/each}}
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
- [ ] **Content & Language** — Define tone, languages, SEO keywords
|
|
- [ ] **Visual Direction** — Establish visual style and brand
|
|
- [ ] **Phase 2: Trigger Mapping** — Map user psychology
|
|
- [ ] **Phase 4: UX Design** — Begin design within these constraints
|
|
|
|
---
|
|
|
|
_Generated by Whiteport Design Studio_
|