昨天AI和我执拗上了。事情的起因是这样的。
我在Xcode的项目中使用String Catalog,它是一个扩展名为xcstrings的文件,会在项目编译的时候,自动通过源代码生成本地化的文本,以便用户进行翻译。最初,我注意到AI经常会主动翻译这个文件,这本来是一件好事。不过AI的方式不是跟人一样,去填充翻译的内容。而是直接将翻译写入到文件。而它在写入的时候,有时候会将格式写错,比如少了个括号之类的。最后就导致项目无法编译通过。我权衡利弊,决定不让AI再主动更改这个文件。而是由我使用别的方式进行翻译。
我增加了提示词,我和AI说,添加新的规则,你可以编辑源码,但是不能直接编辑xcstrings类型的文件,因为这个文件是被动的,会在编辑源码时,自动改变。结果AI添加了两条规则到.claude文件,一条叫只能编辑源码,不能编辑xcstrings文件。另一条叫不能直接编辑xcstrings文件。这两条在我看来都没啥问题,于是就同意了。
结下,AI的表演让我十分无语。首先,每次它在发现xcstrings有变化时,总是尝试用git restore命令回退到旧版。因为它总认为是自己不小心修改了文件。但其实只要是Xcode编译,就会在需要时自动更新,而我手动翻译之后,它也会更新。
为了不让它恢复到旧版。我跟他说,提交时同时提交翻译。结果它不理我,非要恢复。我问它为什么?它说,因为.claude的规则高于我的指令,我说那个规则也是我添加的。而且我让它列出规则。结果我一看,根本没有不让git提交啊。AI和我说,git提交本身就属于修改,因此也不行。我说你看清楚,规则是不能直接修改。而且我又把xcstrings文件改变的原理和它说了一遍。AI死活不同意,我说那我现在命令你修改规则,但是我现在很疑惑,按照我现在理解的你的理解能力,我要如何说才能达到我想要的效果?结果AI跟我说,它将修改规则为“不能直接修改,可以提交。”我问号脸,这不就是我刚刚说的吗?然后,它改了规则,终于给我提交了。
我差点儿以为AI要造反了呢!居然不理会我的直接指令!