- Home
- Skills
- Technical Documentation
- PRD: Product Requirements Document
More screenshots
Works with the AI Agents you already use
PRD: Product Requirements Document
Sizes the change, then drafts a PRD with the problem, evidence, a success metric you can check after launch, HTML mockups, scope, and milestones.
$14.29
PRD: Product Requirements Document
Example session with this skill installed
Write a PRD for saved-search alerts. Users on our listings marketplace want to save a search and get a push or email when a new listing matches it.
- Read your context and instructions
- Compiled the prd
- Generated the document
Created the draft PRD with labeled assumptions and five HTML mockups. Section, link, and script syntax checks passed.
Files in the current directory
./saved-search-alerts-prd.md./search-inline.html./search-modal.html./saved-searches.html./email-preferences.html./alert-previews.html./validation-report.json
1. Saved-search alerts
| Field | Value |
|---|---|
| Status | Draft — no reviewer approval has occurred |
| Size | Large: new management surface plus push and email delivery |
| Owner | Assumption A1: marketplace product lead; person unassigned |
| Reviewer | Open Question: eventual PR reviewer is unassigned; review is required before approval |
| Updated | 2026-10-15 |
| Version | 0.1 — initial proposal |
2. Description
Let buyers save search criteria and receive alerts when new listings match. Buyers choose email, push, or both. They can pause, change, or delete each saved search.
Assumption register: A1 covers ownership. A2 covers audience and existing marketplace capabilities. A3 covers all proposed behavior in §7 and §11. A4 covers measurement definitions and targets. A5 covers experiment design and timing. A6 covers launch responsibilities and dependencies. Each is a proposal, not a verified fact. Requirements below are normative within this draft, and rest on these labeled assumptions.
3. Problem
Known: The request states: “Users on our listings marketplace want to save a search and get a push or email when a new listing matches it.”
Assumption A2: Buyers repeat searches because relevant inventory arrives over time. Manual checks cost time and can miss useful listings. Primary actors are buyers. Sellers benefit from qualified visits. Support handles missing or unwanted alerts.
4. Why
Known: No codebase, analytics, research, prior PRD, or design was supplied. No stakeholder is available during this run. The workspace contains no product document to extend. No external market claims are used.
Assumption A2: Repeat searchers need timely discovery more than another broad promotional message. Existing accounts, search filters, listing pages, verified email, and a push-capable app are available. Confirm these before committing a launch date.
Before launch, pull 28 days of repeat-search rates, new-listing volume per common search, return visits, and notification opt-out rates. Interview five repeat searchers about urgency and acceptable frequency. Owner: proposed product lead (Assumption A6). No cross-team requirements have been received.
5. Success
All definitions and targets below are
Assumption A4. Baselines are unknown unless stated. Let L be the actual beta start. Report sample sizes with each rate. Exclude staff and test accounts.
| Measure | Precise definition and cohort | Source | Baseline | Target | Readout |
|---|---|---|---|---|---|
| Primary: useful discovery | Share of beta users with an active alert and at least one eligible new match during L through L+23 days who view a matched listing through an alert within seven days of that match; count each user once | Matched-listing eligibility, alert attribution, listing views | Unknown; new flow has no historical cohort | At least 25% | L+30 days |
| Activation | Users who enable their first alert / users shown Save search during the first 14 beta days | Entry exposure and alert-enabled events | Unknown | At least 10% | L+14 days |
| Timeliness | Share of eligible matches included in an alert accepted by the selected provider within 15 minutes; report each channel separately over first 14 days | Match and provider acceptance timestamps | Unknown | At least 95% | L+14 days |
| Unwanted alerts | Users who disable all alert channels within seven days of their first accepted alert / users with a first accepted alert during L through L+23 | Acceptance and preference events | Unknown | Below 10% | L+30 days |
| Duplicate control | Repeated deliveries for the same user, listing, and channel / accepted listing-channel deliveries during first 14 days | Delivery audit | Unknown | Below 0.1% | L+14 days |
Provider acceptance does not prove receipt or attention. Do not use email opens as the success measure. Instrument acquisition (entry exposure), activation (alert enabled), value (attributed matched-listing view), and retention (another attributed view on a later day within 30 days). Record channel, experiment group, saved-search identifier, and event time. Avoid raw queries or email addresses in analytics. Missing attribution is reported separately.
6. Audience
Assumption A2: Start with signed-in buyers who repeat a specific keyword and filter combination. Include low-inventory searches with zero current results. Guest users can start setup, then sign in and return with their criteria intact. Sellers are not the target audience.
Assumption A3: Use the search-results entry point and account navigation for discovery. Alerts are user-requested lifecycle messages. Do not enroll users by default or add promotional messages. Segment readouts by channel and inventory volume. Do not infer sensitive interests for targeting.
7. What
All product decisions in this section are Assumption A3, pending review.
Key features
| Capability | Proposed requirement |
|---|---|
| Save | Save keywords, selected filters, and selected location/radius exactly as shown. Ignore sort order and pagination. Show a readable criteria summary before confirmation. |
| Setup | Suggest an editable name, maximum 80 characters. Offer unchecked Email and Push choices. Saving without channels creates a saved search with alerts off. |
| Eligibility | Email requires a verified address. Push requires permission on at least one signed-in device. Explain blocked channels and preserve choices while users resolve them. |
| Matching | Use the same criteria meaning as search. Only newly published, publicly available listings after activation qualify. Existing inventory, edits, and reactivation of the same listing do not qualify. |
| Timing | Group new matches into a single alert per saved search and channel per 15-minute window. Target provider acceptance within 15 minutes; do not promise guaranteed receipt. |
| Volume | Send at most four alert messages per user, per channel, per rolling 24 hours. Excess matches appear in one summary when capacity returns. Drop unavailable listings; show exact remaining count. |
| Overlap | Include a listing once per user per channel across overlapping saved searches. Attribute it to the oldest matching active search. Selecting both channels intentionally permits one email and one push. |
| Management | List saved searches with criteria, state, and channels. Rename, edit criteria, pause, resume, change channels, and delete. Limit to 20 saved searches per account. |
| Editing | Apply changes to future matches from the confirmed save time. Discard pending matches that no longer qualify. Resume starts fresh without a paused-period backlog. |
| Controls | Pause retains criteria. Delete requires confirmation and removes the search. Channel opt-out cancels pending sends on that channel before provider handoff. |
User journeys
flowchart TD
A[Search results, including zero results] --> B[Save search]
B --> C{Signed in?}
C -->|No| D[Sign in and restore criteria]
C -->|Yes| E[Review criteria and channels]
D --> E
E --> F{Channel available?}
F -->|No| G[Resolve permission or save with alerts off]
F -->|Yes| H[Save and confirm]
G --> H
H --> I[Manage saved searches]
I --> J[Edit, pause, resume, or delete]
H --> K[New matching listing]
K --> L[Email or push]
L --> M[Listing or matching results]
L --> N[Turn off email alerts]
- Entry: search results or empty results → setup → sign-in if needed → return to setup.
- Cancel or failed sign-in: return to results; create nothing. Preserve the draft while the session remains open.
- Confirm: save once, show success and a Manage saved searches link. On failure, retain inputs and offer Retry.
- No eligible channel: explain why; allow saving with alerts off. Never show “alerts on” without an eligible selected channel.
- Notification: one listing opens that listing; multiple listings open existing results for the saved criteria. Sign-in, if required, preserves the destination.
- Listing removed after send: explain “This listing is no longer available” and offer current matching results.
- Management: edit and confirm → updated row; cancel → original row. Pause/resume updates the state. Delete → confirmation → removal or cancellation.
- Email opt-out: open scoped preference page → turn off this search’s email or all saved-search email → confirmation. Push remains unchanged. Existing provider-handed messages may still arrive.
Design
Rough, self-contained HTML mockups are the review artifacts. Each opens directly in a browser. Sample listings and counts are fictional.
| Surface | Mockup | Decision |
|---|---|---|
| Search results and inline setup | search-inline.html | Preferred: visible criteria and fewer navigation steps |
| Search results and modal setup | search-modal.html | Alternative: compact results page, but hidden context and more focus handling |
| Saved-search management | saved-searches.html | Includes edit, pause, resume, delete, and empty state |
| Email preference page | email-preferences.html | Scoped opt-out and confirmation |
| Push, email, and unavailable destination | alert-previews.html | Message copy and fallback state |
Assumption A3: choose inline setup for the first release. Review the modal alternative before approval. Existing sign-in, email verification, operating-system permission prompts, search results, and available listing detail screens are reused. Their existence is Assumption A2. If absent, revise scope and mockups before implementation.
Use clear labels, keyboard access, visible focus, and readable mobile layouts. Announce save and error status. Do not indicate state by color alone.
Product copy
- Entry: “Save search”. Empty results: “No matches yet. Save this search to hear about new listings.”
- Setup: “Get alerts for new matches”. Channels: “Email” and “Push”. Helper: “Choose either, both, or save with alerts off.”
- Success: “Search saved. Alerts are on.” Without channels: “Search saved. Alerts are off.”
- Permission denied: “Push is blocked. Enable notifications in device settings or choose email.”
- Unverified email: “Verify your email to enable email alerts.”
- Failure: “We could not save your search. Your changes are still here. Try again.”
- Limit: “You have 20 saved searches. Delete one to save another.”
- Delete: “Delete this saved search? Its alerts will stop.” Buttons: “Keep search” and “Delete search”.
Out of scope
Exclude price-drop alerts, listing-edit alerts, existing-inventory backfill, SMS, seller alerts, paid tiers, recommendations, shared searches, and custom schedules. Exclude changes to search ranking or seller publication rules.
Future considerations
Consider daily digests, quiet hours, and user-set frequency after measuring volume and opt-outs. Do not promise them at launch.
Constraints and dependencies
Assumption A2: current search criteria can be reproduced and listing identity persists across edits. Assumption A6: product, engineering, design, support, and messaging owners can review the draft. Email and push delivery capabilities are unverified. No vendor, staffing level, or delivery date is confirmed.
Edge and corner cases
| Condition | Expected behavior |
|---|---|
| Zero current matches | Allow save; do not send an empty alert |
| Identical criteria already saved | Open the existing search for editing; do not create a duplicate |
| Double submit or retry | Create only one saved search; display its confirmed state |
| Filter removed from marketplace | Pause affected alert, show “Update this search”, and require explicit criteria review; never broaden silently |
| Permission later revoked or email rejected permanently | Disable that channel and show action needed; retain other channels and criteria |
| Temporary delivery failure | Retry within 24 hours while preserving deduplication and volume limits; then expire and record failure |
| Pause/delete races with send | Recheck state before handoff; explain that already-sent messages cannot be recalled |
| User changes criteria during batching | Retain only still-qualifying, post-edit matches; never send stale criteria alerts |
| Location changes | Keep the explicitly saved location; device travel does not change criteria |
| Account deletion | Stop future alerts and remove saved searches under the account deletion policy |
| Multiple devices | Push to one most recently active permitted device; email choice remains independent |
| No active searches after deletion | Show empty state with “Find listings” entry |
8. How
Assumption A5: Gate the feature with a configuration toggle, initially off. Pilot with 10% of eligible signed-in buyers; assign a random equal-sized holdout without the new entry point. Keep assignments stable. Compare return listing views per eligible buyer over 30 days as a secondary experiment outcome. The primary metric is descriptive within the enabled cohort. Do not claim causal impact from it.
Check activation and guardrails after 14 days. Expand only after the 30-day readout meets targets and the reviewer approves. If the primary denominator is below 200 users, extend beta; this is an operational threshold, not a power calculation. Determine statistical power after baseline data is available. Stop expansion for incorrect recipients or persistent duplicates. A delivery toggle stops new sends while management remains available.
9. When
All dates are Assumption A5, tentative and dependent on capacity and feasibility.
| Milestone | Tentative date | Exit condition |
|---|---|---|
| Product review | 2026-10-22 | Named owner/reviewer, evidence gaps reviewed, explicit approval |
| Readiness review | 2026-11-05 | ERD completed; integrated verification and messaging checks pass |
| Limited beta, L | 2026-11-09 | Feature flag, attribution, support guidance, and stop control verified |
| Early guardrail review | 2026-11-23 | 14-day rates and failures reviewed |
| Outcome review | 2026-12-09 | 30-day outcome and cohort sizes reviewed |
| General availability decision | 2026-12-14 | Targets met, reviewer approves, or beta extended with a recorded reason |
These are product milestones. Implementation order belongs to the ERD.
10. Open questions and notes for architecture
Product questions
Open Question: Who owns the feature and reviews the eventual PR? Interim assumption: product lead plus an assigned engineering reviewer.
Open Question: Is fifteen-minute batching acceptable for this marketplace? Interim assumption: yes; validate with repeat searchers.
- Open Question: Do users prefer one device or all devices? Interim assumption: one recent permitted device.
Risk: A four-message cap can delay urgent discoveries. Compare high-volume cohort opt-outs and discovery outcomes before expanding.
- Risk: Low inventory can make the primary cohort small. Report excluded users with no eligible matches separately.
Architecture notes for the ERD
Resolve matching consistency, publication identity, permission changes, deduplication across searches, batching, rate caps, retries, and cancellation boundaries. Define secure destination links, email opt-out tokens, event attribution, retention, and account deletion. Check existing search and messaging capabilities first. Prototype matching feasibility if reliable publication events or equivalent saved-filter evaluation are unavailable. No service topology or vendor is selected here.
11. Non-visual product requirements
All copy and delivery decisions are
Assumption A3. Counts use available matches at handoff. Do not place precise private location data in lock-screen copy. Use the saved name only inside signed-in product screens. Email includes a scoped opt-out link and account preferences link.
| Channel/state | Copy exploration | Selected copy and action |
|---|---|---|
| Push, single | “A new listing matches” versus “Your search has a new match” | “Your search has a new match” / “Open to view the listing.” Tap opens listing |
| Push, multiple | “New matches are ready” versus count-led copy | “3 new listings match your search” / “Open to view new matches.” Tap opens criteria results |
| Email, single | “A new match for your search” versus “See your latest match” | Subject: “A new match for your search”; heading: “A new listing matches your saved search”; CTA: “View listing” |
| Email, multiple or capped summary | Count-led versus generic summary | Subject: “3 new listings match your search”; body: “New matches are ready. Availability can change.” CTA: “View matches” |
| Email footer | Search-specific versus broad stop control | “Turn off email for this search” and “Manage saved searches”; preference page also offers all saved-search email off |
Email shows listing title, displayed price/currency, and public location when available. Missing optional details are omitted, never invented. No automatic fallback from push to email without the user's email selection. Resume after a global email opt-out requires explicit email opt-in on a saved search; preserve the disabled state for other searches. Unsubscribe never changes transactional account messages.
12. Third-party tools
Assumption A6: Existing email and push providers will be reused. No providers are known or selected. Email depends on sending, failure feedback, and opt-out support. Push depends on platform permission and delivery feedback. Validate these in the ERD. This document authorizes no installation or provider purchase.
13. Is seeding required?
Assumption A6: No fake production listings or pre-created user searches are needed. Use clearly marked test accounts and synthetic listings in staging. Support needs examples of delayed, blocked, paused, and opted-out alerts before beta.
14. Go to market
Assumption A6: Introduce the feature at search results and in saved-search navigation. Explain that users choose channels. Avoid a broad email announcement until beta validates value.
| Risk | Mitigation |
|---|---|
| Irrelevant alerts | Criteria parity checks and a visible saved summary |
| Too many alerts | Batching, caps, scoped controls, and opt-out monitoring |
| Missing or late alerts | Clear expectations, channel status, delivery audit, and support guidance |
| Sensitive query disclosure | Generic notification copy and no raw query analytics |
Launch checklist
- Assign owner and reviewer; record explicit product approval.
- Confirm assumed account, search, email, and push capabilities.
- Review matching and notification-copy examples with target buyers.
- Verify full journeys in staging: save → new listing → each selected channel → correct destination.
- Verify no-alert cases: old inventory, edit, wrong filter, paused search, opt-out, and unavailable listing.
- Verify duplicate search, overlapping matches, rate cap, retries, permissions, and deletion races.
- Retain a repeatable E2E report with test data, expected results, timestamps, and delivery evidence.
- Verify metrics, privacy handling, support guidance, and the delivery stop control.
Known: This run produces a PRD and mockups only. No production feature or integrated delivery test exists. Document validation cannot establish implementation readiness.
15. Glossary
- Saved search: A named set of search criteria owned by a buyer.
- Eligible match: A newly published, public listing that matches an active search after activation.
- Active alert: A saved search with at least one eligible enabled channel and no pause.
- Provider acceptance: The messaging provider accepts a send request; receipt is not guaranteed.
- Handoff: The point after which a message may no longer be cancelable.
- Holdout: Eligible users assigned to the existing experience during the experiment.
No template sections were skipped. Next: after explicit PRD approval and a request for technical planning, use the erd skill. Carry forward exclusions and constraints, and resolve §10. Keep this document as the product source of truth.
search-inline.html
PDF · document
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
About this skill
Plan a feature before your coding agent builds it. This skill is phase 1 of the software factory Dex Horthy (HumanLayer) describes in Why Software Factories Fail. The four phases are product requirements, system architecture, program design, and vertical slices, each with a human review. Agents write code in minutes, but people still review it in hours, so the decisions get made here instead of in the PR. The companion ERD skill covers phases 2 to 4.
What it does
- Sizes the change first. Small changes go straight to the coding agent. Refactors skip to the ERD. Medium changes get a short PRD, and Large changes get the full template.
- Pins the problem in the user's terms before any solution, and labels every claim
Known,Assumption,Risk, orOpen Question. - Defines success you can check later. Each metric gets a definition, a data source, a baseline, a target, and the date to read it.
- Mocks up each new screen as a rough, self-contained HTML file with no framework and no build step.
- Keeps product review in product space. Technical thoughts are parked in a notes-for-architecture section that the ERD resolves.
- Names a reviewer and records approval, so the eventual PR confirms decisions instead of reopening them.
The template
Fifteen sections. Sections 1 to 9 (title and header, description, problem, why, success, audience, what, how, when) are the spine. Sections 10 to 15 (open questions and notes for architecture, non-visual requirements, third-party tools, seeding, go to market, glossary) are added when they apply. A skipped section is named in one line, never left as a silent gap.
Output
Markdown by default, so the next agent reads it as context and Git diffs it cleanly. Mockups are HTML because people look at them rendered. Ask for another format and the skill renders that instead.
Pairs with the ERD skill, which turns the approved PRD into a system architecture, a program design, and a vertical-slice build order.
How to use
Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scanned
Verified clean 4 days ago
- Passed all security checks, Safe to install