CLI载入全局设定规则的问题;commit提交总会多出半个双引号

我定义了一个自定义指令:commands/commit.md,但是即使我文案提醒了也无法避免,除非我在每次的对话中强调一遍。

在全局IFLOW.md和output-styles定义的基础规则基本无法直接起作用,除非我每次单独提醒模型去载入。

## commit.md
Git 提交指令

你需要执行 git commit 操作,按以下规则进行:

执行流程

  1. 分析变更

    • 使用 git statusgit diff 查看所有变更
    • 理解变更的性质和影响范围
  2. 生成提交信息

    • 标题:一句话概括核心变更(50字以内)
    • 描述:详细说明变更内容,按模块分类
  3. 描述格式

    【模块名称】具体变更说明
    【模块名称】具体变更说明
    
  4. 用户文案处理

    • 如果用户提供了文案,将其作为核心描述
    • 围绕用户文案补充技术细节
    • 保持用户原意,扩展技术说明
  5. 执行提交

    • 将所有变更添加到暂存区
    • 使用生成的标题和描述创建提交
    • 重要:不要执行 push 操作

示例

示例 1(无用户文案):

优化用户认证流程

【认证模块】重构登录逻辑,简化token验证流程
【中间件】新增请求拦截器,统一处理认证错误
【工具函数】提取token解析为独立函数

示例 2(有用户文案:「修复登录bug」):

修复登录bug

【认证模块】修复登录时token过期未正确处理的问题
【错误处理】完善登录失败的错误提示信息
【测试】新增登录异常场景的单元测试

注意事项

  • commit之前先git pull确保本地仓库为最新版本
  • 标题使用祈使句,简洁明了,检查标题是否有多余字符,尤其是双引号
  • 描述按功能模块分类,便于追溯
  • 技术术语使用英文,描述使用中文
  • 避免模糊表述,具体说明改了什么
  • 不需要每个文件都添加描述,要归类总结
  • 注意控制文案字数,控制在200个汉字以内
  • 不执行 push,只做本地提交

有这个情况的截图吗,我们看下是啥原因,上图应该是已经提醒过模型后?

上图是主动提醒模型才会自检,输出对应风格,如果不提醒就是这样的:

明白了,双引号的问题还能复现吗

image

百分百复现,你可以用我前面提供的自定义指令提示词,/commit 提交就可以复现。其实直接单独命令模型commit也是一样的错误

模型:glm-4.6

OK我们看下

请问新版本还有类似问题吗

还是有的

我发现他不是多加一个双引号的问题,而是他不会拆标题和描述,下面是他自己总结的记录,commit的时候,他只添加了标题,这在claude中是没问题的:
“优化状态管理和数据缓存机制 │
│ │
│ 【状态管理】清理重复的$store.getters调用,统一使用mapGetters │
│ 【用户信息】简化loginInfo获取逻辑,直接使用this.user对象 │
│ 【对比讲评】重构FooterBar组件对比讲评功能,增加IndexedDB缓存同步 │
│ 【学生对比】修复ModalImgPreview组件学生加入逻辑,确保数据结构一致 │
│ 【代码规范】移除不必要的getter依赖,添加ES5语法要求说明” (重新提交,标题和描述分开)

即使我强调要拆,也无法处理成功

找到原因了,iflow使用的git方式在windows上会导致Desciption换行会被截断,加入声明就可以了:
Windows 环境注意事项

  • 不要使用 git commit -m 处理多行提交信息(Windows cmd 会截断)
  • 推荐使用 git commit -F filename 从文件读取完整提交信息

感谢大佬分享呀 :call_me_hand:

1 个赞