Loading...
Loading...
Compare original and translation side by side
prd-writingtechnical-spec-writingfeature-spec-reviewingprd-writingtechnical-spec-writingfeature-spec-reviewing| Aspect | PRD | Feature Spec |
|---|---|---|
| Scope | Product/Initiative | Single Feature |
| Audience | Stakeholders | Engineers |
| Detail Level | High-level | Implementation-ready |
| Edge Cases | Summary | Exhaustive |
| User Stories | Multiple (3-7) | Single primary + variants |
| Success Metrics | Business outcomes | Feature-level KPIs |
| 维度 | PRD | 功能规格说明书 |
|---|---|---|
| 范围 | 产品/项目整体 | 单一功能 |
| 受众 | 利益相关方 | 开发工程师 |
| 详细程度 | 高层级概述 | 可直接落地 |
| 边缘场景 | 概要提及 | 全面覆盖 |
| 用户故事 | 多个(3-7个) | 单个核心故事+变体 |
| 成功指标 | 业务成果 | 功能级KPI |
check-historyQuestions to gather:
1. Which PRD/user story does this feature implement?
2. What's the single-sentence feature description?
3. Who is the primary user persona?
4. What technical constraints exist?
5. What's the target implementation timeline?check-history需要收集的问题:
1. 本功能对应哪个PRD/用户故事?
2. 用一句话描述该功能?
3. 核心用户角色是什么?
4. 存在哪些技术约束?
5. 目标落地时间线是什么?**Feature:** [Verb] [what] for [whom] to [achieve outcome]
Examples:
✅ "Display shipping cost estimates on product pages for shoppers to compare options before checkout"
✅ "Allow admins to create custom permission roles to match their organization structure"
✅ "Send real-time push notifications for transactions to help users detect fraud immediately"
❌ "Improve the shipping experience" (too vague)
❌ "Add role management" (missing who and why)**功能:** [动作] [对象] 为了[用户] 达成[目标]
示例:
✅ "在商品页面展示运费估算,方便购物者在结账前对比选项"
✅ "允许管理员创建自定义权限角色,以匹配其组织架构"
✅ "发送交易实时推送通知,帮助用户立即检测欺诈行为"
❌ "优化配送体验"(过于模糊)
❌ "添加角色管理"(缺少用户和目标)undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined| Error Condition | User Message | System Action | Recovery |
|---|---|---|---|
| Invalid input | "Please enter valid X" | Highlight field | User corrects |
| Network failure | "Connection lost. Retrying..." | Auto-retry 3x | Manual retry button |
| Server error | "Something went wrong" | Log error, alert oncall | Show support contact |
| Timeout | "Taking too long" | Cancel request | Offer retry |
| Not found | "Item not available" | 404 response | Suggest alternatives |
| Unauthorized | "Access denied" | 403 response | Redirect to login |
| Rate limited | "Too many requests" | 429 response | Show wait time |
undefined| 错误条件 | 用户提示 | 系统动作 | 恢复方式 |
|---|---|---|---|
| 无效输入 | "请输入有效的X" | 高亮字段 | 用户修正输入 |
| 网络故障 | "连接断开,正在重试..." | 自动重试3次 | 手动重试按钮 |
| 服务器错误 | "出现了一些问题" | 记录错误,通知值班人员 | 显示支持联系方式 |
| 请求超时 | "耗时过长" | 取消请求 | 提供重试选项 |
| 资源不存在 | "该商品不可用" | 返回404响应 | 推荐替代选项 |
| 未授权 | "访问被拒绝" | 返回403响应 | 重定向至登录页 |
| 请求频率受限 | "请求过于频繁" | 返回429响应 | 显示等待时间 |
undefinedundefinedundefinedundefinedundefinedundefinedundefined| Dependency | Type | Status | Owner |
|---|---|---|---|
| [API/Service] | Internal | Ready/Pending | [Team] |
| [Third-party] | External | Integrated/Pending | [Vendor] |
| 依赖项 | 类型 | 状态 | 负责人 |
|---|---|---|---|
| [API/服务] | 内部 | 就绪/待就绪 | [团队] |
| [第三方服务] | 外部 | 已集成/待集成 | [供应商] |
| Requirement | Target | Measurement |
|---|---|---|
| Response time | < 200ms p95 | APM |
| Availability | 99.9% | Monitoring |
| Throughput | 1000 req/s | Load test |
| 需求 | 目标 | 衡量方式 |
|---|---|---|
| 响应时间 | p95 < 200ms | APM监控 |
| 可用性 | 99.9% | 监控系统 |
| 吞吐量 | 1000 req/s | 负载测试 |
undefinedundefinedAs a shopper browsing the catalog,
I want to preview product details without leaving the page,
so that I can quickly evaluate products and continue browsing.Scenario: Quick view on hover
Given I am on the product catalog page
When I hover over a product card for 500ms
Then a quick view modal appears
And shows product image, name, price, and sizes
And shows "Add to Cart" and "View Details" buttons
Scenario: Quick view on mobile
Given I am on mobile device
When I tap the quick view icon on a product card
Then a bottom sheet slides up with product details
Scenario: Image gallery in quick view
Given the quick view modal is open
When I click the next arrow
Then the next product image displays
And current position indicator updates| Condition | Message | Action |
|---|---|---|
| Image load failure | Shows placeholder | Retry on visibility |
| Product out of stock | "Sold Out" badge | Hide Add to Cart |
| Network timeout | "Loading..." | Show retry button |
作为浏览商品列表的购物者,
我希望无需离开当前页面即可预览商品详情,
以便快速评估商品并继续浏览。场景:Hover触发快速预览
假设我在商品列表页
当我hover商品卡片500ms
则快速预览模态框弹出
且显示商品图片、名称、价格和尺码
且显示"加入购物车"和"查看详情"按钮
场景:移动端快速预览
假设我使用移动设备
当我点击商品卡片上的快速预览图标
则底部滑出面板显示商品详情
场景:快速预览中的图片画廊
假设快速预览模态框已打开
当我点击下一页箭头
则显示下一张商品图片
且当前位置指示器更新| 条件 | 提示 | 动作 |
|---|---|---|
| 图片加载失败 | 显示占位图 | 可见时自动重试 |
| 商品售罄 | 显示"已售罄"徽章 | 隐藏加入购物车按钮 |
| 网络超时 | "加载中..." | 显示重试按钮 |
As an organization admin,
I want to configure exactly what each role can access,
so that I can enforce our security policies.Variant A - Bulk Permission Update:
As an admin managing many roles,
I want to update permissions across multiple roles at once,
so that I can efficiently apply policy changes.
Variant B - Permission Templates:
As an admin setting up a new role,
I want to start from a template,
so that I don't have to configure from scratch.Scenario: Grant permission to role
Given I am editing the "Manager" role
And I expand the "Reports" permission group
When I toggle "View Financial Reports" to enabled
Then the permission is added to the role
And a "Save Changes" button appears
And no changes are persisted until I click Save
Scenario: Permission dependency
Given "Edit Reports" requires "View Reports"
When I enable "Edit Reports"
Then "View Reports" is automatically enabled
And shows "Required by Edit Reports" tooltip
Scenario: Conflicting permissions
Given the role has "View All Data"
When I try to add "Restrict to Own Data"
Then a conflict warning appears
And I must resolve before saving作为组织管理员,
我希望能精确配置每个角色的访问权限,
以便执行我们的安全策略。变体A - 批量权限更新:
作为管理多个角色的管理员,
我希望能一次性更新多个角色的权限,
以便高效应用策略变更。
变体B - 权限模板:
作为创建新角色的管理员,
我希望能从模板开始配置,
以便无需从零开始设置。场景:为角色授予权限
假设我正在编辑"经理"角色
且我展开了"报表"权限组
当我将"查看财务报表"切换为启用状态
则该权限被添加至角色
且出现"保存更改"按钮
且点击保存前不会持久化更改
场景:权限依赖
假设"编辑报表"依赖"查看报表"
当我启用"编辑报表"
则"查看报表"自动启用
且显示"被编辑报表权限依赖"提示
场景:权限冲突
假设角色已拥有"查看所有数据"权限
当我尝试添加"仅查看自有数据"权限
则显示冲突警告
且必须解决冲突后才能保存As a cardholder who received a suspicious transaction alert,
I want to dispute the charge immediately from the notification,
so that I can protect my account without calling support.Scenario: Initiate dispute from alert
Given I received a transaction alert
When I tap "Dispute This Charge"
Then I see dispute reason options
And can select "Fraudulent", "Duplicate", "Not Received", "Other"
Scenario: Upload supporting documents
Given I selected "Not Received" as dispute reason
When I reach the evidence step
Then I can upload photos or documents
And supported formats are JPG, PNG, PDF
And max file size is 10MB
Scenario: Dispute submission confirmation
Given I completed all dispute steps
When I tap "Submit Dispute"
Then I see confirmation with case number
And I receive email confirmation
And card is temporarily frozen pending review| Condition | Message | Action |
|---|---|---|
| File too large | "File exceeds 10MB limit" | Offer compression |
| Invalid file type | "Please upload JPG, PNG, or PDF" | Show accepted types |
| Submission failed | "Couldn't submit. Saved as draft." | Auto-save, retry later |
| Duplicate dispute | "Dispute already filed for this transaction" | Show existing case |
作为收到可疑交易通知的持卡人,
我希望能直接从通知中立即发起争议,
以便无需联系客服即可保护我的账户。场景:从通知发起争议
假设我收到了交易通知
当我点击"争议此交易"
则我看到争议原因选项
且可选择"欺诈交易"、"重复扣款"、"未收到商品"、"其他"
场景:上传支持文档
假设我选择"未收到商品"作为争议原因
当我进入证据步骤
则我可以上传照片或文档
且支持格式为JPG、PNG、PDF
且最大文件大小为10MB
场景:争议提交确认
假设我完成了所有争议步骤
当我点击"提交争议"
则我看到包含案件编号的确认信息
且我收到邮件确认
且卡片在审核期间被临时冻结| 条件 | 提示 | 动作 |
|---|---|---|
| 文件过大 | "文件超过10MB限制" | 提供压缩建议 |
| 无效文件类型 | "请上传JPG、PNG或PDF格式文件" | 显示支持的格式 |
| 提交失败 | "提交失败,已保存为草稿" | 自动保存,支持稍后重试 |
| 重复争议 | "此交易已提交争议" | 显示现有案件信息 |
❌ "User authentication feature" (multiple features bundled)
✅ "Password reset via email flow" (single, focused feature)❌ "用户认证功能"(多个功能捆绑)
✅ "邮箱重置密码流程"(单一、聚焦的功能)❌ Only documenting happy path
✅ Including validation, errors, timeouts, rate limits❌ 仅记录正常流程
✅ 包含验证、错误、超时、频率限制等场景❌ "User can see products quickly"
✅ "Quick view modal appears within 300ms of hover"❌ "用户可以快速查看商品"
✅ "hover后300ms内弹出快速预览模态框"❌ Assuming everything works
✅ Documenting what happens when things fail❌ 假设所有流程都能正常运行
✅ 记录故障时的处理逻辑❌ "Use Redis for caching with 5-minute TTL"
✅ "Response should be cached for improved performance"
(Save implementation details for technical spec)❌ "使用Redis缓存,TTL为5分钟"
✅ "响应应被缓存以提升性能"
(实现细节请留到技术规格文档中)prd-writingprd-reviewingfeature-spec-reviewingtechnical-spec-writingsparc-planningprd-writingprd-reviewingfeature-spec-reviewingtechnical-spec-writingsparc-planningspecification-architectspecification-architect