BMAD-METHOD/bmad/bmm/agents/hand-off/PRD.md

120 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PRD: AI Journaling → LinkedIn Posts (Mobile-first MVP)
Version: 2025-10-07
Author: Business Analyst (Mary)
## Purpose
Provide a clear product requirements document for an AI-driven mobile-first journaling app that helps professionals capture text and voice entries, transcribe audio, and convert entries into LinkedIn-ready posts using OpenAI. The product is privacy-first (local-first default), integrates with Whisper for transcription and LinkedIn for publishing, and is designed to be built by a single operator with $5k for API/infra costs over a 3-month MVP timeline.
## Scope
MVP includes:
- Local-first journaling (text), tags, search, offline support
- Audio recording and Whisper transcription (basic pipeline)
- OpenAI-driven post generation with 3 tone presets (professional, thoughtleadership, casual)
- Draft editor with redaction/anonymize toggle
- LinkedIn OAuth + publish endpoint; fallback share flow for demos
- Basic analytics: entries, conversions, publish counts
- Privacy & retention settings (default: 90 days) and consent logs
Out of scope (MVP):
- Full cloud sync by default (opt-in only)
- Advanced analytics/engagement metrics
- Scheduled posting, multi-language support
## Success metrics (for MVP validation)
- Product usage: 100 active users generating 13 posts/week within 1 month of launch
- Cost control: Average generation + transcription cost ≤ $0.50 per active user per week
- Retention: At least 25% of users use the app weekly after 30 days
- Time to post: From entry capture to publish ≤ 5 minutes (happy path)
- Privacy: No raw audio retained server-side beyond TTL; users can export and delete data
## Personas
Primary
- Senior Product Manager at a mid-size SaaS company. Busy, wants to turn daily learnings into LinkedIn posts to build credibility.
Secondary
- Individual contributors (engineers/designers) who want to document wins and publicize insights.
- Consultants/freelancers who want to showcase work and build networks.
## User Journeys
1. Quick Text Capture
- User opens app → taps + → writes a short entry → tags → saves locally.
- User taps Convert → selects tone → app generates variants → user edits → Publish (LinkedIn or fallback).
2. Voice Capture → Transcribe → Convert
- User records audio (2060s) → uploads via signed URL → Whisper transcribes → client displays transcript → user edits/anonymizes → Convert → Publish.
3. Search & Reuse
- User searches by tag/date → selects past entry → converts/adapts → publish or schedule.
4. Privacy Flow
- Default: everything stored locally. For cloud features, user explicitly opts-in and gives consent. Processing to OpenAI/Whisper occurs only after user confirms.
## Functional Requirements
- FR1: Create/Edit/Delete journal entries locally (offline-first). (MUST)
- FR2: Tagging and full-text search across entries. (MUST)
- FR3: Audio recording with playback & file persist. (MUST)
- FR4: Signed upload flow for audio and serverless transcription job (Whisper). (MUST)
- FR5: OpenAI proxy endpoint to generate 13 post variants with hashtags and CTA. (MUST)
- FR6: Draft editor with inline edit and redaction, anonymize toggle. (MUST)
- FR7: LinkedIn OAuth + UGC publish endpoint + fallback share flow. (MUST)
- FR8: Settings for retention (default=90 days), anonymize behavior, telemetry opt-in. (MUST)
- FR9: Processing logs (transcribe/generate/publish) and consent records. (MUST)
## Non-functional Requirements
- NFR1: End-to-end TLS for all network traffic. (MUST)
- NFR2: Raw audio deleted from server storage within TTL ≤ 1 hour. (MUST)
- NFR3: At-rest encryption for optional cloud sync. (MUST if cloud sync enabled)
- NFR4: Scalable serverless functions with rate-limiting and quota enforcement. (MUST)
- NFR5: Token and cost monitoring with alerts (monthly & per-day). (MUST)
- NFR6: Client works offline; queue jobs for transcription when online. (MUST)
## Data model (simplified)
- Entry
- id, user_id, text, tags[], created_at, updated_at, status (draft/published), audio_ref (optional), transcription_id
- Transcript
- id, entry_id, text, language, confidence, created_at
- Variant
- id, entry_id, text, hashtags[], tone, created_at
- PublishEvent
- id, entry_id, variant_id, provider, provider_id, status, timestamp
- ConsentLog
- id, user_id, action (transcribe/generate/publish), timestamp, consent_given
## API summary (serverless)
Refer to `SERVERLESS-API-SPEC.md` for endpoints. Key endpoints:
- /api/signed-upload (POST)
- /api/transcribe/start (POST)
- /api/transcribe/callback (internal)
- /api/generate-post (POST)
- /api/publish-linkedin (POST)
- /api/usage (GET)
## Privacy & Legal
- Store minimal personal data and only with explicit consent for cloud sync or publish actions.
- Provide export (JSON/MD) and account delete routes. Ensure backups respect retention rules.
- Provide clear privacy policy in app and during onboarding.
## Constraints & Assumptions
- Single operator builds/operates app; $5k budget for APIs & hosting. Use low-cost models and limit variants to control spending.
- LinkedIn API access may require app review; implement fallback share flow for MVP.
## Timeline & Milestones
- M0: Prepare dev accounts, serverless skeleton (1 week)
- M1: Core journaling + audio + signed upload (weeks 14)
- M2: Transcription + generation + LinkedIn integration (weeks 58)
- M3: Privacy, retention, testing & store prep (weeks 912)
## Acceptance Criteria (overall)
- All P0 FRs implemented and demoable in staging with sample LinkedIn publish (or fallback).
- Processing logs and retention settings work as specified.
- Cost per active user remains within estimated budget after 30 days of sample usage.
## Open questions
- Monetization specifics for paid tiers and pricing (deferred until validation).
- Full cloud sync encryption approach for production-grade privacy (need architect input).
---
Document created for handoff and PRD review. Update owners and timelines as needed.