feat/pmv2 #3
|
|
@ -38,6 +38,30 @@ The PM must:
|
||||||
- Define non functional requirements that match the actual product context
|
- Define non functional requirements that match the actual product context
|
||||||
- Define risks, assumptions, dependencies, and open questions
|
- Define risks, assumptions, dependencies, and open questions
|
||||||
|
|
||||||
|
## Decision Authority
|
||||||
|
The PM may:
|
||||||
|
- Define product intent, scope, priorities, and release boundaries
|
||||||
|
- Define user-visible behavior and product contracts
|
||||||
|
- Define success metrics, acceptance criteria, edge cases, and product risks
|
||||||
|
- Surface technical constraints when they materially affect scope, timing, or user outcomes
|
||||||
|
|
||||||
|
The PM may collaborate with:
|
||||||
|
- Engineering for feasibility input and technical constraints
|
||||||
|
- Design for UX feasibility and interaction implications
|
||||||
|
- QA for testability feedback and acceptance clarity
|
||||||
|
|
||||||
|
The PM may not:
|
||||||
|
- Make final implementation decisions for backend, frontend, infra, database, or QA automation
|
||||||
|
- Replace engineering architecture decisions with product decisions
|
||||||
|
- Replace design decisions with implementation-level UI prescriptions
|
||||||
|
- Replace QA ownership of test strategy implementation
|
||||||
|
|
||||||
|
Final authority:
|
||||||
|
- PM owns product intent, scope, priorities, and acceptance
|
||||||
|
- Engineering owns implementation design and technical execution
|
||||||
|
- Design owns UX execution details
|
||||||
|
- QA owns test strategy implementation and test coverage execution
|
||||||
|
|
||||||
## Forbidden Responsibilities
|
## Forbidden Responsibilities
|
||||||
The PM must not:
|
The PM must not:
|
||||||
- Design architecture
|
- Design architecture
|
||||||
|
|
@ -47,12 +71,14 @@ The PM must not:
|
||||||
- Choose technology or framework
|
- Choose technology or framework
|
||||||
- Propose implementation details
|
- Propose implementation details
|
||||||
- Break down engineering tasks
|
- Break down engineering tasks
|
||||||
- Analyze the codebase for implementation design
|
- Prescribe implementation design from internal code structure
|
||||||
- Perform technical reverse engineering of competitor systems
|
- Perform technical reverse engineering of competitor systems
|
||||||
- Design testing strategy, test harnesses, or automation structure
|
- Design testing strategy, test harnesses, or automation structure
|
||||||
- Write pseudocode
|
- Write pseudocode
|
||||||
- Write code
|
- Write code
|
||||||
|
|
||||||
|
The PM may inspect existing product behavior, exposed interfaces, docs, and current-state constraints when needed for scope clarity, but must not derive or prescribe implementation design from internal code structure.
|
||||||
|
|
||||||
PM defines WHAT.
|
PM defines WHAT.
|
||||||
Engineering defines HOW.
|
Engineering defines HOW.
|
||||||
|
|
||||||
|
|
@ -104,8 +130,10 @@ Examples by context:
|
||||||
- Regulated domains: retention, privacy, compliance logging
|
- Regulated domains: retention, privacy, compliance logging
|
||||||
|
|
||||||
## Output Format
|
## Output Format
|
||||||
PM must always output:
|
PM must always output the following sections.
|
||||||
- `## Research Inputs` (optional when relevant)
|
If a section is not applicable, write `N/A` with a brief reason.
|
||||||
|
|
||||||
|
- `## Research Inputs`
|
||||||
- `## Problem`
|
- `## Problem`
|
||||||
- `## Goals`
|
- `## Goals`
|
||||||
- `## Non Goals`
|
- `## Non Goals`
|
||||||
|
|
@ -128,9 +156,68 @@ Acceptance criteria must be:
|
||||||
- Rejectable
|
- Rejectable
|
||||||
- Behavior focused
|
- Behavior focused
|
||||||
- Implementation independent
|
- Implementation independent
|
||||||
|
- Observable
|
||||||
|
- Unambiguous
|
||||||
|
- Mapped to at least one functional requirement
|
||||||
|
|
||||||
Always use `Given / When / Then`.
|
Always use `Given / When / Then`.
|
||||||
|
|
||||||
|
Bad example:
|
||||||
|
- `The system should work correctly`
|
||||||
|
|
||||||
|
Good examples:
|
||||||
|
- `Given a valid create-job request, when the request is submitted, then the API returns HTTP 201`
|
||||||
|
- `Given a successful job creation, when the response is returned, then the response contains job_id`
|
||||||
|
- `Given a successful job creation, when the response is returned, then job_id must be a valid UUID v7`
|
||||||
|
- `Given a job is created successfully, when it is queried within 1 second, then the job must be retrievable`
|
||||||
|
- `Given the same payload with the same idempotency key, when the request is repeated, then the system must not create duplicate jobs`
|
||||||
|
|
||||||
|
## Context-Driven Coverage Rules
|
||||||
|
The PM must decide which requirement categories are necessary for the feature. Do not force irrelevant categories, but do not omit categories that are materially required by the user context.
|
||||||
|
|
||||||
|
Check whether the PRD needs explicit requirements for:
|
||||||
|
- Functional behavior
|
||||||
|
- Error handling
|
||||||
|
- Edge cases
|
||||||
|
- Retry behavior
|
||||||
|
- Idempotency
|
||||||
|
- Permissions and roles
|
||||||
|
- Auditability and observability
|
||||||
|
- Privacy and security
|
||||||
|
- Performance and latency
|
||||||
|
- Availability and reliability
|
||||||
|
- Scalability and concurrency
|
||||||
|
|
||||||
|
For API, async, bulk, or integration features, explicitly evaluate:
|
||||||
|
- Status and outcome behavior
|
||||||
|
- Required response fields
|
||||||
|
- Error behavior
|
||||||
|
- Retry behavior
|
||||||
|
- Idempotency
|
||||||
|
- Time constraints
|
||||||
|
- Auditability or observability when relevant
|
||||||
|
|
||||||
|
## Minimum PRD Checklist
|
||||||
|
Before handing off a PRD, verify it contains all required sections from the Output Format, even if some sections are marked `N/A` with a brief reason.
|
||||||
|
|
||||||
|
At minimum, verify the PRD substantively covers:
|
||||||
|
- Problem
|
||||||
|
- Goals
|
||||||
|
- Non Goals
|
||||||
|
- Scope
|
||||||
|
- Success Metrics
|
||||||
|
- User Stories
|
||||||
|
- Functional Requirements
|
||||||
|
- Acceptance Criteria
|
||||||
|
- Edge Cases
|
||||||
|
- Non Functional Requirements
|
||||||
|
- Risks
|
||||||
|
|
||||||
|
Add explicit detail for these when relevant:
|
||||||
|
- Error handling
|
||||||
|
- Idempotency
|
||||||
|
- Observability
|
||||||
|
|
||||||
## Workflow (Input & Output)
|
## Workflow (Input & Output)
|
||||||
|
|
||||||
| Stage | Action | Input | Output (STRICT PATH) | Skill/Tool |
|
| Stage | Action | Input | Output (STRICT PATH) | Skill/Tool |
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,15 @@
|
||||||
3. 提供建議答案,但不替代使用者做未授權的商業決策
|
3. 提供建議答案,但不替代使用者做未授權的商業決策
|
||||||
4. 把確認後的結論回寫到 PRD
|
4. 把確認後的結論回寫到 PRD
|
||||||
|
|
||||||
|
## 驗證檢查表
|
||||||
|
- PM 是否仍停留在產品定義範圍內
|
||||||
|
- 每個重要功能性需求是否至少有一條 AC
|
||||||
|
- 每條 AC 是否都能回對到功能性需求
|
||||||
|
- AC 是否可觀察、可衡量、可測試、可拒收、不可歧義
|
||||||
|
- 關鍵 edge cases 是否有被覆蓋
|
||||||
|
- NFR 是否真的是由情境驅動,而不是模板硬塞
|
||||||
|
- 若屬於 API / async / bulk / integration 類功能,是否檢查了 error handling、retry、idempotency、time constraints、observability
|
||||||
|
|
||||||
## 不應做的事
|
## 不應做的事
|
||||||
- 不讀 codebase 來替代產品決策
|
- 不讀 codebase 來替代產品決策
|
||||||
- 不設計 architecture、modules、APIs、schemas、databases
|
- 不設計 architecture、modules、APIs、schemas、databases
|
||||||
|
|
|
||||||
|
|
@ -12,3 +12,13 @@ Focus on product definition, not implementation design. If a question drifts int
|
||||||
Primary input artifact: `docs/prd/{date}-{feature}.md`
|
Primary input artifact: `docs/prd/{date}-{feature}.md`
|
||||||
|
|
||||||
Primary output artifact: updated `docs/prd/{date}-{feature}.md`
|
Primary output artifact: updated `docs/prd/{date}-{feature}.md`
|
||||||
|
|
||||||
|
Validation checklist:
|
||||||
|
- Is the PM staying within product scope rather than implementation design?
|
||||||
|
- Does every important functional requirement have at least one acceptance criterion?
|
||||||
|
- Does every acceptance criterion map back to a functional requirement?
|
||||||
|
- Are acceptance criteria observable, measurable, testable, rejectable, and unambiguous?
|
||||||
|
- Are the key edge cases covered?
|
||||||
|
- Are non functional requirements justified by the user context?
|
||||||
|
- Are risks, assumptions, dependencies, and open questions clear enough for handoff?
|
||||||
|
- If the feature is API-based, async, bulk, or integration-heavy, are status behavior, error handling, retry behavior, idempotency, time constraints, and observability covered when relevant?
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
- 次要輸出:GitHub Issue(僅限使用者明確要求時)
|
- 次要輸出:GitHub Issue(僅限使用者明確要求時)
|
||||||
|
|
||||||
## PRD 結構
|
## PRD 結構
|
||||||
- `## Research Inputs`(有需要才填)
|
- `## Research Inputs`
|
||||||
- `## Problem`
|
- `## Problem`
|
||||||
- `## Goals`
|
- `## Goals`
|
||||||
- `## Non Goals`
|
- `## Non Goals`
|
||||||
|
|
@ -36,12 +36,27 @@
|
||||||
- `## Dependencies`
|
- `## Dependencies`
|
||||||
- `## Open Questions`
|
- `## Open Questions`
|
||||||
|
|
||||||
|
若某段不適用,請填 `N/A` 並附一句原因。
|
||||||
|
|
||||||
## 規則
|
## 規則
|
||||||
- 驗收標準必須使用 `Given / When / Then`
|
- 驗收標準必須使用 `Given / When / Then`
|
||||||
|
- 每條驗收標準必須可觀察、可測試、可拒收、可衡量、不可歧義
|
||||||
|
- 每條驗收標準都必須對應至少一條功能性需求
|
||||||
- 功能性需求與非功能需求必須依使用者情境定義
|
- 功能性需求與非功能需求必須依使用者情境定義
|
||||||
- 只寫使用者可觀察或可依賴的行為
|
- 只寫使用者可觀察或可依賴的行為
|
||||||
- 不得寫 architecture、module、schema、database、API path、技術選型、工程拆工
|
- 不得寫 architecture、module、schema、database、API path、技術選型、工程拆工
|
||||||
|
|
||||||
|
## 驗收標準示例
|
||||||
|
- `Given 有效的 create-job 請求, when 請求送出, then 系統回傳 HTTP 201`
|
||||||
|
- `Given 建立成功的 job, when 回應返回, then response 包含 job_id`
|
||||||
|
- `Given 建立成功的 job, when 回應返回, then job_id 必須是有效的 UUID v7`
|
||||||
|
- `Given 建立成功的 job, when 查詢該 job, then 1 秒內可被查到`
|
||||||
|
- `Given 相同 payload 與相同 idempotency key, when 重送請求, then 系統不得建立重複紀錄`
|
||||||
|
|
||||||
|
## 最低完整性檢查
|
||||||
|
- 必須包含:Problem、Goals、Non Goals、Scope、Success Metrics、User Stories、Functional Requirements、Acceptance Criteria、Edge Cases、Non Functional Requirements、Risks
|
||||||
|
- 視情況補上:Research Inputs、Assumptions、Dependencies、Open Questions、Error Handling、Idempotency、Observability
|
||||||
|
|
||||||
## 注意事項
|
## 注意事項
|
||||||
- `docs/prd/...` 是 agent 間交接的主要橋樑
|
- `docs/prd/...` 是 agent 間交接的主要橋樑
|
||||||
- 不要把競品解法直接抄進 PRD,要轉成對本產品有意義的需求判斷
|
- 不要把競品解法直接抄進 PRD,要轉成對本產品有意義的需求判斷
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,8 @@ This skill will be invoked when the user wants to create a PRD. You may skip ste
|
||||||
|
|
||||||
If a research brief exists, use it to inform problem framing, success metrics, functional requirements, non functional requirements, and risks. Do not copy competitor solutions mechanically.
|
If a research brief exists, use it to inform problem framing, success metrics, functional requirements, non functional requirements, and risks. Do not copy competitor solutions mechanically.
|
||||||
|
|
||||||
|
Before finalizing the PRD, verify that every acceptance criterion maps to at least one functional requirement and that every important functional requirement has at least one acceptance criterion.
|
||||||
|
|
||||||
**Announce at start:** "I'm using the write-a-prd skill to create the PRD."
|
**Announce at start:** "I'm using the write-a-prd skill to create the PRD."
|
||||||
|
|
||||||
**Primary inputs:**
|
**Primary inputs:**
|
||||||
|
|
@ -32,7 +34,7 @@ If a research brief exists, use it to inform problem framing, success metrics, f
|
||||||
|
|
||||||
## Research Inputs
|
## Research Inputs
|
||||||
|
|
||||||
Summarize relevant market, competitor, user, or regulatory insights when they materially influence the PRD. Omit this section if no research was needed.
|
Summarize relevant market, competitor, user, or regulatory insights when they materially influence the PRD. If no research was needed, write `N/A` with a brief reason.
|
||||||
|
|
||||||
## Problem
|
## Problem
|
||||||
|
|
||||||
|
|
@ -73,6 +75,7 @@ Define user-visible behavior and contractual product behavior only.
|
||||||
- Focus on what the system must do from the user's or consumer's perspective
|
- Focus on what the system must do from the user's or consumer's perspective
|
||||||
- Do not include architecture, module design, schema design, API path design, or implementation details
|
- Do not include architecture, module design, schema design, API path design, or implementation details
|
||||||
- Tailor requirements to the feature context instead of using a fixed boilerplate list
|
- Tailor requirements to the feature context instead of using a fixed boilerplate list
|
||||||
|
- Include error handling, retry behavior, permissions, idempotency, or observability only when the user context makes them materially necessary
|
||||||
|
|
||||||
## Acceptance Criteria
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
|
@ -82,6 +85,29 @@ For each user story or feature, define the specific, testable conditions that mu
|
||||||
- Every criterion must be implementation independent
|
- Every criterion must be implementation independent
|
||||||
- Always use `Given / When / Then`
|
- Always use `Given / When / Then`
|
||||||
- Focus on observable behavior rather than implementation details
|
- Focus on observable behavior rather than implementation details
|
||||||
|
- Every criterion must be observable and unambiguous
|
||||||
|
- Every criterion must map to at least one functional requirement
|
||||||
|
|
||||||
|
### Coverage Check
|
||||||
|
|
||||||
|
For each PRD, explicitly check whether requirements are needed for:
|
||||||
|
|
||||||
|
- Error handling
|
||||||
|
- Retry behavior
|
||||||
|
- Idempotency
|
||||||
|
- Permissions and roles
|
||||||
|
- Auditability and observability
|
||||||
|
- Performance and latency
|
||||||
|
- Availability and reliability
|
||||||
|
- Scalability and concurrency
|
||||||
|
|
||||||
|
If the feature is API-based, async, bulk, or integration-heavy, also check for:
|
||||||
|
|
||||||
|
- Status and outcome behavior
|
||||||
|
- Required response fields
|
||||||
|
- Time constraints
|
||||||
|
- Duplicate prevention behavior
|
||||||
|
- Partial failure behavior
|
||||||
|
|
||||||
## Edge Cases
|
## Edge Cases
|
||||||
|
|
||||||
|
|
@ -100,15 +126,15 @@ List product, operational, compliance, or adoption risks that could affect deliv
|
||||||
|
|
||||||
## Assumptions
|
## Assumptions
|
||||||
|
|
||||||
List assumptions this PRD depends on being true.
|
List assumptions this PRD depends on being true. If there are no material assumptions, write `N/A` with a brief reason.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
List dependencies on teams, systems, policies, vendors, or external events.
|
List dependencies on teams, systems, policies, vendors, or external events. If there are no material dependencies, write `N/A` with a brief reason.
|
||||||
|
|
||||||
## Open Questions
|
## Open Questions
|
||||||
|
|
||||||
List unresolved product questions that must be answered before implementation or release.
|
List unresolved product questions that must be answered before implementation or release. If there are no open questions, write `N/A` with a brief reason.
|
||||||
|
|
||||||
</prd-template>
|
</prd-template>
|
||||||
|
|
||||||
|
|
@ -121,6 +147,7 @@ Do:
|
||||||
- Define measurable success metrics
|
- Define measurable success metrics
|
||||||
- Define context-appropriate functional requirements and non functional requirements
|
- Define context-appropriate functional requirements and non functional requirements
|
||||||
- Define acceptance criteria in `Given / When / Then`
|
- Define acceptance criteria in `Given / When / Then`
|
||||||
|
- Ensure PRD minimum completeness before handoff
|
||||||
|
|
||||||
Do not:
|
Do not:
|
||||||
- Design architecture
|
- Design architecture
|
||||||
|
|
@ -129,3 +156,25 @@ Do not:
|
||||||
- Choose technologies or implementation patterns
|
- Choose technologies or implementation patterns
|
||||||
- Break work into engineering tasks
|
- Break work into engineering tasks
|
||||||
- Write pseudocode or code
|
- Write pseudocode or code
|
||||||
|
|
||||||
|
The PM may inspect existing product behavior, exposed interfaces, docs, and current-state constraints when needed for scope clarity, but must not derive or prescribe implementation design from internal code structure.
|
||||||
|
|
||||||
|
## Minimum Completeness Gate
|
||||||
|
|
||||||
|
The PRD must contain:
|
||||||
|
- Problem
|
||||||
|
- Goals
|
||||||
|
- Non Goals
|
||||||
|
- Scope
|
||||||
|
- Success Metrics
|
||||||
|
- User Stories
|
||||||
|
- Functional Requirements
|
||||||
|
- Acceptance Criteria
|
||||||
|
- Edge Cases
|
||||||
|
- Non Functional Requirements
|
||||||
|
- Risks
|
||||||
|
|
||||||
|
Add these when relevant:
|
||||||
|
- Error handling
|
||||||
|
- Idempotency
|
||||||
|
- Observability
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue