83、【Agent】【OpenCode】bash 工具提示词(commit 注意事项)(一)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Agent】【OpenCode】bash 工具提示词(amend 风险)

继续分析了禁止使用 --amend 的两个场景,这两个场景都是为了保护用户的代码仓库不被意外修改,在 Git 里,--amend 修改历史记录是件很敏感的事情,尤其在多人合作的项目中,如果操作不当,容易导致代码冲突甚至丢失,首先是失败处理,如果提交失败,或者被钩子拒绝后,不能用 --amend,主要是为了保留失败现场,方便排查问题,然后是已推送处理,当代码被推送到远程后,不能用 amend,这是 Git 协作中很重要的规则:不能修改已经推送到远程的公共历史,因为 amend 的本质是篡改历史,使用 --amend 容易和别人已经拉取的代码产生冲突,导致别人的工作成果丢失等,下面继续分析

OpenCode

下面继续来看 bash 工具这里对 Git 规则的约束

首先是第一点,主要是说批量并行,大致就是在单次回复中,可以调用多个工具,当用户需要获取多个互不相关的信息,且这些命令大概率都会成功时,为了达到最佳性能,应该同时并行地运行多个工具调用(其实并行执行命令这点前面的提示词有提到过),然后给出了个例子

  • 运行 git status 查看所有未追踪的文件
  • 运行 git diff 查看暂存区和非暂存区的所有改动,也就是即将被提交的内容
  • 运行 git log 查看最近的提交记录,目的是让 AI 学习并模仿这个仓库现有的提交风格

接下来是第二点,这里规范了如何写好 Git 提交信息(Commit Message),要求 AI 模型在提交代码前,需要把暂存区里的改动都看过一遍,然后按照如下说明起草提交说明:

1、准确概括改动类型,用词要精准:首先要分析改动了啥,然后要准确总结定性,比如

  • 如果是全新功能,提交信息里要用词 add 表示新增
  • 如果是对现有功能的该井,要用 update 关键词,表示更新或优化
  • 如果是修复 Bug,则必须用 fix 关键词,表示修复
  • 其他情况还包括 refactoring(重构),test(测试),docs(文档)等

总之,用词要精准,能够让看记录的人一下就能看出来这次改动的性质

2、绝对不能提交敏感文件 :必须自动识别并过滤掉那些可能包含密码,或密钥的文件,比如 .envcredentials.json 等,不能把这些敏感信息提交到仓库里,如果用户明确要求提交这些文件,则必须发出警告进行提醒

3、描述简明扼要,重点说为什么,而不是做了啥:这里要求 AI 写的提交信息必须短小精悍(控制在 1~2 句话),而且要侧重于 Why,而不是 How,举个例子

  • 反面例子(只说做了啥) :修改了 user.js 文件里的第 10 行代码,这种描述看了一头雾水,都不知道有啥用
  • 正面例子(解释为什么):修复用户登录失败的问题(直接点名本次改动的目的和价值)

4、确保信息真实,能够反映改动:最后再次强调了,写的提交说明必须和实际的代码改动完全对得上,不能文不对题

继续看后面两点

第三点描述和第一点类似,都是说如果几个指令互相独立的话,可以并行执行,但举的例子不一样,这里刚好反过来,给出了一个需要顺序执行的操作流程

  • 把相关的未追踪文件(untracked files)添加到暂存区,相当于执行 git add
  • 带着之前起草的提交信息,创建这次提交,相当于执行 git commit -m ...
  • 提交完成,运行 git status 再次确认一下是否真的提交成功

这里 git commit 需要在 git add 后面执行,而 git status 又必须在 git commit 之后执行

第四点提醒,如果提交失败,并且是被 pre-commit hook 钩子给拦截的话,AI 应该根据报错信息去修复对应问题,然后再创建一个全新的提交,这里和前面 blog 提到的禁止使用 --amend 场景是呼应的


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Agent】【OpenCode】bash 工具提示词(commit 注意事项)(二)

相关推荐
Shockang1 天前
AI 设计工作流全景拆解:Figma MCP / Claude Design / Codex / Google Stitch
人工智能
葫芦和十三1 天前
图解 MongoDB 13|WiredTiger 存储引擎:B-tree、页和 checkpoint 三件套
后端·mongodb·agent
To_OC1 天前
数据集划分不是随便切:手把手切分大众点评情感数据集
人工智能·llm·agent
冬奇Lab1 天前
每日一个开源项目(第142篇):android/skills - Google 官方 Android 开发 AI Skill 库
人工智能·开源·资讯
冬奇Lab1 天前
Skill 系列(06):Skill 工程化与治理——路由准确率 38%、压缩节省 76%
人工智能·开源·agent
IT_陈寒1 天前
Vue这个坑我跳了两次,原来问题出在这
前端·人工智能·后端
新新技术迷1 天前
Node给AI接口做SSE代理与鉴权
人工智能
redreamSo1 天前
大模型是不是到顶了?瓶颈到底在哪
人工智能·openai
Oo9201 天前
Tool Use 背后的技术逻辑
人工智能