Characteristics of Good Prompts
Good prompts are:- Concrete: Clearly describe what functionality should be added or what error needs fixing.
- Location-specific: Specify the locations in the codebase that should be modified, if known.
- Appropriately scoped: Focus on a single feature, typically not exceeding 100 lines of code.
Examples
Good Prompt Examples
- Add a function
calculate_average
inutils/math_operations.py
that takes a list of numbers as input and returns their average. - Fix the TypeError in
frontend/src/components/UserProfile.tsx
occurring on line 42. The error suggests we’re trying to access a property of undefined. - Implement input validation for the email field in the registration form. Update
frontend/src/components/RegistrationForm.tsx
to check if the email is in a valid format before submission.
Bad Prompt Examples
- Make the code better. (Too vague, not concrete)
- Rewrite the entire backend to use a different framework. (Not appropriately scoped)
- There’s a bug somewhere in the user authentication. Can you find and fix it? (Lacks specificity and location information)
Tips for Effective Prompting
- Be as specific as possible about the desired outcome or the problem to be solved.
- Provide context, including relevant file paths and line numbers if available.
- Break large tasks into smaller, manageable prompts.
- Include relevant error messages or logs.
- Specify the programming language or framework, if not obvious.