--- 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)