buster/api/prds/template.md

152 lines
2.5 KiB
Markdown
Raw Normal View History

2025-04-08 05:13:25 +08:00
---
title: Component Name
author: Your Name
date: YYYY-MM-DD
status: Draft
ticket: TICKET-ID
---
# Component Name
## Problem Statement
2025-03-12 00:58:17 +08:00
<!--
Clearly articulate the problem you're solving. Include:
2025-04-08 05:13:25 +08:00
- Current state and behavior
- Expected behavior
2025-03-12 00:58:17 +08:00
- Pain points
- Impact on users/system
- Why it needs to be solved now
- Any relevant metrics or data
-->
2025-04-08 05:13:25 +08:00
Current behavior:
- [Current behavior 1]
- [Current behavior 2]
- [Current behavior 3]
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
Expected behavior:
- [Expected behavior 1]
- [Expected behavior 2]
- [Expected behavior 3]
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
## Goals
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
<!-- List specific, measurable goals this change will achieve -->
1.
2.
3.
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
## Non-Goals
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
<!-- List what is explicitly out of scope -->
1.
2.
3.
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
## Implementation Plan
2025-03-12 00:58:17 +08:00
<!--
2025-04-08 05:13:25 +08:00
Break down the implementation into phases. Each phase should:
- Be independently deployable
- Include its own technical design
- Have clear success criteria
- Include comprehensive tests
2025-03-12 00:58:17 +08:00
-->
2025-04-08 05:13:25 +08:00
### Phase 1: [Name] ⏳ (In Progress)
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
#### Technical Design
<!-- Include technical details specific to this phase -->
2025-03-12 00:58:17 +08:00
```rust
// Include actual code structures/types
struct ComponentName {
field1: Type1, // Purpose of field1
field2: Type2, // Purpose of field2
}
```
2025-04-08 05:13:25 +08:00
#### Database Changes
<!-- If applicable -->
2025-03-12 00:58:17 +08:00
```sql
2025-04-08 05:13:25 +08:00
-- Include actual SQL
2025-03-12 00:58:17 +08:00
CREATE TABLE new_table (
id UUID PRIMARY KEY,
2025-04-08 05:13:25 +08:00
field1 TYPE1 -- Purpose
2025-03-12 00:58:17 +08:00
);
```
2025-04-08 05:13:25 +08:00
#### Implementation Steps
1. [ ] Step 1
- Technical details
- Edge cases to handle
- Testing requirements
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
2. [ ] Step 2
- Technical details
- Edge cases to handle
- Testing requirements
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
#### Tests
2025-03-12 00:58:17 +08:00
2025-04-08 05:13:25 +08:00
##### Unit Tests
2025-03-12 00:58:17 +08:00
```rust
#[cfg(test)]
mod tests {
#[test]
2025-04-08 05:13:25 +08:00
fn test_normal_case() {
// Test implementation
}
#[test]
fn test_edge_case_1() {
2025-03-12 00:58:17 +08:00
// Test implementation
}
}
```
2025-04-08 05:13:25 +08:00
##### Integration Tests
- Test Scenario: [Description]
- Setup:
- Required data
- System state
- Steps:
1. Action 1
2. Action 2
- Assertions:
- Expected state
- Error cases
- Edge Cases:
- Case 1
- Case 2
#### Success Criteria
- [ ] Criterion 1
- [ ] Criterion 2
- [ ] All tests passing
### Phase 2: [Name] 🔜 (Not Started)
[Similar structure to Phase 1]
## Security Considerations
<!-- List security implications and how they're addressed -->
- Consideration 1
- Risk:
- Mitigation:
- Testing:
## Dependencies
<!-- List external dependencies and affected components -->
1. Component 1
- Interface changes:
- Testing requirements:
## References
<!-- Include links to relevant documentation -->
- [Link to design docs]
- [Link to related PRDs]