先说几个核心判断:当百度Comate生成的代码总是跑偏,别急着反复调整提示词,也别指望依靠手动修修补补就能彻底解决。AI并没有读取你的项目规约,它默认会使用通用经验来输出。真正有效的做法,是让AI先理解项目规则,再开始执行任务。
让Comate主动读取规约文件
操作并不复杂,只需按照以下步骤执行:
首先,确认项目根目录下存在 【.comate/rules/】 目录,并且该目录下至少包含 ai.mdc 和 basic/basic.mdc 这两个文件。缺少任何一个,Comate都会跳过规约加载,直接采用默认逻辑——这基本等于白费功夫。
然后,在IDE中右键点击任意源码文件,选择「Comate」→「Run with Spec Mode」。这一步是强制Comate进入规格化开发流程,它会自动挂载 .comate/rules/ 下的所有基础层规则。简单来说,就是告诉它:不要自由发挥,严格按照规则执行。
关键点在于:查看底部状态栏是否出现「Spec Active: basic.mdc loaded」的提示。如果没有出现,说明规则并未生效。此时需要检查 .comate/rules/basic/basic.mdc 文件的编码格式——是否为UTF-8?如果带有BOM头,Comate解析会失败,这个坑有不少人踩过。
快速验证规约是否生效
如何确认规则确实被读入?两种实用方法:
方法一:通过注释触发测试
在空函数上方写一句 // 禁止使用 exit(1),然后按 Ctrl+Alt+C 让Comate生成实现。如果生成的代码中仍然出现 exit(1),说明 basic.mdc 中的错误处理规则要么未加载,要么声明方式存在问题。这种验证方法简单直接,一试便知。
方法二:检查commit message格式
做一次代码变更,然后调出Comate的「Generate Commit Message」功能。合格的输出应该像 feat(calculator): add pow operator 这样,包含类型、范围、描述。如果输出的是 update 或 fix bug 这种随意写法,说明 code-quality.mdc 中的commit规范并未生效。这一点不能含糊,规范就是规范。
修复场景层遗漏步骤
有时规约文件都已经配置好了,但Comate仍然没有按预期工作——问题可能出在场景层。举个例子,你要新增一个运算符,对应的 workflow 文件是 add-operator.mdc。如果这个文件不存在,Comate不会自动帮你补全switch分支,也不会更新测试文件,更不会生成配套的测试用例。它不会猜测你要做什么,必须明确告知。
解决方案分为三步:
第一,定位当前任务类型。比如新增运算符,对应的workflow就是 add-operator.mdc。如果文件不存在,需要手动创建。
第二,在 .comate/rules/workflow/ 目录下创建 add-operator.mdc,内容要包含明确的执行清单。例如:
① 修改 calculator.c:在switch中添加新case,并调用对应函数
② 在 tools/ 目录下新增幂运算实现函数
③ 更新 test_calculator.c,覆盖正数、负数、零三种输入
④ 提交前运行 make test 并确保通过
第三,也是很容易被忽略的一步:在执行任务前,右键 →「Comate」→「Select Workflow」→ 选择 add-operator。这一步不可跳过,【Comate 不会自动推断任务类型,必须显式指定】。这是整个流程中最容易出bug的地方,很多人以为自己配好了就万事大吉,结果Comate根本没有激活对应的workflow。

说到底,让Comate写出符合规范的代码,核心就一句话:把规则摆在它面前,让它先读、再执行。虽然流程多几步,但一旦跑通,后续的代码质量会稳定很多。这项工作值得花时间投入。
