diff options
Diffstat (limited to 'default/.claude/commands/promptengineering/convert-to-test-driven-prompt.md')
| -rw-r--r-- | default/.claude/commands/promptengineering/convert-to-test-driven-prompt.md | 156 |
1 files changed, 156 insertions, 0 deletions
diff --git a/default/.claude/commands/promptengineering/convert-to-test-driven-prompt.md b/default/.claude/commands/promptengineering/convert-to-test-driven-prompt.md new file mode 100644 index 0000000..eb65a7e --- /dev/null +++ b/default/.claude/commands/promptengineering/convert-to-test-driven-prompt.md @@ -0,0 +1,156 @@ +# Convert to Test-Driven Prompt + +Transform user requests into Test-Driven Development (TDD) style prompts that explicitly define expected outcomes, test cases, and success criteria before implementation. + +## Usage Examples + +### Basic Usage +"Convert this to TDD: Add a user authentication feature" +"Make this test-driven: Create a shopping cart component" +"TDD version: Implement data validation for the form" + +### With File Input +`/convert-to-test-driven-prompt @path/to/prompt-file.md` +`/convert-to-test-driven-prompt @../other-project/feature-request.txt` + +### Complex Scenarios +"Convert to TDD: Refactor the payment processing module" +"Test-driven approach for: API rate limiting feature" +"TDD prompt for: Database migration script" + +## Instructions for Claude + +When converting to TDD prompts: + +### Input Handling +- If `$ARGUMENTS` is provided, read the file at that path to get the prompt to convert +- If no `$ARGUMENTS`, use the user's direct input as the prompt to convert +- Support relative and absolute file paths + +1. **Extract Requirements**: Identify core functionality from the original request +2. **Define Test Cases**: Create specific, measurable test scenarios +3. **Specify Expected Outcomes**: Clear success and failure criteria +4. **Structure for Implementation**: Organize prompt for red-green-refactor cycle +5. **Include Edge Cases**: Don't forget boundary conditions and error scenarios + +### TDD Prompt Structure + +#### 1. Objective Statement +Clear, concise description of what needs to be built + +#### 2. Test Specifications +``` +GIVEN: [Initial state/context] +WHEN: [Action performed] +THEN: [Expected outcome] +``` + +#### 3. Success Criteria +- Specific, measurable outcomes +- Performance requirements +- Error handling expectations +- Edge case behaviors + +#### 4. Test Cases Format +```markdown +Test Case 1: [Descriptive name] +- Input: [Specific input data] +- Expected Output: [Exact expected result] +- Validation: [How to verify success] + +Test Case 2: [Edge case name] +- Input: [Boundary/error condition] +- Expected Output: [Error handling result] +- Validation: [Error verification method] +``` + +### Conversion Examples + +#### Original Request: +"Add user login functionality" + +#### TDD Conversion: +```markdown +## Objective +Implement secure user login with email/password authentication + +## Test Specifications + +### Test 1: Successful Login +GIVEN: Valid user credentials exist in database +WHEN: User submits correct email and password +THEN: User receives auth token and is redirected to dashboard + +### Test 2: Invalid Password +GIVEN: Valid email but incorrect password +WHEN: User submits login form +THEN: Return error "Invalid credentials" without revealing which field is wrong + +### Test 3: Non-existent User +GIVEN: Email not in database +WHEN: User attempts login +THEN: Return same "Invalid credentials" error (prevent user enumeration) + +### Test 4: Rate Limiting +GIVEN: User has failed 5 login attempts +WHEN: User attempts 6th login within 15 minutes +THEN: Block attempt and show "Too many attempts" error + +## Success Criteria +- All tests pass +- Password is hashed using bcrypt +- Auth tokens expire after 24 hours +- Login attempts are logged +- Response time < 200ms +``` + +### Output Format + +Generate TDD prompt as: + +```markdown +## TDD Prompt: [Feature Name] + +### Objective +[Clear description of the feature to implement] + +### Test Suite + +#### Happy Path Tests +[List of successful scenario tests] + +#### Error Handling Tests +[List of failure scenario tests] + +#### Edge Case Tests +[List of boundary condition tests] + +### Implementation Requirements +- [ ] All tests must pass +- [ ] Code coverage > 80% +- [ ] Performance criteria met +- [ ] Security requirements satisfied + +### Test-First Development Steps +1. Write failing test for [first requirement] +2. Implement minimal code to pass +3. Refactor while keeping tests green +4. Repeat for next requirement + +### Example Test Implementation +```language +// Example test code structure +describe('FeatureName', () => { + it('should [expected behavior]', () => { + // Test implementation + }); +}); +``` +``` + +Remember to: +- Focus on behavior, not implementation details +- Make tests specific and measurable +- Include both positive and negative test cases +- Consider performance and security in tests +- Structure for iterative TDD workflow
\ No newline at end of file |
