PRD that engineers will actually read — problem, user stories, acceptance criteria, edge cases, scope cuts, kill criteria. Pastes clean into Notion or Linear.
You're three Slack threads deep, the engineers want to know what 'works for teams' means, and the founder keeps adding 'oh also it should...' in DMs. The PRD lives in your head and it's not transferring. This tool turns a fuzzy feature idea into a spec engineers can actually build from: problem statement that explains why this is worth doing now, user stories with real acceptance criteria, the edge cases your team will otherwise hit in QA on day 9, success metrics that aren't 'usage goes up', explicit scope cuts for v1 vs v2 so you ship something, an open-questions list to surface before estimation, and a kill-criteria section that gives everyone permission to stop building if the data says so. Output is markdown that pastes cleanly into Notion or Linear without reformatting. Built for founders, solo PMs, and tech leads who hate writing PRDs but know nothing ships without one.
Brief used: “Feature: in-app referral program for our SaaS (project management tool, $29/user/mo, 800 paying teams). User clicks 'Invite friends' in nav, gets a unique link, both sides get 1 month free when the friend converts to paid. Target user: existing paid customer, team lead persona. Constraints: needs to ship in 3 weeks, only 1 backend engineer, can't change billing logic mid-month, fraud is a worry (Stripe testers gaming it).”
# Feature Spec: In-App Referral Program **Owner:** [PM] **Engineering:** [name] **Status:** Draft → Ready for estimation **Target ship:** [date, 3 weeks out] ## Problem statement Our paid customers are our highest-converting source of new signups (anecdotal — word-of-mouth lands closing in onboarding chat), but we have no in-product way for them to do it. Today they share us in Slack, but there's no incentive, no tracking, and no signal back to us about who's recommending. If we don't build this, growth stays dependent on paid ads (CAC up 30% QoQ) and the organic motion stays invisible. ## User stories **1. As a team lead on a paid plan, I want to invite peers to the product so I can get rewarded when they sign up.** Acceptance criteria: - Logged-in paying user sees 'Invite' entry in the main nav. - Clicking opens a modal with a unique referral URL, a copy button, and a 'share via email' field. - URL contains a stable user-scoped token (not the user id). - Modal shows current state: invited count, converted count, credits earned. **2. As a referred user, I want to land on a signup page that acknowledges the referrer so trust is established before I enter a credit card.** Acceptance criteria: - Landing URL accepts the token, validates server-side. - Signup page shows 'Invited by [Referrer's first name]' (only first name, no email). - Token persists across the signup flow even if the user closes and reopens the tab within 14 days. **3. As the referrer, I want to get my month free automatically once the friend converts.** Acceptance criteria: - 'Converted' = friend subscribes to a paid plan AND remains paid for 7 days (not just trial start). - Credit applied to referrer's next invoice as a line-item discount. - Referrer gets an in-app notification + email when credit is applied. **4. As an admin, I want a referral dashboard so I can see signups, conversions, and fraud signals.** Acceptance criteria: - Internal-only page lists referrals by referrer with status (pending / converted / flagged). - Flag column shows automated checks: same IP, same email domain on free Gmail patterns, signup-then-immediate-paid (under 60 seconds). ## Edge cases checklist - Referrer cancels their subscription before the friend converts → friend still gets their month free, referrer credit voided. - Friend signs up but uses a different email than the invite email → still credit if the token matches. - Friend signs up, downgrades to free, comes back later and goes paid → credit applied at the moment paid status holds 7 days. - Same person signs up twice with different emails from the same IP → flagged, no credit. - Referrer is on annual plan → credit converts to a $29 line-item discount, not 'free month'. - Token tampering / scraping → server validates token signature; invalid tokens fail silently to /signup with no referrer. - Friend signs up before clicking the link (already had account) → no credit. - Mid-month signup → credit applied on next invoice, never current. ## Success metrics - **Primary:** Referral-attributed paid signups as % of total paid signups. Target 8% within 60 days of launch. - **Secondary:** Activation rate of referred users (must be ≥ baseline activation; if lower, the referral channel is unhealthy). - **Operational:** Fraud flag rate < 5% of approved credits. - **Anti-metric:** Total credit dollars given out vs MRR from referred users — credits must stay under 25% of attributed MRR. ## v1 scope (ships in 3 weeks) - Nav entry, modal with link + copy + email-share field. - Token generation and signup-side attribution. - Conversion logic (paid + 7 days hold). - Credit application as invoice line item. - In-app + email notification on credit applied. - Admin dashboard, basic. ## v2 (next quarter) - Tiered rewards (refer 3 → bigger reward). - Public leaderboard. - Custom referral landing pages per referrer. - Integration with Twitter/LinkedIn share intents. ## Open questions (resolve before estimation) 1. Does 'paid for 7 days' include trial? Assumed no — but confirm with finance. 2. Annual plan referrers — credit is $29 flat, not 'one month equivalent'. Confirm. 3. What's the email-share copy? Default template needed; assume the marketing team can write 3 versions. 4. Do we need a terms-of-program page for legal? Probably yes — ask counsel before launch. 5. Existing free-trial signups: are they 'converted' for referral purposes? Assumed only paid counts. ## Kill criteria Kill or pause the feature if, at the 60-day mark: - Referral-attributed signups are < 3% of total paid signups (signal: not enough lift to justify the credit cost). - Fraud flag rate > 15% (signal: gaming faster than we can fix it). - Activation rate of referred users < 50% of baseline (signal: the channel brings low-quality users). If two of three trigger, the feature ships to a 'hidden until invited' state and we run the v2 redesign instead of expanding.
Static example — your run uses Claude live on your specific brief.
Solo founders writing the first PRD for a feature their two engineers will build next sprint, head-of-product hires inheriting a team that's never seen a real spec, tech leads who keep getting 'just one more thing' requests because the scope was never written down. Not for: enterprise PMs who need stakeholder sign-off workflows or compliance fields — this is a working doc, not a process artefact.
A complete PRD in markdown ready to paste into Notion or Linear: (1) problem statement that frames why this is worth building and what changes if you don't, (2) 3-5 user stories in 'as a / I want / so that' format with acceptance criteria for each, (3) edge cases checklist — empty states, failure modes, permission boundaries, the stuff QA will catch otherwise, (4) success metrics defined as measurable thresholds, not vibes, (5) scope-cut suggestions splitting v1 (what ships in 2 weeks) from v2 (what waits), (6) open questions list to resolve before estimation, and (7) kill criteria — the conditions under which you stop building this. Plus a header block with feature name, owner field, status, and target ship date.
Three engineers, no PM, the founder has been describing features in Slack. Get a real spec the team can estimate against so the next sprint actually ends.
The feature has grown two new requirements per week. Write the spec retroactively with explicit v1/v2 splits so 'just one more thing' has somewhere to go.
You just joined, you don't know the codebase yet, but you need to ship a doc the team takes seriously. Get a template-with-content, not a blank Notion page.
You're about to build something risky. Define the kill criteria before sprint 1 so killing it later is a calm decision, not a political one.
Probably not exactly — but the output is markdown with clearly labeled sections, so reordering or renaming headers to match your template takes 2 minutes. The content of each section is what matters; the structure is easy to adapt.
More specific is better. 'A referral program' gets generic output. 'A referral program for our $29/user PM tool, 800 teams, ships in 3 weeks, fraud is a worry' gets a spec that names your real edge cases. The tool can't infer constraints you don't tell it about.
No. A PM does discovery, talks to users, makes trade-offs, and pushes back on the founder when needed. This tool writes the artefact — the doc that captures the decisions. If you've already done the thinking, this saves the writing. If you haven't done the thinking, the spec will be confidently wrong.
Yes, more than you'd expect. Writing down the conditions under which you'd stop building, before you start, makes it politically easier to stop later. The default is to keep building because someone fought for it. Pre-committed kill criteria flip the default.
Yes. You get an anonymous preview instantly with no signup. Drop your email and you unlock 3 full-length runs per month for Feature Spec / PRD — no credit card. Unlimited runs are $29 one-time, or $19/mo for every tool.
Paid ($29 one-time) unlocks unlimited runs for Feature Spec / PRD, longer outputs from Claude Sonnet, full exports, and priority generation. $19/mo unlocks every tool on JustNeeda.
Free runs render in-browser and can be copy-pasted. Paid unlocks copy-to-clipboard, Markdown, and plain-text exports — and history of every run tied to your account.
No. Every run hits Claude live with your specific input. We don't reuse outputs across users. Your input stays private to your session and account.