LogoCursor
Improving Your Prompting Skills

提示工程指南

欢迎阅读 Cline 提示工程指南!本指南将帮助你编写高效的提示语和自定义指令,最大化提升你在 Cline 上的生产力。

自定义指令 ⚙️

自定义指令视为 Cline 的"编程"。它们定义了 Cline 的基础行为,并始终生效,影响所有交互。指令可以宽泛抽象,也可以具体明确。你可以让 Cline 拥有独特的个性、输出特定格式的内容,或遵循某些架构原则。自定义指令能让 Cline 的输出标准化,尤其适合团队协作。参见企业版章节了解团队场景下的用法。

注意:修改自定义指令字段会重置 Cline 的提示缓存,丢弃已积累的上下文。这会导致短暂的成本上升,直到上下文重新积累。建议在会话之间更新自定义指令。

添加自定义指令的方法:

  1. 打开 VSCode
  2. 点击 Cline 扩展设置 ⚙️
  3. 找到"Custom Instructions"字段
  4. 粘贴你的指令

自定义指令的常见用途:

  • 强制执行代码风格与最佳实践:确保 Cline 始终遵循团队的代码规范、命名规范和最佳实践。
  • 提升代码质量:鼓励 Cline 编写更易读、可维护、高效的代码。
  • 引导错误处理:告知 Cline 如何处理错误、编写错误信息和日志。

.clinerules 文件 📋

注意:修改 .clinerules 文件会重置 Cline 的提示缓存,丢弃已积累的上下文。这会导致短暂的成本上升,直到上下文重新积累。建议在会话之间更新 .clinerules 文件。

自定义指令是用户级、全局生效(适用于所有项目),而 .clinerules 文件则提供项目级专属指令,存放于项目根目录。这些指令会自动附加到你的自定义指令,并在 Cline 的系统提示中引用,确保影响项目内的所有交互。适用于:

常见用途

  • 维护团队成员间的项目标准
  • 强制执行开发规范
  • 管理文档要求
  • 设置分析框架
  • 定义项目专属行为

.clinerules 文件结构示例

# 项目规范
## 文档要求
- 修改功能时同步更新 /docs 相关文档
- 保持 README.md 与新功能同步
- 在 CHANGELOG.md 维护变更记录
## 架构决策记录
在 /docs/adr 创建 ADR 以记录:
- 主要依赖变更
- 架构模式变更
- 新集成模式
- 数据库结构变更
遵循 /docs/adr/template.md 模板
## 代码风格与模式
- 使用 OpenAPI Generator 生成 API 客户端
- 使用 TypeScript axios 模板
- 生成代码放在 /src/generated
- 优先使用组合而非继承
- 数据访问采用 repository 模式
- 错误处理遵循 /src/utils/errors.ts
## 测试标准
- 业务逻辑需单元测试
- API 端点需集成测试
- 关键用户流程需 E2E 测试

主要优势

  1. 版本可控.clinerules 文件作为项目源码的一部分
  2. 团队一致性:确保所有成员行为一致
  3. 项目专属:规则和标准可针对每个项目定制
  4. 知识沉淀:在代码中维护项目标准与实践

.clinerules 文件放在项目根目录:

your-project/
├── .clinerules
├── src/
├── docs/
└── ...

Cline 的系统提示不可由用户编辑(可在此查看)。更多提示工程最佳实践可参考此资源

编写高效自定义指令的建议

  • 清晰简明:使用简单语言,避免歧义
  • 聚焦结果:描述你想要的结果,而非具体步骤
  • 测试与迭代:多尝试,找到最适合你工作流的写法

.clinerules 文件夹系统 📂

对于简单项目,单一 .clinerules 文件已足够。Cline 现支持 .clinerules 文件夹,便于更复杂的规则组织。这种模块化方式有诸多优势:

工作原理

在项目根目录创建 .clinerules/ 文件夹,而非单一文件:

your-project/
├── .clinerules/              # 存放激活规则的文件夹
│   ├── 01-coding.md          # 核心代码规范
│   ├── 02-documentation.md   # 文档要求
│   └── current-sprint.md     # 当前冲刺专属规则
├── src/
└── ...

Cline 会自动处理 .clinerules/ 文件夹下所有 Markdown 文件,合并为一套完整规则。数字前缀(可选)有助于逻辑排序。

规则库用法

多上下文或多团队项目可维护一个规则库目录:

your-project/
├── .clinerules/              # 激活规则,自动应用
│   ├── 01-coding.md
│   └── client-a.md

├── clinerules-bank/          # 可用但未激活的规则库
│   ├── clients/              # 客户端专属规则
│   │   ├── client-a.md
│   │   └── client-b.md
│   ├── frameworks/           # 框架专属规则
│   │   ├── react.md
│   │   └── vue.md
│   └── project-types/        # 项目类型标准
│       ├── api-service.md
│       └── frontend-app.md
└── ...

文件夹方式的优势

  1. 上下文激活:仅将相关规则从库中复制到激活文件夹
  2. 易于维护:单独更新规则文件互不影响
  3. 团队灵活性:不同成员可激活当前任务专属规则
  4. 减少干扰:保持激活规则集聚焦且相关

用法示例

切换客户端项目:

# 切换到 Client B 项目
rm .clinerules/client-a.md
cp clinerules-bank/clients/client-b.md .clinerules/

适配不同技术栈:

# 前端 React 项目
cp clinerules-bank/frameworks/react.md .clinerules/

实施建议

  • 保持单个规则文件聚焦于特定关注点
  • 使用描述性文件名,清晰指明规则用途
  • 可将激活的 .clinerules/ 文件夹 gitignore,仅跟踪 clinerules-bank/
  • 编写团队脚本,快速激活常用规则组合

文件夹系统让你的 Cline 规则从静态文档变为可适应团队变化的动态知识体系。


使用可切换弹窗管理规则

为简化单文件和文件夹系统的管理,Cline v3.13 在聊天界面下方引入了专用弹窗 UI。

该弹窗可让你:

  • 即时查看激活规则:显示当前全局规则(用户设置)和工作区规则(.clinerules 文件或文件夹内容)
  • 快速切换规则:一键启用/禁用工作区 .clinerules/ 文件夹内的特定规则文件,便于按需激活如 react-rules.mdmemory-bank.md
  • 便捷添加/管理规则:快速创建 .clinerules 文件或文件夹,或向现有文件夹添加新规则文件

该 UI 显著简化了上下文切换和多指令集管理,无需在会话中手动编辑文件或配置。


.clineignore 文件指南

概述

.clineignore 文件是项目级配置文件,告知 Cline 在分析代码库时应忽略哪些文件和目录。类似 .gitignore,它通过模式匹配指定哪些内容应排除在 Cline 的上下文和操作之外。

作用

  • 减少干扰:排除自动生成文件、构建产物等非核心内容
  • 提升性能:减少 Cline 需处理的代码量
  • 聚焦重点:引导 Cline 关注代码库的关键部分
  • 保护敏感数据:防止 Cline 访问敏感配置文件

.clineignore 文件示例

# 依赖
node_modules/
**/node_modules/
.pnp
.pnp.js
# 构建产物
/build/
/dist/
/.next/
/out/
# 测试
/coverage/
# 环境变量
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# 大型数据文件
*.csv
*.xlsx

Cline 提示语编写 💬

**提示语是你与 Cline 进行任务沟通的方式。**Cline 能理解自然语言,请用对话方式表达。

高效提示语包括:

  • 提供清晰上下文:说明你的目标和相关代码部分。可用 @ 引用文件或文件夹。
  • 分解复杂任务:将大任务拆解为小步骤。
  • 提出具体问题:引导 Cline 达到期望结果。
  • 验证与完善:审查 Cline 建议并反馈。

提示语示例

上下文管理

  • 开始新任务

    Cline,我们开始一个新任务。创建 user-authentication.js,需要实现基于 JWT 的用户登录。需求如下……

  • 总结前期工作

    Cline,总结上次用户面板任务的内容,需涵盖主要功能和未解决问题。保存到 cline_docs/user-dashboard-summary.md

调试

  • 分析错误

    Cline,我遇到这个错误:[error message],似乎出现在 [code section]。请分析并给出修复建议。

  • 定位根因

    Cline,应用在我执行 [action] 时崩溃,问题可能在 [problem areas]。帮我找出根因并提出解决方案。

重构

  • 优化代码结构

    Cline,这个函数太长太复杂了,请拆分为更小的函数。

  • 简化逻辑

    Cline,这段代码难以理解,请简化逻辑并提升可读性。

功能开发

  • 头脑风暴新功能

    Cline,我想加一个让用户 [functionality] 的功能,帮我头脑风暴一些方案并考虑实现难点。

  • 生成代码

    Cline,创建一个展示用户资料的组件,列表需支持排序和筛选。请生成该组件代码。


高级提示技巧

  • 约束补充:为防止代码被截断,在提示中明确要求"确保代码完整"或"始终给出完整函数定义"。
  • 信心评分:让 Cline 对方案信心打分(如"1-10 分,你对该方案有多大信心?")。
  • 挑战假设:多问"愚蠢"问题,促使 Cline 深度思考,避免错误假设。

以下是社区用户总结的 Cline 提示技巧:


社区精选提示 🌟

记忆与信心检查 🧠

  • 记忆检查 - pacnpal

    如果你完全理解我的提示,每次即将使用工具时回复"YARRR!",且不要用工具。

    趣味方式,确保 Cline 在复杂任务中保持正确轨迹。也可用"HO HO HO"增添节日气氛!

  • 信心评分 - pacnpal

    每次使用工具前后,给出该工具对项目帮助的信心分(0-10)。

    鼓励批判性思考,让决策更透明。

代码质量提示 💻

  • 防止代码截断

    不要偷懒,不要省略代码。

    也可用"只给完整代码"或"确保代码完整"。

  • 自定义指令提醒

    我承诺遵循自定义指令。

    强化对设置项的遵循。

代码组织 📋

  • 大文件重构 - icklebil

    FILENAME 文件太大了。分析其工作原理并建议如何安全拆分。

    帮助管理复杂文件,便于结构优化。

  • 文档维护 - icklebil

    记得同步更新代码库文档。

    确保文档与代码变更同步。

分析与规划 🔍

  • 结构化开发 - yellow_bat_coffee

    写代码前:1. 全面分析所有代码文件 2. 获取完整上下文 3. 写 .MD 实现计划 4. 再实现代码

    推动有序、计划性开发。

  • 彻底分析 - yellow_bat_coffee

    请先彻底分析全流程,并始终给出 1-10 的信心分。

    防止过早编码,确保充分理解。

  • 假设检查 - yellow_bat_coffee

    在完成任务前,列出所有假设和不确定点。

    及早发现潜在问题。

慎思明辨 🤔

  • 暂停反思 - nickbaumann98

    数到 10。

    鼓励行动前深思熟虑。

  • 完整分析 - yellow_bat_coffee

    不要过早结束分析,即使你认为已找到方案也要继续分析。

    确保问题被充分探讨。

  • 持续信心检查 - pacnpal

    保存文件前、保存后、被拒绝后和任务完成前都要打信心分(1-10)。

    通过自我评估保障质量。

最佳实践 🎯

  • 项目结构 - kvs007

    在建议结构或依赖变更前,先检查项目文件。

    维护项目完整性。

  • 批判性思维 - chinesesoup

    多问"你确定这是最佳实现方式吗?"之类的"愚蠢"问题。

    挑战假设,发现更优解。

  • 代码风格 - yellow_bat_coffee

    在提示中多用"优雅""简洁"等词。

    有助于提升代码组织与清晰度。

  • 设定预期 - steventcramer

    人类会生气。

    (幽默提醒:请提供清晰需求和建设性反馈)