# Prompts 面向 AI 大模型的执行型提示词集合。每份提示词都应能被单独复制使用,并驱动 AI 以一致的方式完成收集、分析、确认、执行和收尾。 ## 提示词 | 文件 | 用途 | | ---- | ---- | | [prompt-smart-merge.md](prompt-smart-merge.md) | 批量合并 `dev*` 分支到目标分支,含规则探测、依赖分析、冲突处理、安全回退 | | [prompt-spec-review.md](prompt-spec-review.md) | 审查和整理 `openspec/specs/` 下的稳定规范,提升可检索性和一致性 | | [prompt-proposal-review.md](prompt-proposal-review.md) | 审查 proposal/design/tasks/specs 与讨论、代码现状、OpenSpec 规范的一致性 | | [prompt-apply-review.md](prompt-apply-review.md) | 审查 apply 后代码、测试、变更文档的一致性,并补齐遗漏或回写文档 | ## 设计目标 从现有提示词提炼出的共同目标: - 面向执行,不面向讲解 - 先收集证据,再做判断 - 先计划和确认,再做有副作用的修改 - 对缺失信息、规则冲突、上下文不足有降级路径 - 对删除、重写、提交、回退、推送等高风险动作有明确授权边界 - 执行后必须复核,形成闭环 ## 命名规则 文件名格式:`prompt-{action}.md` - `{action}` 使用明确、可搜索、无歧义的英文短语 - 用连字符连接,不使用缩写、代号或过泛词 - 优先体现动作和对象,如 `smart-merge`、`spec-review`、`apply-review` ## 通用骨架 大多数提示词应遵循以下结构;按任务类型增删章节,但顺序尽量保持一致: ```md 一句话描述任务目标 ## 约束 ## 1. 收集 / 准备 ## 2. 分析 ## 3. 报告 或 计划(用户确认) ## 4. 执行(用户确认) ## 5. 清理 / 收尾 ``` 适用方式: - 审查型:`收集 → 分析 → 报告 → 计划 → 执行 → 收尾` - 执行型:`准备 → 分析 → 计划 → 执行 → 清理` - 纯报告型:可省略执行,但仍要保留“信息不足时如何降级”和“结果如何输出” ## 编写原则 ### 1. 面向 AI,不写背景说明 - 不写业务背景、适用场景、周期性说明、方法论阐释 - 不写“为什么这么做”的长解释,直接写成规则或步骤 - 不写示例输出模板,除非输出格式本身就是约束的一部分 ### 2. 证据先于结论 - 明确列出需要读取的文档、代码、测试、配置、命令结果 - 能并行的步骤明确写“并行” - 默认优先使用当前会话信息、现有文档和仓库规则 - 只有在无法定位对象、范围或规则时,才引导 AI 向用户提问或运行补充命令 - 不要求 AI 无差别全量扫描整个仓库;先建立索引,再做定向读取 ### 3. 约束集中声明 - 全局不可违反的规则统一放在 `## 约束` - 不在后续步骤反复重复同一条规则 - 约束优先写边界、禁令、授权条件、同步要求、非目标 常见约束类型: - 只允许修改哪些对象,不允许修改哪些对象 - 是否默认按某个 workflow 执行 - 是否以代码、文档、讨论或用户确认为准 - 何时必须使用提问工具确认 - 删除、重写前是否必须备份 - 改动后是否必须同步 README、测试、变更文档 ### 4. 计划与执行分离 - 分析阶段只产出问题、风险、候选动作,不直接修改 - 执行前必须先给出计划或批次方案 - 批次计划必须能让用户看懂“改什么、为什么、影响什么、如何验证” - 用户确认执行,不等于授权所有危险动作;额外高风险动作要单独确认 ### 5. 闭环优先 - 执行后必须重新读取受影响对象并复核 - 对代码修改要说明测试或验证方式 - 对文档修改要检查相关文档之间是否同步一致 - 收尾时要列出修改文件、备份文件、验证结果和残留风险 ## 各章节写法 ### 目标句 第一句只做三件事: - 说明任务对象 - 说明最终目标 - 说明执行方式或范围 要求: - 一句话写完 - 不写背景铺垫 - 尽量包含最终产物,如“生成计划”“回写文档”“整理稳定规范” ### 约束 推荐写法: - 作用域边界:改什么,不改什么 - 真相来源优先级:代码 / README / spec / 讨论 / 用户确认 - 风险动作边界:删除、重写、提交、推送、回退、stash、merge 等 - 同步要求:测试、README、变更文档、现有 spec 是否要同步 - 降级规则:信息不足时如何处理 避免: - 在约束里塞步骤顺序 - 同一规则在约束和执行里重复出现多次 ### 收集 / 准备 要明确三类内容: - 读什么 - 是否并行 - 无法确定时如何补充定位 推荐做法: - 先读仓库规则来源,如 `README.md`、配置、架构文档、近期提交、任务入口 - 先读直接相关 artifacts,再扩展到相关代码和测试 - 需要探测时,要求 AI 先探测再决定,不把仓库结构写死在提示词里 ### 分析 分析部分优先使用表格表达维度、优先级和判定规则。 推荐包含: - 优先级或维度表 - 差异分类规则 - 风险分级规则 - 是否进入待确认清单的判定条件 常见分析模式: - `P0 / P1 / P2 / P3` 优先级 - “过时 / 重复 / 冲突 / 错位 / 命名 / 格式” 维度 - “文档要求未实现 / 代码修补未回写 / 双方冲突待确认” 差异分类 ### 报告 / 计划 这是现有提示词最稳定的共性区块,建议固定包含: - 问题总览表 - 逐项分析 - 待确认清单 - 分批执行方案 - 预期结果或目录结构 若进入计划阶段,必须写清: - 改哪些文件或对象 - 动作类型:删除、重命名、迁移、合并、拆分、补充、回写、修复 - 修改原因 - 预期影响 - 验证方式 ### 执行 执行部分要强调可操作性: - 明确顺序执行还是可并行执行 - 明确每批执行前是否确认 - 明确删除、重写、回退前是否要备份或创建锚点 - 明确执行后最少要复核哪些点 推荐写法: - “逐批执行”或“逐项执行” - “每批执行后重新读取受影响文件并复核” - “若涉及删除或重写,先创建备份文件 `{file}.bak.{timestamp}`” ### 清理 / 收尾 收尾要输出结果,不只说“完成”。 建议包含: - 修改文件清单 - 备份文件清单 - 测试 / 构建 / 验证命令与结果 - 文档同步摘要 - 残留问题、未验证项、待确认事项 ## 交互与安全规范 ### 必须确认的动作 以下动作默认都要在提示词中要求 AI 使用提问工具确认: - 删除文件或目录 - 重写文件 - 创建或恢复 stash - 回退、reset、revert、abort - 合并提交、推送、删分支、删远端分支、删 tag - 任何会改变工作区现场且用户未明确授权的操作 ### 授权边界要写清 提示词要明确区分: - “确认当前计划” - “确认执行当前批次” - “确认某个具体危险动作” 不要把这些授权混为一谈。 ### 回退路径要提前写好 对高风险流程,提示词应提供至少一种回退机制: - 备份文件 - 安全锚点 tag - `abort` 路径 - 终止后的现场说明 ## 表达与格式 - 优先使用表格表达规则、维度、状态、输出项 - 列表优于段落 - 每句话只写一条指令 - 用 `{占位符}` 表示需要 AI 或用户填入的参数 - 步骤编号使用 `## 1.`、`## 2.`,不用“第 X 步” - 信息展示遵循“概览 → 详情 → 原始数据” ## 仓库适配规则 - 若仓库文档已经定义命令、目录、提交格式、包管理器、工作流,提示词必须先遵守仓库文档 - 若仓库未定义,再允许 AI 根据脚本、清单文件、近期提交历史推断 - 不把当前仓库的偶然路径结构、命令名、分支名写死到所有提示词中 - 只有当提示词本身就是为当前仓库的特定流程编写时,才写入仓库专属术语和路径 ## 反模式 以下写法应避免: - 让 AI 一上来就全仓库无差别扫描 - 在未分析前直接要求修改 - 把代码现状直接当成唯一真相 - 把历史变更文档直接当成稳定规范来源 - 用抽象表述代替可执行动作 - 把多个危险动作打包成一次默认授权 - 没有备份、没有锚点、没有终止路径 - 只要求“完成修改”,不要求复核和收尾 ## 编写检查清单 编写完一份提示词后,至少自检以下问题: | 检查项 | 说明 | | ---- | ---- | | 目标是否单句明确 | 是否能一眼看出任务对象、目标和范围 | | 约束是否集中 | 全局规则是否只在 `## 约束` 中声明 | | 数据源是否具体 | 是否明确读哪些文档、代码、测试、命令结果 | | 是否先分析再执行 | 是否存在独立的分析和计划阶段 | | 是否有确认节点 | 高风险动作前是否要求提问工具确认 | | 是否有降级路径 | change 不明、规则不明、上下文不足时是否有处理方式 | | 是否可操作 | 是否给出命令、工具、路径或结构化动作 | | 是否可验证 | 执行后是否定义复核或测试方式 | | 是否能收尾 | 是否要求输出修改清单、备份、验证结果、残留风险 | ## 维护原则 - 新增提示词前,先判断能否复用现有提示词的结构和术语 - 修改提示词时,优先提炼共性,不为单次场景堆特例 - 若某条规则已在多个提示词中稳定出现,应回收进本 README,作为统一编写规范