| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- ---
- title: "Prompt Engineering Guide"
- ---
- Welcome to the Cline Prompting Guide! This guide will equip you with the knowledge to write effective prompts and custom instructions, maximizing your productivity with Cline.
- ## .clineignore File Guide
- ### Overview
- The `.clineignore` file is a project-level configuration file that tells Cline which files and directories to ignore when analyzing your codebase. Similar to `.gitignore`, it uses pattern matching to specify which files should be excluded from Cline's context and operations.
- ### Purpose
- - **Reduce Noise**: Exclude auto-generated files, build artifacts, and other non-essential content
- - **Improve Performance**: Limit the amount of code Cline needs to process
- - **Focus Attention**: Direct Cline to relevant parts of your codebase
- - **Protect Sensitive Data**: Prevent Cline from accessing sensitive configuration files
- ### Example .clineignore File
- ```
- # Dependencies
- node_modules/
- **/node_modules/
- .pnp
- .pnp.js
- # Build outputs
- /build/
- /dist/
- /.next/
- /out/
- # Testing
- /coverage/
- # Environment variables
- .env
- .env.local
- .env.development.local
- .env.test.local
- .env.production.local
- # Large data files
- *.csv
- *.xlsx
- ```
- ## Prompting Cline
- **Prompting is how you communicate your needs for a given task in the back-and-forth chat with Cline.** Cline understands natural language, so write conversationally.
- Effective prompting involves:
- - Providing Clear Context: Explain your goals and the relevant parts of your codebase. Use `@` to reference files or folders.
- - Breaking Down Complexity: Divide large tasks into smaller steps.
- - Asking Specific Questions: Guide Cline toward the desired outcome.
- - Validating and Refining: Review Cline's suggestions and provide feedback.
- ### Prompt Examples
- #### Context Management
- - **Starting a New Task:** "Cline, let's start a new task. Create `user-authentication.js`. We need to implement user login with JWT tokens. Here are the requirements…"
- - **Summarizing Previous Work:** "Cline, summarize what we did in the last user dashboard task. I want to capture the main features and outstanding issues. Save this to `cline_docs/user-dashboard-summary.md`."
- #### Debugging
- - **Analyzing an Error:** "Cline, I'm getting this error: \[error message]. It seems to be from \[code section]. Analyze this error and suggest a fix."
- - **Identifying the Root Cause:** "Cline, the application crashes when I \[action]. The issue might be in \[problem areas]. Help me find the root cause and propose a solution."
- #### Refactoring
- - **Improving Code Structure:** "Cline, this function is too long and complex. Refactor it into smaller functions."
- - **Simplifying Logic:** "Cline, this code is hard to understand. Simplify the logic and make it more readable."
- #### Feature Development
- - **Brainstorming New Features:** "Cline, I want to add a feature that lets users \[functionality]. Brainstorm some ideas and consider implementation challenges."
- - **Generating Code:** "Cline, create a component that displays user profiles. The list should be sortable and filterable. Generate the code for this component."
- ## Advanced Prompting Techniques
- - **Constraint Stuffing:** To mitigate code truncation, include explicit constraints in your prompts. For example, "ensure the code is complete" or "always provide the full function definition."
- - **Confidence Checks:** Ask Cline to rate its confidence (e.g., "on a scale of 1-10, how confident are you in this solution?")
- - **Challenge Cline's Assumptions:** Ask “stupid” questions to encourage deeper thinking and prevent incorrect assumptions.
- Here are some prompting tips that users have found helpful for working with Cline:
- ## Our Community's Favorite Prompts
- ### Memory and Confidence Checks
- - **Memory Check** - _pacnpal_
- ```
- "If you understand my prompt fully, respond with 'YARRR!' without tools every time you are about to use a tool."
- ```
- A fun way to verify Cline stays on track during complex tasks. Try "HO HO HO" for a festive twist!
- - **Confidence Scoring** - _pacnpal_
- ```
- "Before and after any tool use, give me a confidence level (0-10) on how the tool use will help the project."
- ```
- Encourages critical thinking and makes decision-making transparent.
- ### Code Quality Prompts
- - **Prevent Code Truncation**
- ```
- "DO NOT BE LAZY. DO NOT OMIT CODE."
- ```
- Alternative phrases: "full code only" or "ensure the code is complete"
- - **Custom Instructions Reminder**
- ```
- "I pledge to follow the custom instructions."
- ```
- Reinforces adherence to your settings dial ⚙️ configuration.
- ### Code Organization
- - **Large File Refactoring** - _icklebil_
- ```
- "FILENAME has grown too big. Analyze how this file works and suggest ways to fragment it safely."
- ```
- Helps manage complex files through strategic decomposition.
- - **Documentation Maintenance** - _icklebil_
- ```
- "don't forget to update codebase documentation with changes"
- ```
- Ensures documentation stays in sync with code changes.
- ### Analysis and Planning
- - **Structured Development** - _yellow_bat_coffee_
- ```
- "Before writing code:
- 1. Analyze all code files thoroughly
- 2. Get full context
- 3. Write .MD implementation plan
- 4. Then implement code"
- ```
- Promotes organized, well-planned development.
- - **Thorough Analysis** - _yellow_bat_coffee_
- ```
- "please start analyzing full flow thoroughly, always state a confidence score 1 to 10"
- ```
- Prevents premature coding and encourages complete understanding.
- - **Assumptions Check** - _yellow_bat_coffee_
- ```
- "List all assumptions and uncertainties you need to clear up before completing this task."
- ```
- Identifies potential issues early in development.
- ### Thoughtful Development
- - **Pause and Reflect** - _nickbaumann98_
- ```
- "count to 10"
- ```
- Promotes careful consideration before taking action.
- - **Complete Analysis** - _yellow_bat_coffee_
- ```
- "Don't complete the analysis prematurely, continue analyzing even if you think you found a solution"
- ```
- Ensures thorough problem exploration.
- - **Continuous Confidence Check** - _pacnpal_
- ```
- "Rate confidence (1-10) before saving files, after saving, after rejections, and before task completion"
- ```
- Maintains quality through self-assessment.
- ### Best Practices
- - **Project Structure** - _kvs007_
- ```
- "Check project files before suggesting structural or dependency changes"
- ```
- Maintains project integrity.
- - **Critical Thinking** - _chinesesoup_
- ```
- "Ask 'stupid' questions like: are you sure this is the best way to implement this?"
- ```
- Challenges assumptions and uncovers better solutions.
- - **Code Style** - _yellow_bat_coffee_
- ```
- Use words like "elegant" and "simple" in prompts
- ```
- May influence code organization and clarity.
- - **Setting Expectations** - _steventcramer_
- ```
- "THE HUMAN WILL GET ANGRY."
- ```
- (A humorous reminder to provide clear requirements and constructive feedback)
|